- : identifier ':' { $$ = createLabel($1,NULL); }
- | CASE constant_expr ':' statement { $$ = createCase(STACK_PEEK(swStk),$2,$4); }
- | DEFAULT ':' statement { $$ = createDefault(STACK_PEEK(swStk),$3); }
+ : identifier ':' { $$ = createLabel($1,NULL);
+ $1->isitmp = 0; }
+ | CASE constant_expr ':'
+ {
+ if (STACK_EMPTY(swStk))
+ $$ = createCase(NULL,$2,NULL);
+ else
+ $$ = createCase(STACK_PEEK(swStk),$2,NULL);
+ }
+ | DEFAULT { $<asts>$ = newNode(DEFAULT,NULL,NULL); } ':'
+ {
+ if (STACK_EMPTY(swStk))
+ $$ = createDefault(NULL,$<asts>2,NULL);
+ else
+ $$ = createDefault(STACK_PEEK(swStk),$<asts>2,NULL);
+ }