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
是干啥的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值