mobile/android/thirdparty/org/json/simple/parser/Yylex.java

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/mobile/android/thirdparty/org/json/simple/parser/Yylex.java	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,688 @@
     1.4 +/* The following code was generated by JFlex 1.4.2 */
     1.5 +
     1.6 +package org.json.simple.parser;
     1.7 +
     1.8 +class Yylex {
     1.9 +
    1.10 +  /** This character denotes the end of file */
    1.11 +  public static final int YYEOF = -1;
    1.12 +
    1.13 +  /** initial size of the lookahead buffer */
    1.14 +  private static final int ZZ_BUFFERSIZE = 16384;
    1.15 +
    1.16 +  /** lexical states */
    1.17 +  public static final int YYINITIAL = 0;
    1.18 +  public static final int STRING_BEGIN = 2;
    1.19 +
    1.20 +  /**
    1.21 +   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
    1.22 +   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
    1.23 +   *                  at the beginning of a line
    1.24 +   * l is of the form l = 2*k, k a non negative integer
    1.25 +   */
    1.26 +  private static final int ZZ_LEXSTATE[] = { 
    1.27 +     0,  0,  1, 1
    1.28 +  };
    1.29 +
    1.30 +  /** 
    1.31 +   * Translates characters to character classes
    1.32 +   */
    1.33 +  private static final String ZZ_CMAP_PACKED = 
    1.34 +    "\11\0\1\7\1\7\2\0\1\7\22\0\1\7\1\0\1\11\10\0"+
    1.35 +    "\1\6\1\31\1\2\1\4\1\12\12\3\1\32\6\0\4\1\1\5"+
    1.36 +    "\1\1\24\0\1\27\1\10\1\30\3\0\1\22\1\13\2\1\1\21"+
    1.37 +    "\1\14\5\0\1\23\1\0\1\15\3\0\1\16\1\24\1\17\1\20"+
    1.38 +    "\5\0\1\25\1\0\1\26\uff82\0";
    1.39 +
    1.40 +  /** 
    1.41 +   * Translates characters to character classes
    1.42 +   */
    1.43 +  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
    1.44 +
    1.45 +  /** 
    1.46 +   * Translates DFA states to action switch labels.
    1.47 +   */
    1.48 +  private static final int [] ZZ_ACTION = zzUnpackAction();
    1.49 +
    1.50 +  private static final String ZZ_ACTION_PACKED_0 =
    1.51 +    "\2\0\2\1\1\2\1\3\1\4\3\1\1\5\1\6"+
    1.52 +    "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\5\0"+
    1.53 +    "\1\14\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+
    1.54 +    "\1\0\1\25\1\0\1\25\4\0\1\26\1\27\2\0"+
    1.55 +    "\1\30";
    1.56 +
    1.57 +  private static int [] zzUnpackAction() {
    1.58 +    int [] result = new int[45];
    1.59 +    int offset = 0;
    1.60 +    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
    1.61 +    return result;
    1.62 +  }
    1.63 +
    1.64 +  private static int zzUnpackAction(String packed, int offset, int [] result) {
    1.65 +    int i = 0;       /* index in packed string  */
    1.66 +    int j = offset;  /* index in unpacked array */
    1.67 +    int l = packed.length();
    1.68 +    while (i < l) {
    1.69 +      int count = packed.charAt(i++);
    1.70 +      int value = packed.charAt(i++);
    1.71 +      do result[j++] = value; while (--count > 0);
    1.72 +    }
    1.73 +    return j;
    1.74 +  }
    1.75 +
    1.76 +
    1.77 +  /** 
    1.78 +   * Translates a state to a row index in the transition table
    1.79 +   */
    1.80 +  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
    1.81 +
    1.82 +  private static final String ZZ_ROWMAP_PACKED_0 =
    1.83 +    "\0\0\0\33\0\66\0\121\0\154\0\207\0\66\0\242"+
    1.84 +    "\0\275\0\330\0\66\0\66\0\66\0\66\0\66\0\66"+
    1.85 +    "\0\363\0\u010e\0\66\0\u0129\0\u0144\0\u015f\0\u017a\0\u0195"+
    1.86 +    "\0\66\0\66\0\66\0\66\0\66\0\66\0\66\0\66"+
    1.87 +    "\0\u01b0\0\u01cb\0\u01e6\0\u01e6\0\u0201\0\u021c\0\u0237\0\u0252"+
    1.88 +    "\0\66\0\66\0\u026d\0\u0288\0\66";
    1.89 +
    1.90 +  private static int [] zzUnpackRowMap() {
    1.91 +    int [] result = new int[45];
    1.92 +    int offset = 0;
    1.93 +    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
    1.94 +    return result;
    1.95 +  }
    1.96 +
    1.97 +  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
    1.98 +    int i = 0;  /* index in packed string  */
    1.99 +    int j = offset;  /* index in unpacked array */
   1.100 +    int l = packed.length();
   1.101 +    while (i < l) {
   1.102 +      int high = packed.charAt(i++) << 16;
   1.103 +      result[j++] = high | packed.charAt(i++);
   1.104 +    }
   1.105 +    return j;
   1.106 +  }
   1.107 +
   1.108 +  /** 
   1.109 +   * The transition table of the DFA
   1.110 +   */
   1.111 +  private static final int ZZ_TRANS [] = {
   1.112 +    2, 2, 3, 4, 2, 2, 2, 5, 2, 6, 
   1.113 +    2, 2, 7, 8, 2, 9, 2, 2, 2, 2, 
   1.114 +    2, 10, 11, 12, 13, 14, 15, 16, 16, 16, 
   1.115 +    16, 16, 16, 16, 16, 17, 18, 16, 16, 16, 
   1.116 +    16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
   1.117 +    16, 16, 16, 16, -1, -1, -1, -1, -1, -1, 
   1.118 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.119 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.120 +    -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, 
   1.121 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.122 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.123 +    -1, 4, 19, 20, -1, -1, -1, -1, -1, -1, 
   1.124 +    -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, 
   1.125 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.126 +    -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 
   1.127 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.128 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.129 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.130 +    21, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.131 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.132 +    -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, 
   1.133 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.134 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.135 +    23, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.136 +    -1, -1, -1, 16, 16, 16, 16, 16, 16, 16, 
   1.137 +    16, -1, -1, 16, 16, 16, 16, 16, 16, 16, 
   1.138 +    16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
   1.139 +    -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, 
   1.140 +    26, 27, 28, 29, 30, 31, 32, -1, -1, -1, 
   1.141 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.142 +    33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.143 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.144 +    -1, -1, -1, -1, -1, -1, 34, 35, -1, -1, 
   1.145 +    34, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.146 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.147 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.148 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.149 +    36, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.150 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.151 +    -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 
   1.152 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.153 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.154 +    -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.155 +    -1, -1, -1, 39, -1, 39, -1, 39, -1, -1, 
   1.156 +    -1, -1, -1, 39, 39, -1, -1, -1, -1, 39, 
   1.157 +    39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.158 +    -1, -1, 33, -1, 20, -1, -1, -1, -1, -1, 
   1.159 +    -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 
   1.160 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, 
   1.161 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.162 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.163 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.164 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.165 +    -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, 
   1.166 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.167 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 
   1.168 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.169 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   1.170 +    -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, 
   1.171 +    -1, -1, -1, -1, -1, 42, -1, 42, -1, 42, 
   1.172 +    -1, -1, -1, -1, -1, 42, 42, -1, -1, -1, 
   1.173 +    -1, 42, 42, -1, -1, -1, -1, -1, -1, -1, 
   1.174 +    -1, -1, 43, -1, 43, -1, 43, -1, -1, -1, 
   1.175 +    -1, -1, 43, 43, -1, -1, -1, -1, 43, 43, 
   1.176 +    -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 
   1.177 +    -1, 44, -1, 44, -1, -1, -1, -1, -1, 44, 
   1.178 +    44, -1, -1, -1, -1, 44, 44, -1, -1, -1, 
   1.179 +    -1, -1, -1, -1, -1, 
   1.180 +  };
   1.181 +
   1.182 +  /* error codes */
   1.183 +  private static final int ZZ_UNKNOWN_ERROR = 0;
   1.184 +  private static final int ZZ_NO_MATCH = 1;
   1.185 +  private static final int ZZ_PUSHBACK_2BIG = 2;
   1.186 +
   1.187 +  /* error messages for the codes above */
   1.188 +  private static final String ZZ_ERROR_MSG[] = {
   1.189 +    "Unkown internal scanner error",
   1.190 +    "Error: could not match input",
   1.191 +    "Error: pushback value was too large"
   1.192 +  };
   1.193 +
   1.194 +  /**
   1.195 +   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
   1.196 +   */
   1.197 +  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
   1.198 +
   1.199 +  private static final String ZZ_ATTRIBUTE_PACKED_0 =
   1.200 +    "\2\0\1\11\3\1\1\11\3\1\6\11\2\1\1\11"+
   1.201 +    "\5\0\10\11\1\0\1\1\1\0\1\1\4\0\2\11"+
   1.202 +    "\2\0\1\11";
   1.203 +
   1.204 +  private static int [] zzUnpackAttribute() {
   1.205 +    int [] result = new int[45];
   1.206 +    int offset = 0;
   1.207 +    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
   1.208 +    return result;
   1.209 +  }
   1.210 +
   1.211 +  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
   1.212 +    int i = 0;       /* index in packed string  */
   1.213 +    int j = offset;  /* index in unpacked array */
   1.214 +    int l = packed.length();
   1.215 +    while (i < l) {
   1.216 +      int count = packed.charAt(i++);
   1.217 +      int value = packed.charAt(i++);
   1.218 +      do result[j++] = value; while (--count > 0);
   1.219 +    }
   1.220 +    return j;
   1.221 +  }
   1.222 +
   1.223 +  /** the input device */
   1.224 +  private java.io.Reader zzReader;
   1.225 +
   1.226 +  /** the current state of the DFA */
   1.227 +  private int zzState;
   1.228 +
   1.229 +  /** the current lexical state */
   1.230 +  private int zzLexicalState = YYINITIAL;
   1.231 +
   1.232 +  /** this buffer contains the current text to be matched and is
   1.233 +      the source of the yytext() string */
   1.234 +  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
   1.235 +
   1.236 +  /** the textposition at the last accepting state */
   1.237 +  private int zzMarkedPos;
   1.238 +
   1.239 +  /** the current text position in the buffer */
   1.240 +  private int zzCurrentPos;
   1.241 +
   1.242 +  /** startRead marks the beginning of the yytext() string in the buffer */
   1.243 +  private int zzStartRead;
   1.244 +
   1.245 +  /** endRead marks the last character in the buffer, that has been read
   1.246 +      from input */
   1.247 +  private int zzEndRead;
   1.248 +
   1.249 +  /** number of newlines encountered up to the start of the matched text */
   1.250 +  private int yyline;
   1.251 +
   1.252 +  /** the number of characters up to the start of the matched text */
   1.253 +  private int yychar;
   1.254 +
   1.255 +  /**
   1.256 +   * the number of characters from the last newline up to the start of the 
   1.257 +   * matched text
   1.258 +   */
   1.259 +  private int yycolumn;
   1.260 +
   1.261 +  /** 
   1.262 +   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
   1.263 +   */
   1.264 +  private boolean zzAtBOL = true;
   1.265 +
   1.266 +  /** zzAtEOF == true <=> the scanner is at the EOF */
   1.267 +  private boolean zzAtEOF;
   1.268 +
   1.269 +  /* user code: */
   1.270 +private StringBuffer sb=new StringBuffer();
   1.271 +
   1.272 +int getPosition(){
   1.273 +	return yychar;
   1.274 +}
   1.275 +
   1.276 +
   1.277 +
   1.278 +  /**
   1.279 +   * Creates a new scanner
   1.280 +   * There is also a java.io.InputStream version of this constructor.
   1.281 +   *
   1.282 +   * @param   in  the java.io.Reader to read input from.
   1.283 +   */
   1.284 +  Yylex(java.io.Reader in) {
   1.285 +    this.zzReader = in;
   1.286 +  }
   1.287 +
   1.288 +  /**
   1.289 +   * Creates a new scanner.
   1.290 +   * There is also java.io.Reader version of this constructor.
   1.291 +   *
   1.292 +   * @param   in  the java.io.Inputstream to read input from.
   1.293 +   */
   1.294 +  Yylex(java.io.InputStream in) {
   1.295 +    this(new java.io.InputStreamReader(in));
   1.296 +  }
   1.297 +
   1.298 +  /** 
   1.299 +   * Unpacks the compressed character translation table.
   1.300 +   *
   1.301 +   * @param packed   the packed character translation table
   1.302 +   * @return         the unpacked character translation table
   1.303 +   */
   1.304 +  private static char [] zzUnpackCMap(String packed) {
   1.305 +    char [] map = new char[0x10000];
   1.306 +    int i = 0;  /* index in packed string  */
   1.307 +    int j = 0;  /* index in unpacked array */
   1.308 +    while (i < 90) {
   1.309 +      int  count = packed.charAt(i++);
   1.310 +      char value = packed.charAt(i++);
   1.311 +      do map[j++] = value; while (--count > 0);
   1.312 +    }
   1.313 +    return map;
   1.314 +  }
   1.315 +
   1.316 +
   1.317 +  /**
   1.318 +   * Refills the input buffer.
   1.319 +   *
   1.320 +   * @return      <code>false</code>, iff there was new input.
   1.321 +   * 
   1.322 +   * @exception   java.io.IOException  if any I/O-Error occurs
   1.323 +   */
   1.324 +  private boolean zzRefill() throws java.io.IOException {
   1.325 +
   1.326 +    /* first: make room (if you can) */
   1.327 +    if (zzStartRead > 0) {
   1.328 +      System.arraycopy(zzBuffer, zzStartRead,
   1.329 +                       zzBuffer, 0,
   1.330 +                       zzEndRead-zzStartRead);
   1.331 +
   1.332 +      /* translate stored positions */
   1.333 +      zzEndRead-= zzStartRead;
   1.334 +      zzCurrentPos-= zzStartRead;
   1.335 +      zzMarkedPos-= zzStartRead;
   1.336 +      zzStartRead = 0;
   1.337 +    }
   1.338 +
   1.339 +    /* is the buffer big enough? */
   1.340 +    if (zzCurrentPos >= zzBuffer.length) {
   1.341 +      /* if not: blow it up */
   1.342 +      char newBuffer[] = new char[zzCurrentPos*2];
   1.343 +      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
   1.344 +      zzBuffer = newBuffer;
   1.345 +    }
   1.346 +
   1.347 +    /* finally: fill the buffer with new input */
   1.348 +    int numRead = zzReader.read(zzBuffer, zzEndRead,
   1.349 +                                            zzBuffer.length-zzEndRead);
   1.350 +
   1.351 +    if (numRead > 0) {
   1.352 +      zzEndRead+= numRead;
   1.353 +      return false;
   1.354 +    }
   1.355 +    // unlikely but not impossible: read 0 characters, but not at end of stream    
   1.356 +    if (numRead == 0) {
   1.357 +      int c = zzReader.read();
   1.358 +      if (c == -1) {
   1.359 +        return true;
   1.360 +      } else {
   1.361 +        zzBuffer[zzEndRead++] = (char) c;
   1.362 +        return false;
   1.363 +      }     
   1.364 +    }
   1.365 +
   1.366 +	// numRead < 0
   1.367 +    return true;
   1.368 +  }
   1.369 +
   1.370 +    
   1.371 +  /**
   1.372 +   * Closes the input stream.
   1.373 +   */
   1.374 +  public final void yyclose() throws java.io.IOException {
   1.375 +    zzAtEOF = true;            /* indicate end of file */
   1.376 +    zzEndRead = zzStartRead;  /* invalidate buffer    */
   1.377 +
   1.378 +    if (zzReader != null)
   1.379 +      zzReader.close();
   1.380 +  }
   1.381 +
   1.382 +
   1.383 +  /**
   1.384 +   * Resets the scanner to read from a new input stream.
   1.385 +   * Does not close the old reader.
   1.386 +   *
   1.387 +   * All internal variables are reset, the old input stream 
   1.388 +   * <b>cannot</b> be reused (internal buffer is discarded and lost).
   1.389 +   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
   1.390 +   *
   1.391 +   * @param reader   the new input stream 
   1.392 +   */
   1.393 +  public final void yyreset(java.io.Reader reader) {
   1.394 +    zzReader = reader;
   1.395 +    zzAtBOL  = true;
   1.396 +    zzAtEOF  = false;
   1.397 +    zzEndRead = zzStartRead = 0;
   1.398 +    zzCurrentPos = zzMarkedPos = 0;
   1.399 +    yyline = yychar = yycolumn = 0;
   1.400 +    zzLexicalState = YYINITIAL;
   1.401 +  }
   1.402 +
   1.403 +
   1.404 +  /**
   1.405 +   * Returns the current lexical state.
   1.406 +   */
   1.407 +  public final int yystate() {
   1.408 +    return zzLexicalState;
   1.409 +  }
   1.410 +
   1.411 +
   1.412 +  /**
   1.413 +   * Enters a new lexical state
   1.414 +   *
   1.415 +   * @param newState the new lexical state
   1.416 +   */
   1.417 +  public final void yybegin(int newState) {
   1.418 +    zzLexicalState = newState;
   1.419 +  }
   1.420 +
   1.421 +
   1.422 +  /**
   1.423 +   * Returns the text matched by the current regular expression.
   1.424 +   */
   1.425 +  public final String yytext() {
   1.426 +    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
   1.427 +  }
   1.428 +
   1.429 +
   1.430 +  /**
   1.431 +   * Returns the character at position <tt>pos</tt> from the 
   1.432 +   * matched text. 
   1.433 +   * 
   1.434 +   * It is equivalent to yytext().charAt(pos), but faster
   1.435 +   *
   1.436 +   * @param pos the position of the character to fetch. 
   1.437 +   *            A value from 0 to yylength()-1.
   1.438 +   *
   1.439 +   * @return the character at position pos
   1.440 +   */
   1.441 +  public final char yycharat(int pos) {
   1.442 +    return zzBuffer[zzStartRead+pos];
   1.443 +  }
   1.444 +
   1.445 +
   1.446 +  /**
   1.447 +   * Returns the length of the matched text region.
   1.448 +   */
   1.449 +  public final int yylength() {
   1.450 +    return zzMarkedPos-zzStartRead;
   1.451 +  }
   1.452 +
   1.453 +
   1.454 +  /**
   1.455 +   * Reports an error that occured while scanning.
   1.456 +   *
   1.457 +   * In a wellformed scanner (no or only correct usage of 
   1.458 +   * yypushback(int) and a match-all fallback rule) this method 
   1.459 +   * will only be called with things that "Can't Possibly Happen".
   1.460 +   * If this method is called, something is seriously wrong
   1.461 +   * (e.g. a JFlex bug producing a faulty scanner etc.).
   1.462 +   *
   1.463 +   * Usual syntax/scanner level error handling should be done
   1.464 +   * in error fallback rules.
   1.465 +   *
   1.466 +   * @param   errorCode  the code of the errormessage to display
   1.467 +   */
   1.468 +  private void zzScanError(int errorCode) {
   1.469 +    String message;
   1.470 +    try {
   1.471 +      message = ZZ_ERROR_MSG[errorCode];
   1.472 +    }
   1.473 +    catch (ArrayIndexOutOfBoundsException e) {
   1.474 +      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
   1.475 +    }
   1.476 +
   1.477 +    throw new Error(message);
   1.478 +  } 
   1.479 +
   1.480 +
   1.481 +  /**
   1.482 +   * Pushes the specified amount of characters back into the input stream.
   1.483 +   *
   1.484 +   * They will be read again by then next call of the scanning method
   1.485 +   *
   1.486 +   * @param number  the number of characters to be read again.
   1.487 +   *                This number must not be greater than yylength()!
   1.488 +   */
   1.489 +  public void yypushback(int number)  {
   1.490 +    if ( number > yylength() )
   1.491 +      zzScanError(ZZ_PUSHBACK_2BIG);
   1.492 +
   1.493 +    zzMarkedPos -= number;
   1.494 +  }
   1.495 +
   1.496 +
   1.497 +  /**
   1.498 +   * Resumes scanning until the next regular expression is matched,
   1.499 +   * the end of input is encountered or an I/O-Error occurs.
   1.500 +   *
   1.501 +   * @return      the next token
   1.502 +   * @exception   java.io.IOException  if any I/O-Error occurs
   1.503 +   */
   1.504 +  public Yytoken yylex() throws java.io.IOException, ParseException {
   1.505 +    int zzInput;
   1.506 +    int zzAction;
   1.507 +
   1.508 +    // cached fields:
   1.509 +    int zzCurrentPosL;
   1.510 +    int zzMarkedPosL;
   1.511 +    int zzEndReadL = zzEndRead;
   1.512 +    char [] zzBufferL = zzBuffer;
   1.513 +    char [] zzCMapL = ZZ_CMAP;
   1.514 +
   1.515 +    int [] zzTransL = ZZ_TRANS;
   1.516 +    int [] zzRowMapL = ZZ_ROWMAP;
   1.517 +    int [] zzAttrL = ZZ_ATTRIBUTE;
   1.518 +
   1.519 +    while (true) {
   1.520 +      zzMarkedPosL = zzMarkedPos;
   1.521 +
   1.522 +      yychar+= zzMarkedPosL-zzStartRead;
   1.523 +
   1.524 +      zzAction = -1;
   1.525 +
   1.526 +      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
   1.527 +  
   1.528 +      zzState = ZZ_LEXSTATE[zzLexicalState];
   1.529 +
   1.530 +
   1.531 +      zzForAction: {
   1.532 +        while (true) {
   1.533 +    
   1.534 +          if (zzCurrentPosL < zzEndReadL)
   1.535 +            zzInput = zzBufferL[zzCurrentPosL++];
   1.536 +          else if (zzAtEOF) {
   1.537 +            zzInput = YYEOF;
   1.538 +            break zzForAction;
   1.539 +          }
   1.540 +          else {
   1.541 +            // store back cached positions
   1.542 +            zzCurrentPos  = zzCurrentPosL;
   1.543 +            zzMarkedPos   = zzMarkedPosL;
   1.544 +            boolean eof = zzRefill();
   1.545 +            // get translated positions and possibly new buffer
   1.546 +            zzCurrentPosL  = zzCurrentPos;
   1.547 +            zzMarkedPosL   = zzMarkedPos;
   1.548 +            zzBufferL      = zzBuffer;
   1.549 +            zzEndReadL     = zzEndRead;
   1.550 +            if (eof) {
   1.551 +              zzInput = YYEOF;
   1.552 +              break zzForAction;
   1.553 +            }
   1.554 +            else {
   1.555 +              zzInput = zzBufferL[zzCurrentPosL++];
   1.556 +            }
   1.557 +          }
   1.558 +          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
   1.559 +          if (zzNext == -1) break zzForAction;
   1.560 +          zzState = zzNext;
   1.561 +
   1.562 +          int zzAttributes = zzAttrL[zzState];
   1.563 +          if ( (zzAttributes & 1) == 1 ) {
   1.564 +            zzAction = zzState;
   1.565 +            zzMarkedPosL = zzCurrentPosL;
   1.566 +            if ( (zzAttributes & 8) == 8 ) break zzForAction;
   1.567 +          }
   1.568 +
   1.569 +        }
   1.570 +      }
   1.571 +
   1.572 +      // store back cached position
   1.573 +      zzMarkedPos = zzMarkedPosL;
   1.574 +
   1.575 +      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
   1.576 +        case 11: 
   1.577 +          { sb.append(yytext());
   1.578 +          }
   1.579 +        case 25: break;
   1.580 +        case 4: 
   1.581 +          { sb.delete(0, sb.length());yybegin(STRING_BEGIN);
   1.582 +          }
   1.583 +        case 26: break;
   1.584 +        case 16: 
   1.585 +          { sb.append('\b');
   1.586 +          }
   1.587 +        case 27: break;
   1.588 +        case 6: 
   1.589 +          { return new Yytoken(Yytoken.TYPE_RIGHT_BRACE,null);
   1.590 +          }
   1.591 +        case 28: break;
   1.592 +        case 23: 
   1.593 +          { Boolean val=Boolean.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);
   1.594 +          }
   1.595 +        case 29: break;
   1.596 +        case 22: 
   1.597 +          { return new Yytoken(Yytoken.TYPE_VALUE, null);
   1.598 +          }
   1.599 +        case 30: break;
   1.600 +        case 13: 
   1.601 +          { yybegin(YYINITIAL);return new Yytoken(Yytoken.TYPE_VALUE, sb.toString());
   1.602 +          }
   1.603 +        case 31: break;
   1.604 +        case 12: 
   1.605 +          { sb.append('\\');
   1.606 +          }
   1.607 +        case 32: break;
   1.608 +        case 21: 
   1.609 +          { Double val=Double.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);
   1.610 +          }
   1.611 +        case 33: break;
   1.612 +        case 1: 
   1.613 +          { throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_CHAR, new Character(yycharat(0)));
   1.614 +          }
   1.615 +        case 34: break;
   1.616 +        case 8: 
   1.617 +          { return new Yytoken(Yytoken.TYPE_RIGHT_SQUARE,null);
   1.618 +          }
   1.619 +        case 35: break;
   1.620 +        case 19: 
   1.621 +          { sb.append('\r');
   1.622 +          }
   1.623 +        case 36: break;
   1.624 +        case 15: 
   1.625 +          { sb.append('/');
   1.626 +          }
   1.627 +        case 37: break;
   1.628 +        case 10: 
   1.629 +          { return new Yytoken(Yytoken.TYPE_COLON,null);
   1.630 +          }
   1.631 +        case 38: break;
   1.632 +        case 14: 
   1.633 +          { sb.append('"');
   1.634 +          }
   1.635 +        case 39: break;
   1.636 +        case 5: 
   1.637 +          { return new Yytoken(Yytoken.TYPE_LEFT_BRACE,null);
   1.638 +          }
   1.639 +        case 40: break;
   1.640 +        case 17: 
   1.641 +          { sb.append('\f');
   1.642 +          }
   1.643 +        case 41: break;
   1.644 +        case 24: 
   1.645 +          { try{
   1.646 +														int ch=Integer.parseInt(yytext().substring(2),16);
   1.647 +														sb.append((char)ch);
   1.648 +													}
   1.649 +													catch(Exception e){
   1.650 +														throw new ParseException(yychar, ParseException.ERROR_UNEXPECTED_EXCEPTION, e);
   1.651 +													}
   1.652 +          }
   1.653 +        case 42: break;
   1.654 +        case 20: 
   1.655 +          { sb.append('\t');
   1.656 +          }
   1.657 +        case 43: break;
   1.658 +        case 7: 
   1.659 +          { return new Yytoken(Yytoken.TYPE_LEFT_SQUARE,null);
   1.660 +          }
   1.661 +        case 44: break;
   1.662 +        case 2: 
   1.663 +          { Long val=Long.valueOf(yytext()); return new Yytoken(Yytoken.TYPE_VALUE, val);
   1.664 +          }
   1.665 +        case 45: break;
   1.666 +        case 18: 
   1.667 +          { sb.append('\n');
   1.668 +          }
   1.669 +        case 46: break;
   1.670 +        case 9: 
   1.671 +          { return new Yytoken(Yytoken.TYPE_COMMA,null);
   1.672 +          }
   1.673 +        case 47: break;
   1.674 +        case 3: 
   1.675 +          { 
   1.676 +          }
   1.677 +        case 48: break;
   1.678 +        default: 
   1.679 +          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
   1.680 +            zzAtEOF = true;
   1.681 +            return null;
   1.682 +          } 
   1.683 +          else {
   1.684 +            zzScanError(ZZ_NO_MATCH);
   1.685 +          }
   1.686 +      }
   1.687 +    }
   1.688 +  }
   1.689 +
   1.690 +
   1.691 +}

mercurial