Python程序设计语言的词汇分析

时间:2009-11-14 00:25:09

标签: python syntax-highlighting lex lexical-analysis

有谁知道Python的FLEX或LEX规范文件在哪里?例如,这是ANSI C编程语言的lex规范:http://www.quut.com/c/ANSI-C-grammar-l-1998.html

仅供参考,我正在尝试将代码突出显示到Cocoa应用程序中。正则表达式不会这样做,因为我还希望语法解析来折叠代码并识别块。

3 个答案:

答案 0 :(得分:6)

Lex通常只用于标记,而不是完全解析。使用flex / lex进行标记化的项目通常使用yacc / bison进行实际解析。

您可能需要查看ANTLR,这是lexx& amp;更“现代”的替代品。 YACC。

ANTLR项目a Github repo containing many ANTLR 4 grammars至少包括one for Python 3

答案 1 :(得分:3)

grammar.txt是官方的,完整的Python语法 - 不直接lex兼容,但你应该能够将它按到合适的形式。

答案 2 :(得分:0)

您是否考虑使用现有代码荧光笔之一,例如Pygments