Update Parser to add members to an JsonObject within a loop rather than a recursive call.
This commit is contained in:
parent
e7e2e59f73
commit
2610a2920d
|
@ -73,13 +73,26 @@ final class JsonParserJavacc implements JsonParserJavaccConstants {
|
||||||
case IDENTIFIER_STARTS_WITH_EXPONENT:
|
case IDENTIFIER_STARTS_WITH_EXPONENT:
|
||||||
case SINGLE_QUOTE_LITERAL:
|
case SINGLE_QUOTE_LITERAL:
|
||||||
case DOUBLE_QUOTE_LITERAL:
|
case DOUBLE_QUOTE_LITERAL:
|
||||||
Members(o);
|
Pair(o);
|
||||||
|
label_1:
|
||||||
|
while (true) {
|
||||||
|
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
|
||||||
|
case 28:
|
||||||
|
;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
jj_la1[3] = jj_gen;
|
jj_la1[3] = jj_gen;
|
||||||
;
|
break label_1;
|
||||||
}
|
}
|
||||||
jj_consume_token(28);
|
jj_consume_token(28);
|
||||||
|
Pair(o);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
jj_la1[4] = jj_gen;
|
||||||
|
;
|
||||||
|
}
|
||||||
|
jj_consume_token(29);
|
||||||
{if (true) return o;}
|
{if (true) return o;}
|
||||||
throw new Error("Missing return statement in function");
|
throw new Error("Missing return statement in function");
|
||||||
}
|
}
|
||||||
|
@ -91,19 +104,6 @@ final class JsonParserJavacc implements JsonParserJavaccConstants {
|
||||||
throw new Error("Missing return statement in function");
|
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 29:
|
|
||||||
jj_consume_token(29);
|
|
||||||
Members(o);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
jj_la1[4] = jj_gen;
|
|
||||||
;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
final private void Pair(JsonObject o) throws ParseException {
|
final private void Pair(JsonObject o) throws ParseException {
|
||||||
JsonPrimitive property;
|
JsonPrimitive property;
|
||||||
JsonElement value;
|
JsonElement value;
|
||||||
|
@ -153,15 +153,15 @@ final class JsonParserJavacc implements JsonParserJavaccConstants {
|
||||||
case 31:
|
case 31:
|
||||||
case 33:
|
case 33:
|
||||||
JsonArrayElement(array);
|
JsonArrayElement(array);
|
||||||
label_1:
|
label_2:
|
||||||
while (true) {
|
while (true) {
|
||||||
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
|
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
|
||||||
case 29:
|
case 28:
|
||||||
;
|
;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
jj_la1[6] = jj_gen;
|
jj_la1[6] = jj_gen;
|
||||||
break label_1;
|
break label_2;
|
||||||
}
|
}
|
||||||
JsonArrayNextElement(array);
|
JsonArrayNextElement(array);
|
||||||
}
|
}
|
||||||
|
@ -192,7 +192,7 @@ final class JsonParserJavacc implements JsonParserJavaccConstants {
|
||||||
|
|
||||||
final private JsonArray JsonArrayNextElement(JsonArray array) throws ParseException {
|
final private JsonArray JsonArrayNextElement(JsonArray array) throws ParseException {
|
||||||
JsonElement element = null;
|
JsonElement element = null;
|
||||||
jj_consume_token(29);
|
jj_consume_token(28);
|
||||||
element = JsonValue();
|
element = JsonValue();
|
||||||
array.add(element);
|
array.add(element);
|
||||||
{if (true) return array;}
|
{if (true) return array;}
|
||||||
|
@ -430,36 +430,36 @@ final class JsonParserJavacc implements JsonParserJavaccConstants {
|
||||||
finally { jj_save(0, xla); }
|
finally { jj_save(0, xla); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean jj_3R_3() {
|
private boolean jj_3R_6() {
|
||||||
if (jj_scan_token(NAN)) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean jj_3R_2() {
|
|
||||||
Token xsp;
|
|
||||||
xsp = jj_scanpos;
|
|
||||||
if (jj_3R_3()) {
|
|
||||||
jj_scanpos = xsp;
|
|
||||||
if (jj_3R_4()) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean jj_3R_5() {
|
|
||||||
if (jj_scan_token(33)) return true;
|
if (jj_scan_token(33)) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean jj_3R_4() {
|
private boolean jj_3R_5() {
|
||||||
Token xsp;
|
Token xsp;
|
||||||
xsp = jj_scanpos;
|
xsp = jj_scanpos;
|
||||||
if (jj_3R_5()) jj_scanpos = xsp;
|
if (jj_3R_6()) jj_scanpos = xsp;
|
||||||
if (jj_scan_token(INFINITY)) return true;
|
if (jj_scan_token(INFINITY)) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean jj_3_1() {
|
private boolean jj_3_1() {
|
||||||
if (jj_3R_2()) return true;
|
if (jj_3R_3()) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean jj_3R_4() {
|
||||||
|
if (jj_scan_token(NAN)) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean jj_3R_3() {
|
||||||
|
Token xsp;
|
||||||
|
xsp = jj_scanpos;
|
||||||
|
if (jj_3R_4()) {
|
||||||
|
jj_scanpos = xsp;
|
||||||
|
if (jj_3R_5()) return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +482,7 @@ final class JsonParserJavacc implements JsonParserJavaccConstants {
|
||||||
jj_la1_init_1();
|
jj_la1_init_1();
|
||||||
}
|
}
|
||||||
private static void jj_la1_init_0() {
|
private static void jj_la1_init_0() {
|
||||||
jj_la1_0 = new int[] {0x4000000,0x880307c0,0x8c0307c1,0x31800,0x20000000,0x31800,0x20000000,0x880307c0,0x880307c0,0x30740,0x0,0x20,0x40,0x0,0x300,0x0,0x1800,0x30000,};
|
jj_la1_0 = new int[] {0x4000000,0x880307c0,0x8c0307c1,0x10000000,0x31800,0x31800,0x10000000,0x880307c0,0x880307c0,0x30740,0x0,0x20,0x40,0x0,0x300,0x0,0x1800,0x30000,};
|
||||||
}
|
}
|
||||||
private static void jj_la1_init_1() {
|
private static void jj_la1_init_1() {
|
||||||
jj_la1_1 = new int[] {0x0,0x2,0x2,0x0,0x0,0x0,0x0,0x3,0x2,0x2,0x4,0x0,0x2,0x2,0x2,0x2,0x0,0x0,};
|
jj_la1_1 = new int[] {0x0,0x2,0x2,0x0,0x0,0x0,0x0,0x3,0x2,0x2,0x4,0x0,0x2,0x2,0x2,0x2,0x0,0x0,};
|
||||||
|
|
|
@ -88,8 +88,8 @@ interface JsonParserJavaccConstants {
|
||||||
"<HEX_ESC>",
|
"<HEX_ESC>",
|
||||||
"\")]}\\\'\\n\"",
|
"\")]}\\\'\\n\"",
|
||||||
"\"{\"",
|
"\"{\"",
|
||||||
"\"}\"",
|
|
||||||
"\",\"",
|
"\",\"",
|
||||||
|
"\"}\"",
|
||||||
"\":\"",
|
"\":\"",
|
||||||
"\"[\"",
|
"\"[\"",
|
||||||
"\"]\"",
|
"\"]\"",
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
/* Generated By:JavaCC: Do not edit this line. JsonParserJavaccTokenManager.java */
|
/* Generated By:JavaCC: Do not edit this line. JsonParserJavaccTokenManager.java */
|
||||||
package com.google.gson;
|
package com.google.gson;
|
||||||
import java.io.EOFException;
|
|
||||||
|
|
||||||
/** Token Manager. */
|
/** Token Manager. */
|
||||||
@SuppressWarnings("all")
|
class JsonParserJavaccTokenManager implements JsonParserJavaccConstants
|
||||||
final class JsonParserJavaccTokenManager implements JsonParserJavaccConstants
|
|
||||||
{
|
{
|
||||||
|
|
||||||
/** Debug output. */
|
/** Debug output. */
|
||||||
|
@ -196,7 +194,7 @@ private int jjMoveStringLiteralDfa0_0()
|
||||||
case 41:
|
case 41:
|
||||||
return jjMoveStringLiteralDfa1_0(0x4000000L);
|
return jjMoveStringLiteralDfa1_0(0x4000000L);
|
||||||
case 44:
|
case 44:
|
||||||
return jjStopAtPos(0, 29);
|
return jjStopAtPos(0, 28);
|
||||||
case 45:
|
case 45:
|
||||||
return jjStopAtPos(0, 33);
|
return jjStopAtPos(0, 33);
|
||||||
case 46:
|
case 46:
|
||||||
|
@ -216,7 +214,7 @@ private int jjMoveStringLiteralDfa0_0()
|
||||||
case 123:
|
case 123:
|
||||||
return jjStopAtPos(0, 27);
|
return jjStopAtPos(0, 27);
|
||||||
case 125:
|
case 125:
|
||||||
return jjStopAtPos(0, 28);
|
return jjStopAtPos(0, 29);
|
||||||
default :
|
default :
|
||||||
return jjMoveNfa_0(4, 0);
|
return jjMoveNfa_0(4, 0);
|
||||||
}
|
}
|
||||||
|
@ -771,18 +769,6 @@ private int jjMoveNfa_0(int startState, int curPos)
|
||||||
catch(java.io.IOException e) { return curPos; }
|
catch(java.io.IOException e) { return curPos; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private final int jjStopStringLiteralDfa_2(int pos, long active0)
|
|
||||||
{
|
|
||||||
switch (pos)
|
|
||||||
{
|
|
||||||
default :
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private final int jjStartNfa_2(int pos, long active0)
|
|
||||||
{
|
|
||||||
return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
|
|
||||||
}
|
|
||||||
private int jjMoveStringLiteralDfa0_2()
|
private int jjMoveStringLiteralDfa0_2()
|
||||||
{
|
{
|
||||||
switch(curChar)
|
switch(curChar)
|
||||||
|
@ -862,18 +848,6 @@ private int jjMoveNfa_2(int startState, int curPos)
|
||||||
catch(java.io.IOException e) { return curPos; }
|
catch(java.io.IOException e) { return curPos; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private final int jjStopStringLiteralDfa_1(int pos, long active0)
|
|
||||||
{
|
|
||||||
switch (pos)
|
|
||||||
{
|
|
||||||
default :
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private final int jjStartNfa_1(int pos, long active0)
|
|
||||||
{
|
|
||||||
return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
|
|
||||||
}
|
|
||||||
private int jjMoveStringLiteralDfa0_1()
|
private int jjMoveStringLiteralDfa0_1()
|
||||||
{
|
{
|
||||||
switch(curChar)
|
switch(curChar)
|
||||||
|
@ -989,7 +963,7 @@ private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, lo
|
||||||
public static final String[] jjstrLiteralImages = {
|
public static final String[] jjstrLiteralImages = {
|
||||||
"", null, null, null, null, null, null, "\156\165\154\154", "\116\141\116",
|
"", null, null, null, null, null, null, "\156\165\154\154", "\116\141\116",
|
||||||
"\111\156\146\151\156\151\164\171", null, null, null, null, null, null, null, null, "\42", null, null, null, null,
|
"\111\156\146\151\156\151\164\171", null, null, null, null, null, null, null, null, "\42", null, null, null, null,
|
||||||
null, null, null, "\51\135\175\47\12", "\173", "\175", "\54", "\72", "\133", "\135",
|
null, null, null, "\51\135\175\47\12", "\173", "\54", "\175", "\72", "\133", "\135",
|
||||||
"\55", "\56", };
|
"\55", "\56", };
|
||||||
|
|
||||||
/** Lexer state names. */
|
/** Lexer state names. */
|
||||||
|
|
|
@ -76,7 +76,7 @@ private JsonObject JsonObject() :
|
||||||
JsonObject o = new JsonObject();
|
JsonObject o = new JsonObject();
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"{" [ Members(o) ] "}"
|
"{" [ Pair(o) ("," Pair(o))* ] "}"
|
||||||
{ return o; }
|
{ return o; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,12 +88,6 @@ private JsonNull JsonNull() :
|
||||||
t = <NULL> { return JsonNull.createJsonNull(); }
|
t = <NULL> { return JsonNull.createJsonNull(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Members(JsonObject o) :
|
|
||||||
{ }
|
|
||||||
{
|
|
||||||
Pair(o) [ "," Members(o) ]
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Pair(JsonObject o) :
|
private void Pair(JsonObject o) :
|
||||||
{
|
{
|
||||||
JsonPrimitive property;
|
JsonPrimitive property;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user