public IElementType advance() throws java.io.IOException {
    int zzInput;
    int zzAction;

    // cached fields:
    int zzCurrentPosL;
    int zzMarkedPosL;
    int zzEndReadL = zzEndRead;
    CharSequence zzBufferL = zzBuffer;

    int [] zzTransL = ZZ_TRANS;
    int [] zzRowMapL = ZZ_ROWMAP;
    int [] zzAttrL = ZZ_ATTRIBUTE;

    while (true) {
      zzMarkedPosL = zzMarkedPos;

      zzAction = -1;

      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;

      zzState = ZZ_LEXSTATE[zzLexicalState];

      // set up zzAction for empty match case:
      int zzAttributes = zzAttrL[zzState];
      if ( (zzAttributes & 1) == 1 ) {
        zzAction = zzState;
      }


      zzForAction: {
        while (true) {

          if (zzCurrentPosL < zzEndReadL) {
            zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/);
            zzCurrentPosL += Character.charCount(zzInput);
          }
          else if (zzAtEOF) {
            zzInput = YYEOF;
            break zzForAction;
          }
          else {
            // store back cached positions
            zzCurrentPos  = zzCurrentPosL;
            zzMarkedPos   = zzMarkedPosL;
            boolean eof = zzRefill();
            // get translated positions and possibly new buffer
            zzCurrentPosL  = zzCurrentPos;
            zzMarkedPosL   = zzMarkedPos;
            zzBufferL      = zzBuffer;
            zzEndReadL     = zzEndRead;
            if (eof) {
              zzInput = YYEOF;
              break zzForAction;
            }
            else {
              zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/);
              zzCurrentPosL += Character.charCount(zzInput);
            }
          }
          int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ];
          if (zzNext == -1) break zzForAction;
          zzState = zzNext;

          zzAttributes = zzAttrL[zzState];
          if ( (zzAttributes & 1) == 1 ) {
            zzAction = zzState;
            zzMarkedPosL = zzCurrentPosL;
            if ( (zzAttributes & 8) == 8 ) break zzForAction;
          }

        }
      }

      // store back cached position
      zzMarkedPos = zzMarkedPosL;

      if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
        zzAtEOF = true;
        zzDoEOF();
        return null;
      }
      else {
        switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
          case 1: 
            { return CODE_CHARS;
            } 
            // fall through
          case 65: break;
          case 2: 
            { yybegin(WAITING_PLATFORM); return UNKNOWN_KEY;
            } 
            // fall through
          case 66: break;
          case 3: 
            { yybegin(YYINITIAL); return TokenType.WHITE_SPACE;
            } 
            // fall through
          case 67: break;
          case 4: 
            { return TokenType.WHITE_SPACE;
            } 
            // fall through
          case 68: break;
          case 5: 
            { yybegin(YYINITIAL); return TokenType.BAD_CHARACTER;
            } 
            // fall through
          case 69: break;
          case 6: 
            { return COMMENT;
            } 
            // fall through
          case 70: break;
          case 7: 
            { yybegin(WAITING_VALUE); return SEPARATOR;
            } 
            // fall through
          case 71: break;
          case 8: 
            { yybegin(YYINITIAL); return VALUE;
            } 
            // fall through
          case 72: break;
          case 9: 
            { return UNKNOWN_PLATFORM;
            } 
            // fall through
          case 73: break;
          case 10: 
            { yybegin(CODE_END); return DELIM;
            } 
            // fall through
          case 74: break;
          case 11: 
            { return OSX;
            } 
            // fall through
          case 75: break;
          case 12: 
            { return IOS;
            } 
            // fall through
          case 76: break;
          case 13: 
            { return X64;
            } 
            // fall through
          case 77: break;
          case 14: 
            { return TVOS;
            } 
            // fall through
          case 78: break;
          case 15: 
            { return WASM;
            } 
            // fall through
          case 79: break;
          case 16: 
            { yybegin(WAITING_PLATFORM); return LINKER;
            } 
            // fall through
          case 80: break;
          case 17: 
            { return MINGW;
            } 
            // fall through
          case 81: break;
          case 18: 
            { return LINUX;
            } 
            // fall through
          case 82: break;
          case 19: 
            { return ARM64;
            } 
            // fall through
          case 83: break;
          case 20: 
            { return ARM32;
            } 
            // fall through
          case 84: break;
          case 21: 
            { yybegin(WAITING_PLATFORM); return MODULES;
            } 
            // fall through
          case 85: break;
          case 22: 
            { yybegin(WAITING_PLATFORM); return PACKAGE;
            } 
            // fall through
          case 86: break;
          case 23: 
            { yybegin(WAITING_PLATFORM); return DEPENDS;
            } 
            // fall through
          case 87: break;
          case 24: 
            { yybegin(WAITING_PLATFORM); return HEADERS;
            } 
            // fall through
          case 88: break;
          case 25: 
            { return MIPS32;
            } 
            // fall through
          case 89: break;
          case 26: 
            { return WASM32;
            } 
            // fall through
          case 90: break;
          case 27: 
            { yybegin(WAITING_PLATFORM); return LANGUAGE;
            } 
            // fall through
          case 91: break;
          case 28: 
            { return IOS_X64;
            } 
            // fall through
          case 92: break;
          case 29: 
            { return ANDROID;
            } 
            // fall through
          case 93: break;
          case 30: 
            { return WATCHOS;
            } 
            // fall through
          case 94: break;
          case 31: 
            { return MIPSEL32;
            } 
            // fall through
          case 95: break;
          case 32: 
            { return TVOS_X64;
            } 
            // fall through
          case 96: break;
          case 33: 
            { yybegin(WAITING_PLATFORM); return LINKER_OPTS;
            } 
            // fall through
          case 97: break;
          case 34: 
            { yybegin(WAITING_PLATFORM); return ENTRY_POINT;
            } 
            // fall through
          case 98: break;
          case 35: 
            { return MINGW_X64;
            } 
            // fall through
          case 99: break;
          case 36: 
            { return MACOS_X64;
            } 
            // fall through
          case 100: break;
          case 37: 
            { return IOS_ARM64;
            } 
            // fall through
          case 101: break;
          case 38: 
            { return IOS_ARM32;
            } 
            // fall through
          case 102: break;
          case 39: 
            { return LINUX_X64;
            } 
            // fall through
          case 103: break;
          case 40: 
            { yybegin(WAITING_PLATFORM); return STRICT_ENUMS;
            } 
            // fall through
          case 104: break;
          case 41: 
            { return TVOS_ARM64;
            } 
            // fall through
          case 105: break;
          case 42: 
            { yybegin(WAITING_PLATFORM); return COMPILER_OPTS;
            } 
            // fall through
          case 106: break;
          case 43: 
            { yybegin(WAITING_PLATFORM); return LIBRARY_PATHS;
            } 
            // fall through
          case 107: break;
          case 44: 
            { yybegin(WAITING_PLATFORM); return HEADER_FILTER;
            } 
            // fall through
          case 108: break;
          case 45: 
            { return ANDROID_X64;
            } 
            // fall through
          case 109: break;
          case 46: 
            { return ANDROID_X86;
            } 
            // fall through
          case 110: break;
          case 47: 
            { return WATCHOS_X64;
            } 
            // fall through
          case 111: break;
          case 48: 
            { return WATCHOS_X86;
            } 
            // fall through
          case 112: break;
          case 49: 
            { return LINUX_MIPS32;
            } 
            // fall through
          case 113: break;
          case 50: 
            { yybegin(WAITING_PLATFORM); return EXCLUDED_MACROS;
            } 
            // fall through
          case 114: break;
          case 51: 
            { yybegin(WAITING_PLATFORM); return NON_STRICT_ENUMS;
            } 
            // fall through
          case 115: break;
          case 52: 
            { return ANDROID_ARM64;
            } 
            // fall through
          case 116: break;
          case 53: 
            { return ANDROID_ARM32;
            } 
            // fall through
          case 117: break;
          case 54: 
            { return WATCHOS_ARM64;
            } 
            // fall through
          case 118: break;
          case 55: 
            { return WATCHOS_ARM32;
            } 
            // fall through
          case 119: break;
          case 56: 
            { yybegin(WAITING_PLATFORM); return STATIC_LIBRARIES;
            } 
            // fall through
          case 120: break;
          case 57: 
            { return LINUX_MIPSEL32;
            } 
            // fall through
          case 121: break;
          case 58: 
            { return LINUX_ARM32_HFP;
            } 
            // fall through
          case 122: break;
          case 59: 
            { yybegin(WAITING_PLATFORM); return EXCLUDED_FUNCTIONS;
            } 
            // fall through
          case 123: break;
          case 60: 
            { yybegin(WAITING_PLATFORM); return EXCLUDE_SYSTEM_LIBS;
            } 
            // fall through
          case 124: break;
          case 61: 
            { yybegin(WAITING_PLATFORM); return NO_STRING_CONVERSION;
            } 
            // fall through
          case 125: break;
          case 62: 
            { yybegin(WAITING_PLATFORM); return EXCLUDE_DEPENDENT_MODULES;
            } 
            // fall through
          case 126: break;
          case 63: 
            { yybegin(WAITING_PLATFORM); return EXPORT_FORWARD_DECLARATIONS;
            } 
            // fall through
          case 127: break;
          case 64: 
            { yybegin(WAITING_PLATFORM); return DISABLE_DESIGNATED_INITIALIZER_CHECKS;
            } 
            // fall through
          case 128: break;
          default:
            zzScanError(ZZ_NO_MATCH);
          }
      }
    }
  }
public IElementType advance()