自定义 C++ 闪烁词法分析器

Posted

技术标签:

【中文标题】自定义 C++ 闪烁词法分析器【英文标题】:Customize the C++ scintilla lexer 【发布时间】:2010-11-07 18:10:58 【问题描述】:

我在哪里可以告诉 scintilla 识别不同的关键字集?我想给它们涂上不同的颜色,就像 notepad++ 一样。

【问题讨论】:

查看 Notepad++ 源代码。它使用 Scintilla。 【参考方案1】:

使用SCI_SETKEYWORDS

【讨论】:

如何使用 SCI_SETKEYWORDS 的示例存在于:scintilla/cocoa/ScintillaTest/AppController.mm 你很好,但我只是在做 C++。【参考方案2】:

好吧,闪烁行为是相当硬编码的,因此调整词法分析器非常微妙。我放弃了使用 Qscintilla 或 scintilla,转而使用 TextAdept,它使用 LUA 来构建词法分析器。

mac 版本似乎有一些速度问题,但我想当它作为便携式 .app 出现时它会被修复(或不修复)(让我们祈祷)。

无论如何,我很遗憾我没能像我想要的那样制作一个好的 C++ 编辑器,似乎我想要现有库可以提供的太多功能但需要一些工作,而我没有时间为了。我对 scintilla 感到非常失望,它是一个很好的库,但代码看起来有点臃肿,我想做一个与语言无关的词法分析器和子类似乎是一个更好的主意,但我不会尝试重新设计已经已经完成了。

【讨论】:

以上是关于自定义 C++ 闪烁词法分析器的主要内容,如果未能解决你的问题,请参考以下文章

自制Lex-词法分析器生成器(C++)

编译原理:词法分析器实现

编译原理:词法分析器实现

使用正则表达式库在 C++ 中创建词法分析器?

PMD 编译 语法分析 词法分析 抽象语法树

简易词法分析器