1

在 ANTLR 中,我们可以使用句法谓词来解决某些问题,如下所示。这只是一个简单的例子。

a : (L K)=> b
   | c
   ;

b : L K
   ;

c : L M
   ;

我想知道的是如何在 JAVACC 中实现同样的事情?谢谢。

4

1 回答 1

2

javacc中有一个叫做SYNTACTIC LOOKAHEAD的概念。您可以使用它来实现相同的行为。

例如,假设您的语法规则如下。无效 Expr(): {} { 调用 () | 变量() }

如果您需要提前预测未知时间,那么您可以进行类似的操作

void Expr():
{}
{
LOOKAHEAD(Call())
Call () | Var()
}

更多信息请参考http://javacc.java.net/doc/lookahead.html

于 2012-03-03T18:54:29.450 回答