Изменения

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

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

268 байт добавлено, 15:18, 29 августа 2015
Управляющая программа анализатора
Для запоминания строки запись в стек имеет вид: <tex>s_0X_1s_1X_2...X_ms_m</tex>, где <tex>s_m</tex> {{---}} вершина стека. Каждый <tex>X_i</tex> {{---}} символ грамматики(терминал или нетерминал), а <tex>s_i</tex> {{---}} состояние автомата. Каждое состояние суммирует информацию, cодержащуюся в стеке перед ним. <tex>s_0</tex> {{---}} стартовае состояние автомата.
Обращение к таблице происходит слудующим образом <tex>\mathtt{T[s_ms, curToken]}</tex>, где *<tex>s_m\mathtt{s}</tex> {{---}} текущее состояние автомата, *<tex>\mathtt{curToken}</tex> {{---}} текущий входной символ;
В таблице информация имеет следующий вид:
'''struct''' Cell
'''struct''' Reduce
rule: '''int''' <font color="green">// свертка по правилу rule</font>
 
Рузультатом работы управляющей программы будет:
'''struct''' Result
enum:
Accept <font color="green">// допуск </font>
Error <font color="green">// ошибка</font>
=== Алгоритм ===
297
правок

Навигация