Нисходящий синтаксический анализ
Алгоритм
Использовать
хэш-таблицу, синтаксис языка
Необходимые
программы: лексический анализатор(сканер),
поиск ИП в ТСИ, возвращение кода ошибки
Procedure
prog;
Begin
Scaner;
If
“лексема<>program”
then ERROR
Else
Begin
Scaner;
If
“лексема<>ИП”
then Error
Else
Begin
Scaner;
If
“лексема<>;”
then ERROR
Else
Begin
If
“лексема<>VAR”
then ERROR
Else
Begin
Scaner;
Spis
Objavl;
Scaner;
If
“лексема<>;”
then ERROR
Else
Begin
Scaner;
If
“лексема<>begin”
then ERROR
Else
Begin
Scaner;
spisOper;
Scaner;
If
“лексема<>end”
then ERROR
Else
Begin
Scaner;
If
“лексема<>.”
Then Error
End;
End;
End;
End;
End;
End;
End;
End.
Procedure
SpIP;
Begin
If
“лексема=ИП”
then
Begin
“поиск
в ТСИ”
If
“нашли”
then ERROR
Else
Begin
“заносим
в ТСИ”
Scaner;
If
“лексема<>,”
then EXIT
Else
Begin
Scaner;
SpIP;
End;