Изменения

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

LR(k)-грамматики

34 байта убрано, 15:13, 29 августа 2015
Алгоритм
|align="left" colspan="4"|
<font size=2>
'''boolResult''' algorithmLR(w: '''string''')
curToken {{---}} указатель на перый символ в строке w
'''while''' цепочка не закончиласьhaveToken()
s = top()
a = w[ip] '''if''' action T [s, acurToken] == shift Shift s’
push(a)
push(s’)
ip++nextToken() '''else if''' action T [s, acurToken] == reduce Reduce A <tex> \to \beta</tex>
'''for''' j = 1 '''to''' <tex>|\beta |</tex>
pop()
push(goto [s’, A])
Вывод правила (A <tex> \to \beta</tex>)
'''else''' '''if''' action T [s, acurToken] == accept Accept '''return''' trueAccept
'''else'''
'''return''' false Error
</font>
|}
297
правок

Навигация