cpp-peglib 1.10.0 и 1.10.1

500px.jpg

12-го и 14-го марта, после длительного затишья, состоялись выпуски 1.10.0 и 1.10.1 библиотеки cpp-peglib, реализующей PEG (грамматику, разбирающую выражение).

Библиотека поддерживает синтаксис, подробно описанный Брайаном Фордом на странице 2 документа «Parsing Expression Grammars: A Recognition-Based Syntactic Foundation», со многими дополнительными улучшениями.

В отличие от таких проектов, как PEGTL, Lexy и многих других, cpp-peglib позволяет задать выражение PEG и во время выполнения.

Библиотека написана на языке C++ (стандарт C++17, header-only) и распространяется по лицензии MIT.

Изменения:

  • добавлена возможность обработки данных предикатов;
  • добавлена поддержка грамматик с левой рекурсией;
  • улучшена производительность;
  • исправлена ошибка в порядке параметров оптимизатора AST.

>>> Попробовать онлайн (пример грамматики JSON на скриншоте)

>>> Подробности на GitHub

©  Linux.org.ru