|
|
|
@ -103,12 +103,7 @@ BlockItem: { $$ = NULL; }
|
|
|
|
|
| VarDecl BlockItem { $$ = new_node(BlockItem, $2, NULL, $1, 0, 0, NULL, NonType); }
|
|
|
|
|
| Stmt BlockItem { $$ = new_node(BlockItem, $2, NULL, $1, 0, 0, NULL, NonType); };
|
|
|
|
|
|
|
|
|
|
// 以下是你需要完成的语法规则和语义计算规则
|
|
|
|
|
//Stmt → LVal '=' Exp ';' | [Exp] ';' | Block
|
|
|
|
|
//| 'if' '(' Cond ')' Stmt [ 'else' Stmt ]
|
|
|
|
|
//| 'while' '(' Cond ')' Stmt
|
|
|
|
|
//| 'break' ';' | 'continue' ';'
|
|
|
|
|
//| 'return' [Exp] ';'
|
|
|
|
|
|
|
|
|
|
Stmt: LVal ASSIGN Exp SEMICOLON{$$ = new_node(Stmt,$1,NULL,$3,0,0,NULL,NonType);}
|
|
|
|
|
| Exp SEMICOLON {$$ = new_node(Stmt,NULL,NULL,$1,0,0,NULL,NonType);}
|
|
|
|
|
| SEMICOLON {$$ = NULL;}
|
|
|
|
|