编译原理课后答案(陈火旺)
(4)
procedure E; begin
if sym='(' or sym='a' or sym='b' or sym='^' then begin T; E' end else error end
procedure E'; begin
if sym='+'
then begin advance; E end
else if sym<>')' and sym<>'#' then error end
procedure T; begin
if sym='(' or sym='a' or sym='b' or sym='^' then begin F; T' end else error end
procedure T'; begin
if sym='(' or sym='a' or sym='b' or sym='^' then T
else if sym='*' then error end
procedure F; begin
if sym='(' or sym='a' or sym='b' or sym='^' then begin P; F' end else error end
procedure F'; begin
if sym='*'
then begin advance; F' end end
procedure P; begin
if sym='a' or sym='b' or sym='^' then advance
else if sym='(' then