节选:
去年对木兰编程语言的报错信息作了 初步中文化与内容改进,原因见前文《一岁了!》。积累了几十个用例但一直没有纳入自动测试,本周整理后纳入了 Gitee 流水线测试,期间重温了各个报错信息性质,小结如下。
词法分析、语法分析、编译为可执行码(用 Python 的 compile 方法)、运行(用 Python 的 exec 方法)四个阶段都会报错,逐个举例。
词法分析
# c = 3
[给出行列号] 分词时没认出这个词 "#"
语法分析
a = ["1",]
[给出行列号] 没认出这个词 "]"
编译
例一:print(2)=3
ValueError: expression which can't be assigned to in Store context
例二:return
语法错误: 'return' outside function (函数外 return.ul, line 1)
运行时
print("1" + 2)
😰 字符串只能拼接字符串,请将“int”先用 str() 转换
见第 1 行:print("1" + 2)
[余下见原文]