boolean (PsiBuilder b, int l) { if (!recursion_guard_(b, l, "do_while_statement")) return false; if (!nextTokenIs(b, KW_DO)) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_, DO_WHILE_STATEMENT, null); r = consumeToken(b, KW_DO); p = r; // pin = 1 r = r && report_error_(b, mb_nl(b, l + 1)); r = p && report_error_(b, branch(b, l + 1)) && r; r = p && report_error_(b, mb_nl(b, l + 1)) && r; r = p && report_error_(b, consumeTokens(b, -1, KW_WHILE, T_LPAREN)) && r; r = p && report_error_(b, expression(b, l + 1, -1)) && r; r = p && do_while_statement_7(b, l + 1) && r; exit_section_(b, l, m, r, p, null); return r || p; }