LR(1)-разбор — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «{{В разработке}}»)
 
Строка 1: Строка 1:
 
{{В разработке}}
 
{{В разработке}}
 +
===Отличия от 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>

Версия 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) - набор:

$I_0$ $I_1$ $I_2$ $I_3$ $I_4$ $I_5$ $I_6$ $I_7$ $I_8$ $I_9$
$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$ $A \to B$ $A \to B$ $A \to B$ $A \to B$ $A \to B$ $A \to B$ $A \to B$ $A \to B$ $A \to B$

</wikitex>