docs: public String next() throws java.io.IOException {
      int zzInput;
      int zzAction;
  
      // cached fields:
      int zzCurrentPosL;
      int zzMarkedPosL;
      int zzEndReadL = zzEndRead;
      char [] zzBufferL = zzBuffer;
      char [] zzCMapL = ZZ_CMAP;
  
      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];
  
  
        zzForAction: {
          while (true) {
      
            if (zzCurrentPosL < zzEndReadL)
              zzInput = zzBufferL[zzCurrentPosL++];
            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 = zzBufferL[zzCurrentPosL++];
              }
            }
            int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
            if (zzNext == -1) break zzForAction;
            zzState = zzNext;
  
            int zzAttributes = zzAttrL[zzState];
            if ( (zzAttributes & 1) == 1 ) {
              zzAction = zzState;
              zzMarkedPosL = zzCurrentPosL;
              if ( (zzAttributes & 8) == 8 ) break zzForAction;
            }
  
          }
        }
  
        // store back cached position
        zzMarkedPos = zzMarkedPosL;
  
        switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
          case 21: 
            { return("n't");
            }
          case 31: break;
          case 28: 
            // lookahead expression with fixed lookahead length
            yypushback(2);
            { return yytext();
            }
          case 32: break;
          case 27: 
            // lookahead expression with fixed lookahead length
            yypushback(1);
            { return yytext();
            }
          case 33: break;
          case 26: 
            // lookahead expression with fixed lookahead length
            yypushback(1);
            { return yytext();
            }
          case 34: break;
          case 12: 
            { return "/";
            }
          case 35: break;
          case 5: 
            { return yytext();
            }
          case 36: break;
          case 3: 
            { return "&";
            }
          case 37: break;
          case 6: 
            { yybegin(YYINITIAL); return "\"";
            }
          case 38: break;
          case 13: 
            { return "(";
            }
          case 39: break;
          case 8: 
            { return(")");
            }
          case 40: break;
          case 22: 
            { return "<";
            }
          case 41: break;
          case 23: 
            { return ">";
            }
          case 42: break;
          case 29: 
            { return "cannot";
            }
          case 43: break;
          case 1: 
            { return(yytext());
            }
          case 44: break;
          case 20: 
            // lookahead expression with fixed lookahead length
            yypushback(2);
            { return "\"";
            }
          case 45: break;
          case 16: 
            // lookahead expression with fixed lookahead length
            yypushback(1);
            { return "\"";
            }
          case 46: break;
          case 17: 
            { return "\"";
            }
          case 47: break;
          case 11: 
            { return("`");
            }
          case 48: break;
          case 14: 
            { return("{");
            }
          case 49: break;
          case 19: 
            { return("\"");
            }
          case 50: break;
          case 15: 
            { return("$");
            }
          case 51: break;
          case 7: 
            { return(yytext().substring(1, yytext().length()));
            }
          case 52: break;
          case 24: 
            // lookahead expression with fixed lookahead length
            yypushback(1);
            { yybegin(INQUOTE); return "\" \"";
            }
          case 53: break;
          case 10: 
            { return("%");
            }
          case 54: break;
          case 4: 
            { yybegin(YYINITIAL); return(yytext());
            }
          case 55: break;
          case 9: 
            { return("}");
            }
          case 56: break;
          case 30: 
            // lookahead expression with fixed lookahead length
            yypushback(1);
            { return removeWhite(yytext());
            }
          case 57: break;
          case 25: 
            { return removeWhite(yytext());
            }
          case 58: break;
          case 18: 
            // lookahead expression with fixed lookahead length
            yypushback(1);
            { yybegin(INQUOTE); return "\"";
            }
          case 59: break;
          case 2: 
            { yybegin(INQUOTE); return "\"";
            }
          case 60: break;
          default: 
            if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
              zzAtEOF = true;
                {
                  return null;
                }
            } 
            else {
              zzScanError(ZZ_NO_MATCH);
            }
        }
      }
    }