Основы разработки трансляторов в САПР. Коробова И.Л - 12 стр.

UptoLike

BP := true;
end; {if :=}
end; {if ид.}
if BP = true then успешное завершение
else неудачное завершение;
end;
Процедура присваивание в процессе работы вызывает процедуру <арифметическое выражение>:
procedure <арифметическое выражение>;
begin
BP:=false;
if <слагаемое> завершилось успешно then
begin
BP:=true;
while (t = + или t = – ) and ( BP=true ) do
begin
Перейти к следующей лексеме;
if <слагаемое> завершилось неудачно
then
BP:=false;
end; {while}
end; {if слагаемое}
if BP = true then успешное завершение
else неудачное завершение;
end;
Процедура <арифметическое выражение>, в соответствии с грамматикой, вызывает процедуру
<слагаемое>:
procedure <слагаемое> ;
begin
BP:=false;
if <значение> завершилось успешно then
begin
BP:=true;
while (t = * или t = div ) and ( BP=true ) do
begin
Перейти к следующей лексеме;
if <значение> завершилось неудачно
then
BP:=false;
end; {while}
end; {if значение}
if BP=true then успешное завершение
else неудачное завершение;
end;
И наконец, процедура <слагаемое> вызывает процедуру <значение>, которая распознает перемен-
ные, константы или вызывает процедуру <арифметическое выражение>. Алгоритм процедуры <значе-
ние> имеет вид:
procedure значение;