Функциональность LALR можно разделить на две части: подготовку таблиц и анализ входных данных.
Первая часть сложна и подвержена ошибкам, поэтому даже если вам нравится знать, как она работает, я предлагаю использоватьпроверенный генератор рабочих таблиц для состояний LALR (и для DFA токенизатора).
Вторая часть состоит из потребления этих таблиц с использованием некоторых довольно простых алгоритмов для токенизации и обработки входных данных в синтаксический анализ / конкретный синтаксисдерево.Это проще реализовать самостоятельно, если вам нравится это делать, и вы по-прежнему имеете полный контроль над тем, как он работает и что он делает.
При выполнении задач синтаксического анализа я лично использую бесплатную систему синтаксического анализа GOLD, который имеет приятный пользовательский интерфейс для создания и отладки грамматики, а также генерирует файлы таблиц, которые затем могут быть загружены и обработаны существующим механизмом или вашей собственной реализацией (формат файлов для этих файлов CGT хорошо документирован).