Skip to content

Практикум по формальным языкам

Notifications You must be signed in to change notification settings

OrlovPavel/Parser

Repository files navigation

Класс Earley реализует алгоритм Эрли для КС грамматик.

Описание некоторых классов:

Configuration - класс ситуации, left - нетерминал до стрелки в правиле, right - слово после стрелки. dot - индекс буквы, перед которой стоит "точка".

Grammar - грамматика, для быстрого поиска правил по первому нетерминалу, организована как хеш таблица.

Множества D организованы следующим образом: D[j][A] - можество ситуаций, в которых после "точки" стоит символ A, для быстрой работы базовых операций. То есть множество D[j] реализовано через хеш таблицу.

Класс LR1 реализует LR1 алгортим.

Описание некоторых полей:

LR1Situation - ситуации которые будут содержаться в состояниях автомата.

Action - дейсвтие в LR таблице.

Поле firsts класса LR1 - для каждого нетерминала содежрит в себе первые символы всех слов, которые могут быть получены раскрытием этого нетерминала.

Поле edges - содержит информацию о ребрах в автомате.

Процедуры fill_table, fill_conditions, fill_firsts выполняют предподсчет соответствующих полей в классе.

About

Практикум по формальным языкам

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published