2010-05-15 124 views
-3

我试图写一个C模块,词法分析Python代码。我该怎么做?如何编写Python词法分析器?

+3

切净说话,你可以在一个更具体的方式说出你的问题吗? – 2010-05-15 15:02:42

+1

(对于Xavier评论感到困惑的其他人来说,这是针对问题的第一次修订,最近的编辑更清晰。) – Oddthinking 2010-05-15 16:58:12

回答

8

做的Python代码词法分析的完整,详细的规格为here

正如你可以看到,有很多你需要支付的案件。一个帮助你将永远能够检查最容易,如果你的C-实现的词法分析器是一个给定的Python片段正确的:它会返回正是在Python的标准库Python的实现模块tokenize一样。

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

当然,作为一个起点,你可以派生出Python自己的Parser/tokenizer.c - 这不到2000行(它的功能惊人地短),但很大程度上是因为它依赖于Python运行时的其他一些零碎(如果你的实现需要独立,因此您需要重现这些)。

如果你是一个非常有经验的程序员用Python的代码库的深刻理解,并且可以只在冲刺这对您的所有醒着的时候,你可能使它在一个星期左右。在正常情况下,我会说预计一个月的工作会有点乐观。你最后期限是什么时候?

+1

我也会问你为什么要用C而不是Python来做这件事。 – 2010-05-15 17:25:13