Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何使用';debug()';与';未定义();分析器_Dart_Petitparser - Fatal编程技术网

Dart 如何使用';debug()';与';未定义();分析器

Dart 如何使用';debug()';与';未定义();分析器,dart,petitparser,Dart,Petitparser,我正在尝试调试petitparser中的未定义的解析器 首先查看不带调试的代码: import“包:petitparser/petitparser.dart”; main(){ var mynum=未定义(); var parser=string(“abc”).map((s){ mynum.set(字符串(“888”); 返回s; })&mynum; var result=parser.parse(“abc888”); 打印(结果); } 它打印: Success[1:7]: [abc, 88

我正在尝试调试petitparser中的
未定义的
解析器

首先查看不带调试的代码:

import“包:petitparser/petitparser.dart”;
main(){
var mynum=未定义();
var parser=string(“abc”).map((s){
mynum.set(字符串(“888”);
返回s;
})&mynum;
var result=parser.parse(“abc888”);
打印(结果);
}
它打印:

Success[1:7]: [abc, 888]
但是如果我添加
debug

import“包:petitparser/petitparser.dart”;
main(){
var mynum=未定义();
var parser=string(“abc”).map((s){
mynum.set(字符串(“888”);
返回s;
})&mynum;
var result=debug(parser.parse)(“abc888”);
打印(结果);
}
它将失败:

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

我的用法有什么问题吗?

当前的
解析器调试(Parser)
实现与自修改解析器不兼容。它的实现使用
Parser transformParser(Parser,Function)
创建完整语法图的转换副本。因此,您的操作函数对正在运行的代码没有任何影响,因为它修改了未使用的旧版本的语法


我可以想出一种方法来解决这个问题(debug可以修改解析器),但这似乎还有其他缺点。是否要提交并发布以进一步讨论此问题?

最近无法访问github,我将稍后提交