Lug 0.5.0
      
    
  19 марта состоялся выпуск C++ библиотеки Lug, реализующей встраиваемый предметно-ориентированный язык для выражения синтаксических анализаторов в виде расширенных грамматик синтаксических выражений, и распространяемой по лицензии MIT.
Возможности библиотеки:
- Естественный синтаксис, напоминающий языки внешних генераторов парсеров, с поддержкой атрибутов и семантических действий.
 - Возможность работы с контекстно-зависимыми грамматиками с таблицами символов, условиями и синтаксическими предикатами.
 - Сгенерированные парсеры компилируются в байткод и выполняются в виртуальной машине синтаксического анализа.
 - Чёткое разделение синтаксических и лексических правил с возможностью настройки неявного пропуска пробельных символов.
 - Поддержка прямой и косвенной левой рекурсии, с уровнями старшинства для разграничения подвыражений со смешанными левой и правой рекурсиями.
 - Полная поддержка разбора текста в формате UTF-8, включая уровень 1 и частичное соответствие уровню 2 технического стандарта UTS #18 Unicode Regular Expressions.
 - Обработка ошибок и восстановление с помощью помеченных сбоев, правил восстановления и обработчиков ошибок.
 - Автоматическое отслеживание номеров строк и колонок, настраиваемая ширина и выравнивание табуляции.
 - Header-only-библиотека, использующая только стандартную библиотеку и возможности стандарта C++17. Перспективно совместима со стандартами C++20 и C++23.
 - Относительно небольшой размер библиотеки, с целью содержания общего количества строк во всех заголовочных файлах на уровне менее 6000 строк лаконичного кода.
 
( читать дальше... )
