(5) LR(0)分析器的工作过程
  对一个文法构造了它的LR(0)分析表后就可以在LR分析器的总控程序(驱动程序)控制下对输入串进行分析,即根据输入串的当前符号和分析栈的栈顶状态查找分析表应采取的动作,对状态栈和符号栈进行相应的操作即移进、归约、接受或报错。具体说明如下:
  1) 若ACTION[S,a]= Sj,a为终结符,则把a移入符号栈,j移入状态栈。
  2) 若ACTION[S,a]= rj,a为终结符或#号,则用第j个产生式归约,并将两个栈的指针减去k,其中k为第j个产生式右部的符号串长度,这时当前面临符号为第j个产生式左部的非终结符。
  3) 若ACTION[S,a]=acc,a应为'#'号,则为接受,表示分析成功。
  4) 若GOTO[S,A]=j,A为非终结符,表明前一动作是用关于A的产生式归约的,当前面临非终结符A应移入符号栈,j移入状态栈。对于终结符的GOTO[S,a]已和ACTION[S,a]重合。
  5) 若ACTION[S,a]=空白,则转向出错处理。