前排提示——本文只提供思路,不提供代码甚至代码
具体的可运行代码移步这里进行下载(免费的):【编译原理实验】Java实现完整自顶向下语法分析——First、Follow、Select、判断LL(1)、提取公因子、消除左递归、自顶向下分析输入串
代码运行效果放在文末,可直接翻到最后进行查看
消除隐式
在「提取公因子」「消除左递归」之前进行隐式的消除————如果产生式的右部以非终结符(ABC)开头,那么公因子有可能是隐式的;递归同理
先对所有非终结符(即生成式左侧的符号)按某一顺序进行排序————这是为了防止死循环
非终结符顺序: A1, A2, A3, A4... An
for(