Реферат: Алгоритм нисходящего разбора. Нисходящие распознаватели
IF SON=0 THEN Есть ли еще сын, который может пред-
BEGIN WHILE GRAMMAR(i) принять еще одну попытку? Нет.
=/="|" Тогда пропускается правая часть -
DO i:=i+1; Это не та, которая нужна - переход к
i:=i+1 GO TO ЦИКЛследующей.
END;
i:=i-1; c:=SON; Естьсын. Его просят повторить попытку
IF GOAL нетерминал Его цель - нетерминал, так что он по-
THEN GO TO ЕЩЕ РАЗ пытается еще раз добиться успеха.
j=j-1 Его цель терминал. Попытка не приведет
GO TO НЕУДАЧА к успеху. Поэтому он открывает свой
символ и сообщает о неудаче.
Блок схема данного алгоритма приведена ниже.
*---------*
| 1 |
*----*----*
*---------------------------->| *------*
| * *----->| |<------*
| Нет / \ | | | |
| *-----------< 2 > | | * |
| Нет / \ А \ / | | Д / \ |
| *----------< 4 > | * | *-------< 9 > |
| | \ / | | | | | \ / |
| | * | | | | | * |
| | | Да | | Да | | | | Нет |
| | * | | | | | *---*---* |
| | *---* Н / \ | | | | | | 10 | |
| | | 6 |--< 5 > | * | | | *---*---* |
| | *---* \ / | / \ | | | | |