ВУЗ:
Составители:
19
CS:=H
end
end
;
N
: if digit then
begin
B
:=10*B+ord(CH)-ord(‘0’);
gc
end
else begin
put
(TN);
out
(3,z); CS:=H
end
;
C
: if CH=’}’ then begin
gc
; CS:=H
end
else if CH
=’.’ then CS:=ER else gc;
DV
: if CH=’=’ then begin
gc
; out(2,5);
CS
:=H
end
else begin
out
(2,4); CS:=H
end
;
O
: begin
null
; add; look(TL);
if z
<>0 then begin
gc
; out(2,z);
CS
:=H
end
else CS
:=ER
end
end
{case}
until
(CS=V) or (CS=ER);
scanner
:= CS=V
end
;
2.4 Синтаксический анализатор программы
Задача синтаксического анализатора (СиА) - провести разбор текста про-
граммы, сопоставив его с эталоном, данным в описании языка. Для синтаксиче-
ского разбора используются контекстно-свободные грамматики (КС-
грамматики).
Один из эффективных методов синтаксического анализа – метод рекур-
сивного спуска. В основе метода рекурсивного спуска лежит левосторонний
разбор строки языка. Исходной сентенциальной формой является начальный
CS:=H end end; N: if digit then begin B:=10*B+ord(CH)-ord(‘0’); gc end else begin put(TN); out(3,z); CS:=H end; C: if CH=’}’ then begin gc; CS:=H end else if CH=’.’ then CS:=ER else gc; DV: if CH=’=’ then begin gc; out(2,5); CS:=H end else begin out(2,4); CS:=H end; O: begin null; add; look(TL); if z<>0 then begin gc; out(2,z); CS:=H end else CS:=ER end end {case} until (CS=V) or (CS=ER); scanner:= CS=V end; 2.4 Синтаксический анализатор программы Задача синтаксического анализатора (СиА) - провести разбор текста про- граммы, сопоставив его с эталоном, данным в описании языка. Для синтаксиче- ского разбора используются контекстно-свободные грамматики (КС- грамматики). Один из эффективных методов синтаксического анализа – метод рекур- сивного спуска. В основе метода рекурсивного спуска лежит левосторонний разбор строки языка. Исходной сентенциальной формой является начальный 19
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »