使用脚本语言解析C#

7
我想编写一些简单的脚本,用于解析C#代码并进行修改,或者从中提取一些有趣的部分。
是否有任何库可以实现这个目的呢?我知道有几个库(在NRefactor中有一些构建C# AST的内容),但我希望有一些面向脚本语言的东西 - 解析和构建AST或类似的东西。

你可以在Python中很好地构建解析器。但是C#并不是一种简单的语言(例如,上下文关键字),而且许多可能属于“重构”的步骤都需要进一步理解代码(例如,类型信息)。因此,你最好尝试重用现有的解决方案。 - user395760
5
你可能想看一下Roslyn CTP http://blogs.msdn.com/b/csharpfaq/archive/2011/10/19/introducing-the-microsoft-roslyn-ctp.aspx。它旨在成为一个API,可以完全实现你所描述的功能。 - driis
1
你应该可以毫无问题地在IronPython中使用NRefactory。 - svick
1个回答

0

我不知道 Python 是否有这个功能。我也不理解你的“脚本”语言约束;Python 是一门完整的语言。

我们的DMS 软件重构工具包和其C# 前端可以解析 C# 及其各种方言,包括 C# 4.0,构建 AST,并从这些 AST 生成有效的 C# 代码。

DMS 机制将让您使用 DMS 的“脚本”语言 PARLANSE 进行程序性访问/检查/修改 AST,或者您可以使用 DMS 的能力,直接使用 C# 语法编写面向模式的源到源程序转换,以便更方便地对 AST 进行更改。


我需要一个简单的工具来创建快速脚本,以便我可以在IDE(例如VisualStudio)中运行,并根据公司的规定重构一些少量的代码。现在这些规定经常变化,这样的工具可以加快整个过程。 - Simon
我怀疑你不会得到一个“简单”的工具来“重构”代码。代码是复杂的,语义必须被理解和保留。 - Ira Baxter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接