【正确答案】预测分析程序的算法描述如下:
初始化:把#和文法起始符号顺序压栈;
在待分析符号串的末尾加上#(作为特殊的文法终结符),并让缓冲区指针指向待分析符号串的第一个终结符;
FLAG=false;
WHILE (!FLAG)
{
x←栈顶符号;
a←缓冲区指针指向的终结符;
if((X∈VT)&&(X!=#))
if(X==a)
{
弹出栈项符号;
缓冲区指针后移;
}
else break;
else
if(X==#)
if(X==a)
FLAG=true;
else
break;
else//X为非终结符
{
if(预测分析表X行a列是出错标志)
break;
Else
{
弹出栈顶符号;
//假设分析表X行a列有X→X1…Xk-1Xk,其中xi为终结符或非终结符,i=1,…,k将XkXk-1…X1顺序压栈;
}
}
}
if(FLAG)
SUCCESS;//分析成功
Else
ERROR;//分析失败
【答案解析】