如何编写Python词法分析器?

时间:2010-05-15 14:58:47

标签: python c lexical-analysis

我正在尝试编写一个C模块来词法分析Python代码。我该怎么办?

1 个答案:

答案 0 :(得分:8)

对Python代码进行词法分析的完整详细规范是here

如您所见,您需要涵盖很多案例。一个帮助是,如果您的C实现的词法分析器对于给定的Python片段是正确的,您将始终能够最容易地检查:它必须返回Python标准库中Python实现的模块tokenize的确切内容

正如你在tokenize的sources中看到的,它是几百行的Python,所以你可以很容易地推断出需要数千行C - 绝对不是不是一个周末项目; - )

当然,作为一个起点,你可以分叉Python自己的Parser/tokenizer.c - 这不到2000行(它的功能非常简短!),但在很大程度上是因为它依赖于其他一些来自Python运行时的点点滴滴(如果你的实现需要独立,那么你需要重现那些)。

如果您是一位非常有经验的程序员,对Python的代码库有深刻的理解,并且可以在所有醒着的时间内对此进行冲刺,那么可能会在一周左右的时间内完成。在正常情况下,我会说预计一个月的工作会有点乐观。你的截止日期是什么时候?

相关问题