解析表达式语法以进行语法突出显示

问题描述 投票:0回答:1

首先...是否可以使用 PEG 来完成简单的语法突出显示。

我只是希望它能够识别和突出显示 C 风格语言常见的基本内容

第二......如果有任何这样的例子或类似的东西,请告诉我

第三......如果我以错误的方式解决这个问题,并且有更常见和经过验证的方法可以做到这一点,那么也请告诉我

syntax-highlighting text-parsing peg
1个回答
0
投票

使用解析表达式语法进行语法高亮绝对是可能的。例如,Scintillua 为基于 Scintilla 的文本编辑器提供基于 PEG 的语法突出显示。 Textadept 是使用 Scintillua 的文本编辑器的示例。

还有由 Zachary Yedidia 构建的更新的 flare 库,附带一篇关于增量 PEG 解析的科学论文。 Flare 的目标是在 Micro 文本编辑器中使用它进行语法突出显示。

使用解析表达式语法进行语法突出显示的困难之一是,您需要某种方法来增量地重新解析文件,以避免每次更改时完全重新解析整个文件而导致速度减慢。

另一个困难是某些句法元素无法用 PEG 进行解析。例如,C++ 中的原始字符串使用

R"abc(hello)abc"

 形式,其中 
abc
 可以是任意分隔符。

© www.soinside.com 2019 - 2024. All rights reserved.