语法分析

作用

输出语法分析树的某种形式

上下文无关文法

由终结符号、非终结符号、一个开始符号和一组产生式组成

上下文无关文法的表达能力比正则表达式强

推导

最左推导:总是选择每个句型的最左非终结符号进行推导

最右推导:总是选择每个句型的最左非终结符号进行推导

每一棵语法分析树都和唯一的最左推导及唯一的最右推导相关联

消除左递归

如果一个文法中有一个非终结符A使得对某个串$\alpha$存在一个推导$A\Rightarrow A\alpha$,那么这个文法就是左递归的

自顶向下语法分析方法不能处理左递归的文法,所以要消除左递归

消除左递归

提取左公因子

提取左公因子

FIRST和FOLLOW集

$FIRST(\alpha)$被定义为可从$\alpha$推导得到的串的首符号的集合

$FOLLOW(A)$被定义为可能在某些句型中紧跟在A右边的终结符号的集合

FIRST

FOLLW

LL(1)文法

LL1