zoukankan      html  css  js  c++  java
  • 词法分析

    正则表达式(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就继续前进,以便寻找尽可能长的匹配

    错误处理

    词法错误检测

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

    错误处理

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

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

    错误恢复策略

    • 恐慌模式

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

  • 相关阅读:
    svn使用教程
    事务的隔离级别--全网最详细
    idea的java类图标C不见,取而代之是J标识,且写代码无提示
    text .global_start 和_start
    transformClassesWithDexForDebug
    RxJava基本流程和lift源码分析
    Rxlifecycle(三):坑
    Rxlifecycle(二):源码解析
    RxJava操作符之Share, Publish, Refcount
    Rxlifecycle(一):使用
  • 原文地址:https://www.cnblogs.com/localhost-ha/p/12579185.html
Copyright © 2011-2022 走看看