首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码解析C#

代码解析C#
EN

Stack Overflow用户
提问于 2010-10-24 23:32:42
回答 3查看 5.3K关注 0票数 10

我正在研究解析代码文件的方法、工具和技术,以便在用c#编写的编辑器中支持语法突出显示和智能。

有没有人对此有任何想法/模式&实践/工具/技术。

编辑:对于感兴趣的人来说,这是一个很好的信息来源:

超越上下文无关语法的分析ISBN978-3-642-14845-3

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-25 00:13:10

有两种基本的方法:

1)解析整个解决方案及其引用的所有内容,以便理解代码中涉及的所有类型

2)本地解析,尽量猜测etc是什么类型。

(2)的问题是您必须猜测,在某些情况下,您不能从代码片段中准确地分辨出所有东西是什么。但是,如果您对上面显示的sort oif语法突出显示感到满意(例如)堆栈溢出,那么这种方法是简单而有效的。

要做(1),你需要做以下其中之一(按难度降序):

  • 解析所有源代码。如果您在编译的代码上引用第三方assemblies.
  • Use反射来获取解析源代码时可以使用的类型信息,这是不可能的。
  • 使用宿主集成开发环境的(如果可用-所以不适用于您的情况!)代码元素接口,用于提供

所需的信息

票数 3
EN

Stack Overflow用户

发布于 2010-10-24 23:58:35

我最喜欢的C#解析器是讽刺的:http://irony.codeplex.com/ -我已经使用过它几次,非常成功

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

票数 6
EN

Stack Overflow用户

发布于 2010-10-25 00:20:42

你可以看看http://www.icsharpcode.net/是如何做到的。他们写了一本书就是这么做的,Dissecting a C# Application: Inside SharpDevelop,甚至有一章叫

实现了一个解析器,以便在用户键入

时提供语法突出显示和自动完成功能

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4008892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档