补全:语义是否合法
补全 valid:碰到没定义的名字要判不合法。 贯穿本节的小语言(判题机没 gcc,这是它的确定模型,见 spine.py):每行一条语句——set 名 = 表达式 或 print 表达式;表达式是空格分隔的 token,从左到右求值(无优
补全:不合法就报错
补全 compile_run:不合法时交回 ["ERROR"]。 贯穿本节的小语言(判题机没 gcc,这是它的确定模型,见 spine.py):每行一条语句——set 名 = 表达式 或 print 表达式;表达式是空格
补全:取端到端末值
补全 result:端到端跑完最后一次 print 的值。 贯穿本节的小语言(判题机没 gcc,这是它的确定模型,见 spine.py):每行一条语句——set 名 = 表达式 或 print 表达式;表达式是空格分隔的 token,从左到
真机交付语言看什么
在真机上交付你的小语言,判分主要看【0】。 (判分只看你在受控容器里的真机产物,纯本机、纯 Python,没有 gcc、不碰公网。)
跑通给定程序输出几
真机:~/lang/prog.txt 内容为 set x = 6 / set y = x + 4 / print y * y。用 python3 ~/lang/lang.py --run 跑,最后一行 最后 = ? 是几? (判分只看你在受
查:最后 print 的值
场景:~/lang/lang.py 是一门能跑的小语言解释器,~/lang/prog.txt 是一段程序。 任务:跑 python3 ~/lang/lang.py --run,读它报的 最后 = N(最后一次 print 的值),到 ~/对
查:一共几条语句
场景:同一门解释器,~/lang/prog.txt 里有若干行语句。 任务:跑 python3 ~/lang/lang.py --stat,读它报的 语句 = N,到 ~/对照表.txt 查 N 对应的标记填进来。 (判分只看你在受控容器里
查:几条 print
场景:同一门解释器,~/lang/prog.txt 里 set 和 print 混在一起。 任务:跑 python3 ~/lang/lang.py --stat,读它报的 print = N,到 ~/对照表.txt 查 N 对应的标记填进来
查:几个未定义变量
场景:~/lang/prog.txt 里有变量用了却没先 set 定义。 任务:跑 python3 ~/lang/lang.py --check,读它报的 未定义 = N,到 ~/对照表.txt 查 N 对应的标记填进来。 (判分只看你在受
修:词法把数字看错
场景:~/lang/lang.py 的 val 把「是不是数字」判成了 isalpha(本该 isdigit),数字都被当成变量取到 0,结果全错。 任务:把它改回 isdigit,让 --run 的 最后 = N 等于预期值。改好运行 ~