我正在尝试创建一个简单的解析器,但是在尝试考虑第一个元素之前的可选符号时遇到了一些麻烦:
void expr5() : {}
{
[addop()] expr6() (addop() expr6())*
}
例如 [-] 5 + 3 - 4
这里的问题是第一个可选的 [addop()] 定义为:
void addop() : {}
{
<PLUS> | <MINUS>
}
我目前遇到选择冲突,建议使用 LOOKAHEAD(),但是 javacc 在使用 LOOKAHEAD() 时没有识别出选择冲突
提前致谢!