需要为C#代码构造XML表示

时间:2009-05-05 05:08:15

标签: c# parsing tokenize

我需要将C#代码转换为等效的XML表示 我计划将C#代码(C#2.0代码片段,无泛型或可空类型)转换为AST,然后将AST转换为XML。 为C#寻找一个输出AST的简单词法分析器/解析器 任何关于将C#代码转换为XML表示(可以转换回C#)的指针也非常有用。

亲切的问候,

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

正如米奇所说,Antlr可以成为您的解决方案。您可以根据需要转换Antlr的AST输出,然后使用xstream对其进行序列化。这就是我在我的bs项目中使用的方法,如果有人知道更好的方式它对我来说也会很棒。

您可以找到csharp语法示例,例如http://www.antlr.org/grammar/1127720913326/tkCSharp.ghttp://www.antlr.org/grammar/1151612545460/CSharpParser.g,但您可能需要将其调整为ANTLRV3或您自己的需要。

答案 2 :(得分:0)

我们的DMS Software Reengineering Toolkit是一个用于构建代码分析器和变换器的生态系统。 DMS由语言定义参数化,并具有C#,Java,C ++,C,PL / SQL,PHP,JavaScript,COBOL和各种其他语言的语言定义。当DMS根据语言定义进行解析时,它会自动构建AST。 DMS提供的AST库可以以类似Lisp的括号形式或XML格式打印树。 DMS不是将XML转换回源代码,而是直接从AST重新生成源代码。 DMS还提供源到源转换以允许操纵AST。