编译原理第四章,我们主要掌握五个问题。
LL(1)文法条件
LL(1)文法条件:
①没有左递归 (左递归会引起死循环)
②没有回溯 (回溯是因为有打头公因式)
A->a1|a2|a3|…… select交集为空集
消除左递归
直接左递归:
①增补一个A’加在递归终止右边
②利用A’将直接左递归变成右递归并加上空规则式
间接左递归:
①自下而上,消除最下面的直接左递归,若没有,指向上一个
②改写以儿子打头的,再消除直接左递归,若没有以儿子打头的,则不用改写了
③依次(儿子,孙子,曾孙子),最后消除无用的规则式
first集合




follow集合


select集合


