Releases: thewizardplusplus/wizard-parser
Releases · thewizardplusplus/wizard-parser
v2.0
Добавление лексера на основе регулярных выражений и сериализации AST в JSON, исправление бага с утечкой памяти.
Изменения
- добавлено:
- лексер:
- задание лексем посредством регулярных выражений;
- возможность исключения токенов из результирующего списка;
- сериализация AST в JSON;
- лексер:
- исправлен баг с утечкой памяти при циклических зависимостях в графе парсеров;
- удалено:
- представление результата в виде дерева парсинга;
- объединение нод в AST;
- сериализация AST в XML;
- поддержка полноценной грамматики в качестве разделителя для основной;
- комбинаторы:
- повторение 1 или больше раз;
- список с разделителем;
- парсеры:
- пустой (ничего не парсит);
- граница слова (правило
\bв регулярных выражениях); - парсеры символов:
- парсер определённого символа;
- парсер любого символа;
- парсеры любого символа из определённого набора:
- парсер любого символа из определённого набора;
- парсер пробельных символов;
- парсер букв;
- парсер цифр;
- парсер букв, цифр и символа
_;
- парсер определённого текста, ограниченного границами слова (правило
\bв регулярных выражениях).
Возможности
- лексинг ASCII-текста:
- задание лексем посредством регулярных выражений;
- возможность исключения токенов из результирующего списка;
- парсинг ASCII-текста;
- описание грамматики на EBNF непосредственно в коде программы (посредством DSL);
- представление результата в виде AST;
- гибкое управление представлением нод в AST:
- задание имени ноды;
- скрытие ноды;
- сериализация AST в JSON;
- комбинаторы:
- следование;
- альтернатива;
- повторение 0 или больше раз;
- опциональность;
- исключение;
- парсеры:
- конец текста;
- определённый текст;
- определённая лексема.
Скриншоты
Пример AST-дерева
v1.0
Возможности
- парсинг ASCII-текста;
- описание грамматики на EBNF непосредственно в коде программы (посредством DSL);
- представление результата в виде:
- дерева парсинга;
- AST;
- гибкое управление представлением нод в AST:
- задание имени ноды;
- объединение нод;
- скрытие ноды;
- сериализация AST в XML;
- поддержка полноценной грамматики в качестве разделителя для основной;
- комбинаторы:
- следование;
- альтернатива;
- повторение:
- 0 или больше раз;
- 1 или больше раз;
- опциональность;
- исключение;
- список с разделителем;
- парсеры:
- пустой (ничего не парсит);
- граница слова (правило
\bв регулярных выражениях); - конец текста;
- парсеры символов:
- парсер определённого символа;
- парсер любого символа;
- парсеры любого символа из определённого набора:
- парсер любого символа из определённого набора;
- парсер пробельных символов;
- парсер букв;
- парсер цифр;
- парсер букв, цифр и символа
_;
- парсеры определённого текста:
- парсер определённого текста;
- парсер определённого текста, ограниченного границами слова (правило
\bв регулярных выражениях).
Скриншоты
Пример AST-дерева

