4. Если в некоторой конфигурации данного состояния маркер находится перед нетерминалом, например
P : m▼ L h
то автомат (оказавшийся в этом состоянии в результате выполнения операции свертки в этот нетерминал) должен выполнить операцию перехода в строго определенное другое состояние БЕЗ чтения следующего терминала со входа. Естественно, это означает, что состоянию, в которое осуществляется переход, соответствует конфигурация P : m L ▼ h.
5. Если в совокупности конфигураций данного состояния есть конфигурация вида
M : b ▼
то автомат, оказавшийся в этом состоянии, должен выполнить операцию свертки Rk,m, где k – длина цепочки b, а m – номер колонки управляющей таблицы, озаглавленной нетерминалом M.
6. Если автомат оказался в состоянии, которому соответствует конфигурация Z : S ▼ и текущим входным символом является , то должна быть выполнена операция Stop.
Преобразование грамматики в управляющую таблицу восходящего синтаксического анализатора
Этап 1. Построение таблицы конфигураций
Состояние |
Образовано |
База |
Конфигурация |
Символ |
Отм. |
|
Из |
Через |
|||||
Шаг 1. Формирование базы начального состояния:
Состояние |
Образовано |
База |
Конфигурация |
Символ |
Отм. |
|
Из |
Через |
|||||
0 |
Да |
Z : ▼ S |
S |
Шаг 2. Определение замыкания базового множества конфигураций.
Состояние |
Образовано |
База |
Конфигурация |
Символ |
Отм. |
|
Из |
Через |
|||||
0 |
Да |
Z : ▼ S |
S |
|||
S : ▼ S + T |
S |
|||||
S : ▼ T |
T |
|||||
T : ▼ T * F |
T |
|||||
T : ▼ F |
F |
|||||
F : ▼ ( S ) |
( |
|||||
F : ▼ i |
i |
|||||
F : ▼ c |
c |
Шаг 3. Образование новой базы.
Берется первая не отмеченная строка, в которой не пуста клетка «Символ» (если таких нет – построение таблицы закончено). Берутся все конфигурации данного состояния, в которых маркер находится перед этим символом, в колонку «отметка» этих строк заносится что-нибудь. Маркеры в этих конфигурациях переносятся через один символ (образуется новая база):
Z : ▼ S => Z : S ▼
S : ▼ S + T => S : S ▼+ T
Шаг 4. Проверка наличия состояния с только что образованной базой.
4.1. Если такое состояние есть, то в колонку «Из» этого состояния добавляется номер того состояния, из конфигураций которого была образована новая база. Возврат к шагу 3.
4.2. Если такого состояния нет, то оно добавляется:
Состояние |
Образовано |
База |
Конфигурация |
Символ |
Отм. |
|
Из |
Через |
|||||
0 |
Да |
Z : ▼ S |
S |
1 |
||
S : ▼ S + T |
S |
1 |
||||
S : ▼ T |
T |
|||||
T : ▼ T * F |
T |
|||||
T : ▼ F |
F |
|||||
F : ▼ ( S ) |
( |
|||||
F : ▼ i |
i |
|||||
F : ▼ c |
c |
|||||
1 |
0 |
S |
Да |
Z : S ▼ |
|
|
S |
Да |
S : S ▼+ T |
+ |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.