Изменения

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

LR(1)-разбор

1674 байта добавлено, 18:36, 15 июня 2015
Нет описания правки
{{В разработке}}
===Отличия от SLR-разбора===
<wikitex>
Основным отличием LR(1)-разбора от SLR-разбора является использование предпросмотра(англ. lookahead) символов.
 
Приведём пример, ситуации, в которой SLR-разбор не справится с задачей:
 
Рассмотрим грамматику вида:
$
S \to L=R | R \\
L \to *R | id \\
R \to L
$
 
Покажем её канонический LR(0) - набор:
{| style="background-color:#CCC;margin:0.5px"
!style="background-color:#EEE"| $I_0$
!style="background-color:#EEE"| $I_1$
!style="background-color:#EEE"| $I_2$
!style="background-color:#EEE"| $I_3$
!style="background-color:#EEE"| $I_4$
!style="background-color:#EEE"| $I_5$
!style="background-color:#EEE"| $I_6$
!style="background-color:#EEE"| $I_7$
!style="background-color:#EEE"| $I_8$
!style="background-color:#EEE"| $I_9$
|-
|style="background-color:#FFF;padding:2px 30px"| $A \to B$ $S' \to \cdot S$ $S \to \cdot L = R$ $S \to \cdot R$ $L \to \cdot * R$ $L \to \cdot id$ $R \to \cdot L$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|style="background-color:#FFF;padding:2px 30px"| $A \to B$
|}
</wikitex>
Анонимный участник

Навигация