【问题标题】:Need to construct a XML representation for C# code需要为 C# 代码构造 XML 表示
【发布时间】:2010-10-23 19:58:36
【问题描述】:

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

亲切的问候,

【问题讨论】:

    标签: c# parsing tokenize


    【解决方案1】:

    【讨论】:

    • 感谢您的回复。我正在寻找已经构建的东西,它将提供的 C# 代码转换为 AST。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-02
        • 1970-01-01
        • 2013-12-08
        • 2013-03-25
        • 1970-01-01
        • 2010-09-21
        相关资源
        最近更新 更多