当我尝试创建一个简单的解析器时,我收到此错误。解析器应该接受(01 | 10 | 00 | 11)*(00 | 11)。当我使用lookahead = 0时,即使输入正确,00100100也会触发错误。因为JavaCC将其读作00 1 00 1 00,而不是00 10 01 00.但是当我添加先行修复它时,我得到了
\[[^]]*\]+:
任何人都可以帮我找到原因吗? 任何帮助将非常感激。感谢
Exception in thread "main" ParseException: Encountered "" at line 1, column 6.
Was expecting one of:
at GS.generateParseException(GS.java:453)
at GS.jj_consume_token(GS.java:337)
at GS.q3(GS.java:50)
at GS.q0(GS.java:17)
at GS.q1(GS.java:32)
at GS.q0(GS.java:14)
at GS.q3(GS.java:43)
at GS.q0(GS.java:17)
at GS.main(GS.java:8)
答案 0 :(得分:0)
我认为写作
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="d" style="display: none">
<div id="Wise">
</div>
</div>
而不是
void q3():{}
{
<END> |q0()
}
可以解决问题:如果你内联q3,你可以看到q0是递归的,所以你需要一个无限的前瞻来选择替代产品。首先放置END将使其具有更高的优先级,并且生产将变得正确递归。