编译器尝试从语法错误中恢复,以便它也可以生成同一编译过程中的语义(类型检查)错误。语法错误恢复是对于加载的源文件更准确使用
或CM,而不是来自类型化声明直接进入交互系统-这是因为当文本一次输入一行。
编译文件时,错误消息包括行号和字符位置线内。例如:
- 如果 真的
= 然后 5 真的
= 其他的 6;
标准_输入:7.6-7.11 错误: 操作人员 是 不 一 功能
操作人员: 整数
在里面 表达:
5 真的
-
这里是位置信息标准输入:7.6-7.11
表示错误的表达式5真的
占据输入的第7行的字符6到11标准_输入
。简单来说句法错误这个位置信息通常是准确的,或者可能只有一个错误行。对于某些类型的错误,行号可能不是很有用,因为它们描述包含错误的可能较大的声明。如果错误发生在<code>加载的文件使用</code>,行号将引用文件中的行正在加载。
有许多不同形式的类型错误消息,可能需要一些在你熟练地解释它们之前,先练习一下。最常见的形式表示函数(或运算符)类型与其参数(或操作数)不匹配。A类通常包括冒犯性表达的表示,但这是表达式的内部抽象语法,可能与原始源代码。例如,表达式如果e1,则e2,否则e3
代表内部作为案例布尔值上的表达式:情况e1为真⇒e2 |假⇒e3(电子3)
.