v2.2
·
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
optionaltype from the akrzemi1/Optional library to thestd::optionaltype - Replace the
string_spantype from the Microsoft/GSL library to thestd::string_viewtype - Use nested namespaces
- Update dependencies:
- Update the fmtlib/fmt library to
v5.2.1 - Update the Microsoft/GSL library to
v2.0.0 - Update the nlohmann/json library to
v3.4.0 - Update the docopt/docopt.cpp library to
7476f8ecommit
- Update the fmtlib/fmt library to
- 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 или больше раз;
- исключение;
- просмотр вперёд:
- позитивный;
- негативный;
- список с разделителем;
- парсеры:
- пустота;
- конец текста;
- определённый текст;
- определённая лексема.
Скриншоты
Лексический анализ
Синтаксический анализ

