parse method

  1. @override
Result<(O1, O2, O3, O4, O5, O6, O7, O8, O9)>? parse(
  1. State<I> state
)
override

Parses the input and returns a result wrapped in Result if successful, null otherwise.

Implementation

@override
Result<(O1, O2, O3, O4, O5, O6, O7, O8, O9)>? parse(State<I> state) {
  final pos = state.pos;
  final r1 = p1.parse(state);
  if (r1 != null) {
    final r2 = p2.parse(state);
    if (r2 != null) {
      final r3 = p3.parse(state);
      if (r3 != null) {
        final r4 = p4.parse(state);
        if (r4 != null) {
          final r5 = p5.parse(state);
          if (r5 != null) {
            final r6 = p6.parse(state);
            if (r6 != null) {
              final r7 = p7.parse(state);
              if (r7 != null) {
                final r8 = p8.parse(state);
                if (r8 != null) {
                  final r9 = p9.parse(state);
                  if (r9 != null) {
                    return Result((
                      r1.value,
                      r2.value,
                      r3.value,
                      r4.value,
                      r5.value,
                      r6.value,
                      r7.value,
                      r8.value,
                      r9.value,
                    ));
                  }
                }
              }
            }
          }
        }
      }
    }
  }

  state.pos = pos;
  return null;
}