parse method

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

Implementation

@override
@inline
Tuple1<O>? parse(ParseInput<String> input, ParseState state) {
  final pos = input.pos;
  if (input.match(open)) {
    ws.parse(input, state);
    final r = p.parse(input, state);
    if (r != null) {
      if (input.match(close)) {
        ws.parse(input, state);
        return Tuple1(r.$0);
      } else {
        state.fail(_closeError, input.pos);
      }
    }
  } else {
    state.fail(_openError, input.pos);
  }

  input.pos = pos;
}