1

我有一个程序,用户希望能够使用格式过滤掉某些字符串标准

(someType != 'a' AND someType != 'b') OR (anotherType = 'abc' AND somethingElse = 'cns')

我们正在研究使用 ANTLR 4 来解析它。每个组将始终由 OR 分隔,每个内部组将始终由 AND 分隔。

我是一名初级开发人员,如果这是我们想要走的路,我将通过阅读这本书来学习 ANTLR4。我只是想确保 ANTLR4 能够解决这个问题。

我们本质上想知道表达式是否会根据这个语法计算为真或假。

4

1 回答 1

3

Antlr 不计算表达式。它解析它们。

解析结果的“评估”取决于您。通常,您将节点构建操作附加到语法规则;有了它,ANTLR 将帮助你构建一棵树,然后你走到树前对其进行评估。

如果你真的很狡猾,你可能会在语义动作中进行表达式评估。向上传递值有点像向上传递创建的节点。传递价值需要更多的努力,我不是描述如何用 ANTLR 做到这一点的人

于 2013-10-15T20:53:59.813 回答