diff --git a/gson/pom.xml b/gson/pom.xml
index 096e3171..0096988d 100644
--- a/gson/pom.xml
+++ b/gson/pom.xml
@@ -4,7 +4,7 @@
com.google.code.gson
gson
jar
- 1.2.2
+ 1.2.3
2008
Gson
http://code.google.com/p/google-gson/
diff --git a/gson/src/main/java/com/google/gson/JsonParser.java b/gson/src/main/java/com/google/gson/JsonParser.java
index 036c924e..7dd9d7c2 100755
--- a/gson/src/main/java/com/google/gson/JsonParser.java
+++ b/gson/src/main/java/com/google/gson/JsonParser.java
@@ -1,444 +1,444 @@
-/* Generated By:JavaCC: Do not edit this line. JsonParser.java */
-package com.google.gson;
-
-@SuppressWarnings("all")
-final class JsonParser implements JsonParserConstants {
-
- final public JsonElement parse() throws ParseException {
- JsonElement json = null;
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case 20:
- json = JsonObject();
- break;
- case 25:
- json = JsonArray();
- break;
- case DIGITS:
- case SINGLE_QUOTE_LITERAL:
- case DOUBLE_QUOTE_LITERAL:
- case 27:
- case 28:
- case 29:
- json = JsonPrimitive();
- break;
- case 22:
- json = JsonNull();
- break;
- default:
- jj_la1[0] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
- }
- {if (true) return json;}
- throw new Error("Missing return statement in function");
- }
-
- final private JsonObject JsonObject() throws ParseException {
- JsonObject o = new JsonObject();
- jj_consume_token(20);
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case SINGLE_QUOTE_LITERAL:
- case DOUBLE_QUOTE_LITERAL:
- Members(o);
- break;
- default:
- jj_la1[1] = jj_gen;
- ;
- }
- jj_consume_token(21);
- {if (true) return o;}
- throw new Error("Missing return statement in function");
- }
-
- final private JsonNull JsonNull() throws ParseException {
- JsonNull json = JsonNull.INSTANCE;
- jj_consume_token(22);
- {if (true) return json;}
- throw new Error("Missing return statement in function");
- }
-
- final private void Members(JsonObject o) throws ParseException {
- Pair(o);
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case 23:
- jj_consume_token(23);
- Members(o);
- break;
- default:
- jj_la1[2] = jj_gen;
- ;
- }
- }
-
- final private void Pair(JsonObject o) throws ParseException {
- JsonPrimitive property;
- JsonElement value;
- property = JsonString();
- jj_consume_token(24);
- value = JsonValue();
- o.add(property.getAsString(), value);
- }
-
- final private JsonArray JsonArray() throws ParseException {
- JsonArray array = new JsonArray();
- jj_consume_token(25);
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case DIGITS:
- case SINGLE_QUOTE_LITERAL:
- case DOUBLE_QUOTE_LITERAL:
- case 20:
- case 22:
- case 25:
- case 27:
- case 28:
- case 29:
- Elements(array);
- break;
- default:
- jj_la1[3] = jj_gen;
- ;
- }
- jj_consume_token(26);
- array.reverse();
- {if (true) return array;}
- throw new Error("Missing return statement in function");
- }
-
- final private void Elements(JsonArray array) throws ParseException {
- JsonElement element;
- element = JsonValue();
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case 23:
- jj_consume_token(23);
- Elements(array);
- break;
- default:
- jj_la1[4] = jj_gen;
- ;
- }
- array.add(element);
- }
-
- final private JsonElement JsonValue() throws ParseException {
- JsonElement o = null;
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case SINGLE_QUOTE_LITERAL:
- case DOUBLE_QUOTE_LITERAL:
- o = JsonString();
- break;
- case DIGITS:
- case 29:
- o = JsonNumber();
- break;
- case 20:
- o = JsonObject();
- break;
- case 25:
- o = JsonArray();
- break;
- case 27:
- jj_consume_token(27);
- o = new JsonPrimitive(true);
- break;
- case 28:
- jj_consume_token(28);
- o = new JsonPrimitive(false);
- break;
- case 22:
- jj_consume_token(22);
- break;
- default:
- jj_la1[5] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
- }
- {if (true) return o;}
- throw new Error("Missing return statement in function");
- }
-
- final private JsonPrimitive JsonPrimitive() throws ParseException {
- JsonPrimitive value;
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case SINGLE_QUOTE_LITERAL:
- case DOUBLE_QUOTE_LITERAL:
- value = JsonString();
- {if (true) return value;}
- break;
- case DIGITS:
- case 29:
- value = JsonNumber();
- {if (true) return value;}
- break;
- case 27:
- jj_consume_token(27);
- {if (true) return new JsonPrimitive(true);}
- break;
- case 28:
- jj_consume_token(28);
- {if (true) return new JsonPrimitive(false);}
- break;
- default:
- jj_la1[6] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
- }
- throw new Error("Missing return statement in function");
- }
-
- final private JsonPrimitive JsonNumber() throws ParseException {
- String intpart = null,
- fracpart = null,
- exppart = null;
- intpart = JsonInt();
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case 30:
- fracpart = JsonFrac();
- break;
- default:
- jj_la1[7] = jj_gen;
- ;
- }
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case E:
- exppart = JsonExp();
- break;
- default:
- jj_la1[8] = jj_gen;
- ;
- }
- Number n;
- if (exppart != null) {
- n = new java.math.BigDecimal(intpart + fracpart + exppart);
- } else if (fracpart != null) {
- n = new Double(intpart + fracpart);
- } else {
- // See if the number fits in an integer, or long
- // Use BigInteger only if it is big enough.
- if (intpart.length() < 10) {
- n = new Integer(intpart);
- } else if (intpart.length() < 19) {
- n = new Long(intpart);
- } else {
- n = new java.math.BigInteger(intpart);
- }
- }
- {if (true) return new JsonPrimitive(n);}
- throw new Error("Missing return statement in function");
- }
-
- final private String JsonInt() throws ParseException {
- String digits;
- boolean negative = false;
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case 29:
- jj_consume_token(29);
- negative = true;
- break;
- default:
- jj_la1[9] = jj_gen;
- ;
- }
- digits = Digits();
- if(negative)
- {if (true) return "-" + digits;}
- {if (true) return digits;}
- throw new Error("Missing return statement in function");
- }
-
- final private String JsonFrac() throws ParseException {
- String digits;
- jj_consume_token(30);
- digits = Digits();
- {if (true) return "." + digits;}
- throw new Error("Missing return statement in function");
- }
-
- final private String JsonExp() throws ParseException {
- Token t;
- String digits;
- t = jj_consume_token(E);
- digits = Digits();
- {if (true) return t.image + digits;}
- throw new Error("Missing return statement in function");
- }
-
- final private String Digits() throws ParseException {
- Token t;
- t = jj_consume_token(DIGITS);
- {if (true) return t.image;}
- throw new Error("Missing return statement in function");
- }
-
- final private JsonPrimitive JsonString() throws ParseException {
- Token t;
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case SINGLE_QUOTE_LITERAL:
- t = jj_consume_token(SINGLE_QUOTE_LITERAL);
- break;
- case DOUBLE_QUOTE_LITERAL:
- t = jj_consume_token(DOUBLE_QUOTE_LITERAL);
- break;
- default:
- jj_la1[10] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
- }
- String value = StringUnmarshaller.unmarshall(t.image);
- {if (true) return new JsonPrimitive(value);}
- throw new Error("Missing return statement in function");
- }
-
- public JsonParserTokenManager token_source;
- SimpleCharStream jj_input_stream;
- public Token token, jj_nt;
- private int jj_ntk;
- private int jj_gen;
- final private int[] jj_la1 = new int[11];
- static private int[] jj_la1_0;
- static {
- jj_la1_0();
- }
- private static void jj_la1_0() {
- jj_la1_0 = new int[] {0x3a500c40,0xc00,0x800000,0x3a500c40,0x800000,0x3a500c40,0x38000c40,0x40000000,0x20,0x20000000,0xc00,};
- }
-
- public JsonParser(java.io.InputStream stream) {
- this(stream, null);
- }
- public JsonParser(java.io.InputStream stream, String encoding) {
- try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
- token_source = new JsonParserTokenManager(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 11; i++) jj_la1[i] = -1;
- }
-
- public void ReInit(java.io.InputStream stream) {
- ReInit(stream, null);
- }
- public void ReInit(java.io.InputStream stream, String encoding) {
- try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
- token_source.ReInit(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 11; i++) jj_la1[i] = -1;
- }
-
- public JsonParser(java.io.Reader stream) {
- jj_input_stream = new SimpleCharStream(stream, 1, 1);
- token_source = new JsonParserTokenManager(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 11; i++) jj_la1[i] = -1;
- }
-
- public void ReInit(java.io.Reader stream) {
- jj_input_stream.ReInit(stream, 1, 1);
- token_source.ReInit(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 11; i++) jj_la1[i] = -1;
- }
-
- public JsonParser(JsonParserTokenManager tm) {
- token_source = tm;
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 11; i++) jj_la1[i] = -1;
- }
-
- public void ReInit(JsonParserTokenManager tm) {
- token_source = tm;
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 11; i++) jj_la1[i] = -1;
- }
-
- final private Token jj_consume_token(int kind) throws ParseException {
- Token oldToken;
- if ((oldToken = token).next != null) token = token.next;
- else token = token.next = token_source.getNextToken();
- jj_ntk = -1;
- if (token.kind == kind) {
- jj_gen++;
- return token;
- }
- token = oldToken;
- jj_kind = kind;
- throw generateParseException();
- }
-
- final public Token getNextToken() {
- if (token.next != null) token = token.next;
- else token = token.next = token_source.getNextToken();
- jj_ntk = -1;
- jj_gen++;
- return token;
- }
-
- final public Token getToken(int index) {
- Token t = token;
- for (int i = 0; i < index; i++) {
- if (t.next != null) t = t.next;
- else t = t.next = token_source.getNextToken();
- }
- return t;
- }
-
- final private int jj_ntk() {
- if ((jj_nt=token.next) == null)
- return (jj_ntk = (token.next=token_source.getNextToken()).kind);
- else
- return (jj_ntk = jj_nt.kind);
- }
-
- private java.util.Vector jj_expentries = new java.util.Vector();
- private int[] jj_expentry;
- private int jj_kind = -1;
-
- public ParseException generateParseException() {
- jj_expentries.removeAllElements();
- boolean[] la1tokens = new boolean[31];
- for (int i = 0; i < 31; i++) {
- la1tokens[i] = false;
- }
- if (jj_kind >= 0) {
- la1tokens[jj_kind] = true;
- jj_kind = -1;
- }
- for (int i = 0; i < 11; i++) {
- if (jj_la1[i] == jj_gen) {
- for (int j = 0; j < 32; j++) {
- if ((jj_la1_0[i] & (1<= 0) {
+ la1tokens[jj_kind] = true;
+ jj_kind = -1;
+ }
+ for (int i = 0; i < 11; i++) {
+ if (jj_la1[i] == jj_gen) {
+ for (int j = 0; j < 32; j++) {
+ if ((jj_la1_0[i] & (1<",
- "\" \"",
- "\"\\t\"",
- "\"\\n\"",
- "\"\\r\"",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "\"\\\"\"",
- "\"\\\\\"",
- "",
- "",
- "",
- "\"u\"",
- "",
- "",
- "\"{\"",
- "\"}\"",
- "\"null\"",
- "\",\"",
- "\":\"",
- "\"[\"",
- "\"]\"",
- "\"true\"",
- "\"false\"",
- "\"-\"",
- "\".\"",
- };
-
-}
+/* Generated By:JavaCC: Do not edit this line. JsonParserConstants.java */
+package com.google.gson;
+
+interface JsonParserConstants {
+
+ int EOF = 0;
+ int E = 5;
+ int DIGITS = 6;
+ int HEX_CHAR = 7;
+ int UNICODE_CHAR = 8;
+ int ESCAPE_CHAR = 9;
+ int SINGLE_QUOTE_LITERAL = 10;
+ int DOUBLE_QUOTE_LITERAL = 11;
+ int QUOTE = 12;
+ int ENDQUOTE = 14;
+ int CHAR = 15;
+ int CNTRL_ESC = 16;
+ int HEX = 18;
+ int HEX_ESC = 19;
+
+ int DEFAULT = 0;
+ int STRING_STATE = 1;
+ int ESC_STATE = 2;
+ int HEX_STATE = 3;
+
+ String[] tokenImage = {
+ "",
+ "\" \"",
+ "\"\\t\"",
+ "\"\\n\"",
+ "\"\\r\"",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\"\\\"\"",
+ "\"\\\\\"",
+ "",
+ "",
+ "",
+ "\"u\"",
+ "",
+ "",
+ "\"{\"",
+ "\"}\"",
+ "\"null\"",
+ "\",\"",
+ "\":\"",
+ "\"[\"",
+ "\"]\"",
+ "\"true\"",
+ "\"false\"",
+ "\"-\"",
+ "\".\"",
+ };
+
+}
diff --git a/gson/src/main/java/com/google/gson/JsonParserTokenManager.java b/gson/src/main/java/com/google/gson/JsonParserTokenManager.java
index 86a52418..35e3789d 100755
--- a/gson/src/main/java/com/google/gson/JsonParserTokenManager.java
+++ b/gson/src/main/java/com/google/gson/JsonParserTokenManager.java
@@ -1,1004 +1,1004 @@
-/* Generated By:JavaCC: Do not edit this line. JsonParserTokenManager.java */
-package com.google.gson;
-
-@SuppressWarnings("all")
-final class JsonParserTokenManager implements JsonParserConstants
-{
- public java.io.PrintStream debugStream = System.out;
- public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
-private final int jjMoveStringLiteralDfa0_3()
-{
- return jjMoveNfa_3(0, 0);
-}
-private final void jjCheckNAdd(int state)
-{
- if (jjrounds[state] != jjround)
- {
- jjstateSet[jjnewStateCnt++] = state;
- jjrounds[state] = jjround;
- }
-}
-private final void jjAddStates(int start, int end)
-{
- do {
- jjstateSet[jjnewStateCnt++] = jjnextStates[start];
- } while (start++ != end);
-}
-private final void jjCheckNAddTwoStates(int state1, int state2)
-{
- jjCheckNAdd(state1);
- jjCheckNAdd(state2);
-}
-private final void jjCheckNAddStates(int start, int end)
-{
- do {
- jjCheckNAdd(jjnextStates[start]);
- } while (start++ != end);
-}
-private final void jjCheckNAddStates(int start)
-{
- jjCheckNAdd(jjnextStates[start]);
- jjCheckNAdd(jjnextStates[start + 1]);
-}
-private final int jjMoveNfa_3(int startState, int curPos)
-{
- int[] nextStates;
- int startsAt = 0;
- jjnewStateCnt = 4;
- int i = 1;
- jjstateSet[0] = startState;
- int j, kind = 0x7fffffff;
- for (;;)
- {
- if (++jjround == 0x7fffffff)
- ReInitRounds();
- if (curChar < 64)
- {
- long l = 1L << curChar;
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 0:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 1;
- break;
- case 1:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 2;
- break;
- case 2:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 3;
- break;
- case 3:
- if ((0x3ff000000000000L & l) != 0L && kind > 19)
- kind = 19;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else if (curChar < 128)
- {
- long l = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 0:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 1;
- break;
- case 1:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 2;
- break;
- case 2:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 3;
- break;
- case 3:
- if ((0x7e0000007eL & l) != 0L && kind > 19)
- kind = 19;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else
- {
- int hiByte = (int)(curChar >> 8);
- int i1 = hiByte >> 6;
- long l1 = 1L << (hiByte & 077);
- int i2 = (curChar & 0xff) >> 6;
- long l2 = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- default : break;
- }
- } while(i != startsAt);
- }
- if (kind != 0x7fffffff)
- {
- jjmatchedKind = kind;
- jjmatchedPos = curPos;
- kind = 0x7fffffff;
- }
- ++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt)))
- return curPos;
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) { return curPos; }
- }
-}
+/* Generated By:JavaCC: Do not edit this line. JsonParserTokenManager.java */
+package com.google.gson;
+
+@SuppressWarnings("all")
+final class JsonParserTokenManager implements JsonParserConstants
+{
+ public java.io.PrintStream debugStream = System.out;
+ public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjMoveStringLiteralDfa0_3()
+{
+ return jjMoveNfa_3(0, 0);
+}
+private final void jjCheckNAdd(int state)
+{
+ if (jjrounds[state] != jjround)
+ {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+}
+private final void jjAddStates(int start, int end)
+{
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+}
+private final void jjCheckNAddTwoStates(int state1, int state2)
+{
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+}
+private final void jjCheckNAddStates(int start, int end)
+{
+ do {
+ jjCheckNAdd(jjnextStates[start]);
+ } while (start++ != end);
+}
+private final void jjCheckNAddStates(int start)
+{
+ jjCheckNAdd(jjnextStates[start]);
+ jjCheckNAdd(jjnextStates[start + 1]);
+}
+private final int jjMoveNfa_3(int startState, int curPos)
+{
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 4;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 1;
+ break;
+ case 1:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 2;
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 3;
+ break;
+ case 3:
+ if ((0x3ff000000000000L & l) != 0L && kind > 19)
+ kind = 19;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 1;
+ break;
+ case 1:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 2;
+ break;
+ case 2:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 3;
+ break;
+ case 3:
+ if ((0x7e0000007eL & l) != 0L && kind > 19)
+ kind = 19;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (int)(curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
private final int jjStopStringLiteralDfa_0(int pos, long active0)
-{
+{
switch (pos)
- {
- case 0:
- if ((active0 & 0x1000L) != 0L)
- return 31;
- return -1;
- default :
- return -1;
- }
-}
+ {
+ case 0:
+ if ((active0 & 0x1000L) != 0L)
+ return 31;
+ return -1;
+ default :
+ return -1;
+ }
+}
private final int jjStartNfa_0(int pos, long active0)
-{
- return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
-}
-private final int jjStopAtPos(int pos, int kind)
-{
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- return pos + 1;
-}
-private final int jjStartNfaWithStates_0(int pos, int kind, int state)
-{
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) { return pos + 1; }
- return jjMoveNfa_0(state, pos + 1);
-}
-private final int jjMoveStringLiteralDfa0_0()
-{
- switch(curChar)
- {
- case 34:
- return jjStartNfaWithStates_0(0, 12, 31);
- case 44:
- return jjStopAtPos(0, 23);
- case 45:
- return jjStopAtPos(0, 29);
- case 46:
- return jjStopAtPos(0, 30);
- case 58:
- return jjStopAtPos(0, 24);
- case 91:
- return jjStopAtPos(0, 25);
- case 93:
- return jjStopAtPos(0, 26);
- case 102:
- return jjMoveStringLiteralDfa1_0(0x10000000L);
- case 110:
- return jjMoveStringLiteralDfa1_0(0x400000L);
- case 116:
- return jjMoveStringLiteralDfa1_0(0x8000000L);
- case 123:
- return jjStopAtPos(0, 20);
- case 125:
- return jjStopAtPos(0, 21);
- default :
- return jjMoveNfa_0(0, 0);
- }
-}
-private final int jjMoveStringLiteralDfa1_0(long active0)
-{
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_0(0, active0);
- return 1;
- }
- switch(curChar)
- {
- case 97:
- return jjMoveStringLiteralDfa2_0(active0, 0x10000000L);
- case 114:
- return jjMoveStringLiteralDfa2_0(active0, 0x8000000L);
- case 117:
- return jjMoveStringLiteralDfa2_0(active0, 0x400000L);
- default :
- break;
- }
- return jjStartNfa_0(0, active0);
-}
-private final int jjMoveStringLiteralDfa2_0(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(0, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_0(1, active0);
- return 2;
- }
- switch(curChar)
- {
- case 108:
- return jjMoveStringLiteralDfa3_0(active0, 0x10400000L);
- case 117:
- return jjMoveStringLiteralDfa3_0(active0, 0x8000000L);
- default :
- break;
- }
- return jjStartNfa_0(1, active0);
-}
-private final int jjMoveStringLiteralDfa3_0(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(1, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_0(2, active0);
- return 3;
- }
- switch(curChar)
- {
- case 101:
- if ((active0 & 0x8000000L) != 0L)
- return jjStopAtPos(3, 27);
- break;
- case 108:
- if ((active0 & 0x400000L) != 0L)
- return jjStopAtPos(3, 22);
- break;
- case 115:
- return jjMoveStringLiteralDfa4_0(active0, 0x10000000L);
- default :
- break;
- }
- return jjStartNfa_0(2, active0);
-}
-private final int jjMoveStringLiteralDfa4_0(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(2, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_0(3, active0);
- return 4;
- }
- switch(curChar)
- {
- case 101:
- if ((active0 & 0x10000000L) != 0L)
- return jjStopAtPos(4, 28);
- break;
- default :
- break;
- }
- return jjStartNfa_0(3, active0);
-}
+{
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private final int jjStopAtPos(int pos, int kind)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+}
+private final int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_0(state, pos + 1);
+}
+private final int jjMoveStringLiteralDfa0_0()
+{
+ switch(curChar)
+ {
+ case 34:
+ return jjStartNfaWithStates_0(0, 12, 31);
+ case 44:
+ return jjStopAtPos(0, 23);
+ case 45:
+ return jjStopAtPos(0, 29);
+ case 46:
+ return jjStopAtPos(0, 30);
+ case 58:
+ return jjStopAtPos(0, 24);
+ case 91:
+ return jjStopAtPos(0, 25);
+ case 93:
+ return jjStopAtPos(0, 26);
+ case 102:
+ return jjMoveStringLiteralDfa1_0(0x10000000L);
+ case 110:
+ return jjMoveStringLiteralDfa1_0(0x400000L);
+ case 116:
+ return jjMoveStringLiteralDfa1_0(0x8000000L);
+ case 123:
+ return jjStopAtPos(0, 20);
+ case 125:
+ return jjStopAtPos(0, 21);
+ default :
+ return jjMoveNfa_0(0, 0);
+ }
+}
+private final int jjMoveStringLiteralDfa1_0(long active0)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0);
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 97:
+ return jjMoveStringLiteralDfa2_0(active0, 0x10000000L);
+ case 114:
+ return jjMoveStringLiteralDfa2_0(active0, 0x8000000L);
+ case 117:
+ return jjMoveStringLiteralDfa2_0(active0, 0x400000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(0, active0);
+}
+private final int jjMoveStringLiteralDfa2_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(0, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(1, active0);
+ return 2;
+ }
+ switch(curChar)
+ {
+ case 108:
+ return jjMoveStringLiteralDfa3_0(active0, 0x10400000L);
+ case 117:
+ return jjMoveStringLiteralDfa3_0(active0, 0x8000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(1, active0);
+}
+private final int jjMoveStringLiteralDfa3_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(1, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(2, active0);
+ return 3;
+ }
+ switch(curChar)
+ {
+ case 101:
+ if ((active0 & 0x8000000L) != 0L)
+ return jjStopAtPos(3, 27);
+ break;
+ case 108:
+ if ((active0 & 0x400000L) != 0L)
+ return jjStopAtPos(3, 22);
+ break;
+ case 115:
+ return jjMoveStringLiteralDfa4_0(active0, 0x10000000L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(2, active0);
+}
+private final int jjMoveStringLiteralDfa4_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(2, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(3, active0);
+ return 4;
+ }
+ switch(curChar)
+ {
+ case 101:
+ if ((active0 & 0x10000000L) != 0L)
+ return jjStopAtPos(4, 28);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(3, active0);
+}
static final long[] jjbitVec0 = {
0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
-};
+};
static final long[] jjbitVec2 = {
0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
-};
-private final int jjMoveNfa_0(int startState, int curPos)
-{
- int[] nextStates;
- int startsAt = 0;
- jjnewStateCnt = 31;
- int i = 1;
- jjstateSet[0] = startState;
- int j, kind = 0x7fffffff;
- for (;;)
- {
- if (++jjround == 0x7fffffff)
- ReInitRounds();
- if (curChar < 64)
- {
- long l = 1L << curChar;
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 31:
- if ((0xfffffffbffffdbffL & l) != 0L)
- jjCheckNAddStates(0, 3);
- else if (curChar == 34)
- {
- if (kind > 11)
- kind = 11;
- }
- break;
- case 0:
- if ((0x3ff000000000000L & l) != 0L)
- {
- if (kind > 6)
- kind = 6;
- jjCheckNAdd(2);
- }
- else if (curChar == 34)
- jjCheckNAddStates(0, 3);
- else if (curChar == 39)
- jjCheckNAddStates(4, 7);
- break;
- case 1:
- if ((0x280000000000L & l) != 0L && kind > 5)
- kind = 5;
- break;
- case 2:
- if ((0x3ff000000000000L & l) == 0L)
- break;
- if (kind > 6)
- kind = 6;
- jjCheckNAdd(2);
- break;
- case 4:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 5;
- break;
- case 5:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 6;
- break;
- case 6:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 7;
- break;
- case 7:
- if ((0x3ff000000000000L & l) != 0L && kind > 8)
- kind = 8;
- break;
- case 9:
- if (curChar == 39)
- jjCheckNAddStates(4, 7);
- break;
- case 10:
- if ((0xffffff7fffffdbffL & l) != 0L)
- jjCheckNAddStates(4, 7);
- break;
- case 12:
- if ((0x8400000000L & l) != 0L)
- jjCheckNAddStates(4, 7);
- break;
- case 14:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 15;
- break;
- case 15:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 16;
- break;
- case 16:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 17;
- break;
- case 17:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(4, 7);
- break;
- case 19:
- if (curChar == 39 && kind > 10)
- kind = 10;
- break;
- case 20:
- if (curChar == 34)
- jjCheckNAddStates(0, 3);
- break;
- case 21:
- if ((0xfffffffbffffdbffL & l) != 0L)
- jjCheckNAddStates(0, 3);
- break;
- case 23:
- if ((0x8400000000L & l) != 0L)
- jjCheckNAddStates(0, 3);
- break;
- case 25:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 26;
- break;
- case 26:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 27;
- break;
- case 27:
- if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 28;
- break;
- case 28:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(0, 3);
- break;
- case 30:
- if (curChar == 34 && kind > 11)
- kind = 11;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else if (curChar < 128)
- {
- long l = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 31:
- if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(0, 3);
- else if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 24;
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 23;
- break;
- case 0:
- if ((0x2000000020L & l) != 0L)
- {
- if (kind > 5)
- kind = 5;
- jjstateSet[jjnewStateCnt++] = 1;
- }
- else if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 3;
- break;
- case 3:
- if (curChar == 117)
- jjstateSet[jjnewStateCnt++] = 4;
- break;
- case 4:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 5;
- break;
- case 5:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 6;
- break;
- case 6:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 7;
- break;
- case 7:
- if ((0x7e0000007eL & l) != 0L && kind > 8)
- kind = 8;
- break;
- case 8:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 3;
- break;
- case 10:
- if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(4, 7);
- break;
- case 11:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 12;
- break;
- case 12:
- if ((0x14404410000000L & l) != 0L)
- jjCheckNAddStates(4, 7);
- break;
- case 13:
- if (curChar == 117)
- jjstateSet[jjnewStateCnt++] = 14;
- break;
- case 14:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 15;
- break;
- case 15:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 16;
- break;
- case 16:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 17;
- break;
- case 17:
- if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(4, 7);
- break;
- case 18:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 13;
- break;
- case 21:
- if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(0, 3);
- break;
- case 22:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 23;
- break;
- case 23:
- if ((0x14404410000000L & l) != 0L)
- jjCheckNAddStates(0, 3);
- break;
- case 24:
- if (curChar == 117)
- jjstateSet[jjnewStateCnt++] = 25;
- break;
- case 25:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 26;
- break;
- case 26:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 27;
- break;
- case 27:
- if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 28;
- break;
- case 28:
- if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(0, 3);
- break;
- case 29:
- if (curChar == 92)
- jjstateSet[jjnewStateCnt++] = 24;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else
- {
- int hiByte = (int)(curChar >> 8);
- int i1 = hiByte >> 6;
- long l1 = 1L << (hiByte & 077);
- int i2 = (curChar & 0xff) >> 6;
- long l2 = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 31:
- case 21:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(0, 3);
- break;
- case 10:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(4, 7);
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- if (kind != 0x7fffffff)
- {
- jjmatchedKind = kind;
- jjmatchedPos = curPos;
- kind = 0x7fffffff;
- }
- ++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 31 - (jjnewStateCnt = startsAt)))
- return curPos;
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) { return curPos; }
- }
-}
+};
+private final int jjMoveNfa_0(int startState, int curPos)
+{
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 31;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 31:
+ if ((0xfffffffbffffdbffL & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ else if (curChar == 34)
+ {
+ if (kind > 11)
+ kind = 11;
+ }
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 6)
+ kind = 6;
+ jjCheckNAdd(2);
+ }
+ else if (curChar == 34)
+ jjCheckNAddStates(0, 3);
+ else if (curChar == 39)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 1:
+ if ((0x280000000000L & l) != 0L && kind > 5)
+ kind = 5;
+ break;
+ case 2:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 6)
+ kind = 6;
+ jjCheckNAdd(2);
+ break;
+ case 4:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 5;
+ break;
+ case 5:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 6;
+ break;
+ case 6:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 7;
+ break;
+ case 7:
+ if ((0x3ff000000000000L & l) != 0L && kind > 8)
+ kind = 8;
+ break;
+ case 9:
+ if (curChar == 39)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 10:
+ if ((0xffffff7fffffdbffL & l) != 0L)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 12:
+ if ((0x808400000000L & l) != 0L)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 14:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 15;
+ break;
+ case 15:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 16;
+ break;
+ case 16:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 17;
+ break;
+ case 17:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 19:
+ if (curChar == 39 && kind > 10)
+ kind = 10;
+ break;
+ case 20:
+ if (curChar == 34)
+ jjCheckNAddStates(0, 3);
+ break;
+ case 21:
+ if ((0xfffffffbffffdbffL & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ break;
+ case 23:
+ if ((0x808400000000L & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ break;
+ case 25:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 26;
+ break;
+ case 26:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 27;
+ break;
+ case 27:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 28;
+ break;
+ case 28:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ break;
+ case 30:
+ if (curChar == 34 && kind > 11)
+ kind = 11;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 31:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ else if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 24;
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 23;
+ break;
+ case 0:
+ if ((0x2000000020L & l) != 0L)
+ {
+ if (kind > 5)
+ kind = 5;
+ jjstateSet[jjnewStateCnt++] = 1;
+ }
+ else if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 3;
+ break;
+ case 3:
+ if (curChar == 117)
+ jjstateSet[jjnewStateCnt++] = 4;
+ break;
+ case 4:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 5;
+ break;
+ case 5:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 6;
+ break;
+ case 6:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 7;
+ break;
+ case 7:
+ if ((0x7e0000007eL & l) != 0L && kind > 8)
+ kind = 8;
+ break;
+ case 8:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 3;
+ break;
+ case 10:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 11:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 12;
+ break;
+ case 12:
+ if ((0x14404410000000L & l) != 0L)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 13:
+ if (curChar == 117)
+ jjstateSet[jjnewStateCnt++] = 14;
+ break;
+ case 14:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 15;
+ break;
+ case 15:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 16;
+ break;
+ case 16:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 17;
+ break;
+ case 17:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddStates(4, 7);
+ break;
+ case 18:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 13;
+ break;
+ case 21:
+ if ((0xffffffffefffffffL & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ break;
+ case 22:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 23;
+ break;
+ case 23:
+ if ((0x14404410000000L & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ break;
+ case 24:
+ if (curChar == 117)
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 25:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 26;
+ break;
+ case 26:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 27;
+ break;
+ case 27:
+ if ((0x7e0000007eL & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 28;
+ break;
+ case 28:
+ if ((0x7e0000007eL & l) != 0L)
+ jjCheckNAddStates(0, 3);
+ break;
+ case 29:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 24;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (int)(curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 31:
+ case 21:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjCheckNAddStates(0, 3);
+ break;
+ case 10:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+ jjAddStates(4, 7);
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 31 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
private final int jjStopStringLiteralDfa_2(int pos, long active0)
-{
+{
switch (pos)
- {
- default :
- return -1;
- }
-}
+ {
+ default :
+ return -1;
+ }
+}
private final int jjStartNfa_2(int pos, long active0)
-{
- return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
-}
-private final int jjStartNfaWithStates_2(int pos, int kind, int state)
-{
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) { return pos + 1; }
- return jjMoveNfa_2(state, pos + 1);
-}
-private final int jjMoveStringLiteralDfa0_2()
-{
- switch(curChar)
- {
- case 117:
- return jjStopAtPos(0, 17);
- default :
- return jjMoveNfa_2(0, 0);
- }
-}
-private final int jjMoveNfa_2(int startState, int curPos)
-{
- int[] nextStates;
- int startsAt = 0;
- jjnewStateCnt = 1;
- int i = 1;
- jjstateSet[0] = startState;
- int j, kind = 0x7fffffff;
- for (;;)
- {
- if (++jjround == 0x7fffffff)
- ReInitRounds();
- if (curChar < 64)
- {
- long l = 1L << curChar;
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 0:
- if ((0x800400000000L & l) != 0L)
- kind = 16;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else if (curChar < 128)
- {
- long l = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 0:
- if ((0x14404410000000L & l) != 0L)
- kind = 16;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else
- {
- int hiByte = (int)(curChar >> 8);
- int i1 = hiByte >> 6;
- long l1 = 1L << (hiByte & 077);
- int i2 = (curChar & 0xff) >> 6;
- long l2 = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- default : break;
- }
- } while(i != startsAt);
- }
- if (kind != 0x7fffffff)
- {
- jjmatchedKind = kind;
- jjmatchedPos = curPos;
- kind = 0x7fffffff;
- }
- ++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 1 - (jjnewStateCnt = startsAt)))
- return curPos;
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) { return curPos; }
- }
-}
+{
+ return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
+}
+private final int jjStartNfaWithStates_2(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_2(state, pos + 1);
+}
+private final int jjMoveStringLiteralDfa0_2()
+{
+ switch(curChar)
+ {
+ case 117:
+ return jjStopAtPos(0, 17);
+ default :
+ return jjMoveNfa_2(0, 0);
+ }
+}
+private final int jjMoveNfa_2(int startState, int curPos)
+{
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 1;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0x800400000000L & l) != 0L)
+ kind = 16;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0x14404410000000L & l) != 0L)
+ kind = 16;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (int)(curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 1 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
private final int jjStopStringLiteralDfa_1(int pos, long active0)
-{
+{
switch (pos)
- {
- default :
- return -1;
- }
-}
+ {
+ default :
+ return -1;
+ }
+}
private final int jjStartNfa_1(int pos, long active0)
-{
- return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
-}
-private final int jjStartNfaWithStates_1(int pos, int kind, int state)
-{
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) { return pos + 1; }
- return jjMoveNfa_1(state, pos + 1);
-}
-private final int jjMoveStringLiteralDfa0_1()
-{
- switch(curChar)
- {
- case 92:
- return jjStopAtPos(0, 13);
- default :
- return jjMoveNfa_1(0, 0);
- }
-}
-private final int jjMoveNfa_1(int startState, int curPos)
-{
- int[] nextStates;
- int startsAt = 0;
- jjnewStateCnt = 2;
- int i = 1;
- jjstateSet[0] = startState;
- int j, kind = 0x7fffffff;
- for (;;)
- {
- if (++jjround == 0x7fffffff)
- ReInitRounds();
- if (curChar < 64)
- {
- long l = 1L << curChar;
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 0:
- if ((0xfffffffbffffffffL & l) != 0L)
- {
- if (kind > 15)
- kind = 15;
- }
- else if (curChar == 34)
- {
- if (kind > 14)
- kind = 14;
- }
- break;
- case 1:
- if ((0xfffffffbffffffffL & l) != 0L)
- kind = 15;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else if (curChar < 128)
- {
- long l = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 0:
- if ((0xffffffffefffffffL & l) != 0L)
- kind = 15;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- else
- {
- int hiByte = (int)(curChar >> 8);
- int i1 = hiByte >> 6;
- long l1 = 1L << (hiByte & 077);
- int i2 = (curChar & 0xff) >> 6;
- long l2 = 1L << (curChar & 077);
- MatchLoop: do
- {
- switch(jjstateSet[--i])
- {
- case 0:
- if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15)
- kind = 15;
- break;
- default : break;
- }
- } while(i != startsAt);
- }
- if (kind != 0x7fffffff)
- {
- jjmatchedKind = kind;
- jjmatchedPos = curPos;
- kind = 0x7fffffff;
- }
- ++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt)))
- return curPos;
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) { return curPos; }
- }
-}
+{
+ return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
+}
+private final int jjStartNfaWithStates_1(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_1(state, pos + 1);
+}
+private final int jjMoveStringLiteralDfa0_1()
+{
+ switch(curChar)
+ {
+ case 92:
+ return jjStopAtPos(0, 13);
+ default :
+ return jjMoveNfa_1(0, 0);
+ }
+}
+private final int jjMoveNfa_1(int startState, int curPos)
+{
+ int[] nextStates;
+ int startsAt = 0;
+ jjnewStateCnt = 2;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int j, kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0xfffffffbffffffffL & l) != 0L)
+ {
+ if (kind > 15)
+ kind = 15;
+ }
+ else if (curChar == 34)
+ {
+ if (kind > 14)
+ kind = 14;
+ }
+ break;
+ case 1:
+ if ((0xfffffffbffffffffL & l) != 0L)
+ kind = 15;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if ((0xffffffffefffffffL & l) != 0L)
+ kind = 15;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ else
+ {
+ int hiByte = (int)(curChar >> 8);
+ int i1 = hiByte >> 6;
+ long l1 = 1L << (hiByte & 077);
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ MatchLoop: do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 0:
+ if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15)
+ kind = 15;
+ break;
+ default : break;
+ }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
static final int[] jjnextStates = {
21, 22, 29, 30, 10, 11, 18, 19,
-};
-private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
-{
- switch(hiByte)
- {
- case 0:
- return ((jjbitVec2[i2] & l2) != 0L);
- default :
- if ((jjbitVec0[i1] & l1) != 0L)
- return true;
- return false;
- }
-}
-public static final String[] jjstrLiteralImages = {
-"", null, null, null, null, null, null, null, null, null, null, null, "\42",
-null, null, null, null, null, null, null, "\173", "\175", "\156\165\154\154", "\54",
-"\72", "\133", "\135", "\164\162\165\145", "\146\141\154\163\145", "\55", "\56", };
-public static final String[] lexStateNames = {
- "DEFAULT",
- "STRING_STATE",
- "ESC_STATE",
- "HEX_STATE",
-};
+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+ switch(hiByte)
+ {
+ case 0:
+ return ((jjbitVec2[i2] & l2) != 0L);
+ default :
+ if ((jjbitVec0[i1] & l1) != 0L)
+ return true;
+ return false;
+ }
+}
+public static final String[] jjstrLiteralImages = {
+"", null, null, null, null, null, null, null, null, null, null, null, "\42",
+null, null, null, null, null, null, null, "\173", "\175", "\156\165\154\154", "\54",
+"\72", "\133", "\135", "\164\162\165\145", "\146\141\154\163\145", "\55", "\56", };
+public static final String[] lexStateNames = {
+ "DEFAULT",
+ "STRING_STATE",
+ "ESC_STATE",
+ "HEX_STATE",
+};
public static final int[] jjnewLexState = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 2, 0, -1, 1, 3, -1, 1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1,
-};
+};
static final long[] jjtoToken = {
0x7ff9dd61L,
-};
+};
static final long[] jjtoSkip = {
0x1eL,
-};
+};
static final long[] jjtoMore = {
0x22000L,
-};
-protected SimpleCharStream input_stream;
-private final int[] jjrounds = new int[31];
-private final int[] jjstateSet = new int[62];
-protected char curChar;
-public JsonParserTokenManager(SimpleCharStream stream){
- if (SimpleCharStream.staticFlag)
- throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
- input_stream = stream;
-}
-public JsonParserTokenManager(SimpleCharStream stream, int lexState){
- this(stream);
- SwitchTo(lexState);
-}
-public void ReInit(SimpleCharStream stream)
-{
- jjmatchedPos = jjnewStateCnt = 0;
- curLexState = defaultLexState;
- input_stream = stream;
- ReInitRounds();
-}
-private final void ReInitRounds()
-{
- int i;
- jjround = 0x80000001;
- for (i = 31; i-- > 0;)
- jjrounds[i] = 0x80000000;
-}
-public void ReInit(SimpleCharStream stream, int lexState)
-{
- ReInit(stream);
- SwitchTo(lexState);
-}
-public void SwitchTo(int lexState)
-{
- if (lexState >= 4 || lexState < 0)
- throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
- else
- curLexState = lexState;
-}
-
-protected Token jjFillToken()
-{
- Token t = Token.newToken(jjmatchedKind);
- t.kind = jjmatchedKind;
- String im = jjstrLiteralImages[jjmatchedKind];
- t.image = (im == null) ? input_stream.GetImage() : im;
- t.beginLine = input_stream.getBeginLine();
- t.beginColumn = input_stream.getBeginColumn();
- t.endLine = input_stream.getEndLine();
- t.endColumn = input_stream.getEndColumn();
- return t;
-}
-
-int curLexState = 0;
-int defaultLexState = 0;
-int jjnewStateCnt;
-int jjround;
-int jjmatchedPos;
-int jjmatchedKind;
-
-public Token getNextToken()
-{
- int kind;
- Token specialToken = null;
- Token matchedToken;
- int curPos = 0;
-
+};
+protected SimpleCharStream input_stream;
+private final int[] jjrounds = new int[31];
+private final int[] jjstateSet = new int[62];
+protected char curChar;
+public JsonParserTokenManager(SimpleCharStream stream){
+ if (SimpleCharStream.staticFlag)
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+ input_stream = stream;
+}
+public JsonParserTokenManager(SimpleCharStream stream, int lexState){
+ this(stream);
+ SwitchTo(lexState);
+}
+public void ReInit(SimpleCharStream stream)
+{
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+}
+private final void ReInitRounds()
+{
+ int i;
+ jjround = 0x80000001;
+ for (i = 31; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+}
+public void ReInit(SimpleCharStream stream, int lexState)
+{
+ ReInit(stream);
+ SwitchTo(lexState);
+}
+public void SwitchTo(int lexState)
+{
+ if (lexState >= 4 || lexState < 0)
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+}
+
+protected Token jjFillToken()
+{
+ Token t = Token.newToken(jjmatchedKind);
+ t.kind = jjmatchedKind;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ t.image = (im == null) ? input_stream.GetImage() : im;
+ t.beginLine = input_stream.getBeginLine();
+ t.beginColumn = input_stream.getBeginColumn();
+ t.endLine = input_stream.getEndLine();
+ t.endColumn = input_stream.getEndColumn();
+ return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+public Token getNextToken()
+{
+ int kind;
+ Token specialToken = null;
+ Token matchedToken;
+ int curPos = 0;
+
EOFLoop :
- for (;;)
- {
- try
- {
- curChar = input_stream.BeginToken();
- }
- catch(java.io.IOException e)
- {
- jjmatchedKind = 0;
- matchedToken = jjFillToken();
- return matchedToken;
- }
-
- for (;;)
- {
- switch(curLexState)
- {
- case 0:
- try { input_stream.backup(0);
- while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
- curChar = input_stream.BeginToken();
- }
- catch (java.io.IOException e1) { continue EOFLoop; }
- jjmatchedKind = 0x7fffffff;
- jjmatchedPos = 0;
- curPos = jjMoveStringLiteralDfa0_0();
- break;
- case 1:
- jjmatchedKind = 0x7fffffff;
- jjmatchedPos = 0;
- curPos = jjMoveStringLiteralDfa0_1();
- break;
- case 2:
- jjmatchedKind = 0x7fffffff;
- jjmatchedPos = 0;
- curPos = jjMoveStringLiteralDfa0_2();
- break;
- case 3:
- jjmatchedKind = 0x7fffffff;
- jjmatchedPos = 0;
- curPos = jjMoveStringLiteralDfa0_3();
- break;
- }
- if (jjmatchedKind != 0x7fffffff)
- {
- if (jjmatchedPos + 1 < curPos)
- input_stream.backup(curPos - jjmatchedPos - 1);
- if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
- {
- matchedToken = jjFillToken();
- if (jjnewLexState[jjmatchedKind] != -1)
- curLexState = jjnewLexState[jjmatchedKind];
- return matchedToken;
- }
- else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
- {
- if (jjnewLexState[jjmatchedKind] != -1)
- curLexState = jjnewLexState[jjmatchedKind];
- continue EOFLoop;
- }
- if (jjnewLexState[jjmatchedKind] != -1)
- curLexState = jjnewLexState[jjmatchedKind];
- curPos = 0;
- jjmatchedKind = 0x7fffffff;
- try {
- curChar = input_stream.readChar();
- continue;
- }
- catch (java.io.IOException e1) { }
- }
- int error_line = input_stream.getEndLine();
- int error_column = input_stream.getEndColumn();
- String error_after = null;
- boolean EOFSeen = false;
- try { input_stream.readChar(); input_stream.backup(1); }
- catch (java.io.IOException e1) {
- EOFSeen = true;
- error_after = curPos <= 1 ? "" : input_stream.GetImage();
- if (curChar == '\n' || curChar == '\r') {
- error_line++;
- error_column = 0;
- }
- else
- error_column++;
- }
- if (!EOFSeen) {
- input_stream.backup(1);
- error_after = curPos <= 1 ? "" : input_stream.GetImage();
- }
- throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
- }
- }
-}
-
-}
+ for (;;)
+ {
+ try
+ {
+ curChar = input_stream.BeginToken();
+ }
+ catch(java.io.IOException e)
+ {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ return matchedToken;
+ }
+
+ for (;;)
+ {
+ switch(curLexState)
+ {
+ case 0:
+ try { input_stream.backup(0);
+ while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
+ curChar = input_stream.BeginToken();
+ }
+ catch (java.io.IOException e1) { continue EOFLoop; }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ break;
+ case 1:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_1();
+ break;
+ case 2:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_2();
+ break;
+ case 3:
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_3();
+ break;
+ }
+ if (jjmatchedKind != 0x7fffffff)
+ {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ matchedToken = jjFillToken();
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ return matchedToken;
+ }
+ else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+ {
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ continue EOFLoop;
+ }
+ if (jjnewLexState[jjmatchedKind] != -1)
+ curLexState = jjnewLexState[jjmatchedKind];
+ curPos = 0;
+ jjmatchedKind = 0x7fffffff;
+ try {
+ curChar = input_stream.readChar();
+ continue;
+ }
+ catch (java.io.IOException e1) { }
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try { input_stream.readChar(); input_stream.backup(1); }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ }
+ else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+ }
+}
+
+}
diff --git a/gson/src/main/java/com/google/gson/StringUnmarshaller.java b/gson/src/main/java/com/google/gson/StringUnmarshaller.java
index a067f84b..49d85a11 100644
--- a/gson/src/main/java/com/google/gson/StringUnmarshaller.java
+++ b/gson/src/main/java/com/google/gson/StringUnmarshaller.java
@@ -63,6 +63,9 @@ final class StringUnmarshaller {
case '\\':
ch = '\\';
break;
+ case '/':
+ ch = '/';
+ break;
default:
throw new IllegalStateException("Unexpected character: " + c + " in " + str);
}
diff --git a/gson/src/main/javacc/JsonParser.jj b/gson/src/main/javacc/JsonParser.jj
index 3b10257d..876b420b 100755
--- a/gson/src/main/javacc/JsonParser.jj
+++ b/gson/src/main/javacc/JsonParser.jj
@@ -30,7 +30,7 @@ TOKEN : {
|
| <#HEX_CHAR : ["a"-"f","A"-"F","0"-"9"]>
| >
- | <#ESCAPE_CHAR: "\\" ["n","t","b","r","f","\\","'","\""] >
+ | <#ESCAPE_CHAR: "\\" ["n","t","b","r","f","\\","'","\"", "/"] >
| | )* "\'" >
| | )* "\"" >
| : STRING_STATE
diff --git a/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java b/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java
index b8fec039..3a1b54af 100755
--- a/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java
+++ b/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java
@@ -122,9 +122,9 @@ public class ConcurrencyTest extends TestCase {
}
private static class MyObject {
- private String a;
- private String b;
- private int i;
+ String a;
+ String b;
+ int i;
MyObject() {
this("hello", "world", 42);
diff --git a/gson/src/test/java/com/google/gson/functional/StringTest.java b/gson/src/test/java/com/google/gson/functional/StringTest.java
index 165e3f44..0ebca14b 100644
--- a/gson/src/test/java/com/google/gson/functional/StringTest.java
+++ b/gson/src/test/java/com/google/gson/functional/StringTest.java
@@ -102,4 +102,11 @@ public class StringTest extends TestCase {
String actual = gson.fromJson("[\"" + value + "\"]", String.class);
assertEquals(value, actual);
}
+
+ public void testStringWithEscapedSlashDeserialization() {
+ String value = "/";
+ String json = "'\\/'";
+ String actual = gson.fromJson(json, String.class);
+ assertEquals(value, actual);
+ }
}