javaccを使用してループを含むスクリプト言語用のインタープリタを作成しましたが文法を定義しましたが、実行を繰り返すために行をバックアップする方法はありませんブロックの "for"の値。 トークンマネージャをどのようにバックアップして、ループボディを再解析し、何度も何度も再評価することができますか?javaccでループを実装するには
void For(): {ArrayList<String> lst;Token n,v;int i=0;} {
"for" "(" n=<ID> ":" v=<ID> ")" "{"
(actions()";" )+
"}"
}
スキャンを先に進めるには、各bnfプロダクションにパラメータを追加して実行するかどうかを指定します。 if文を扱うには、とにかくこれが必要です。 JavaCCを使用して、これの難しい部分は、巻き戻しを行うことです。インタフェースは、生成されたトークンマネージャには存在しません。生成されたトークン・マネージャーをサブクラス化して、必要なインターフェースを追加することによって可能性があります。 –