Изменения

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

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

249 байт добавлено, 15:07, 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>T[s_m, a_icurToken]</tex>, где
*<tex>s_m</tex> {{---}} текущее состояние автомата,
*<tex>a_icurToken</tex> {{---}} текущий входной символ; В таблице информация отображается слудующим образомимеет следующий вид:*переход в стостояние '''struct''' Cell enum: { Shift, Reduce, Accept, <texfont color="green">(shift)// допуск </texfont>*свертка по правилу Error <texfont color="green">(reduce)// ошибка</texfont>,*допуск } '''struct''' Shift state: '''int''' <texfont color="green">(accept)// переход в стостояние state</texfont>,*ошибка '''struct''' Reduce rule: '''int''' <texfont color="green">(error)// свертка по правилу rule</texfont>.
=== Алгоритм ===
297
правок

Навигация