Класс 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 выполняют предподсчет соответствующих полей в классе.