2009-06-15 73 views
4

有谁知道一个好的.NET库,它允许我解析源代码文件,但不仅仅是.NET源代码文件(如java,perl,ruby等)?我需要编程访问各种源代码文件(例如类/方法/参数名称,类型等)的内容。.Net库解析源代码文件?

有没有人遇到过这样的事情?我知道.NET内部是合理可能的,并且有一些库,但我需要将它抽象为更多类型的编程语言。

回答

3

有几个选项:

  1. 你可以选择一个解析框架,有很多现有的语法(如Antlr或较新的类似Irony)并使用它。这将提供最忠实的。
  2. 如果您只能使用.NET语言,则可以使用Common Compiler Infrastructure tools从编译文件中读取数据。
  3. 你可以做一个启发式的方法,如SyntaxHighlighter组件使用。
  4. 您可以搭载提供可插入语法高亮文件(如VIM)的现有工具。你必须创建或找到一个理解这些文件的解析器。
+0

反讽看起来更舒服。 。要去做更深入的评估..谢谢杰夫! – 2009-06-20 16:25:30

0

Antlr满足您的需求?

+0

好的Antlr看起来不错,但像一个全新的世界去探索/学习和习惯。我或多或少地寻找为特定语言量身定做的“成品”产品(例如http://www.metaspec.net for c#,但也适用于其他语言)...... – 2009-06-16 13:48:32

0

需要解析的源代码,建立相应的编译器的数据结构(树等)的工具,让您导航/操纵这些结构,并重新生成有效的源代码(包括注释!)是DMS Software Reengineering Toolkit

它有一个完整的C#4.0前端。

它不提供从C#访问这些结构的权限;相反,它为程序分析和转换提供了自己的编码环境,并且相对比较容易地完成此操作(并且比纯C#中的操作更容易)。