【发布时间】:2014-10-29 23:58:57
【问题描述】:
是否可以恢复代币的价值?
我有一个类似的规则:
unaryOperation:
NOT { $$ = new UnaryOP(NOT); }
| PLUS { $$ = new UnaryOP(PLUS); }
| MINUS { $$ = new UnaryOP(MINUS); }
;
NOT、PLUS 和 MINUS 是标记,我也在我的程序中使用生成的定义。是否有可能恢复这些数据而不是在同一行重复自己?
我对语义值不感兴趣,所以我这样写是不正确的:
unaryOperation:
NOT { $$ = new UnaryOP($1); }
| PLUS { $$ = new UnaryOP($1); }
| MINUS { $$ = new UnaryOP($1); }
;
谢谢
【问题讨论】:
-
@rici 建议使用语义值来恢复元素的数据。但是,我试图不使用这个值。我解决了扩展 UnaryOP 的问题:UnaryNot、UnaryPlus 和 UnaryMinus。我认为这不是一个好的解决方案...
标签: bison flex-lexer bisonc++