当前位置:  开发笔记 > 编程语言 > 正文

C#的解析器

如何解决《C#的解析器》经验,为你挑选了4个好方法。

哪些解析器可用于解析C#代码?

我正在寻找一个可以在C#中使用的C#解析器,让我可以访问有关所分析代码的每个人工制品的行和文件信息.



1> Julien Hoara..:

适用于源代码:

CSParser:从C#1.0到2.0,开源

Metaspec C#Parser:从C#1.0到3.0,商业产品(约5000美元)

#认识!:从C#1.0到3.0,商业产品(约900€)(SharpRecognize的回答)

SharpDevelop Parser(Akselsson的回答)

NRefactory:从C#1.0到4.0(+ async),SharpDevelop中使用的开源解析器.包括语义分析.

C#Parser和CodeDOM:一个完整​​的C#4.0 Parser,已经支持C#5.0异步功能.商业产品(49美元至299美元)(Ken Beckett的回答)

Microsoft Roslyn CTP:编译器即服务.

适用于装配:

的System.Reflection

Microsoft Common Compiler Infrastructure:从C#1.0到3.0,Microsoft Public License.由Fxcop和Spec#使用

Mono.Cecil:从C#1.0到3.0,开源

程序集"解析"的问题是我们关于行和文件的信息较少(信息基于.pdb文件,而Pdb只包含方法的行信息)

我个人推荐Mono.CecilNRefactory.



2> aku..:

Mono(开源)包括C#编译器(当然还有解析器)



3> zproxy..:

如果要将C#v3.5编译为.net程序集:

var cp = new Microsoft.CSharp.CSharpCodeProvider(new Dictionary() { { "CompilerVersion", "v3.5" } });

http://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx


不,不要查看在公共构建中抛出NotImplemented异常的CodeDomProvider.Parse()方法!(Visual Studio使用专有的内部解析器).

4> prosseek..:

如果您熟悉ANTLR,则可以使用Antlr C#语法.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有