有谁知道 Python 的 FLEX 或 LEX 规范文件在哪里?例如,这是 ANSI C 编程语言的 lex 规范:http ://www.quut.com/c/ANSI-C-grammar-l-1998.html
仅供参考,我正在尝试将代码突出显示写入 Cocoa 应用程序。正则表达式不会这样做,因为我还希望语法解析来折叠代码并识别块。
有谁知道 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 项目有一个 Github 存储库,其中包含许多 ANTLR 4 语法,包括至少一个用于 Python 3 的语法。
Grammar.txt是官方的、完整的 Python 语法——不直接lex
兼容,但你应该能够将它按摩成合适的形式。
您是否考虑过使用现有的代码荧光笔之一,例如Pygments?