YACC 错误 "is untyped"
YACC error "is untyped"
我正在创建一个使用波兰表示法(前缀)的 YACC 程序。实现起来似乎很简单,但我收到一个似乎没有意义的错误。错误是:
yacc: e - "calculator.y" 的第 33 行,$1 ('-') 未键入
这是表达式的代码。错误发生在“-”规则上。它停在那里,因为我想先解决这个问题:
exp: NUMBER { $$ = ; }
| NAME { $$ = ->value; }
| NAME '=' exp { ->value = ; $$ = ; }
| exp EQ exp { $$ = == ; }
| '-' exp exp { $$ = - ; }
;
奇怪的是,当我尝试使用中缀表示法时它工作正常。我知道这个错误通常在标记输入不正确时发生,但它们是因为它们使用中缀表示法。知道为什么这会随着前缀突然改变吗?
| '-' exp exp { $$ = - ; }
此处您试图从 -
标记中减去第二个表达式,该标记未类型化且没有任何意义。你可能想要
| '-' exp exp { $$ = - ; }
从第一个表达式中减去第二个表达式...
我正在创建一个使用波兰表示法(前缀)的 YACC 程序。实现起来似乎很简单,但我收到一个似乎没有意义的错误。错误是:
yacc: e - "calculator.y" 的第 33 行,$1 ('-') 未键入
这是表达式的代码。错误发生在“-”规则上。它停在那里,因为我想先解决这个问题:
exp: NUMBER { $$ = ; }
| NAME { $$ = ->value; }
| NAME '=' exp { ->value = ; $$ = ; }
| exp EQ exp { $$ = == ; }
| '-' exp exp { $$ = - ; }
;
奇怪的是,当我尝试使用中缀表示法时它工作正常。我知道这个错误通常在标记输入不正确时发生,但它们是因为它们使用中缀表示法。知道为什么这会随着前缀突然改变吗?
| '-' exp exp { $$ = - ; }
此处您试图从 -
标记中减去第二个表达式,该标记未类型化且没有任何意义。你可能想要
| '-' exp exp { $$ = - ; }
从第一个表达式中减去第二个表达式...