我正在尝试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
我的使用有什么问题吗?