写我自己的语法荧光笔

时间:2012-12-19 09:05:00

标签: javascript syntax-highlighting token

我正在尝试编写自己的代码语法荧光笔,但我唯一的困难是决定如何开始处理代码。例如,要解析每个令牌,我必须只使用正则表达式吗?或者也许我必须为每个空间分割代码?或者每一行?我知道我必须能够保持单词之间的分离以防止双重匹配。例如,如果我想搜索所有关键字,例如“ this,var,in,return etc。”,那么 this.index 匹配 index 也。

那么,根据您的经验,您的意见是什么?

2 个答案:

答案 0 :(得分:1)

这是一个很好的问题。当我开发自己的编程语言(仅用于概念验证)时,我做了类似的研究。我研究了Douglas Crockford对JSLint和JSMin的实现。我看到他通过按符号读取源符号来标记代码。例如,您可以看到此方法herehere。实际上,在突出显示代码之前,您只需要标记化,因此我认为这种方法最适合。在此之后,您将创建高级解析器,这将减少错误前提。在为不同语言创建荧光笔时,也可能会有更多的代码重用。

答案 1 :(得分:0)

我建议您查看现有的解决方案。至于我 - 我对这款荧光笔印象非常深刻 - http://softwaremaniacs.org/soft/highlight/en/

它使用插件来解析不同的语言 - 您可能有很好的体验。