print 行解析出的类型
按模型,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])
全部评论