我有一个ANTLR语法,可以解析和评估像1 + 2 * 4等简单表达式。 我想做的是评估像2 + $ a- $ b / 4这样的表达式,其中$变量是动态变量,来自外部源并且不断更新。
有没有关于如何使用ANTLR,最佳实践等进行设计的设计模式?
THX
答案 0 :(得分:3)
在ANTLR书中(ANTLR权威参考书)实际上有一个例子。模式是解析变量值并将它们添加到目标语言的字典中:
@members { var dict = new Dictionary<string, int>(); }
decl: v=ID '=' v=expr { dict[$e.Text] = int.Parse($v.Value); };
ID : '$' ('a'..'z'|'A'..'Z')+;
其中&#39; expr&#39;可以是任何有效的表达式(包括包含变量的表达式。)