Понимание трассировки PegJS и того, как выполняется анализатор - PullRequest
0 голосов
/ 10 сентября 2018

Я изо всех сил пытаюсь следовать трассировкам PegJS, особенно чтобы понять, как движок парсера работает в тестировании на совпадения.

Я понимаю основы оператора трассировки, например. соответствующая текстовая часть, прохождение правила с ошибками и имя функции, как показано ниже.

4:1-4:1 rule.fail                            table_or_sub_sub

Однако, что сбивает с толку, так это то, что происходит, когда правило не выполняется и выполняется проверка следующего условия.

Я обнаружил, что обратная трассировка (https://github.com/okaxaki/pegjs-backtrace) полезна, но в некоторых случаях она не точна, т. Е. Она не отображает все вызванные функции. Это было проверено на стандартном трассировщике. Я также пробовал https://www.npmjs.com/package/better-peg-tracer но это занимает слишком много времени и слишком многословно.

В целом, было бы здорово иметь руководство, в котором указано:

  • Рекомендации по чтению трасс и ошибкам отладки
  • Объяснение движка Peg заключается в том, что он сопоставляет правила с грамматикой, чтобы было легче отслеживать след.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...