parse method

  1. @override
  2. @inline
Tuple1<Tuple2<O1, O2>>? parse(
  1. ParseInput<String> input,
  2. ParseState state
)
override

Implementation

@override
@inline
Tuple1<Tuple2<O1, O2>>? parse(ParseInput<String> input, ParseState state) {
  final pos = input.pos;
  final r1 = key.parse(input, state);
  if (r1 != null) {
    if (input.match(sep)) {
      ws.parse(input, state);
      final r2 = value.parse(input, state);
      if (r2 != null) {
        return Tuple1(Tuple2(r1.$0, r2.$0));
      }
    } else {
      state.fail(error, input.pos);
    }
  }

  input.pos = pos;
}