Skip to content

Releases: thewizardplusplus/wizard-parser

v2.0

24 Feb 04:54

Choose a tag to compare

Добавление лексера на основе регулярных выражений и сериализации AST в JSON, исправление бага с утечкой памяти.

Изменения

  • добавлено:
    • лексер:
      • задание лексем посредством регулярных выражений;
      • возможность исключения токенов из результирующего списка;
    • сериализация AST в JSON;
  • исправлен баг с утечкой памяти при циклических зависимостях в графе парсеров;
  • удалено:
    • представление результата в виде дерева парсинга;
    • объединение нод в AST;
    • сериализация AST в XML;
    • поддержка полноценной грамматики в качестве разделителя для основной;
    • комбинаторы:
      • повторение 1 или больше раз;
      • список с разделителем;
    • парсеры:
      • пустой (ничего не парсит);
      • граница слова (правило \b в регулярных выражениях);
      • парсеры символов:
        • парсер определённого символа;
        • парсер любого символа;
        • парсеры любого символа из определённого набора:
          • парсер любого символа из определённого набора;
          • парсер пробельных символов;
          • парсер букв;
          • парсер цифр;
          • парсер букв, цифр и символа _;
      • парсер определённого текста, ограниченного границами слова (правило \b в регулярных выражениях).

Возможности

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

Скриншоты

Пример AST-дерева

Пример AST-дерева

v1.0

24 Feb 04:52

Choose a tag to compare

Возможности

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

Скриншоты

Пример AST-дерева

Пример AST-дерева