在ANTLR中,我们可以使用syntactic predicates来解决以下某些问题。这只是一个简单的例子。
a : (L K)=> b
| c
;
b : L K
;
c : L M
;
我想知道的是如何在JAVACC中实现同样的目标?感谢。
答案 0 :(得分:2)
在javacc中有一个名为SYNTACTIC LOOKAHEAD的概念。您可以使用它来实现相同的行为。
例如,假设您的语法规则如下。 void Expr(): {} { 调用()| VAR() }
如果你需要做一个未知时间的前瞻,那么你可以做类似
的事情void Expr():
{}
{
LOOKAHEAD(Call())
Call () | Var()
}