boolean (PsiBuilder b, int l) { if (!recursion_guard_(b, l, "char_class_pattern")) return false; if (!nextTokenIs(b, L_BRACKET)) return false; boolean r; Marker m = enter_section_(b); r = consumeToken(b, L_BRACKET); r = r && char_class_pattern_1(b, l + 1); r = r && char_class_pattern_2(b, l + 1); r = r && consumeToken(b, R_BRACKET); exit_section_(b, m, CHAR_CLASS_PATTERN, r); return r; }