是对产生式来进行操作的,通过产生式中元素的替换,完成非终结符向目标句子的生成:
每一次都替换最左边的非终结符,称为最左推导,它的逆过程称为最右规约。
文法转换的过程是构建新的与原来文法等价的文法的过程。
第一个“ L”表示从左向右扫描输入。
第二个“ L”表示产生最左推导。
“1”表示在每一步中只需要向前看一个输入符号来决定语法分析动。
FIRST集为非终结符能推出的句型的首部为终结符的终结符的集合。
FOLLOW集为非终结符后面可以接的终结符的集合。
按照这个顺序循环进行更新,直到表不再更新了为止,得到的就是FOLLOW集。
首先将|符号拆成两个产生式,当右侧不是空的时候,SELECT集就是左侧的FIRST集,如果为空则SELECT集就是左侧的FALLOW集。
根据SELECT可以生成分析表,这个表在非递归方法中使用:
使用递归的方式进行写程序,无论递归和非递归都要求SELECT集,其中右侧第一个为终结符就很容易看出FIRST集了,同时也是SELECT集,右侧为空的时候就看FOLLOW集,从而生成该产生式的SELECT集。