从上下文无关文法(CFG)到语法分析树——SLR(1)分析法

本文介绍了SLR(1)分析法,一种自底向上的上下文无关文法语法分析技术。内容涵盖LR方法的概述、LR(1)解析器的工作原理、状态机构造、DFA生成及其应用,并详细阐述了构造LR分析表和分析过程。
摘要由CSDN通过智能技术生成

LR方法


LR parsing是一种相对于LL更通用的方法,LR parser是高效的、自底向上的用于上下文无关文法的语法分析技术。
LR(k)方法中的L、R、K分别代表:

  • L: left-to-right scan从左向右扫描
  • R:construct a rightmost derivation in reverse最右推导
  • k:the number of input symbols of look ahead每次扫描的字符数

LR方法分为三种:

  • SLR: simple LR 简单LR方法,本文介绍的就是简单LR(1)方法
  • LR(1): canonical LR 规范LR方法
  • LALR: look ahead LR

更多关于LL语法的分析方法,如预测分析法,可以查看这里

本文例:

E => E + T
E => T
T => T * F
T => F
F => ( E )
F => i

构造自动机


首先为每个产生式构造自己的状态机。
FA-original

首先,我们需要理解这些状态机的含义。每个状态机都描述了每个产生式推导过程需要的状态转换。这样的转换是分层的。比如T=>T+F这个状态转换,当进行到最后F那一步时,可以直接通过i来转换,也可以通过(E)来转换,就是最后的那两个表达式,每个以非终结符为发出边的状态转换,如E、F等,都意味这样的转换需要分解为更细化的转换,而这些“更细化的转换”,都在后面定义了,如对于F有F=>(E)和F=>i。
因此,我们连出具体的分解状态。
complete
(注:空白边都是指 ϵ

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值