ANTLR,动态变量
我有一个 ANTLR 语法,可以解析和评估简单的表达式,如 1+2*4 等。 我想做的是评估像 2+$a-$b/4 这样的表达式,其中 $ 变量是动态变量,来自外部源并不断更新。
是否有关于如何使用 ANTLR、最佳实践等来做到这一点的设计模式?
- 我应该用更新后的值($a -> 4.34)“子串” $a
- 更好的方法吗?
谢谢
I have an ANTLR grammar that can parse and evaluate simple expressions like 1+2*4, etc.
What I would like to do is to evaluate expressions like 2+$a-$b/4 where the $ variables are dynamic variables, that come from an external source and are continuously updated.
Is there any design pattern on how to do this using ANTLR, best practices, etc?
- Shall I "substring" the $a with the updated value ($a -> 4.34)
- A nicer way to do this?
Thx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实际上,ANTLR 书中有一个示例(ANTLR Definitive Reference)。该模式是解析变量值并将它们添加到目标语言的字典中:
其中“expr”可以是任何有效的表达式(包括表达式)包含一个变量。)
There is actually an example for this in the ANTLR book (the ANTLR Definitive Reference.) The pattern is to parse the variable values and add them to a dictionary in the target language:
where 'expr' can be any valid expression (including an expression containing a variable.)