结构推理 给出算符优先分析算法的形式化描述。
【正确答案】算符优先分析算法的形式化描述为:
   k:=1;//k是栈顶指针
   S[k]:='#';//S是堆栈。通过该语句首先将句子括号#压入堆栈
   REPEAT
       把下一个输入符号读进a中;
   //将输入缓冲区指针指向的终结符赋予a,同时指针后移
   IFS[k]∈VTTHENj:=kELSE j:=k-1;
   //j指向栈顶的第一个终结符(由于算符文法句型的特点,如果k指向的不是终结符,则k-1指向的肯定是)。
       WHILE S{j]>aDO
       BEGIN
           REPEAT//该循环根据最左素短语的条件,寻找最左素短语的左边界
               Q:=S[i];
               IFS[j-1]∈VTTHENj:=j-1 ELSEj:=j-2;
           UNTILS[j]<Q;
           //将S[j+1]…S[k]归约为代表文法非终结符的符号(我们用N来表示);
           k:=j+1;//k指向新的栈顶
           S[k]:=N;//将归约结果压栈
   END;
   IFS[j]<aORS[j]=aTHEN  //当前的输入符号压栈
   BEGIN
       k:=k+1;
       S[k]:=a;
       END
       ELSE//没有优先关系,表示出错,调用出错处理程序
           ERROR;
   UNTIL a='#';
   IFK=2AND S[k]='N'AND s[k-1]='#'THEN
       SUCCESS;//分析成功结束
   ELSE
       ERROR.//分析失败
【答案解析】