词法分析的错误处理程序主要处理三件事情:
- (1)添加检测
- (2)错误报告,向用户生成错误报告
- (3)错误恢复
错误主要有两种类型:(1)编译时错误 (2)运行时错误
编译时错误又可细分为词法错误,语法错误,语义错误。
词法错误、
(1)标识符长度过长
例如C++语言规定标识符的有效字符最大为2048个;python规定为79个;不同语言有差异。
(2)常量的数值超出了表示范围
例如int i = 100000000000; int型最大为42亿超出了会发生错误!!
(3)数字常量格式不正确
例如 int i = 123$245; $ 符号错误出现在了数值中。
(4)存在非法的字符
例如 char i[] = "hello,world";$ $符号错误出现在了字符数组后面。
错误恢复、
- 紧急模式恢复:一旦遇到非法的字符就跳过非法的字符直到出现分隔符。例如int i = 123¥$; 跳过末尾非法的两个字符。
- 交换两个相邻的字符;
- 插入缺少的字符;
- 删掉不清晰或者额外的字符;
- 用其他的字符替换;
Comments NOTHING