其他分享
首页 > 其他分享> > 第四单元 语法分析

第四单元 语法分析

作者:互联网

第四单元 语法分析

4.1 自顶向下分析概述

4.2 文法转换

例 1

文法G
S -> aAd | aBe
A -> c
B -> b
输入  a b c
	 ↑
	 这时候S有多个候选式存在比如aAd或者aBe

​ 上面的情况即同一非终结符的多个候选式存在共同前缀,将导致回溯现象

例2

文法G
E -> E + T | E - T | T
T -> T * F | T / F | F
F -> (E) | id
输入
id + id * id
 ↑
 
 E => E + T
   => E + T + T
   => E + T + T + T
   => ...

含有A -> Aa形式产生式的文法称为是直接左递归的(immediate left recursive)

如果一个文法中有一个非终结符A使得对某个串a存在一个推导A=>+Aa,(+是A的左上角标), 那么这个文法就是左递归

经过两步或者两步以上推导产生的左递归称为是间接左递归

左递归文法会使递归下降分析器陷入无限循环

所以为了消除左递归

  1. 消除直接左递归
  1. 消除间接左递归

    利用上面的方法,找到将A与递归连接起来,再代入到间接递归式中即可

标签:文法,语法分析,推导,递归,id,最右,终结符,第四,单元
来源: https://www.cnblogs.com/hhc-blog/p/15457811.html