有谁知道Python的FLEX或LEX规范文件在哪里?例如,这是ANSI C编程语言的lex规范:http://www.quut.com/c/ANSI-C-grammar-l-1998.html
仅供参考,我正在尝试将代码突出显示到Cocoa应用程序中。正则表达式不会这样做,因为我也希望语法解析折叠代码并识别块。
Lex通常只用于标记,而不是完全解析。使用flex / lex进行标记化的项目通常使用yacc / bison进行实际解析。
你可能想看一看ANTLR,这是lexx&yacc的一个更“现代”的替代品。
ANTLR项目有a Github repo containing many ANTLR 4 grammars,至少包括one for Python 3。
grammar.txt是官方的,完整的Python语法 - 不是直接lex
兼容,但你应该能够按照它适当的形式。
您是否考虑过使用现有的代号荧光笔,如Pygments?