public static boolean char_class_pattern(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;
  }
public static boolean char_class_pattern(PsiBuilder b, int l)