Javaコードレベルからパーサーとレキサーに直接指示を与える方法はありますか? そうでない場合、どうすればこれを行うことができますか?
問題は、パーサーに変数を評価させ、バックアップしてから、その変数の値をオブジェクト名として割り当てたいということです。このような:
String s = "text";
SomeClass (s) = new SomeClass();
パーサーは読み取ります--> OK、s は「テキスト」と評価されます... パーサーはバックトラックしますが、「テキスト」をメモリに保持し、「テキスト」を SomeClass の新しいインスタンスの名前として割り当てます。これにより、次のことが可能になります。
text.callSomeMethod();
SomeClass の任意の数のオブジェクトをインスタンス化する必要があるため、これを行う必要があります。それぞれに一意の名前を付ける必要があり、次のようにするのが理想的です。
while (someArbitrarySet.hasNext()) {
String s = "token" + Math.random();
SomeClass (s) = new SomeClass();
(s).callSomeMethod();
}
これが理にかなっていることを願っています...