我想知道C#3是否有类似于GCC_XML的东西;基本上是一种用 XML 表示程序的整个句法结构的方法。
创建表示后,我希望将其解析为 XDocument 并从那里解释或查询它。
有没有工具可以解决这个问题?
我想知道C#3是否有类似于GCC_XML的东西;基本上是一种用 XML 表示程序的整个句法结构的方法。
创建表示后,我希望将其解析为 XDocument 并从那里解释或查询它。
有没有工具可以解决这个问题?
我们的DMS Software Reengineering Toolkit 可以使用 C# 2/3/4 做到这一点。(2014 年编辑:现在是 C#5,2020 年编辑:现在 C#7 在 C#8 上工作)
DMS 为 C#(以及 Java 和许多其他语言)提供编译器准确的解析器。
它会自动为它解析的任何内容构建完整的抽象语法树。每个 AST 节点都用文件/行/列标记代表该节点的开始,最后一列可以通过 DMS API 调用计算。它将注释附加到树节点,因此它们不会丢失。DMS 还可以从 AST 或修改后的 AST 重新生成有效代码;这使其能够用于代码修改或生成。
它具有从 AST 生成 XML 的内置选项,包括节点类型、源位置(如上)和任何相关的文字值。命令行调用是:
run DMSDomainParser ++XML <path_to_your_file>
DMS 本身为操作它构建的 AST 提供了大量的基础设施:遍历、模式匹配(针对基本上以源形式编码的模式)、源到源转换。
它具有 C、COBOL 和 Java 的控制流、数据流、指向分析、全局调用图;这一切都为 C# 而来。
DMS 被设计为比XML 更好的解决方案来处理此类代码。