Skip to content

v2.2

Choose a tag to compare

@thewizardplusplus thewizardplusplus released this 23 Dec 03:37
· 289 commits to master since this release

Migrate to the C++17 standard and update dependencies.

Change Log

  • Simplify the building configurations
  • Migrate to the C++17 standard:
    • Specify the standard in the building configurations
    • Replace the optional type from the akrzemi1/Optional library to the std::optional type
    • Replace the string_span type from the Microsoft/GSL library to the std::string_view type
    • Use nested namespaces
  • Update dependencies:
  • Project design:
    • Use upper-case names for service files
    • Fix the license information

Возможности

  • лексинг ASCII-текста:
    • задание лексем посредством регулярных выражений;
    • возможность исключения токенов из результирующего списка;
  • парсинг ASCII-текста;
  • описание грамматики на EBNF непосредственно в коде программы (посредством DSL);
  • представление результата в виде AST;
  • задание имени ноды в AST;
  • сериализация AST в JSON;
  • комбинаторы:
    • следование;
    • альтернатива;
    • повторение:
      • 0 или 1 раз (опциональность);
      • конкретное число раз;
      • 0 или больше раз;
      • 1 или больше раз;
    • исключение;
    • просмотр вперёд:
      • позитивный;
      • негативный;
    • список с разделителем;
  • парсеры:
    • пустота;
    • конец текста;
    • определённый текст;
    • определённая лексема.

Скриншоты

Лексический анализ

Лексический анализ

Синтаксический анализ

Синтаксический анализ