编译原理(六) LL(1)文法分析法-分析过程

前情了解

快速通道


算法分析

预测分析程序的总控程序在任何时候都是按STACK栈顶符号X和当前的输入符号a行事的。如下图所示,对于任何(X,a),总控程序每次都执行下述三种可能的动作之一:

  • 若X = a = ‘#’,则宣布分析成功,停止分析过程。
  • 若X = a ≠‘#’,则把X从STACK栈顶弹出,让a指向下一个输入符号。
  • 若X是一个非终结符,则查看分析表M。
    • 若M[X,a]中存放着关于X的一个产生式,那么,先把X弹出STACK栈顶,然后把产生式的右部符号串按反序一一推进STACK栈(若右部符号为ε,则意味着不推什么东西进栈)。
    • 在把产生式的右部符号退进栈的同时应该做这个产生式对应的语义动作(目前暂且不管)。
    • 若M[X,a]中存放着“出错标志”,则调用出错诊断程序ERROR。

输入

这里写图片描述

输出

这里写图片描述


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值