0

Javacc を使用して解析中に入力ストリームを変更する方法はありますか? 解析中にトークンを文字列に置き換えてから、その置き換えられた文字列を解析するユースケースがあります。

例えば、

define var $x="2*2";
evaluate $x;

したがって、解析中に $x のように $ で始まるトークンに遭遇した場合は、インライン置換を行い、Javacc を使用して通常どおり解析する必要があります。

したがって、上記の例から、インライン置換の後に次のステートメントを解析する必要があることを意味します。

evaluate "2*2";

これは Javacc で可能ですか? 入力ストリームを変更して、特別なトークンが表示されたときにそのインライン置換を入力ストリームに追加できますか?

ありがとう。

4

1 に答える 1

1

これを行う通常の方法は、解析を開始する前に前処理パスを実行することです。これは、C コンパイラが一般的に行う方法です。解析中にそれを行う必要がある場合は、カスタム入力ストリームを使用する必要があります。その方法については、ドキュメントを参照してください。また、先読みには十分注意する必要があります。

于 2013-12-06T19:53:38.513 に答える