代码解析C#

sTo*_*rov 9 c# parsing

我正在研究解析代码文件的方法,工具和技术,以便在用c#编写的编辑器中支持语法高亮和智能.

有没有人有任何想法/模式和实践/工具/技术.

编辑:感兴趣的人的一个很好的信息来源:

解析无上下文语法ISBN 978-3-642-14845-3

Rob*_*sor 6

我最喜欢的C#解析器是Irony:http://irony.codeplex.com/ - 我已经使用了几次并取得了巨大的成功

这是一个维基百科页面,列出了更多:http://en.wikipedia.org/wiki/Compiler-compiler


Jas*_*ams 3

有两种基本方法:
1)解析整个解决方案及其引用的所有内容,以便您了解代码中涉及的所有类型
2)本地解析并尽力猜测等是什么类型。

(2) 的问题在于你必须猜测,并且在某些情况下你无法从代码片段中准确地判断出所有内容是什么。但是,如果您对(例如)Stack Overflow 上显示的 sort oif 语法突出显示感到满意,那么这种方法既简单又非常有效。

要执行 (1),您需要执行以下操作之一(按难度递减顺序):

  • 解析所有源代码。如果您引用第 3 方程序集,则不可能。
  • 对已编译代码使用反射来获取可在解析源代码时使用的类型信息。
  • 使用主机 IDE(如果可用 - 因此不适用于您的情况!)代码元素接口来提供您需要的信息