Изменения

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

LR(1)-разбор

832 байта добавлено, 22:26, 27 августа 2015
Канонические LR(1)-таблицы
</wikitex>
=== Канонические LR(1)-таблицы ===
==== Алгоритм ====
<font color=green>// вход: <tex>G'</tex> {{---}} расширенная грамматика</font>
<font color=green>// выход: таблица канонического <tex>LR</tex>-анализа с функциями <tex>ACTION</tex> и <tex>GOTO</tex></font>
'''function''' <tex>\mathtt{getLR1LexTable}(G'):</tex>
<tex> C'(G') \leftarrow \{I_0,I_1..I_n\}</tex> <font color=green>// множество канонических пунктов для <tex>G'</tex></font>
<tex>\mathtt{sort}(E(G))\</tex>
'''for''' <tex>vu \in E(G)</tex>
'''if''' <tex>v</tex> и <tex>u</tex> в разных компонентах связности <tex>F</tex>
<tex> \mathtt{F}\ =\ \mathtt{F} \bigcup vu\</tex>
'''return''' <tex> \mathtt{F} </tex>
 
==== Пример ====
<wikitex>
Рассмотрим следующую грамматику $G'$:
Анонимный участник

Навигация