Java /抽象语法树转换为XML表示

时间:2011-10-24 20:35:51

标签: java xml abstract-syntax-tree

您知道从Java程序或类创建AST并从AST创建XML表示(集合或单个XML文档)的任何工具吗?

亲切的问候,
约翰内斯

2 个答案:

答案 0 :(得分:2)

不是直接使用任何工具,但http://www.antlr.org/是用于从任何通用语言构建AST的事实工具。并且存在几个Java语法文件,您可以为自己的程序重新调整用途。因此,抓住ANTLR,使用最新的Java语法,并写出你想要的XML表示。

答案 1 :(得分:2)

我们DMS Software Reengineering Toolkit及其Java Front End可以直接执行此操作。您要求DMS解析文件,并使用命令行switch ++ XML生成XML转储。

请参阅What would an AST (abstract syntax tree) for an object-oriented programming language look like?

作为一般规则,我们不建议这样做,原因如下:

  • 真实文件的XML输出非常庞大,并且需要花费大量时间来编写和阅读

  • 大多数人这样做是因为他们相信XML表示只需要一点点XSLT就能得到他们想要的东西

  • 如果您打算修改代码,一旦拥有XML,您几乎无法重新生成它。

  • DMS提供的机制(属性语法,符号表,流分析,模式匹配和源到源转换,来自AST的源重新生成,是您真正想要的,并且您可以通过以下方式访问它在解析步骤之后使用DMS而不导出XML