javascript - 编写我自己的语法荧光笔

标签 javascript syntax-highlighting token

<分区>

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

那么,根据您的经验,您有什么看法?

最佳答案

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

关于javascript - 编写我自己的语法荧光笔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13948796/

相关文章:

c - C 中的 "for"循环后面是否需要 "{}"?

javascript - 如何在纯js中克隆图像

javascript - 如何通过它的值jquery递增一个数字

javascript - 如何在没有帮助的情况下更新 Meteor 中的 div?

python-3.x - 如何使用 Python 在 QTextEdit 中动态突出显示单词?

java - 使用 clojure 中的正则表达式实现简单的扫描器/分词器

javascript - 如何处理 axios 中的 401(身份验证错误)并使用react?

javascript - 从nodejs脚本内部解析nodejs

javascript - StackOverflow 代码颜色是怎么设置的?

c# - Visual Studio 更改 C# 方法参数着色