如何为XPath开发AST(抽象语法树)?

如何为XPath开发AST(抽象语法树)?,xpath,syntax,tree,abstract,abstract-syntax-tree,Xpath,Syntax,Tree,Abstract,Abstract Syntax Tree,有谁能教我如何为XPath开发AST(抽象语法树)吗? 完全糊涂了。 谢谢 使用ANTLR是一个很好的开始这样做的方法 但是:先构建一些简单的东西,比如表达式解析器。这将确保您了解基础知识。您可能会在ANTLR中找到几十个这样的例子,我甚至怀疑这里的堆栈溢出 获得表达式语法和AST之后,再考虑XPath。您会发现这要复杂得多,主要是因为XPath的定义是由一个委员会创建的,建立在另一个委员会庞大的XML结构之上。因此,您的问题将是了解如何使用解析器构建AST,以及阅读这两个委员会为定义XPath

有谁能教我如何为XPath开发AST(抽象语法树)吗? 完全糊涂了。
谢谢

使用ANTLR是一个很好的开始这样做的方法

但是:先构建一些简单的东西,比如表达式解析器。这将确保您了解基础知识。您可能会在ANTLR中找到几十个这样的例子,我甚至怀疑这里的堆栈溢出


获得表达式语法和AST之后,再考虑XPath。您会发现这要复杂得多,主要是因为XPath的定义是由一个委员会创建的,建立在另一个委员会庞大的XML结构之上。因此,您的问题将是了解如何使用解析器构建AST,以及阅读这两个委员会为定义XPath而编写的所有书籍。

您到底想做什么?解析XPath并生成XPath的AST?或者使用XPath遍历AST(哪种XML几乎是直接的)?我想解析XPath并生成XPath的AST。这与解析Pascal并获取Pascal的AST有什么不同?如果你不能证明你有基本的概念并试图做一些事情,没有人会教你任何东西。是的,我同意。我刚刚读了《编者龙书》的一些章节,理解了AST。现在我尝试使用ANTLR为XPath构建AST。你认为这是一个好方法吗?非常感谢!我现在听从你的建议。