词法分析错误处理

Aki 发布于 2023-08-28 247 次阅读


词法分析的错误处理程序主要处理三件事情:

  • (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¥$; 跳过末尾非法的两个字符。
  • 交换两个相邻的字符;
  • 插入缺少的字符;
  • 删掉不清晰或者额外的字符;
  • 用其他的字符替换;