parse_Supported method

dynamic parse_Supported()

Implementation

dynamic parse_Supported() {
  var $$;
  switch (_ch >= 0 && _ch <= 1114111
      ? 0
      : _ch == -1
          ? 2
          : 1) {
    case 0:
    case 2:
      var startPos0 = _startPos;
      _startPos = _cursor;
      var testing0 = _testing;
      _testing = _cursor;
      switch (_getState(_transitions13)) {
        case 0:
        case 2:
          var ch0 = _ch, pos0 = _cursor, startPos1 = _startPos;
          _startPos = _cursor;
          while (true) {
            $$ = _parse_option_tag();
            if (!success) break;
            var seq = List<dynamic>.filled(2, null, growable: false)
              ..[0] = $$;
            var testing1 = _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, startPos2 = _startPos;
                  _startPos = _cursor;
                  while (true) {
                    $$ = _parse_COMMA();
                    if (!success) break;
                    var seq = List<dynamic>.filled(2, null, growable: false)
                      ..[0] = $$;
                    $$ = _parse_option_tag();
                    if (!success) break;
                    seq[1] = $$;
                    $$ = seq;
                    break;
                  }
                  if (!success) {
                    _ch = ch1;
                    _cursor = pos1;
                  }
                  _startPos = startPos2;
                  break;
                case 1:
                  $$ = null;
                  success = false;
                  break;
              }
              if (!success && _cursor > _testing) {
                _failure(_expect29);
              }
              if (success) {
                reps.add($$);
              } else {
                success = true;
                _testing = testing1;
                $$ = reps;
                break;
              }
            }
            if (!success) break;
            seq[1] = $$;
            $$ = seq;
            break;
          }
          if (!success) {
            _ch = ch0;
            _cursor = pos0;
          }
          _startPos = startPos1;
          break;
        case 1:
          $$ = null;
          success = false;
          break;
      }
      if (!success && _cursor > _testing) {
        _failure(_expect18);
      }
      success = true;
      _testing = testing0;
      _startPos = startPos0;
      break;
    case 1:
      $$ = null;
      success = true;
      break;
  }
  if (!success && _cursor > _testing) {
    _failure(_expect14);
  }
  return $$;
}