2010-05-15 140 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