FOLLOW集:FOLLOW(S)={#};FOLLOW(H)= {f};FOLLOW(K)={e,d};FOLLOW(A)={f};
FOLLOW(B)={b,c,a,f,e,d};FOLLOW(D)={b,c,f,a,e,d};FOLLOW(E)={b,C,a,f,e,d}。
各产生式的SELECT集:SELECT(S→aHfS)={a};SELECT(S→AfS)={b,c,f};SELECT(S→@)={@,#};SELECT(H→EH)={b,c,a};SELECT(H→@)={@,f};SELECT(K→EK)={b,c,a};SELECT(K→@)={@,e,d};SELECT(A→DA)={b,c};SELECT(A→@)={@,f};SELECT(B→e)={e};SELECT(B→d)={d};SELECT(D→b)={b};SELECT(D→c)={c};SELECT(E→D)={b,c};SELECT(E→aKB)={a}
根据上述计算。生成的PLC文法预测分析表如表1所示。
表1 PLC文法预测分析表
通过表1,采用非递归的预测分析方法,构造预测分析器模型,如图2所示。
图2 非递归的预测分析器模型
预测分析器的控制程序总是根据栈顶符号和当前输入符号来决定预测分析器的动作,预测分析器的控制程序算法如下:
置指针ip指向输入符号串的第1个字符
while(1)
令X是栈顶符号。a是ip所指的符号;
if(X是终结符号或$)
本文关键字:开发 PLC入门,plc技术 - PLC入门
上一篇:PLC编程实践学习.