Изменения

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

LR(1)-разбор

266 байт добавлено, 08:26, 4 сентября 2015
Алгоритм
'''function''' <tex>\mathtt{getLR1LexTable}(G'):</tex>
<tex> C'(G') \leftarrow \{I_0,I_1..I_n\}</tex> <font color=green>// множество канонических пунктов для <tex>G'</tex></font>
'''foreach''' <tex>I_i \mathtt{sort}in (E(G))\</tex> '''forif''' <tex>vu [A\rightarrow \alpha\cdot a\beta, b] \in E(G)I_i</tex> <font color=green>здесь <tex>a</tex> - терминал</font> <tex>ACTION[i,a] = </tex> "перенос <tex>j</tex>" '''if''' <tex>v[A\rightarrow \alpha\cdot, a] \in I_i</tex> и && <tex>uA\neq S'</tex> в разных компонентах связности <tex>FACTION[i,a] = </tex> "свертка <tex> A\mathtt{F}\ =\ \mathtt{F} \bigcup vu\rightarrow a</tex>" '''returnif''' <tex> [S'\rightarrow S\mathtt{F} cdot, \char36] \in I_i</tex> <tex>ACTION[i,\char36] = </tex>"принятие"
==== Пример ====
Анонимный участник

Навигация