LINUX.ORG.RU

Peg


0

0

Всего сообщений: 2

Lug 0.5.0

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 строк лаконичного кода.

( читать дальше... )

>>> Подробности на github.com

 , , , ,

dataman
()

Форум

Июль 2024