我正在研究解析代码文件的方法、工具和技术,以便在用c#编写的编辑器中支持语法突出显示和智能。
有没有人对此有任何想法/模式&实践/工具/技术。
编辑:对于感兴趣的人来说,这是一个很好的信息来源:
超越上下文无关语法的分析ISBN978-3-642-14845-3
发布于 2010-10-25 00:13:10
有两种基本的方法:
1)解析整个解决方案及其引用的所有内容,以便理解代码中涉及的所有类型
2)本地解析,尽量猜测etc是什么类型。
(2)的问题是您必须猜测,在某些情况下,您不能从代码片段中准确地分辨出所有东西是什么。但是,如果您对上面显示的sort oif语法突出显示感到满意(例如)堆栈溢出,那么这种方法是简单而有效的。
要做(1),你需要做以下其中之一(按难度降序):
所需的信息
发布于 2010-10-24 23:58:35
我最喜欢的C#解析器是讽刺的:http://irony.codeplex.com/ -我已经使用过它几次,非常成功
这里是维基百科的一个页面,上面列出了更多内容:http://en.wikipedia.org/wiki/Compiler-compiler
发布于 2010-10-25 00:20:42
你可以看看http://www.icsharpcode.net/是如何做到的。他们写了一本书就是这么做的,Dissecting a C# Application: Inside SharpDevelop,甚至有一章叫
实现了一个解析器,以便在用户键入
时提供语法突出显示和自动完成功能
https://stackoverflow.com/questions/4008892
复制相似问题