了解PegJS跟踪以及解析器如何执行

时间:2018-09-10 11:44:38

标签: pegjs

我正在努力跟踪PegJS跟踪,特别是为了了解解析器引擎如何继续进行匹配测试。

例如,我了解trace语句的基础。匹配的文本部分,规则是否通过失败以及函数的名称,如下所示。

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引擎的解释是将其规则与语法进行匹配,以使其更容易跟踪。

0 个答案:

没有答案