ВУЗ:
Составители:
77
показана в таблице 13.2. Заметим, что поскольку грамматика (13.1) имеет два
правых порождения для данной входной строки, существует еще одна
последовательность переносов и сверток, которые может выполнить
анализатор.
Таблица 13.2. Конфигурации ПС-анализатора для входной строки id
1
+id
2
*id
3
Стек Вход Действие
(1) $ id
1
+id
2
*id
3
$ Перенос
(2) $id
1
+id
2
*id
3
$
Свертка по Е→ id
(3) $E +id
2
*id
3
$ Перенос
(4) $E + id
2
*id
3
$ Перенос
(5) $E + id
2
*id
3
$
Свертка по Е→ id
(6) $E + E *id
3
$ Перенос
(7) $E + E * id
3
$ Перенос
(8) $E + E * id
3
$
Свертка по Е→ id
(9) $E + E * E $
Свертка по Е→ E * E
(10) $E + E $
Свертка по Е→ E + E
(11) $E $ Допуск
Основными операциями синтаксического анализатора являются
перенос и свертка, но на самом деле ПС-анализатор может выполнять четыре
действия: (1) перенос
, (2) свертка, (3) допуск, (4) ошибка.
1. При переносе очередной входной символ переносится на вершину стека.
2. При свертке синтаксический анализатор распознает правый конец основы
на вершине стека, после чего он должен найти левый конец основы и принять
решение о том, каким нетерминалом заменить основу.
3. При допуске синтаксический анализатор сообщает об успешном разборе
входной строки.
4. При
ошибке синтаксический анализатор обнаруживает ошибку во входном
потоке и вызывает программу восстановления после ошибок.
77 показана в таблице 13.2. Заметим, что поскольку грамматика (13.1) имеет два правых порождения для данной входной строки, существует еще одна последовательность переносов и сверток, которые может выполнить анализатор. Таблица 13.2. Конфигурации ПС-анализатора для входной строки id1+id2*id3 Стек Вход Действие (1) $ id1+id2*id3$ Перенос (2) $id1 +id2*id3$ Свертка по Е→ id (3) $E +id2*id3$ Перенос (4) $E + id2*id3$ Перенос (5) $E + id2 *id3$ Свертка по Е→ id (6) $E + E *id3$ Перенос (7) $E + E * id3$ Перенос (8) $E + E * id3 $ Свертка по Е→ id (9) $E + E * E $ Свертка по Е→ E * E (10) $E + E $ Свертка по Е→ E + E (11) $E $ Допуск Основными операциями синтаксического анализатора являются перенос и свертка, но на самом деле ПС-анализатор может выполнять четыре действия: (1) перенос, (2) свертка, (3) допуск, (4) ошибка. 1. При переносе очередной входной символ переносится на вершину стека. 2. При свертке синтаксический анализатор распознает правый конец основы на вершине стека, после чего он должен найти левый конец основы и принять решение о том, каким нетерминалом заменить основу. 3. При допуске синтаксический анализатор сообщает об успешном разборе входной строки. 4. При ошибке синтаксический анализатор обнаруживает ошибку во входном потоке и вызывает программу восстановления после ошибок.
Страницы
- « первая
- ‹ предыдущая
- …
- 75
- 76
- 77
- 78
- 79
- …
- следующая ›
- последняя »