Python源码学习七 .py文件的解释

Python源码太复杂了...

今天看了下对.py文件的parse, 云里雾里的

py文件是最简单的, 在python的交互式窗口 import这个模块

 

a = 10

print(a)


开始分析,堆栈如图

 

Python源码学习七 .py文件的解释


Python源码学习七 .py文件的解释



 

把

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

是干啥的?

 

你可能感兴趣的:(python)