<分区>
我正在尝试编写自己的代码语法荧光笔,但我唯一的困难是决定如何开始处理代码。例如,要解析每个标记,我必须只使用正则表达式吗?或者我必须为每个空间拆分代码?还是每一行?我知道我必须能够在单词之间保持分隔以防止双重匹配。例如,如果我想搜索所有关键字,如“this, var, in, return etc.”,显然在 this.index 中匹配 index强>还有。
那么,根据您的经验,您有什么看法?
<分区>
我正在尝试编写自己的代码语法荧光笔,但我唯一的困难是决定如何开始处理代码。例如,要解析每个标记,我必须只使用正则表达式吗?或者我必须为每个空间拆分代码?还是每一行?我知道我必须能够在单词之间保持分隔以防止双重匹配。例如,如果我想搜索所有关键字,如“this, var, in, return etc.”,显然在 this.index 中匹配 index强>还有。
那么,根据您的经验,您有什么看法?
最佳答案
这是一个很好的问题。我在开发自己的编程语言时也做过类似的研究(仅用于概念验证)。我研究了 Douglas Crockford 对 JSLint 和 JSMin 的实现。我看到他通过逐个符号读取源代码来标记代码。可以看到这个方法here和 here例如。实际上,您只需要在突出显示代码之前进行标记化,所以我认为这种方法最适合。在此之后,您将创建高级解析器,它将减少错误的前提。在为不同语言创建荧光笔时,您可能还会有更多的代码重用。
关于javascript - 编写我自己的语法荧光笔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13948796/