Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория языков программирования и методы трансляции..pdf
Скачиваний:
28
Добавлен:
05.02.2023
Размер:
3.41 Mб
Скачать

156

5.2 LR(1)-ГРАММАТИКИ

На практике обычно используют LR(k)-таблицы разбора для k = 0 или k

= 1. При LR(0)-разборе для выбора дальнейших действий входная цепочка вообще не используется – поведение анализатора зависит лишь от содержи-

мого стека. При LR(1)-разборе принимается во внимание также один теку-

щий символ из входной цепочки. Грамматики для k > 1 на практике не ис-

пользуются. Далее будем рассматривать лишь LR(1)-разбор.

Введем некоторые определения для LR(1)-анализаторов (далее, говоря

LR, будем подразумевать LR(1)).

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Конфигурацией LR-анализатора (LR-конфигурацией) бу-

дем называть пару вида:

(S0 X1 S1 X2 S2Xm Sm, aiai+1an),

где Si – состояния LR-анализатора (Si I, I – множество всех состояний), Xi – элементы грамматики (Xi X, X – множество всех элементов грамматики, X=N Σ), а ai – терминалы из вход-

ной цепочки (ai Σ).

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

При этом последовательность элементов S0 X1 S1 X2 S2Xm Sm пред-

ставляет собой содержимое магазина (стека) анализатора, а символы aiai+1an – непрочитанную часть входной цепочки.

Согласно данному ранее определению, правая сентенциальная форма может быть получена конкатенацией элементов грамматики, расположенных на стеке, с непрочитанной частью входной цепочки:

ω = X1X2Xmaiai+1an.

Префикс данной цепочки X1X2Xm называется активным префиксом

LR-анализатора.