第四章——语法分析

语法分析器的功能:语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。

LL(1) 分析法:LL:L:left->right扫描;L:最左推导。

消除直接左递归:

设有产生式   P→Pα|β        (1)

       其中β不以P开头,α不为ε。那么,我们可以把P的规则改为如下的非直接左递归形式:

       P→βP’

       P’→αP’|ε       (2)

(1)   式和(2)式是等价的

消除直接左递归方法:

设有产生式    P→Pα1|Pα2|…|Pαm|β1|β2|…|βn      其中每个βi不以P开头,每个αi不为ε

消除P的直接左递归性就是把这些规则改写成:

       P→β1P’|β2P’|…|βnP’

       P’→α1P’| α2P’|…|αmP’| ε

按任意顺序对非终结符排序,P1,P2,P3……,然后作如下工作

  FOR i=1 TO  N{

           FOR j=1 TO i-1{

                  对PiPjγ的产生式,改写成

                      Piδ1 γ| δ2 γ|…| δk γ

          }

          消除Pi的直接左递归;

  }

       最后,删除无用(从起始符永远不能到达)的非终结符的产生式。

消除间接左递归方法:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值