3622
 правки
Изменения
→LR-разборщик:  рефакторинг разбирающей таблицы
# Возвращается к первому пункту, пока входная цепочка не закончится.
  '''Result''' algorithmLR(w: '''string''')
      <font color=green>// curToken {{---}} указатель на первый символ в строке w</font>
      '''while''' hasTokens()
          curState = top()
          '''ifwhen''' (<tex>\mathtt{T}</tex>[curState, curToken] == )              Shift (s ) '''->'''                                push(curToken)                                push(s)                                nextToken()          '''else if''' <tex>\mathtt{T}</tex>[curState, curToken] ==               Reduce (<tex> A  \to \beta</tex> ) '''->'''                                '''for''' j = 1 '''to''' <tex>|\beta |</tex>                                          pop()                                        pop()                                s = top()                                push(<tex>A</tex>)                                push(goto(s, <tex>A</tex>))                                 Вывод правила: <tex> A \to \beta</tex>                            Accept '''else->''' '''ifreturn''' <tex>\mathtt{T}</tex>[curState, curToken] == Accept                            Error  '''return''' Accept          '->''else'''               '''return''' Error     </font>|}  
Функция <tex>goto</tex> получает состояние и символ грамматики и выдает состояние. Функция <tex>goto</tex>, строящаяся по грамматике <tex>\Gamma</tex>, есть функция переходов детерминированного магазинного автомата, который распознает язык,
