擅长:python、mysql、java
<p>根据OP的评论</p>
<blockquote>
<p>I am working on XPath queries rewriting and equivalence</p>
</blockquote>
<p>他需要的是一个构建抽象语法树的解析器,以及分析和转换这些树的方法。分析器和“重写”可以通过遍历/修改AST按程序完成;这是传统的方法。在</p>
<p>但似乎重点应该放在OP的目标上。为此,他需要分析和改写。但这并不一定要完全用传统的、程序化的方式来完成。相反,如果分析/重写可以直接使用XPath表示法来完成,那就更好了。在</p>
<p>我建议他看看我们的<a href="http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html" rel="nofollow">DMS Software Reengineering Toolkit</a>,它解析、构建AST,但特别是使用表面语法在AST上启用“重写”。然后XPath“重写”可以直接写成XPath表达式的等价物。一个激励人心的例子可以看作是<a href="http://www.semanticdesigns.com/products/DMS/SimpleDMSDomainExample.html" rel="nofollow">Rewriting algebra equations using DMS</a>。从这个例子可以明显看出,XPath的语法很容易定义。在</p>