JavaCC を ANTLR4 に変換してコンパイラを作成しています。ルールの 1 つは、パラメータを渡し、そこから戻り値を取得することです。
ルール「用語」に対して次のようなことをしなければなりません:
Term term(ReadOptions options, int priority):
{
int p = options.operatorSet.getNextLevel(priority);
Term t;
}
{
(
LOOKAHEAD({p==0})
t = simpleTerm(options)
|
LOOKAHEAD(<NAME_TOKEN>,{priority==1201 && is1201Separator(2)})
t = name()
|
t = operatorTerm(options, p)
)
{return t;}
}
問題は、「p」の値に基づいてサブルールをどのように一致させるかということです。以前のバージョンの ANTLR では => を使用できたはずで、問題は解決したはずですが、 ANTLR4 ではどうすればよいでしょうか?