print 行解析出的类型

👁️ 3 人浏览 💬 0 人评论 ❤️ 添加收藏

按模型,parse("print x")[0] 交回什么?

parse 把一行变成 AST 元组:set("set", 名, 表达式tokens)print("print", None, 表达式tokens)prog 是这些元组的列表。

def parse(line):
    """一行 -> AST 元组:set 行 ("set", 变量名, 表达式tokens);print 行 ("print", None, 表达式tokens)。"""
    t = line.split()
    if t[0] == "set":
        return ("set", t[1], t[3:])
    return ("print", None, t[1:])


def stmt_kind(line):
    """这行是哪种语句(set / print)。"""
    return line.split()[0]


def target(node):
    """set 语句赋值给哪个变量(print 交回 None)。"""
    return node[1]


def expr_len(node):
    """这条语句的表达式有几个 token。"""
    return len(node[2])

print(parse("print x")[0])
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论