Изменения

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

LR(1)-разбор

37 байт убрано, 22:22, 14 сентября 2015
Нет описания правки
Псевдокод построения множеств $closure$ и $goto$, а также множества ситуаций $items$:
<code>
Set<Item> [] closure(Set<Item> [] I):
'''bool''' changed
Set<Item> $[] J$=$I$
'''repeat'''
changed = '''false'''
</code>
<code>
Set<Item> [] goto(Set<Item> [] I, X): Set<Item> $[] J$=$\varnothing$
'''for''' $[A\rightarrow\alpha\cdot X\beta, a]\in I$
J.add($[A\rightarrow\alpha X\cdot\beta, a]$)
</code>
<code>
Set<Set<Item>> [][] items($G'$):
'''bool''' changed
Set<Set<Item>> [][] $C$ = $\{closure({S'\rightarrow\cdot S,\char36})\}$
'''repeat'''
changed = '''false'''
'''for''' Set<Item> [] $I\subset C$
'''for''' $X \in symbols(G')$ <font color="green">//по всем символам грамматики</font>
'''if''' $goto(I,X)\neq\varnothing$ and $goto(I,X)\not\subset C$
262
правки

Навигация