boolean (PsiBuilder b, int l) { if (!recursion_guard_(b, l, "pattern")) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_, PATTERN, "<pattern>"); r = pattern_0(b, l + 1); p = r; // pin = 1 r = r && report_error_(b, pattern_1(b, l + 1)); r = p && pattern_2(b, l + 1) && r; exit_section_(b, l, m, r, p, ShParser::case_pattern_recover); return r || p; }