2

undefinedpetitparser でパーサーをデバッグしようとしています。

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

私の使用法に何か問題はありますか?

4

1 に答える 1