Python编程语言的词法分析
有没有人知道哪里可以找到适用于Python的FLEX或LEX规范文件?比如,这里有一个针对ANSI C编程语言的lex规范:http://www.quut.com/c/ANSI-C-grammar-l-1998.html
顺便说一下,我正在尝试在一个Cocoa应用程序中实现代码高亮。正则表达式不够用,因为我还想要语法解析,以便折叠代码并识别代码块。
3 个回答
0
你有没有想过使用一些现成的代码高亮工具,比如Pygments呢?
3
grammar.txt 是官方的完整 Python 语法文件——虽然它和 lex
不是完全兼容,但你应该能把它调整成合适的格式。
6
Lex 通常只是用来进行分词,而不是完整的解析。那些使用 flex/lex 进行分词的项目,通常会用 yacc/bison 来进行实际的解析。
你可能想看看 ANTLR,这是一个比 lex 和 yacc 更“现代”的选择。
ANTLR 项目在 GitHub 上有一个仓库,里面包含了很多 ANTLR 4 的语法,其中至少有 一个是针对 Python 3 的。