lbrace
lbrace:
'{' | lbrace NL
| pa_pat lbrace stmtlist '}' { $$ = stat2(PASTAT, $1, $3); }
| pa_pat ',' opt_nl pa_pat lbrace stmtlist '}' { $$ = pa2stat($1, $4, $6); }
| lbrace stmtlist '}' { $$ = stat2(PASTAT, NIL, $2); }
| XBEGIN lbrace stmtlist '}'
| XEND lbrace stmtlist '}'
| FUNC funcname '(' varlist rparen {infunc = true;} lbrace stmtlist '}'
| lbrace stmtlist rbrace { $$ = $2; }
%type <i> pst opt_pst lbrace rbrace rparen comma nl opt_nl and bor
case lbrace: /* this is a brace that starts the compound
(type_code != lbrace || !btype_2)) {
case lbrace: /* got a '{' */
parse(lbrace); /* let parser know about this */
ps.last_token == lbrace || ps.last_token == rbrace)) {
code = lbrace;
ps.p_stack[++ps.tos] = lbrace;
if (ps.p_stack[ps.tos - 1] == lbrace) {
ps.p_stack[i] != lbrace
case lbrace: /* scanned { */