补全:重复 let 也报

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

(每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数值 Closure(name, params, body, env)、用来「跳出函数」的 ReturnSignal。)

(这一节还带着完整的解释器:eval_(节点, env, out, stack) 算表达式,exec_ / exec_block 执行语句,call 调函数,run(src) 把 print 的东西用 | 连起来交回,run_safe 把运行时错误也变成一行文字。)

05 的检查器不允许同一层重复 let。给解释器也加上:补全 exec_strict,包一层 exec_——let 时如果当前层已经有这个名字,抛 RunError("重复声明「x」", 行, 列, stack);其余交给 exec_。

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论