Изменения

Перейти к: навигация, поиск

LR(1)-разбор

34 байта убрано, 15:31, 20 сентября 2015
м
Отличия от SLR-разбора
Основным отличием LR(1)-разбора от SLR-разбора является использование '''предпросмотра''' (англ. ''lookahead'') символов.
Приведём пример ситуации (англ. ''item''), в которой при котором SLR-разбор не справится с задачей:
Рассмотрим грамматику вида:
$S \to L = R \cdot$
|}
Рассмотрим ситуацию состояние $I_2$. Если SLR-парсер находится в $I_2$ и очередной входной символ равен $=$, то парсер выполняет свёртку в соответствии с продукцией ситуацией $R \to L$, что неверно, т.к. в этой грамматике не выводится выражение $R=\ldots$ и парсер должен был выполнить перенос, а не свёртку.
Чтобы решить эту проблему, необходимо хранить в ситуации больший объём информации, который позволит не делать таких ошибочных свёрток.
262
правки

Навигация