我有一个程序,用户希望能够使用格式
过滤掉某些字符串标准(someType!='a'和someType!='b')或(anotherType ='abc'AND somethingElse ='cns')
我们正在研究使用ANTLR 4来解析这个问题。每个组将始终用OR分隔,每个内部组将始终用AND分隔。
我是初级开发人员,如果这是我们想要进入的路线,我将通过阅读本书来学习ANTLR4。我只是想确保ANTLR4能够解决这个问题。
我们基本上想知道表达式是否会根据此语法计算为true或false。
答案 0 :(得分:3)
Antlr不评估表达式。它会解析它们。
解析结果的“评估”取决于您。通常,您将节点构建操作附加到语法规则;有了它,ANTLR将帮助您构建一棵树,然后您走到树上进行评估。
如果你真的很狡猾,你可以在语义行为中进行表达评估。向上传递值有点像传递创建的节点。传递值 down 需要付出更多努力,而我不是用ANTLR描述如何做到这一点的人。