首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将C#3代码表示为XML中的抽象语法树

将C#3代码表示为XML中的抽象语法树
EN

Stack Overflow用户
提问于 2010-05-05 04:41:06
回答 1查看 1.2K关注 0票数 3

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

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

外面有工具吗?

EN

回答 1

Stack Overflow用户

发布于 2010-05-14 01:51:38

我们的DMS软件重组工具包可以在C# 2/3/4中实现这一点。。(编辑2014:现在是C#5,编辑2020:现在C#7在C#8上工作)

DMS为C# (以及其他许多语言)提供了精确的编译器解析器。

它会自动为它所解析的任何内容构建完整的抽象语法树。每个AST节点都为表示该节点开始的令牌标记文件/行/列,最后一列可以通过DMS调用计算。它将注释附加到树节点上,这样它们就不会丢失。DMS还可以从AST或修改后的AST重新生成有效代码;这使其能够用于代码修改或生成。

它有一个内置选项,可以从AST生成XML,包括节点类型、源位置(如上面所示)以及任何相关的文字值。命令行调用是:

代码语言:javascript
代码运行次数:0
运行
复制
 run DMSDomainParser ++XML  <path_to_your_file>

DMS本身为操作它构建的AST提供了大量的基础设施:遍历、模式匹配(针对基本上以源形式编码的模式)、源到源转换。

它有C、COBOL和Java的控制流、数据流、点对点分析、全局调用图;这一切都是针对C#的。

DMS被设计成一个比XML更好的解决方案来操作这样的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2770664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档