3

我想知道C#3是否有类似于GCC_XML的东西;基本上是一种用 XML 表示程序的整个句法结构的方法。

创建表示后,我希望将其解析为 XDocument 并从那里解释或查询它。

有没有工具可以解决这个问题?

4

1 回答 1

2

我们的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 更好的解决方案来处理此类代码。

于 2010-05-14T01:51:38.473 回答