我从yacc收到一条消息,说有一个转移/减少冲突。我认为它来自yacc文件的这一部分。
statement : expression_stmt
| compound_stmt
| selection_stmt
| iteration_stmt
| return_stmt ;
selection_stmt : IF '(' expression ')' statement
| IF '(' expression ')' statement ELSE statement ;
expression : var '=' expression | simple_expression ;
你能看到冲突吗?如何解决?
答案 0 :(得分:1)
是的,我看到了冲突。 selection_statement
规则匹配
IF(<expression 1>)
THEN
IF(<expression 2>)
THEN <expression statement 1>
ELSE <expression statement 2>
但那含糊不清。它也可能是
IF(<expression 1>)
THEN
IF(<expression 2>)
THEN <expression statement 1>
ELSE <expression statement 2>