3

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 ではどうすればよいでしょうか?

4

1 に答える 1