关于解析:C#解析器

关于解析:C#解析器

Parser for C#

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

我正在寻找一个可在C#中使用的C#解析器,并使我能够访问有关所分析代码的每个伪像的行和文件信息。


在源代码上工作:

  • CSParser:
    从C#1.0到2.0,开源
  • Metaspec C#解析器:
    从C#1.0到3.0,商业产品(约5000美元)
  • #认出!:
    从C#1.0到3.0,商业产品(约900欧元)(SharpRecognize的回答)
  • SharpDevelop Parser(由Akselsson回答)
  • NRefactory:
    从C#1.0到4.0(异步),SharpDevelop中使用的开源解析器。包括语义分析。
  • C#解析器和CodeDOM:
    完整的C#4.0解析器已经支持C#5.0异步功能。商业产品(49美元至299美元)(肯贝克特的回答)
  • Microsoft Roslyn CTP:
    编译器即服务。

在装配上工作:

  • 系统反射
  • Microsoft通用编译器基础结构:
    从C#1.0到3.0,Microsoft公共许可证。由Fxcop和Spec#使用
  • Mono.Cecil:
    从C#1.0到3.0,开源

程序集"解析"的问题在于,有关行和文件的信息较少(该信息基于.pdb文件,而Pdb仅包含方法的行信息)

我个人推荐Mono.Cecil和NRefactory。


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


n


n


我已经使用SharpDevelop AST API实现了您在OWASP O2 Platform项目中提出的要求(C#代码的AST解析)。

为了更易于使用,我编写了一个快速API,该API公开了许多关键源代码元素(使用语句,类型,方法,属性,字段,注释),并且能够将原始C#代码重写为C#并进入VBNET。

您可以在此O2 XRule脚本文件ascx_View_SourceCode_AST.cs.o2上看到此API的运行情况。

例如,这是您处理C#源代码文本并填充许多TreeViews的方式


n


n


n


看看Gold Parser。它具有非常直观的IU,可让您交互式地测试语法并生成C#代码。有很多可用的示例,它是完全免费的。


考虑在构建的二进制文件上使用反射,而不是直接解析C#代码。反射API真的很容易使用,也许您可??以获得所需的所有信息?


SharpDevelop,一个开放源代码的IDE,带有一个基于访问者的代码解析器,该解析器运行得很好。可以独立于IDE使用。


http://www.codeplex.com/csparser


n


n


如果您愿意编写自己的解析器(很有趣),可以使用

GPPG。


推荐阅读