gpt4 book ai didi

java - 我可以在不编译的情况下获得 C/C++/Java 代码的 XML AST 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:31 33 4
gpt4 key购买 nike

我想用源代码的 AST 表示创建一个 XML 文件,但不编译它。到目前为止,我没有找到任何足够的解决方案。这是我尝试过的:

  • 在 clang 中使用 XML 打印机 - clang -cc1 -ast-print-xml - 这很好,但它是 removed from clang
  • srcML工具包,理论上运行良好,但解析器较差(对于 Java,它甚至不完全兼容 1.5)

还有其他选择吗?

最佳答案

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

对于 C,请参阅 get human readable AST from c++ code

这两者都由一个引擎产生:我们的 DMS 软件再造工具包。 DMS 还有一个完整的 C++11 解析器,可以生成类似的 XML。 (2016 年 1 月编辑:现在完整的 C++ 14 用于 GCC 和 Visual C++)。

我不认为 XML 真的是一个好主意:它庞大而笨拙,您可以使用的分析工具是……什么? XSLT:这对于分析程序不是很有用。将 XML 读入 DOM 并爬过它?您会发现您缺少很多有用的支持(符号表等); AST 还不够。请参阅我关于解析后的生活 的文章(查看我的简历或谷歌)。

您最好使用一组集成机器,这些机器为分析(多种)编程语言(使用 AST 作为基础)提供各种一致支持。这就是 DMS 的设计目的。

关于java - 我可以在不编译的情况下获得 C/C++/Java 代码的 XML AST 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503014/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com