Python编程语言的词法分析

7 投票
3 回答
2976 浏览
提问于 2025-04-15 15:59

有没有人知道哪里可以找到适用于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 的

撰写回答