| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 214 人关注过本帖
标题:【Advanced】关于语法加亮
收藏  订阅  推荐  打印 
xred
Rank: 1
等级:新手上路
帖子:4
积分:144
注册:2008-7-8
【Advanced】关于语法加亮

通过google进入到贵论坛,发现有个飞燕语法加亮,不过碍于密码没看到源代码,不过看到了源代码的大小,只有9K,基本可以断定该程序不具有扩展的能力,至于能否解释子语言不得而知。不知道原作者和贵论坛的其它的高手有没有深入考虑该问题,并且深入考虑其中的效率和扩展性。
我也来秀一下,这是我写的一个test,不过还是不满意。期待大家的积极讨论,我是做编辑器的,这是我的Blog, http://www.cppblog.com/megax。出于方便,这个test是用c#写的,目前每秒可以解释20万左右个语法单位,如果去除掉io的部分,则可以达到40万个语法单位。改成c++,也基本上在这个水平。只是在扩展性上还有待进一步改善。

希望大家能积极讨论,发表自己的见解。

搜索更多相关主题的帖子: Advanced  google  
2008-7-8 10:04
StarWing83
Rank: 12Rank: 12Rank: 12
来自:湖北工业大学
等级:版主
威望:9
帖子:2483
积分:26219
注册:2007-11-16

飞燕只是写着玩。编辑器以后有时间准备做,现在太忙……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-7-8 10:57
StarWing83
Rank: 12Rank: 12Rank: 12
来自:湖北工业大学
等级:版主
威望:9
帖子:2483
积分:26219
注册:2007-11-16

解释子语言不重要,关键在于子语言是否设计高效。现在VIM类直接输入子语言的编辑器不会很流行的,子语言主要用在撤销/重复/宏这三个功能上面。这些功能其实都可有可无,如果做编辑器,第一个实现的就是外挂功能。分命令行式exe外挂(用来支持编译器和格式调整器),和DLL外挂(语言支持,比如自定义缩进,语法高亮等等)。其余的不是很考虑。我觉得编辑器只要能完成你想要的功能(编辑代码)就完全够了,功能太多,太全面只能增加其使用的难度。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-7-8 11:00
xred
Rank: 1
等级:新手上路
帖子:4
积分:144
注册:2008-7-8

你误会我的意思了,我说的子语言的概念是,c++或者c中可以嵌入汇编,htm中可以嵌入css,asp,php,js,被嵌入的子语言叫子语言。
程序员用的编辑器一个很重要的功能,就是提供的渲染语法的引擎是否够好,就是你在屏幕上看到的花花绿绿的代码。外挂不是核心功能,暂时忽略,我的外挂是通过lua来实现的,不需要编译。其它的功能比如代码的注释,缩进,也是通过lua来实现的。对于编辑器而言,这些都不是核心,核心的东西是文档的管理,高速自动换行,和语法渲染。
现在我们讨论的是语法渲染。
对于渲染而言,最难的是如何区分子语言,并且套用不同的schema,绝对不可用正则,我试过了,非常的慢。在区分完之后,用正则进行匹配则是可以的。
2008-7-8 11:08
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.102887 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved