begin(*term*)
factor([times,slash]+fsys);
while sym in [times,slash] do
begin
mulop|=sym;
getsym;
factor(fsys+[times,slash]);
if mulop=times
then gen(opr,0,4)
else gen(opr,0,5)
end
end(*term*);
begin(*expression*)
if sym in [plus,minus]
then
begin
addop|=sym;
getsym;
term(fsys+[plus,minus]);
if addop=minus
then gen(opr,0,1)
end
else term(fsys+[plus,minus]);
while sym in [plus,minus] do
begin
addop|=sym;
getsym;
term(fsys+[plus,minus]);
if addop=plus
then gen(opr,0,2)
else gen(opr,0,3)
end
end(*expression*);
|