Модификация алгоритма, обеспечивающая построение бесконфликтного LR-анализатора для более широкого, чем LR(0) класса грамматик

Вход

Расширенная грамматика

Выход

SLR(1)-анализатор

Алгоритм

Заполнение столбцов ACTION

  1. Занумеровать правила грамматики от одного до
  2. Построить LR(0)-автомат по входной грамматике
  3. Построить множества FOLLOW (можно воспользоваться алгоритмом построение множества FOLLOW)
  4. В строке, соответствующей состоянию в столбце заносим допуск
  5. В каждой строке (состояние автомата), не заполненной в 3):
    • Для каждого пункта в столбцах заносим свертку ( - номер соответствующего правила рассматриваемого пункта )
    • Для каждого пункта в столбце заносим перенос

Заполнение столбцов GOTO

В каждой строке для каждого пункта в столбец заносим состояние