Изменения

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

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

122 байта убрано, 23:24, 8 сентября 2015
Управляющая программа анализатора: рефакторинг структур
*<tex>\mathtt{token}</tex> {{---}} входной символ.
Полученное значение в таблице должно информировать о текущем действии, то есть о переносе или свертке. В этих двух случаях необходима дополнительная информация: к какому состоянию происходит переход (при переносе) и по какому правилу происходит свертка. Если входной символ некорректен, то происходит ошибка, а свертка в стартовое состояние идентифицируется как допуск:
'''enumstruct''' Cell Shift Reduce Error <font color="green">// ошибка</font> Accept <font color="green">// допуск </font> '''struct''' Shift { state: '''int''' } <font color="green">// переход в стостояние состояние с номером state</font> '''struct''' Reduce { rule: '''int''' } <font color="green">// свертка по правилу с номером rule</font> Рузультатом работы управляющей программы будет: '''enum''' Result = Accept <font color="green">// допуск </font> | Error <font color="green">// ошибка</font> '''enum''' Cell = Shift | Reduce | Result
=== Алгоритм ===

Навигация