我有一个问题,使用(可重入)Flex +柠檬解析。我使用简单的语法和词法分析器here。当我运行它时,我会输入一个数字后跟一个EOF标记(Ctrl-D)。打印输出结果将改为: 89
found int of .
AST=0.
其中第一行是我放的数量从理论上讲,AST值应该是一切,我把总和 编辑:。当我打电话解析( )手动它运行正确。 此外,即使令牌为0(停止令牌),柠檬似乎也运行atom
我能够通过跟随this question一起添加对我的解析器交替字符的语法(例如ababa或baba)的支持。 我现在正在通过允许重复字符来扩展它。 例如,我希望能够支持abaaabab和aababaaa以及。在我的情况下,只允许重复a,但允许重复b的解决方案也是有用的。 给出的规则从另一个问题: expr ::= A | B
A ::= "a" B | "a"
B ::= "b" A | "
我试了几次。在Google上,re2c + lemon只有几个教程。 目前所有的例子出现了类似像一堆的错误: In file included from main.cpp:2:0:
parser.y:44:5: error: ‘yygotominor’ was not declared in this scope
A.int_value = B.int_value * C.int_va