k:=1; S[k]:=‘#’;
REPEAT
把下一个输入符号读进a中;
IF S[k]∈VT THEN j:=k ELSE j:=k-1;
WHILE S[j] a DO
BEGIN
REPEAT
Q:=S[j];
IF S[j-1]∈VT THEN j:=j-1 ELSE j:=j-2
UNTIL S[j] Q
把S[j+1]…S[k]归约为某个N;
k:=j+1;
S[k]:=N;
END OF WHILE;
IF S[j] a OR S[j] a THEN
BEGIN
k:=k+1;S[k]:=a
END
ELSE ERROR
UNTIL a=‘#’