如何编写Python词法分析器?

2024-05-15 11:08:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个C模块来对Python代码进行词法分析。我该怎么做?在


Tags: 模块代码词法
1条回答
网友
1楼 · 发布于 2024-05-15 11:08:08

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

如你所见,有很多案件你需要涵盖。其中一个帮助是,对于给定的Python片段,您总是能够最容易地检查C实现的词法分析器是否正确:它必须返回Python标准库中Python实现的模块tokenize所做的事情。在

正如您在tokenize的sources中看到的那样,它是几百行Python代码,因此您可以很容易地推断出一个周末项目需要数千行C代码;-)

当然,作为一个起点,您可以fork Python自己的Parser/tokenizer.c,这不到2000行(它所做的非常短!),但这在很大程度上是因为它依赖于Python运行时的其他一些部分(如果您的实现需要独立的,那么您需要重新生成它们)。在

如果你是一个非常有经验的程序员,对Python的代码库有很强的理解力,而且你可以在一周左右的时间内完成。在正常情况下,我会说期待一个月的工作会有点乐观。你的最后期限是什么时候?在

相关问题 更多 >