青岛开发区做网站设计的,广东建设信息网行业服务版官网,如何提升网站用户体验,广州市研发网站建设怎么样05-01: Introduction to Parsing 语法分析parser的作用#xff1a;05-02: Context Free Grammars 上下文无关文法CFG#xff08;上下文无关文法#xff09;回答了一个字符串是否属于某语言#xff1a;CFG的组成#xff1a;终止符非终止符开始符生成式生成式production 05-02: Context Free Grammars 上下文无关文法CFG上下文无关文法回答了一个字符串是否属于某语言CFG的组成终止符非终止符开始符生成式生成式production 非终止符non-terminal - 终止符terminal05-03: Derivations 推导推导是一系列生成推导可以用树的形式表示一个推导可以定义一棵语法树但是一棵语法树可以定义不同的推导最左推导和最右推导定义同一棵语法树05-04: AmbiguityAmbiguity一个字符串对应多个语法树避免二义性方法1左递归写法方法2用Bison中的%定义06-01: Error Handling方法1panic modeskip input and try to continue方法2error productionspecify known common mistakes in the grammar方法3error correctiontry token insertions and deletion06-02: Abstract Syntax TreesAST:06-03: Recursive Descent Parsing 递归下降语法分析Recursive Descent 是一种通用的语法分析算法。输入token串Recursive Descent 判断是否符合该上下文无关语言语法并构建语法树06-04: Recursive Descent Algorithm递归下降具体算法从开始符号起依次递归尝试每一个产生式。若返回匹配且遍历到字符串末尾则成功。06-04-1: Recursive Descent Limitations使用Recursive Descent做语法分析时需转化左递归文法。左递归文法是形如 S-Sa 的文法左递归文法会导致无限循环。因为它本质上是从右到左推导的。而递归下降算法是从左到右推导的。06-05: Left Recursion将左递归文法转换为右递归文法的方法隐式左递归文法