parse_Contact method

dynamic parse_Contact()

Implementation

dynamic parse_Contact() {
  var $$;
  switch (_ch >= 0 && _ch <= 1114111
      ? 0
      : _ch == -1
          ? 2
          : 1) {
    case 0:
    case 2:
      var startPos0 = _startPos;
      _startPos = _cursor;
      switch (_ch >= 0 && _ch <= 1114111
          ? 0
          : _ch == -1
              ? 2
              : 1) {
        case 0:
        case 2:
          while (true) {
            var startPos1 = _startPos;
            _startPos = _cursor;
            $$ = _parse_STAR();
            _startPos = startPos1;
            if (success) break;
            var startPos2 = _startPos;
            _startPos = _cursor;
            switch (_ch >= 0 && _ch <= 1114111
                ? 0
                : _ch == -1
                    ? 2
                    : 1) {
              case 0:
              case 2:
                var ch0 = _ch, pos0 = _cursor, startPos3 = _startPos;
                _startPos = _cursor;
                while (true) {
                  $$ = _parse_contact_param();
                  if (!success) break;
                  var seq = List<dynamic>.filled(2, null, growable: false)
                    ..[0] = $$;
                  var testing0 = _testing;
                  for (var reps = [];;) {
                    _testing = _cursor;
                    switch (_ch >= 0 && _ch <= 1114111
                        ? 0
                        : _ch == -1
                            ? 2
                            : 1) {
                      case 0:
                      case 2:
                        var ch1 = _ch, pos1 = _cursor, startPos4 = _startPos;
                        _startPos = _cursor;
                        while (true) {
                          $$ = _parse_COMMA();
                          if (!success) break;
                          var seq =
                              List<dynamic>.filled(2, null, growable: false)
                                ..[0] = $$;
                          $$ = _parse_contact_param();
                          if (!success) break;
                          seq[1] = $$;
                          $$ = seq;
                          break;
                        }
                        if (!success) {
                          _ch = ch1;
                          _cursor = pos1;
                        }
                        _startPos = startPos4;
                        break;
                      case 1:
                        $$ = null;
                        success = false;
                        break;
                    }
                    if (!success && _cursor > _testing) {
                      _failure(_expect29);
                    }
                    if (success) {
                      reps.add($$);
                    } else {
                      success = true;
                      _testing = testing0;
                      $$ = reps;
                      break;
                    }
                  }
                  if (!success) break;
                  seq[1] = $$;
                  $$ = seq;
                  break;
                }
                if (!success) {
                  _ch = ch0;
                  _cursor = pos0;
                }
                _startPos = startPos3;
                break;
              case 1:
                $$ = null;
                success = false;
                break;
            }
            if (!success && _cursor > _testing) {
              _failure(_expect81);
            }
            _startPos = startPos2;
            break;
          }
          break;
        case 1:
          $$ = null;
          success = false;
          break;
      }
      if (!success && _cursor > _testing) {
        _failure(_expect80);
      }
      if (success) {
        final $1 = $$;
        final $start = startPos0;
        var pos0 = _startPos, offset = $start;
        {
          ///CODE_START
          var idx, length;
          length = data.multi_header.length;
          for (idx = 0; idx < length; idx++) {
            if (data.multi_header[idx]['parsed'] == null) {
              $$ == null;
              break;
            }
          }
          if (data != null) {
            $$ = data.multi_header;
          } else {
            $$ == -1;
          }

          ///CODE_END
        }
      }
      _startPos = startPos0;
      break;
    case 1:
      $$ = null;
      success = false;
      break;
  }
  if (!success && _cursor > _testing) {
    _failure(_expect80);
  }
  return $$;
}