词法分析

正则表达式(RE)

  • 正则表达式r定义一个语言,记为L(r)

正则表达定义

image-20200321105225135

image-20200321105437499

正则语言

image-20200321110003332

正则定义

image-20200321121234942

有穷自动机

  • 具有一系列离散的输入输出信息和有穷数目的内部状态
  • 根据当前所处状态当前面临输入信息就可以决定系统的后继行为
  • 每当系统处理当前的输入后,系统的内部状态也将发生改变

FA模型

image-20200321125126708

FA的表示

image-20200321130926489

FA定义的语言

  • 给定输入串x,若存在一个对应串x的从初始状态到终止状态的转换序列,则称串x被该FA接收
  • 由一个有穷自动机M接收的所有串构成的集合称为是该FA定义(或接受)的语言,记为L(M)

最长子串匹配原则

  • 当输入串的多个前缀与一个或多个模式匹配时,总是选择最长的前缀进行匹配
  • 在到达某个终态之后,只要输入带上还有符号,DFA就继续前进,以便寻找尽可能长的匹配

错误处理

词法错误检测

  • 如果当前状态与当前输入符号在转换表对应项中的信息为空,而当前状态又不是终止状态,则调用错误处理程序

错误处理

查找已扫描字符串中最后一个对应于某终态的字符

  • 若找到,将该字符与前面字符识别成一个单词,然后将输入指针退回到该字符,扫描器重回初始状态,继续识别
  • 若未找到,则确定出错,采用错误恢复策略

错误恢复策略

  • 恐慌模式

    从剩余输入中不断删除字符,直到词法分析器能从剩余输入开头发现一个正确的字符为止

原文地址:https://www.cnblogs.com/localhost-ha/p/12579185.html