我的语法不断遇到reduce/reduce和reduce/shift问题,但我不确定为什么或如何解决它。
这是我所拥有的
block ::=
block_statement
| block_statement block
;
block_statement ::=
type variable_declarators SEMICOLON
| statement
;
statement ::= sub_statement
| IF LPAREN boolexp RPAREN statement FI
| IF LPAREN boolexp RPAREN statement ELSE statement FI
| WHILE LPAREN boolexp RPAREN statement ELIHW
| FOR LPAREN assignment SEMICOLON boolexp SEMICOLON
statement_expression RPAREN statement ROF
;
sub_statement ::=
statement_expression SEMICOLON
| RETURN Exp SEMICOLON
| block
;
statement_expression ::=
assignment
| IDENTIFIER LPAREN argument_list RPAREN
| IDENTIFIER PLUSPLUS
| IDENTIFIER MINUSMINUS
;