Изменения

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

LR(1)-разбор

122 байта добавлено, 20:58, 18 сентября 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>
<tex>\mathtt{fillArray}(ACTION,</tex>"<font color=red>'''ошибка"'''</font><tex> ):</tex>
'''foreach''' <tex>I_i \in (E(G))\</tex>
'''if''' <tex>[A\rightarrow \alpha\cdot a\beta, b] \in I_i</tex> <font color=green>// здесь <tex>a</tex> {{---}} терминал</font> <tex>ACTION[i,a] = </tex> "<font color=#C98300>'''перенос ''' <tex>j</tex>"</font>
'''if''' <tex>[A\rightarrow \alpha\cdot, a] \in I_i</tex> '''and''' <tex>A\neq S'</tex>
<tex>ACTION[i,a] = </tex> "<font color=#C98300>'''свертка ''' <tex>A\rightarrow a</tex>"</font>
'''if''' <tex>[S'\rightarrow S\cdot, \char36] \in I_i</tex>
<tex>ACTION[i,\char36] = </tex> "<font color=green>'''принятие"'''</font>
'''if''' <tex>goto(I_i,A) = I_j</tex>
<tex>goto[i,A]\leftarrow j</tex>
Анонимный участник

Навигация