如何在'undefined()'解析器中使用'debug()'

随风

我正在尝试undefined在petitparser中调试解析器。

无需debug查看代码

import "package:petitparser/petitparser.dart";

main() {
  var mynum = undefined();
  var parser = string("abc").map((s) {
    mynum.set(string("888"));
    return s;
  }) & mynum;

  var result = parser.parse("abc888");
  print(result);
}

它打印:

Success[1:7]: [abc, 888]

但是,如果我添加debug

import "package:petitparser/petitparser.dart";

main() {
  var mynum = undefined();
  var parser = string("abc").map((s) {
    mynum.set(string("888"));
    return s;
  }) & mynum;

  var result = debug(parser).parse("abc888");
  print(result);
}

它将失败:

Instance of 'SequenceParser'
  Instance of 'ActionParser'
    Instance of 'PredicateParser'[abc expected]
    Success[1:4]: abc
  Success[1:4]: abc
  Instance of 'SetableParser'
    Instance of 'FailureParser'[undefined parser]
    Failure[1:4]: undefined parser
  Failure[1:4]: undefined parser
Failure[1:4]: undefined parser
Failure[1:4]: undefined parser

我的用法有什么问题吗?

卢卡斯·伦格里(Lukas Renggli)

的当前实现Parser debug(Parser)不适用于自修改解析器。它的实现使用Parser transformParser(Parser, Function)它来创建完整语法图的转换副本。因此,您的动作函数不会对正在运行的代码产生任何影响,因为它会修改未使用的旧语法版本。

我可以想到一种解决问题的方法(调试可以就地修改解析器),但这似乎还有其他缺点。愿意在GitHub发布文件并发布以进一步讨论吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中使用Jackson解析器处理JSON数组解析

来自分类Dev

如何在剃刀文件中使用Debug.Writeline?

来自分类Dev

如何在Java中使用解析器检查自然语言句子结构的有效性?

来自分类Dev

如何在'undefined()'解析器中使用'debug()'

来自分类Dev

如何在Java中使用dom解析器按属性获取元素

来自分类Dev

如何使用args解析器

来自分类Dev

如何在Spring Boot中使用带注释的参数解析器?

来自分类Dev

如何在Python中使用CSV解析器解析字符串?

来自分类Dev

如何在PHP中使用DOM解析器为h1,h2等创建<div>?

来自分类Dev

如何在Android中使用解析器动态设置线性布局中的背景图像

来自分类Dev

如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

来自分类Dev

如何在python argparse中使用子解析器定义全局选项?

来自分类Dev

如何在C#中使用xml解析器提取xml中节点的所有值?

来自分类Dev

如何在aws appsync解析器中使用“ $ util.list.copyAndRetainAll(List,List)”?

来自分类Dev

如何在工厂解析器中使用相同的抽象接口注册2个依赖项?

来自分类Dev

如何在std :: fmt :: Debug中使用内部#[derive(Debug)]

来自分类Dev

如何使用android的Json解析器?

来自分类Dev

如何在解析器上使用AsyncTask?

来自分类Dev

如何在Java中使用dom解析器按属性获取元素

来自分类Dev

如何使用args解析器

来自分类Dev

如何在Swift项目中使用(安装)Swift CSV解析器

来自分类Dev

如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

来自分类Dev

如何在python argparse中使用子解析器定义全局选项?

来自分类Dev

如何在Wildfly中使用自定义系统属性解析器

来自分类Dev

如何在pdb中使用'debug'命令(python)

来自分类Dev

如何在 solr 中使用 disMax 查询解析器

来自分类Dev

如何在 Django 中使用“DEBUG=TRUE”运行测试

来自分类Dev

如何在 jar 文件中使用 Tika 自定义解析器?

来自分类Dev

如何在“脚本化”Jenkins 管道中使用日志解析器插件?

Related 相关文章

  1. 1

    如何在Android中使用Jackson解析器处理JSON数组解析

  2. 2

    如何在剃刀文件中使用Debug.Writeline?

  3. 3

    如何在Java中使用解析器检查自然语言句子结构的有效性?

  4. 4

    如何在'undefined()'解析器中使用'debug()'

  5. 5

    如何在Java中使用dom解析器按属性获取元素

  6. 6

    如何使用args解析器

  7. 7

    如何在Spring Boot中使用带注释的参数解析器?

  8. 8

    如何在Python中使用CSV解析器解析字符串?

  9. 9

    如何在PHP中使用DOM解析器为h1,h2等创建<div>?

  10. 10

    如何在Android中使用解析器动态设置线性布局中的背景图像

  11. 11

    如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

  12. 12

    如何在python argparse中使用子解析器定义全局选项?

  13. 13

    如何在C#中使用xml解析器提取xml中节点的所有值?

  14. 14

    如何在aws appsync解析器中使用“ $ util.list.copyAndRetainAll(List,List)”?

  15. 15

    如何在工厂解析器中使用相同的抽象接口注册2个依赖项?

  16. 16

    如何在std :: fmt :: Debug中使用内部#[derive(Debug)]

  17. 17

    如何使用android的Json解析器?

  18. 18

    如何在解析器上使用AsyncTask?

  19. 19

    如何在Java中使用dom解析器按属性获取元素

  20. 20

    如何使用args解析器

  21. 21

    如何在Swift项目中使用(安装)Swift CSV解析器

  22. 22

    如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

  23. 23

    如何在python argparse中使用子解析器定义全局选项?

  24. 24

    如何在Wildfly中使用自定义系统属性解析器

  25. 25

    如何在pdb中使用'debug'命令(python)

  26. 26

    如何在 solr 中使用 disMax 查询解析器

  27. 27

    如何在 Django 中使用“DEBUG=TRUE”运行测试

  28. 28

    如何在 jar 文件中使用 Tika 自定义解析器?

  29. 29

    如何在“脚本化”Jenkins 管道中使用日志解析器插件?

热门标签

归档