补全:拼报错信息
补全 fmt:拼成 第L行:说明。
贯穿本节的小语言(判题机没 gcc,这是它的确定模型,见 spine.py):每行一条语句——set 名 = 表达式 或 print 表达式;表达式是空格分隔的 token,从左到右求值(无优先级),数字 token 当值、名字到环境里查(没有当 0)。
declared 收集 set 定义过的名字,used 收集表达式里用到的名字,undefined 交回「用了却没定义」的名字,ok=没有未定义变量。
line_no(prog, 名) 找变量第一次出现的行号,fmt(行, 说明) 拼一条报错,has_err=有没有语义错误,err_count=未定义变量个数。
全部评论