boolean (PsiBuilder b, int l) { if (!recursion_guard_(b, l, "not_lvalue")) return false; boolean r; r = consumeToken(b, BANG); if (!r) r = vars(b, l + 1); if (!r) r = consumeToken(b, DOLLAR); if (!r) r = brace_expansion(b, l + 1); if (!r) r = consumeToken(b, FILEDESCRIPTOR); return r; }