jsonlexer.java

来自「resetful样式的ws样例,一种面向资源的webservices服务」· Java 代码 · 共 721 行 · 第 1/2 页

JAVA
721
字号
/* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. *  * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved. *  * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development * and Distribution License("CDDL") (collectively, the "License").  You * may not use this file except in compliance with the License. You can obtain * a copy of the License at https://jersey.dev.java.net/CDDL+GPL.html * or jersey/legal/LICENSE.txt.  See the License for the specific * language governing permissions and limitations under the License. *  * When distributing the software, include this License Header Notice in each * file and include the License file at jersey/legal/LICENSE.txt. * Sun designates this particular file as subject to the "Classpath" exception * as provided by Sun in the GPL Version 2 section of the License file that * accompanied this code.  If applicable, add the following below the License * Header, with the fields enclosed by brackets [] replaced by your own * identifying information: "Portions Copyrighted [year] * [name of copyright owner]" *  * Contributor(s): *  * If you wish your version of this file to be governed by only the CDDL or * only the GPL Version 2, indicate your decision by adding "[Contributor] * elects to include this software in this distribution under the [CDDL or GPL * Version 2] license."  If you don't indicate a single choice of license, a * recipient has the option to distribute your version of this file under * either the CDDL, the GPL Version 2 or to extend the choice of license to * its licensees as provided above.  However, if you add GPL Version 2 code * and therefore, elected the GPL Version 2 license, then the option applies * only if the new code is made subject to such option by the copyright * holder. *//* The following code was generated by JFlex 1.4.1 on 4/8/08 12:58 PM */package com.sun.jersey.impl.json.reader;/** * This class is a scanner generated by  * <a href="http://www.jflex.de/">JFlex</a> 1.4.1 * on 4/8/08 12:58 PM from the specification file * <tt>etc/json.flex</tt> */class JsonLexer {  /** This character denotes the end of file */  public static final int YYEOF = -1;  /** initial size of the lookahead buffer */  private static final int ZZ_BUFFERSIZE = 16384;  /** lexical states */  public static final int STRING = 1;  public static final int YYINITIAL = 0;  /**    * Translates characters to character classes   */  private static final String ZZ_CMAP_PACKED =     "\10\0\2\1\1\31\2\0\1\31\22\0\1\1\1\0\1\27\10\0"+    "\1\7\1\10\1\2\1\5\1\32\1\3\11\4\1\11\6\0\4\34"+    "\1\6\1\34\24\0\1\12\1\30\1\13\3\0\1\23\1\33\2\0"+    "\1\21\1\22\5\0\1\24\1\0\1\26\3\0\1\17\1\25\1\16"+    "\1\20\5\0\1\14\1\0\1\15\uff82\0";  /**    * Translates characters to character classes   */  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);  /**    * Translates DFA states to action switch labels.   */  private static final int [] ZZ_ACTION = zzUnpackAction();  private static final String ZZ_ACTION_PACKED_0 =    "\2\0\1\1\1\0\2\2\1\3\1\4\1\5\1\6"+    "\1\7\1\10\3\0\1\11\1\12\1\13\6\0\1\14"+    "\1\15\1\0\1\16\1\17\1\20\1\21\1\22\1\23"+    "\1\2\1\0\1\2\4\0\1\24\1\0\1\25\1\0"+    "\1\26\1\0\1\27";  private static int [] zzUnpackAction() {    int [] result = new int[47];    int offset = 0;    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);    return result;  }  private static int zzUnpackAction(String packed, int offset, int [] result) {    int i = 0;       /* index in packed string  */    int j = offset;  /* index in unpacked array */    int l = packed.length();    while (i < l) {      int count = packed.charAt(i++);      int value = packed.charAt(i++);      do result[j++] = value; while (--count > 0);    }    return j;  }  /**    * Translates a state to a row index in the transition table   */  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();  private static final String ZZ_ROWMAP_PACKED_0 =    "\0\0\0\35\0\72\0\127\0\164\0\221\0\72\0\72"+    "\0\72\0\72\0\72\0\72\0\256\0\313\0\350\0\72"+    "\0\u0105\0\72\0\u0122\0\u013f\0\u015c\0\u0179\0\u0196\0\u01b3"+    "\0\72\0\72\0\u01d0\0\72\0\72\0\72\0\72\0\72"+    "\0\72\0\u01ed\0\u020a\0\u020a\0\u0227\0\u0244\0\u0261\0\u027e"+    "\0\72\0\u029b\0\72\0\u02b8\0\72\0\u02d5\0\72";  private static int [] zzUnpackRowMap() {    int [] result = new int[47];    int offset = 0;    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);    return result;  }  private static int zzUnpackRowMap(String packed, int offset, int [] result) {    int i = 0;  /* index in packed string  */    int j = offset;  /* index in unpacked array */    int l = packed.length();    while (i < l) {      int high = packed.charAt(i++) << 16;      result[j++] = high | packed.charAt(i++);    }    return j;  }  /**    * The transition table of the DFA   */  private static final int [] ZZ_TRANS = zzUnpackTrans();  private static final String ZZ_TRANS_PACKED_0 =    "\1\0\1\3\1\4\1\5\1\6\3\0\1\7\1\10"+    "\1\11\1\12\1\13\1\14\1\15\3\0\1\16\3\0"+    "\1\17\1\20\1\0\1\3\3\0\27\21\1\22\1\23"+    "\1\0\3\21\40\0\1\5\1\6\35\0\1\24\1\25"+    "\12\0\1\25\16\0\2\6\1\24\1\25\12\0\1\25"+    "\32\0\1\26\40\0\1\27\31\0\1\30\14\0\27\21"+    "\3\0\3\21\16\0\1\31\1\32\1\33\1\0\1\34"+    "\3\0\1\35\1\36\1\37\1\0\1\40\1\41\4\0"+    "\2\42\32\0\1\43\2\44\2\0\1\43\45\0\1\45"+    "\40\0\1\46\34\0\1\47\13\0\2\50\1\0\1\50"+    "\25\0\1\50\3\0\2\42\1\0\1\25\12\0\1\25"+    "\16\0\2\44\51\0\1\51\40\0\1\52\33\0\1\53"+    "\13\0\2\54\1\0\1\54\25\0\1\54\21\0\1\55"+    "\16\0\2\56\1\0\1\56\25\0\1\56\3\0\2\57"+    "\1\0\1\57\25\0\1\57";  private static int [] zzUnpackTrans() {    int [] result = new int[754];    int offset = 0;    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);    return result;  }  private static int zzUnpackTrans(String packed, int offset, int [] result) {    int i = 0;       /* index in packed string  */    int j = offset;  /* index in unpacked array */    int l = packed.length();    while (i < l) {      int count = packed.charAt(i++);      int value = packed.charAt(i++);      value--;      do result[j++] = value; while (--count > 0);    }    return j;  }  /* error codes */  private static final int ZZ_UNKNOWN_ERROR = 0;  private static final int ZZ_NO_MATCH = 1;  private static final int ZZ_PUSHBACK_2BIG = 2;  /* error messages for the codes above */  private static final String ZZ_ERROR_MSG[] = {    "Unkown internal scanner error",    "Error: could not match input",    "Error: pushback value was too large"  };  /**   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>   */  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();  private static final String ZZ_ATTRIBUTE_PACKED_0 =    "\2\0\1\11\1\0\2\1\6\11\3\0\1\11\1\1"+    "\1\11\6\0\2\11\1\0\6\11\1\1\1\0\1\1"+    "\4\0\1\11\1\0\1\11\1\0\1\11\1\0\1\11";  private static int [] zzUnpackAttribute() {    int [] result = new int[47];    int offset = 0;    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);    return result;  }  private static int zzUnpackAttribute(String packed, int offset, int [] result) {    int i = 0;       /* index in packed string  */    int j = offset;  /* index in unpacked array */    int l = packed.length();    while (i < l) {      int count = packed.charAt(i++);      int value = packed.charAt(i++);      do result[j++] = value; while (--count > 0);    }    return j;  }  /** the input device */  private java.io.Reader zzReader;  /** the current state of the DFA */  private int zzState;  /** the current lexical state */  private int zzLexicalState = YYINITIAL;  /** this buffer contains the current text to be matched and is      the source of the yytext() string */  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];  /** the textposition at the last accepting state */  private int zzMarkedPos;  /** the textposition at the last state to be included in yytext */  private int zzPushbackPos;  /** the current text position in the buffer */  private int zzCurrentPos;  /** startRead marks the beginning of the yytext() string in the buffer */  private int zzStartRead;  /** endRead marks the last character in the buffer, that has been read      from input */  private int zzEndRead;  /** number of newlines encountered up to the start of the matched text */  private int yyline;  /** the number of characters up to the start of the matched text */  private int yychar;  /**   * the number of characters from the last newline up to the start of the    * matched text   */  private int yycolumn;  /**    * zzAtBOL == true <=> the scanner is currently at the beginning of a line   */  private boolean zzAtBOL = true;  /** zzAtEOF == true <=> the scanner is at the EOF */  private boolean zzAtEOF;  /* user code: */   StringBuffer string = new StringBuffer();   public int getCharOffset() { return yychar; }   public int getLineNumber() { return yyline; }   public int getColumn() { return yycolumn; }  /**   * Creates a new scanner   * There is also a java.io.InputStream version of this constructor.   *   * @param   in  the java.io.Reader to read input from.   */  JsonLexer(java.io.Reader in) {    this.zzReader = in;  }  /**   * Creates a new scanner.   * There is also java.io.Reader version of this constructor.   *   * @param   in  the java.io.Inputstream to read input from.   */  JsonLexer(java.io.InputStream in) {    this(new java.io.InputStreamReader(in));  }  /**    * Unpacks the compressed character translation table.   *   * @param packed   the packed character translation table   * @return         the unpacked character translation table   */  private static char [] zzUnpackCMap(String packed) {    char [] map = new char[0x10000];    int i = 0;  /* index in packed string  */    int j = 0;  /* index in unpacked array */    while (i < 92) {      int  count = packed.charAt(i++);      char value = packed.charAt(i++);      do map[j++] = value; while (--count > 0);    }    return map;  }  /**   * Refills the input buffer.   *   * @return      <code>false</code>, iff there was new input.   *    * @exception   java.io.IOException  if any I/O-Error occurs   */  private boolean zzRefill() throws java.io.IOException {    /* first: make room (if you can) */    if (zzStartRead > 0) {      System.arraycopy(zzBuffer, zzStartRead,                       zzBuffer, 0,                       zzEndRead-zzStartRead);      /* translate stored positions */      zzEndRead-= zzStartRead;      zzCurrentPos-= zzStartRead;      zzMarkedPos-= zzStartRead;      zzPushbackPos-= zzStartRead;      zzStartRead = 0;    }    /* is the buffer big enough? */    if (zzCurrentPos >= zzBuffer.length) {      /* if not: blow it up */      char newBuffer[] = new char[zzCurrentPos*2];      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);      zzBuffer = newBuffer;    }    /* finally: fill the buffer with new input */    int numRead = zzReader.read(zzBuffer, zzEndRead,                                            zzBuffer.length-zzEndRead);    if (numRead < 0) {      return true;    }    else {      zzEndRead+= numRead;      return false;    }  }    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?