Реализовано извлечение значения (value plucking): например, при вводе grammar = "-" @$[a-z]i* "-"
для -PEGjs-
возвращается PEGjs
.
Улучшена поддержка JavaScript:
Обновлена документация:
Переписан инструмент командной строки:
--extra-options-file
: -c
и --config
.pegjs -c=config.js
).--
передаются в options["--"]
.pegjs -h
.Обновили помощников, доступных для сгенерированных парсеров:
offset()
, который был удалён в предыдущем выпуске (#528).range()
, возвращает [начальный сдвиг, текущий сдвиг]
.location()
также возвращает свойство filename
, если оно было передано сгенерированному парсеру в качестве параметра (#421).features
(например, { text: false }
удалит помощника text()
).Парсер возвращает экземпляр нового класса Grammar вместо простого объекта JavaScript.
Добавлен класс ASTVisitor (#451).
Весь код генерации перемещён из прохода generateBytecode
в проход generateJs
(#459).
Используйте файлы .js
с параметром --extra-options-file
(псевдонимы -c
и --config
) в CLI.
Добавлен API сеанса (peg.compiler.Session
), что должно упростить расширение PEG.js с помощью плагинов.
Реализованы эмиттеры предупреждений и ошибок: session.warn
, session.error
и session.fatal
(#327, #430, #431).
Опустить версию PEG.js в имени файла версии для браузера.
Добавить поддержку генерации парсера как модуля ES с использованием "format": "es"
.
Добавить связанные файлы объявлений TypeScript:
pegjs/typings/api.d.ts
.pegjs/typings/modules.d.ts
.pegjs/typings/generated-parser.d.ts
.Обновить генератор байт-кода; сгенерированные парсеры выглядят немного лучше:
Добавить ASTVisitor.on.{property,children}
; это помощники для создания посетителей для использования с новым классом ASTVisitor.
Слияние.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )