Kao*_*Kao 6 c c++ java xml abstract-syntax-tree
我想用AST代表源代码创建一个XML文件,但不编译它.到目前为止,我找不到任何充分的解决方案.这是我尝试过的:
clang -cc1 -ast-print-xml- 它会很好,但它已从clang中删除还有其他选择吗?
对于 Java,请参阅面向对象编程语言的 AST(抽象语法树)是什么样子?
对于 C,请参阅从 C++ 代码获取人类可读的 AST
这两者均由同一个引擎生成:我们的 DMS 软件重组工具包。DMS 还具有完整的 C++11 解析器,可以生成类似的 XML。(2016 年 1 月编辑:现在适用于 GCC 和 Visual C++ 的完整 C++ 14)。
我不认为 XML 实际上是一个好主意:它庞大且笨重,而您可以对其进行分析的工具是……什么?XSLT:这对于分析程序来说不是很有用。将 XML 读入 DOM 并跳过它?你会发现你缺少很多有用的支持(符号表等);AST 还不够。请参阅我关于解析后的生活的文章(检查我的简历或谷歌)。
您最好使用一组集成机制,为分析(多种)编程语言(使用 AST 作为基础)提供各种一致的支持。这就是 DMS 的设计目的。