我有一个程序,用户希望能够使用格式过滤掉某些字符串条件
(someType != 'a' AND someType != 'b') OR (anotherType = 'abc' AND somethingElse = 'cns')
我们正在研究使用 ANTLR 4 来解析它。每个组将始终由 OR 分隔,每个内部组将始终由 AND 分隔。
我是一名初级开发人员,如果这是我们想要进入的路线,我将通过阅读本书来学习 ANTLR4。我只是想确保 ANTLR4 能够解决这个问题。
我们本质上想知道根据此语法表达式的计算结果是真还是假。
最佳答案
Antlr 不计算表达式。它解析它们。
解析结果的“评价”由你决定。通常,您将节点构建操作附加到语法规则;这样,ANTLR 将帮助您构建一棵树,然后您走到树旁对其进行评估。
如果你真的很狡猾,你可能会在语义 Action 中进行表达式评估。向上传递值有点像向上传递创建的节点。 向下传递值需要更多的努力,我不是描述如何用 ANTLR 做到这一点的人。
关于java - ANTLR 4 会允许我为 boolean 表达式创建解析器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19389579/