Python源碼學習七 .py文件的解釋

Python源碼太複雜了...

今天看了下對.py文件的parse, 雲裏霧裏的

py文件是最簡單的, 在python的交互式窗口 import這個模塊

a = 10
print(a)

開始分析,堆棧如圖






把
static node *
parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
         int *flags) 展開

 for (;;) {
        char *a, *b;
        int type;
        size_t len;
        char *str;
        int col_offset;

        type = PyTokenizer_Get(tok, &a, &b);
        ....
        if (len > 0)
            strncpy(str, a, len);
        str[len] = '\0';

		....
        if (a >= tok->line_start)
            col_offset = a - tok->line_start;
        else
            col_offset = -1;

     
        PyParser_AddToken(ps, (int)type, str,
                               tok->lineno, col_offset,
                               &(err_ret->expected))
         break;
        }
    }

str 依次爲

a
=
10
print
(
a
)

這個
PyParser_AddToken
是幹啥的?

發佈了94 篇原創文章 · 獲贊 20 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章