给JS代码高亮写个注释

代码来源:http://topic.csdn.net/u/20090518/10/1ef94a2d-370c-4793-8355-0d556bba946e.html 

当初看这个贴子的时候看的我很郁闷,就问zswang要注释,这大哥不给,下来又苦读正则表达式。回头再看他的代码, 但总算有了点眉目,因为在这之前我不知道怎么做一个代码高亮,不清楚扫描代码该是一个怎样的流程。

我用javascript语法高亮作例子来介绍一下代码高亮的流程:

  

这段代码定义了javascript语言的语法元素的pattern,

开始的时候调用Highlight.analyze方法,它会拿每一个pattern和code的最开始的元素来匹配,如果能够找到这样的code片断, 则把code片断和它所属的语法元素类型名称push到result 数组中,然后把已经匹配到的code片断删除,继续匹配。如果所有的pattern没有一个能够匹配, 则把这个code标记为Unknown也放入result中。

比如我输入的js代码是:

var a = 1234;
alert(a);

最后的result数组是这样的:

Reserved : var
Whitespace :

 

Identifier : a
Whitespace :

 

Symbol : =
Whitespace :

 

Number : 1234
Symbol : ;
Whitespace :

 

Identifier : alert
Symbol : (
Identifier : a
Symbol : );

有了这个数组,再来代码高亮就不难了。

整个代码相当的完美,但也很复杂,只是俺当初不是计算机的,其中涉及到嵌套分析的部分,我觉得暂时超出了我的理解范围,需要消化良久。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值