public static boolean flat_pattern(PsiBuilder b, int l) {
    if (!recursion_guard_(b, l, "flat_pattern")) return false;
    if (!nextTokenIs(b, "<flat pattern>", PATTERN_IDENTIFIER, PATTERN_WHITE_SPACE)) return false;
    boolean r;
    Marker m = enter_section_(b, l, _NONE_, FLAT_PATTERN, "<flat pattern>");
    r = flat_pattern_0(b, l + 1);
    while (r) {
      int c = current_position_(b);
      if (!flat_pattern_0(b, l + 1)) break;
      if (!empty_element_parsed_guard_(b, "flat_pattern", c)) break;
    }
    exit_section_(b, l, m, r, false, null);
    return r;
  }
public static boolean flat_pattern(PsiBuilder b, int l)