2016-05-12 16 views
1

私は簡単な言語のためにEBNFを書いています。言語の機能の1つは、式の計算と変数への格納です。たとえば:ANTLR生成パーサの変数を動的に更新する

A = 5 
B = A + 2 
C = B/(A * 2) 
D = C - B + A 

私はANTLRを使用してPythonのパーサを生成していると私はちょうど良い値を計算し、私のデータ構造を構築することができています。

私は余分な要件があります。コード内で変数Aの値が後で更新された場合、Aに対応する新しい値を得るにはB、C、Dが必要です。 これまでのところ、私の考えは各変数の式/方程式全体を保存することです。パーサが最初のパスを完了すると、格納された式をすべて再評価して更新された値を取得します。

しかし、ANTLR自体がこのようなことをするためのフックを提供しているのでしょうか?マルチパスのようなもの?

何か指摘します。

答えて

0

AFAIK、Antlrはこのような機能を提供していません。

各式の解析ツリーと各変数の依存関係リストは、直接的または間接的に変更されたものに依存するものを再評価できるようにする必要があります。

+0

ええ、それは私がやっていることです。誰かがこのようなことを既にしていると思っていました。しかたがない。 – shikhanshu

関連する問題