From 36c78568cee992636ffefd86a147faeafe6f1a2d Mon Sep 17 00:00:00 2001 From: markt Date: Sat, 17 May 2008 17:33:43 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44994 Correct BNF grammar so ${0 lt a ? 1 lt a ? "many": "one": "none"} does not throw an exception The patch is bigger than I would like due to the code generation tools used git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@657404 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/el/parser/ELParser.html | 2 +- java/org/apache/el/parser/ELParser.java | 49 +- java/org/apache/el/parser/ELParser.jjt | 2 +- java/org/apache/el/parser/ELParserConstants.java | 247 +- .../org/apache/el/parser/ELParserTokenManager.java | 2838 ++++++++++---------- java/org/apache/el/parser/ParseException.java | 10 +- 6 files changed, 1589 insertions(+), 1559 deletions(-) diff --git a/java/org/apache/el/parser/ELParser.html b/java/org/apache/el/parser/ELParser.html index cae1bcd43..24a312a6c 100644 --- a/java/org/apache/el/parser/ELParser.html +++ b/java/org/apache/el/parser/ELParser.html @@ -51,7 +51,7 @@ Choice ::= -Or ( <QUESTIONMARK> Or <COLON> Choice )* +Or ( <QUESTIONMARK> Choice <COLON> Choice )* Or diff --git a/java/org/apache/el/parser/ELParser.java b/java/org/apache/el/parser/ELParser.java index 5b6eb1e0a..34027c236 100644 --- a/java/org/apache/el/parser/ELParser.java +++ b/java/org/apache/el/parser/ELParser.java @@ -27,15 +27,6 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser throw new ELException(pe.getMessage()); } } - - public static void main(String[] argv) throws Exception { - String[] str = { "${foo()}", "${fn.fn:foo() ? a : b}", "${fn:foo() ? (fn_af.f:fd() ? a : b) : b}", "${a.b.c ? a : b}" }; - for (int i = 0; i < str.length; i++) { - SimpleNode sn = (SimpleNode) ELParser.parse(str[i]); - System.out.println("====\n" + str[i]); - sn.dump("\t"); - } - } /* * CompositeExpression @@ -216,31 +207,31 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser break label_2; } jj_consume_token(QUESTIONMARK); - Or(); + Choice(); jj_consume_token(COLON); - AstChoice jjtn001 = new AstChoice(JJTCHOICE); - boolean jjtc001 = true; - jjtree.openNodeScope(jjtn001); + AstChoice jjtn001 = new AstChoice(JJTCHOICE); + boolean jjtc001 = true; + jjtree.openNodeScope(jjtn001); try { Choice(); } catch (Throwable jjte001) { - if (jjtc001) { - jjtree.clearNodeScope(jjtn001); - jjtc001 = false; - } else { - jjtree.popNode(); - } - if (jjte001 instanceof RuntimeException) { - {if (true) throw (RuntimeException)jjte001;} - } - if (jjte001 instanceof ParseException) { - {if (true) throw (ParseException)jjte001;} - } - {if (true) throw (Error)jjte001;} + if (jjtc001) { + jjtree.clearNodeScope(jjtn001); + jjtc001 = false; + } else { + jjtree.popNode(); + } + if (jjte001 instanceof RuntimeException) { + {if (true) throw (RuntimeException)jjte001;} + } + if (jjte001 instanceof ParseException) { + {if (true) throw (ParseException)jjte001;} + } + {if (true) throw (Error)jjte001;} } finally { - if (jjtc001) { - jjtree.closeNodeScope(jjtn001, 3); - } + if (jjtc001) { + jjtree.closeNodeScope(jjtn001, 3); + } } } } diff --git a/java/org/apache/el/parser/ELParser.jjt b/java/org/apache/el/parser/ELParser.jjt index 9e8f6dd0d..1a6c41cf4 100644 --- a/java/org/apache/el/parser/ELParser.jjt +++ b/java/org/apache/el/parser/ELParser.jjt @@ -104,7 +104,7 @@ void Expression() : {} */ void Choice() : {} { - Or() ( Or() Choice() #Choice(3))* + Or() ( Choice() Choice() #Choice(3))* } /* diff --git a/java/org/apache/el/parser/ELParserConstants.java b/java/org/apache/el/parser/ELParserConstants.java index 44678197d..e2c078251 100644 --- a/java/org/apache/el/parser/ELParserConstants.java +++ b/java/org/apache/el/parser/ELParserConstants.java @@ -19,131 +19,126 @@ package org.apache.el.parser; public interface ELParserConstants { - int EOF = 0; - - int LITERAL_EXPRESSION = 1; - - int START_DYNAMIC_EXPRESSION = 2; - - int START_DEFERRED_EXPRESSION = 3; - - int INTEGER_LITERAL = 9; - - int FLOATING_POINT_LITERAL = 10; - - int EXPONENT = 11; - - int STRING_LITERAL = 12; - - int BADLY_ESCAPED_STRING_LITERAL = 13; - - int TRUE = 14; - - int FALSE = 15; - - int NULL = 16; - - int END_EXPRESSION = 17; - - int DOT = 18; - - int LPAREN = 19; - - int RPAREN = 20; - - int LBRACK = 21; - - int RBRACK = 22; - - int COLON = 23; - - int COMMA = 24; - - int GT0 = 25; - - int GT1 = 26; - - int LT0 = 27; - - int LT1 = 28; - - int GE0 = 29; - - int GE1 = 30; - - int LE0 = 31; - - int LE1 = 32; - - int EQ0 = 33; - - int EQ1 = 34; - - int NE0 = 35; - - int NE1 = 36; - - int NOT0 = 37; - - int NOT1 = 38; - - int AND0 = 39; - - int AND1 = 40; - - int OR0 = 41; - - int OR1 = 42; - - int EMPTY = 43; - - int INSTANCEOF = 44; - - int MULT = 45; - - int PLUS = 46; - - int MINUS = 47; - - int QUESTIONMARK = 48; - - int DIV0 = 49; - - int DIV1 = 50; - - int MOD0 = 51; - - int MOD1 = 52; - - int IDENTIFIER = 53; - - int NAMESPACE = 54; - - int FUNCTIONSUFFIX = 55; - - int IMPL_OBJ_START = 56; - - int LETTER = 57; - - int DIGIT = 58; - - int ILLEGAL_CHARACTER = 59; - - int DEFAULT = 0; - - int IN_EXPRESSION = 1; - - String[] tokenImage = { "", "", "\"${\"", - "\"#{\"", "\"\\\\\"", "\" \"", "\"\\t\"", "\"\\n\"", "\"\\r\"", - "", "", "", - "", "", "\"true\"", - "\"false\"", "\"null\"", "\"}\"", "\".\"", "\"(\"", "\")\"", - "\"[\"", "\"]\"", "\":\"", "\",\"", "\">\"", "\"gt\"", "\"<\"", - "\"lt\"", "\">=\"", "\"ge\"", "\"<=\"", "\"le\"", "\"==\"", - "\"eq\"", "\"!=\"", "\"ne\"", "\"!\"", "\"not\"", "\"&&\"", - "\"and\"", "\"||\"", "\"or\"", "\"empty\"", "\"instanceof\"", - "\"*\"", "\"+\"", "\"-\"", "\"?\"", "\"/\"", "\"div\"", "\"%\"", - "\"mod\"", "", "", "", - "\"#\"", "", "", "", }; + int EOF = 0; + int LITERAL_EXPRESSION = 1; + int START_DYNAMIC_EXPRESSION = 2; + int START_DEFERRED_EXPRESSION = 3; + int INTEGER_LITERAL = 9; + int FLOATING_POINT_LITERAL = 10; + int EXPONENT = 11; + int STRING_LITERAL = 12; + int BADLY_ESCAPED_STRING_LITERAL = 13; + int TRUE = 14; + int FALSE = 15; + int NULL = 16; + int END_EXPRESSION = 17; + int DOT = 18; + int LPAREN = 19; + int RPAREN = 20; + int LBRACK = 21; + int RBRACK = 22; + int COLON = 23; + int COMMA = 24; + int GT0 = 25; + int GT1 = 26; + int LT0 = 27; + int LT1 = 28; + int GE0 = 29; + int GE1 = 30; + int LE0 = 31; + int LE1 = 32; + int EQ0 = 33; + int EQ1 = 34; + int NE0 = 35; + int NE1 = 36; + int NOT0 = 37; + int NOT1 = 38; + int AND0 = 39; + int AND1 = 40; + int OR0 = 41; + int OR1 = 42; + int EMPTY = 43; + int INSTANCEOF = 44; + int MULT = 45; + int PLUS = 46; + int MINUS = 47; + int QUESTIONMARK = 48; + int DIV0 = 49; + int DIV1 = 50; + int MOD0 = 51; + int MOD1 = 52; + int IDENTIFIER = 53; + int NAMESPACE = 54; + int FUNCTIONSUFFIX = 55; + int IMPL_OBJ_START = 56; + int LETTER = 57; + int DIGIT = 58; + int ILLEGAL_CHARACTER = 59; + + int DEFAULT = 0; + int IN_EXPRESSION = 1; + + String[] tokenImage = { + "", + "", + "\"${\"", + "\"#{\"", + "\"\\\\\"", + "\" \"", + "\"\\t\"", + "\"\\n\"", + "\"\\r\"", + "", + "", + "", + "", + "", + "\"true\"", + "\"false\"", + "\"null\"", + "\"}\"", + "\".\"", + "\"(\"", + "\")\"", + "\"[\"", + "\"]\"", + "\":\"", + "\",\"", + "\">\"", + "\"gt\"", + "\"<\"", + "\"lt\"", + "\">=\"", + "\"ge\"", + "\"<=\"", + "\"le\"", + "\"==\"", + "\"eq\"", + "\"!=\"", + "\"ne\"", + "\"!\"", + "\"not\"", + "\"&&\"", + "\"and\"", + "\"||\"", + "\"or\"", + "\"empty\"", + "\"instanceof\"", + "\"*\"", + "\"+\"", + "\"-\"", + "\"?\"", + "\"/\"", + "\"div\"", + "\"%\"", + "\"mod\"", + "", + "", + "", + "\"#\"", + "", + "", + "", + }; } diff --git a/java/org/apache/el/parser/ELParserTokenManager.java b/java/org/apache/el/parser/ELParserTokenManager.java index 7d9d9715b..14ada6459 100644 --- a/java/org/apache/el/parser/ELParserTokenManager.java +++ b/java/org/apache/el/parser/ELParserTokenManager.java @@ -16,1404 +16,1448 @@ */ /* Generated By:JJTree&JavaCC: Do not edit this line. ELParserTokenManager.java */ package org.apache.el.parser; +import java.io.StringReader; +import javax.el.ELException; + +public class ELParserTokenManager implements ELParserConstants +{ + public java.io.PrintStream debugStream = System.out; + public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } +private final int jjStopStringLiteralDfa_0(int pos, long active0) +{ + switch (pos) + { + case 0: + if ((active0 & 0x10L) != 0L) + return 2; + if ((active0 & 0x4L) != 0L) + { + jjmatchedKind = 1; + return 4; + } + if ((active0 & 0x8L) != 0L) + { + jjmatchedKind = 1; + return 6; + } + 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 35: + return jjMoveStringLiteralDfa1_0(0x8L); + case 36: + return jjMoveStringLiteralDfa1_0(0x4L); + case 92: + return jjStartNfaWithStates_0(0, 4, 2); + default : + return jjMoveNfa_0(7, 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 123: + if ((active0 & 0x4L) != 0L) + return jjStopAtPos(1, 2); + else if ((active0 & 0x8L) != 0L) + return jjStopAtPos(1, 3); + break; + default : + break; + } + return jjStartNfa_0(0, active0); +} +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]); +} +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 = 8; + 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 7: + if ((0xffffffe7ffffffffL & l) != 0L) + { + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + } + else if ((0x1800000000L & l) != 0L) + { + if (kind > 1) + kind = 1; + } + if (curChar == 35) + jjstateSet[jjnewStateCnt++] = 6; + else if (curChar == 36) + jjstateSet[jjnewStateCnt++] = 4; + break; + case 0: + if ((0xffffffe7ffffffffL & l) == 0L) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + break; + case 2: + if ((0x1800000000L & l) == 0L) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + break; + case 3: + if (curChar == 36) + jjstateSet[jjnewStateCnt++] = 4; + break; + case 4: + if ((0xffffffefffffffffL & l) == 0L) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + break; + case 5: + if (curChar == 35) + jjstateSet[jjnewStateCnt++] = 6; + break; + case 6: + if ((0xfffffff7ffffffffL & l) == 0L) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 7: + if ((0xffffffffefffffffL & l) != 0L) + { + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + } + else if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 2; + break; + case 0: + if ((0xffffffffefffffffL & l) == 0L) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + break; + case 1: + if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 2; + break; + case 2: + if (curChar != 92) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + break; + case 4: + case 6: + if ((0xf7ffffffffffffffL & l) == 0L) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + 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 7: + case 0: + case 4: + case 6: + if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) + break; + if (kind > 1) + kind = 1; + jjCheckNAddStates(0, 3); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 8 - (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) + { + case 0: + if ((active0 & 0x141d555401c000L) != 0L) + { + jjmatchedKind = 53; + return 41; + } + if ((active0 & 0x40000L) != 0L) + return 1; + return -1; + case 1: + if ((active0 & 0x41554000000L) != 0L) + return 42; + if ((active0 & 0x1419400001c000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 1; + return 42; + } + return -1; + case 2: + if ((active0 & 0x14014000000000L) != 0L) + return 42; + if ((active0 & 0x18000001c000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 2; + return 42; + } + return -1; + case 3: + if ((active0 & 0x14000L) != 0L) + return 42; + if ((active0 & 0x180000008000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 3; + return 42; + } + return -1; + case 4: + if ((active0 & 0x80000008000L) != 0L) + return 42; + if ((active0 & 0x100000000000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 4; + return 42; + } + return -1; + case 5: + if ((active0 & 0x100000000000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 5; + return 42; + } + return -1; + case 6: + if ((active0 & 0x100000000000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 6; + return 42; + } + return -1; + case 7: + if ((active0 & 0x100000000000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 7; + return 42; + } + return -1; + case 8: + if ((active0 & 0x100000000000L) != 0L) + { + jjmatchedKind = 53; + jjmatchedPos = 8; + return 42; + } + 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 33: + jjmatchedKind = 37; + return jjMoveStringLiteralDfa1_1(0x800000000L); + case 37: + return jjStopAtPos(0, 51); + case 38: + return jjMoveStringLiteralDfa1_1(0x8000000000L); + case 40: + return jjStopAtPos(0, 19); + case 41: + return jjStopAtPos(0, 20); + case 42: + return jjStopAtPos(0, 45); + case 43: + return jjStopAtPos(0, 46); + case 44: + return jjStopAtPos(0, 24); + case 45: + return jjStopAtPos(0, 47); + case 46: + return jjStartNfaWithStates_1(0, 18, 1); + case 47: + return jjStopAtPos(0, 49); + case 58: + return jjStopAtPos(0, 23); + case 60: + jjmatchedKind = 27; + return jjMoveStringLiteralDfa1_1(0x80000000L); + case 61: + return jjMoveStringLiteralDfa1_1(0x200000000L); + case 62: + jjmatchedKind = 25; + return jjMoveStringLiteralDfa1_1(0x20000000L); + case 63: + return jjStopAtPos(0, 48); + case 91: + return jjStopAtPos(0, 21); + case 93: + return jjStopAtPos(0, 22); + case 97: + return jjMoveStringLiteralDfa1_1(0x10000000000L); + case 100: + return jjMoveStringLiteralDfa1_1(0x4000000000000L); + case 101: + return jjMoveStringLiteralDfa1_1(0x80400000000L); + case 102: + return jjMoveStringLiteralDfa1_1(0x8000L); + case 103: + return jjMoveStringLiteralDfa1_1(0x44000000L); + case 105: + return jjMoveStringLiteralDfa1_1(0x100000000000L); + case 108: + return jjMoveStringLiteralDfa1_1(0x110000000L); + case 109: + return jjMoveStringLiteralDfa1_1(0x10000000000000L); + case 110: + return jjMoveStringLiteralDfa1_1(0x5000010000L); + case 111: + return jjMoveStringLiteralDfa1_1(0x40000000000L); + case 116: + return jjMoveStringLiteralDfa1_1(0x4000L); + case 124: + return jjMoveStringLiteralDfa1_1(0x20000000000L); + case 125: + return jjStopAtPos(0, 17); + default : + return jjMoveNfa_1(0, 0); + } +} +private final int jjMoveStringLiteralDfa1_1(long active0) +{ + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(0, active0); + return 1; + } + switch(curChar) + { + case 38: + if ((active0 & 0x8000000000L) != 0L) + return jjStopAtPos(1, 39); + break; + case 61: + if ((active0 & 0x20000000L) != 0L) + return jjStopAtPos(1, 29); + else if ((active0 & 0x80000000L) != 0L) + return jjStopAtPos(1, 31); + else if ((active0 & 0x200000000L) != 0L) + return jjStopAtPos(1, 33); + else if ((active0 & 0x800000000L) != 0L) + return jjStopAtPos(1, 35); + break; + case 97: + return jjMoveStringLiteralDfa2_1(active0, 0x8000L); + case 101: + if ((active0 & 0x40000000L) != 0L) + return jjStartNfaWithStates_1(1, 30, 42); + else if ((active0 & 0x100000000L) != 0L) + return jjStartNfaWithStates_1(1, 32, 42); + else if ((active0 & 0x1000000000L) != 0L) + return jjStartNfaWithStates_1(1, 36, 42); + break; + case 105: + return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L); + case 109: + return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L); + case 110: + return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L); + case 111: + return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L); + case 113: + if ((active0 & 0x400000000L) != 0L) + return jjStartNfaWithStates_1(1, 34, 42); + break; + case 114: + if ((active0 & 0x40000000000L) != 0L) + return jjStartNfaWithStates_1(1, 42, 42); + return jjMoveStringLiteralDfa2_1(active0, 0x4000L); + case 116: + if ((active0 & 0x4000000L) != 0L) + return jjStartNfaWithStates_1(1, 26, 42); + else if ((active0 & 0x10000000L) != 0L) + return jjStartNfaWithStates_1(1, 28, 42); + break; + case 117: + return jjMoveStringLiteralDfa2_1(active0, 0x10000L); + case 124: + if ((active0 & 0x20000000000L) != 0L) + return jjStopAtPos(1, 41); + break; + default : + break; + } + return jjStartNfa_1(0, active0); +} +private final int jjMoveStringLiteralDfa2_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(0, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(1, active0); + return 2; + } + switch(curChar) + { + case 100: + if ((active0 & 0x10000000000L) != 0L) + return jjStartNfaWithStates_1(2, 40, 42); + else if ((active0 & 0x10000000000000L) != 0L) + return jjStartNfaWithStates_1(2, 52, 42); + break; + case 108: + return jjMoveStringLiteralDfa3_1(active0, 0x18000L); + case 112: + return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L); + case 115: + return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L); + case 116: + if ((active0 & 0x4000000000L) != 0L) + return jjStartNfaWithStates_1(2, 38, 42); + break; + case 117: + return jjMoveStringLiteralDfa3_1(active0, 0x4000L); + case 118: + if ((active0 & 0x4000000000000L) != 0L) + return jjStartNfaWithStates_1(2, 50, 42); + break; + default : + break; + } + return jjStartNfa_1(1, active0); +} +private final int jjMoveStringLiteralDfa3_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(1, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(2, active0); + return 3; + } + switch(curChar) + { + case 101: + if ((active0 & 0x4000L) != 0L) + return jjStartNfaWithStates_1(3, 14, 42); + break; + case 108: + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_1(3, 16, 42); + break; + case 115: + return jjMoveStringLiteralDfa4_1(active0, 0x8000L); + case 116: + return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L); + default : + break; + } + return jjStartNfa_1(2, active0); +} +private final int jjMoveStringLiteralDfa4_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(2, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(3, active0); + return 4; + } + switch(curChar) + { + case 97: + return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L); + case 101: + if ((active0 & 0x8000L) != 0L) + return jjStartNfaWithStates_1(4, 15, 42); + break; + case 121: + if ((active0 & 0x80000000000L) != 0L) + return jjStartNfaWithStates_1(4, 43, 42); + break; + default : + break; + } + return jjStartNfa_1(3, active0); +} +private final int jjMoveStringLiteralDfa5_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(3, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(4, active0); + return 5; + } + switch(curChar) + { + case 110: + return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L); + default : + break; + } + return jjStartNfa_1(4, active0); +} +private final int jjMoveStringLiteralDfa6_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(4, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(5, active0); + return 6; + } + switch(curChar) + { + case 99: + return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L); + default : + break; + } + return jjStartNfa_1(5, active0); +} +private final int jjMoveStringLiteralDfa7_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(5, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(6, active0); + return 7; + } + switch(curChar) + { + case 101: + return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L); + default : + break; + } + return jjStartNfa_1(6, active0); +} +private final int jjMoveStringLiteralDfa8_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(6, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(7, active0); + return 8; + } + switch(curChar) + { + case 111: + return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L); + default : + break; + } + return jjStartNfa_1(7, active0); +} +private final int jjMoveStringLiteralDfa9_1(long old0, long active0) +{ + if (((active0 &= old0)) == 0L) + return jjStartNfa_1(7, old0); + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { + jjStopStringLiteralDfa_1(8, active0); + return 9; + } + switch(curChar) + { + case 102: + if ((active0 & 0x100000000000L) != 0L) + return jjStartNfaWithStates_1(9, 44, 42); + break; + default : + break; + } + return jjStartNfa_1(8, active0); +} +static final long[] jjbitVec3 = { + 0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x600000000000000L +}; +static final long[] jjbitVec4 = { + 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL +}; +static final long[] jjbitVec5 = { + 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +static final long[] jjbitVec6 = { + 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L +}; +static final long[] jjbitVec7 = { + 0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L +}; +static final long[] jjbitVec8 = { + 0x3fffffffffffL, 0x0L, 0x0L, 0x0L +}; +private final int jjMoveNfa_1(int startState, int curPos) +{ + int[] nextStates; + int startsAt = 0; + jjnewStateCnt = 41; + 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 41: + if ((0x3ff001000000000L & l) != 0L) + { + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + } + else if ((0x600000000000L & l) != 0L) + jjCheckNAddStates(4, 6); + else if (curChar == 58) + { + if (kind > 54) + kind = 54; + } + if ((0x3ff001000000000L & l) != 0L) + jjCheckNAddStates(7, 10); + if ((0x3ff001000000000L & l) != 0L) + { + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + } + if ((0x1800000000L & l) != 0L) + jjCheckNAddStates(11, 14); + break; + case 0: + if ((0x3ff000000000000L & l) != 0L) + { + if (kind > 9) + kind = 9; + jjCheckNAddStates(15, 19); + } + else if ((0x1800000000L & l) != 0L) + { + if (kind > 53) + kind = 53; + jjCheckNAddStates(20, 25); + } + else if (curChar == 39) + jjCheckNAddStates(26, 30); + else if (curChar == 34) + jjCheckNAddStates(31, 35); + else if (curChar == 46) + jjCheckNAdd(1); + break; + case 42: + if ((0x3ff001000000000L & l) != 0L) + { + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + } + else if ((0x600000000000L & l) != 0L) + jjCheckNAddStates(4, 6); + else if (curChar == 58) + { + if (kind > 54) + kind = 54; + } + if ((0x3ff001000000000L & l) != 0L) + jjCheckNAddStates(11, 14); + if ((0x3ff001000000000L & l) != 0L) + jjCheckNAddStates(7, 10); + if ((0x3ff001000000000L & l) != 0L) + { + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + } + if ((0x1800000000L & l) != 0L) + jjCheckNAddStates(11, 14); + break; + case 1: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 10) + kind = 10; + jjCheckNAddTwoStates(1, 2); + break; + case 3: + if ((0x280000000000L & l) != 0L) + jjCheckNAdd(4); + break; + case 4: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 10) + kind = 10; + jjCheckNAdd(4); + break; + case 5: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 9) + kind = 9; + jjCheckNAddStates(15, 19); + break; + case 6: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 9) + kind = 9; + jjCheckNAdd(6); + break; + case 7: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(7, 8); + break; + case 8: + if (curChar != 46) + break; + if (kind > 10) + kind = 10; + jjCheckNAddTwoStates(9, 10); + break; + case 9: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 10) + kind = 10; + jjCheckNAddTwoStates(9, 10); + break; + case 11: + if ((0x280000000000L & l) != 0L) + jjCheckNAdd(12); + break; + case 12: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 10) + kind = 10; + jjCheckNAdd(12); + break; + case 13: + if ((0x3ff000000000000L & l) != 0L) + jjCheckNAddTwoStates(13, 14); + break; + case 15: + if ((0x280000000000L & l) != 0L) + jjCheckNAdd(16); + break; + case 16: + if ((0x3ff000000000000L & l) == 0L) + break; + if (kind > 10) + kind = 10; + jjCheckNAdd(16); + break; + case 17: + if (curChar == 34) + jjCheckNAddStates(31, 35); + break; + case 18: + if ((0xfffffffbffffffffL & l) != 0L) + jjCheckNAddStates(36, 38); + break; + case 20: + if (curChar == 34) + jjCheckNAddStates(36, 38); + break; + case 21: + if (curChar == 34 && kind > 12) + kind = 12; + break; + case 22: + if ((0xfffffffbffffffffL & l) != 0L) + jjCheckNAddTwoStates(22, 23); + break; + case 24: + if ((0xfffffffbffffffffL & l) != 0L && kind > 13) + kind = 13; + break; + case 25: + if (curChar == 39) + jjCheckNAddStates(26, 30); + break; + case 26: + if ((0xffffff7fffffffffL & l) != 0L) + jjCheckNAddStates(39, 41); + break; + case 28: + if (curChar == 39) + jjCheckNAddStates(39, 41); + break; + case 29: + if (curChar == 39 && kind > 12) + kind = 12; + break; + case 30: + if ((0xffffff7fffffffffL & l) != 0L) + jjCheckNAddTwoStates(30, 31); + break; + case 32: + if ((0xffffff7fffffffffL & l) != 0L && kind > 13) + kind = 13; + break; + case 33: + if ((0x1800000000L & l) == 0L) + break; + if (kind > 53) + kind = 53; + jjCheckNAddStates(20, 25); + break; + case 34: + if ((0x3ff001000000000L & l) == 0L) + break; + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + break; + case 35: + if ((0x3ff001000000000L & l) != 0L) + jjCheckNAddStates(7, 10); + break; + case 36: + if ((0x1800000000L & l) != 0L) + jjCheckNAddStates(11, 14); + break; + case 37: + if ((0x3ff001000000000L & l) != 0L) + jjCheckNAddStates(11, 14); + break; + case 38: + if ((0x600000000000L & l) != 0L) + jjCheckNAddStates(4, 6); + break; + case 39: + if (curChar == 58 && kind > 54) + kind = 54; + break; + case 40: + if ((0x3ff001000000000L & l) == 0L) + break; + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + break; + default : break; + } + } while(i != startsAt); + } + else if (curChar < 128) + { + long l = 1L << (curChar & 077); + MatchLoop: do + { + switch(jjstateSet[--i]) + { + case 41: + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + } + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(11, 14); + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(7, 10); + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + } + break; + case 0: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 53) + kind = 53; + jjCheckNAddStates(20, 25); + break; + case 42: + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + } + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(11, 14); + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(11, 14); + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(7, 10); + if ((0x7fffffe87fffffeL & l) != 0L) + { + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + } + break; + case 2: + if ((0x2000000020L & l) != 0L) + jjAddStates(42, 43); + break; + case 10: + if ((0x2000000020L & l) != 0L) + jjAddStates(44, 45); + break; + case 14: + if ((0x2000000020L & l) != 0L) + jjAddStates(46, 47); + break; + case 18: + if ((0xffffffffefffffffL & l) != 0L) + jjCheckNAddStates(36, 38); + break; + case 19: + if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 20; + break; + case 20: + if (curChar == 92) + jjCheckNAddStates(36, 38); + break; + case 22: + if ((0xffffffffefffffffL & l) != 0L) + jjAddStates(48, 49); + break; + case 23: + if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 24; + break; + case 24: + case 32: + if ((0xffffffffefffffffL & l) != 0L && kind > 13) + kind = 13; + break; + case 26: + if ((0xffffffffefffffffL & l) != 0L) + jjCheckNAddStates(39, 41); + break; + case 27: + if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 28; + break; + case 28: + if (curChar == 92) + jjCheckNAddStates(39, 41); + break; + case 30: + if ((0xffffffffefffffffL & l) != 0L) + jjAddStates(50, 51); + break; + case 31: + if (curChar == 92) + jjstateSet[jjnewStateCnt++] = 32; + break; + case 34: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + break; + case 35: + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(7, 10); + break; + case 36: + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(11, 14); + break; + case 37: + if ((0x7fffffe87fffffeL & l) != 0L) + jjCheckNAddStates(11, 14); + break; + case 40: + if ((0x7fffffe87fffffeL & l) == 0L) + break; + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + 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 41: + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + { + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + } + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(7, 10); + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(11, 14); + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + { + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + } + break; + case 0: + if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) + break; + if (kind > 53) + kind = 53; + jjCheckNAddStates(20, 25); + break; + case 42: + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + { + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + } + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(7, 10); + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(11, 14); + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(11, 14); + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + { + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + } + break; + case 18: + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + jjAddStates(36, 38); + break; + case 22: + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + jjAddStates(48, 49); + break; + case 24: + case 32: + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13) + kind = 13; + break; + case 26: + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + jjAddStates(39, 41); + break; + case 30: + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + jjAddStates(50, 51); + break; + case 34: + if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) + break; + if (kind > 53) + kind = 53; + jjCheckNAdd(34); + break; + case 35: + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(7, 10); + break; + case 36: + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(11, 14); + break; + case 37: + if (jjCanMove_1(hiByte, i1, i2, l1, l2)) + jjCheckNAddStates(11, 14); + break; + case 40: + if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) + break; + if (kind > 55) + kind = 55; + jjCheckNAdd(40); + break; + default : break; + } + } while(i != startsAt); + } + if (kind != 0x7fffffff) + { + jjmatchedKind = kind; + jjmatchedPos = curPos; + kind = 0x7fffffff; + } + ++curPos; + if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt))) + return curPos; + try { curChar = input_stream.readChar(); } + catch(java.io.IOException e) { return curPos; } + } +} +static final int[] jjnextStates = { + 0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39, 36, 37, 38, 39, 6, + 7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27, 29, 30, 31, 18, + 19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16, + 22, 23, 30, 31, +}; +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; + } +} +private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2) +{ + switch(hiByte) + { + case 0: + return ((jjbitVec4[i2] & l2) != 0L); + case 48: + return ((jjbitVec5[i2] & l2) != 0L); + case 49: + return ((jjbitVec6[i2] & l2) != 0L); + case 51: + return ((jjbitVec7[i2] & l2) != 0L); + case 61: + return ((jjbitVec8[i2] & l2) != 0L); + default : + if ((jjbitVec3[i1] & l1) != 0L) + return true; + return false; + } +} +public static final String[] jjstrLiteralImages = { +"", null, "\44\173", "\43\173", null, null, null, null, null, null, null, null, +null, null, "\164\162\165\145", "\146\141\154\163\145", "\156\165\154\154", "\175", +"\56", "\50", "\51", "\133", "\135", "\72", "\54", "\76", "\147\164", "\74", +"\154\164", "\76\75", "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75", +"\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144", "\174\174", "\157\162", +"\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55", "\77", "\57", +"\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null, null, }; +public static final String[] lexStateNames = { + "DEFAULT", + "IN_EXPRESSION", +}; +public static final int[] jjnewLexState = { + -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +}; +static final long[] jjtoToken = { + 0x8fffffffffff60fL, +}; +static final long[] jjtoSkip = { + 0x1f0L, +}; +protected SimpleCharStream input_stream; +private final int[] jjrounds = new int[41]; +private final int[] jjstateSet = new int[82]; +protected char curChar; +public ELParserTokenManager(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 ELParserTokenManager(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 = 41; i-- > 0;) + jjrounds[i] = 0x80000000; +} +public void ReInit(SimpleCharStream stream, int lexState) +{ + ReInit(stream); + SwitchTo(lexState); +} +public void SwitchTo(int lexState) +{ + if (lexState >= 2 || lexState < 0) + throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); + else + curLexState = lexState; +} -public class ELParserTokenManager implements ELParserConstants { - public java.io.PrintStream debugStream = System.out; - - public void setDebugStream(java.io.PrintStream ds) { - debugStream = ds; - } - - private final int jjStopStringLiteralDfa_0(int pos, long active0) { - switch (pos) { - case 0: - if ((active0 & 0x10L) != 0L) - return 2; - if ((active0 & 0x4L) != 0L) { - jjmatchedKind = 1; - return 4; - } - if ((active0 & 0x8L) != 0L) { - jjmatchedKind = 1; - return 6; - } - 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 35: - return jjMoveStringLiteralDfa1_0(0x8L); - case 36: - return jjMoveStringLiteralDfa1_0(0x4L); - case 92: - return jjStartNfaWithStates_0(0, 4, 2); - default: - return jjMoveNfa_0(7, 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 123: - if ((active0 & 0x4L) != 0L) - return jjStopAtPos(1, 2); - else if ((active0 & 0x8L) != 0L) - return jjStopAtPos(1, 3); - break; - default: - break; - } - return jjStartNfa_0(0, active0); - } - - 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]); - } - - 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 = 8; - 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 7: - if ((0xffffffe7ffffffffL & l) != 0L) { - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - } else if ((0x1800000000L & l) != 0L) { - if (kind > 1) - kind = 1; - } - if (curChar == 35) - jjstateSet[jjnewStateCnt++] = 6; - else if (curChar == 36) - jjstateSet[jjnewStateCnt++] = 4; - break; - case 0: - if ((0xffffffe7ffffffffL & l) == 0L) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - break; - case 2: - if ((0x1800000000L & l) == 0L) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - break; - case 3: - if (curChar == 36) - jjstateSet[jjnewStateCnt++] = 4; - break; - case 4: - if ((0xffffffefffffffffL & l) == 0L) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - break; - case 5: - if (curChar == 35) - jjstateSet[jjnewStateCnt++] = 6; - break; - case 6: - if ((0xfffffff7ffffffffL & l) == 0L) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - break; - default: - break; - } - } while (i != startsAt); - } else if (curChar < 128) { - long l = 1L << (curChar & 077); - MatchLoop: do { - switch (jjstateSet[--i]) { - case 7: - if ((0xffffffffefffffffL & l) != 0L) { - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - } else if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 2; - break; - case 0: - if ((0xffffffffefffffffL & l) == 0L) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - break; - case 1: - if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 2; - break; - case 2: - if (curChar != 92) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - break; - case 4: - case 6: - if ((0xf7ffffffffffffffL & l) == 0L) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - 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 7: - case 0: - case 4: - case 6: - if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) - break; - if (kind > 1) - kind = 1; - jjCheckNAddStates(0, 3); - break; - default: - break; - } - } while (i != startsAt); - } - if (kind != 0x7fffffff) { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 8 - (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) { - case 0: - if ((active0 & 0x141d555401c000L) != 0L) { - jjmatchedKind = 53; - return 41; - } - if ((active0 & 0x40000L) != 0L) - return 1; - return -1; - case 1: - if ((active0 & 0x41554000000L) != 0L) - return 42; - if ((active0 & 0x1419400001c000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 1; - return 42; - } - return -1; - case 2: - if ((active0 & 0x14014000000000L) != 0L) - return 42; - if ((active0 & 0x18000001c000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 2; - return 42; - } - return -1; - case 3: - if ((active0 & 0x14000L) != 0L) - return 42; - if ((active0 & 0x180000008000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 3; - return 42; - } - return -1; - case 4: - if ((active0 & 0x80000008000L) != 0L) - return 42; - if ((active0 & 0x100000000000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 4; - return 42; - } - return -1; - case 5: - if ((active0 & 0x100000000000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 5; - return 42; - } - return -1; - case 6: - if ((active0 & 0x100000000000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 6; - return 42; - } - return -1; - case 7: - if ((active0 & 0x100000000000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 7; - return 42; - } - return -1; - case 8: - if ((active0 & 0x100000000000L) != 0L) { - jjmatchedKind = 53; - jjmatchedPos = 8; - return 42; - } - 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 33: - jjmatchedKind = 37; - return jjMoveStringLiteralDfa1_1(0x800000000L); - case 37: - return jjStopAtPos(0, 51); - case 38: - return jjMoveStringLiteralDfa1_1(0x8000000000L); - case 40: - return jjStopAtPos(0, 19); - case 41: - return jjStopAtPos(0, 20); - case 42: - return jjStopAtPos(0, 45); - case 43: - return jjStopAtPos(0, 46); - case 44: - return jjStopAtPos(0, 24); - case 45: - return jjStopAtPos(0, 47); - case 46: - return jjStartNfaWithStates_1(0, 18, 1); - case 47: - return jjStopAtPos(0, 49); - case 58: - return jjStopAtPos(0, 23); - case 60: - jjmatchedKind = 27; - return jjMoveStringLiteralDfa1_1(0x80000000L); - case 61: - return jjMoveStringLiteralDfa1_1(0x200000000L); - case 62: - jjmatchedKind = 25; - return jjMoveStringLiteralDfa1_1(0x20000000L); - case 63: - return jjStopAtPos(0, 48); - case 91: - return jjStopAtPos(0, 21); - case 93: - return jjStopAtPos(0, 22); - case 97: - return jjMoveStringLiteralDfa1_1(0x10000000000L); - case 100: - return jjMoveStringLiteralDfa1_1(0x4000000000000L); - case 101: - return jjMoveStringLiteralDfa1_1(0x80400000000L); - case 102: - return jjMoveStringLiteralDfa1_1(0x8000L); - case 103: - return jjMoveStringLiteralDfa1_1(0x44000000L); - case 105: - return jjMoveStringLiteralDfa1_1(0x100000000000L); - case 108: - return jjMoveStringLiteralDfa1_1(0x110000000L); - case 109: - return jjMoveStringLiteralDfa1_1(0x10000000000000L); - case 110: - return jjMoveStringLiteralDfa1_1(0x5000010000L); - case 111: - return jjMoveStringLiteralDfa1_1(0x40000000000L); - case 116: - return jjMoveStringLiteralDfa1_1(0x4000L); - case 124: - return jjMoveStringLiteralDfa1_1(0x20000000000L); - case 125: - return jjStopAtPos(0, 17); - default: - return jjMoveNfa_1(0, 0); - } - } - - private final int jjMoveStringLiteralDfa1_1(long active0) { - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(0, active0); - return 1; - } - switch (curChar) { - case 38: - if ((active0 & 0x8000000000L) != 0L) - return jjStopAtPos(1, 39); - break; - case 61: - if ((active0 & 0x20000000L) != 0L) - return jjStopAtPos(1, 29); - else if ((active0 & 0x80000000L) != 0L) - return jjStopAtPos(1, 31); - else if ((active0 & 0x200000000L) != 0L) - return jjStopAtPos(1, 33); - else if ((active0 & 0x800000000L) != 0L) - return jjStopAtPos(1, 35); - break; - case 97: - return jjMoveStringLiteralDfa2_1(active0, 0x8000L); - case 101: - if ((active0 & 0x40000000L) != 0L) - return jjStartNfaWithStates_1(1, 30, 42); - else if ((active0 & 0x100000000L) != 0L) - return jjStartNfaWithStates_1(1, 32, 42); - else if ((active0 & 0x1000000000L) != 0L) - return jjStartNfaWithStates_1(1, 36, 42); - break; - case 105: - return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L); - case 109: - return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L); - case 110: - return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L); - case 111: - return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L); - case 113: - if ((active0 & 0x400000000L) != 0L) - return jjStartNfaWithStates_1(1, 34, 42); - break; - case 114: - if ((active0 & 0x40000000000L) != 0L) - return jjStartNfaWithStates_1(1, 42, 42); - return jjMoveStringLiteralDfa2_1(active0, 0x4000L); - case 116: - if ((active0 & 0x4000000L) != 0L) - return jjStartNfaWithStates_1(1, 26, 42); - else if ((active0 & 0x10000000L) != 0L) - return jjStartNfaWithStates_1(1, 28, 42); - break; - case 117: - return jjMoveStringLiteralDfa2_1(active0, 0x10000L); - case 124: - if ((active0 & 0x20000000000L) != 0L) - return jjStopAtPos(1, 41); - break; - default: - break; - } - return jjStartNfa_1(0, active0); - } - - private final int jjMoveStringLiteralDfa2_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(0, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(1, active0); - return 2; - } - switch (curChar) { - case 100: - if ((active0 & 0x10000000000L) != 0L) - return jjStartNfaWithStates_1(2, 40, 42); - else if ((active0 & 0x10000000000000L) != 0L) - return jjStartNfaWithStates_1(2, 52, 42); - break; - case 108: - return jjMoveStringLiteralDfa3_1(active0, 0x18000L); - case 112: - return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L); - case 115: - return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L); - case 116: - if ((active0 & 0x4000000000L) != 0L) - return jjStartNfaWithStates_1(2, 38, 42); - break; - case 117: - return jjMoveStringLiteralDfa3_1(active0, 0x4000L); - case 118: - if ((active0 & 0x4000000000000L) != 0L) - return jjStartNfaWithStates_1(2, 50, 42); - break; - default: - break; - } - return jjStartNfa_1(1, active0); - } - - private final int jjMoveStringLiteralDfa3_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(1, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(2, active0); - return 3; - } - switch (curChar) { - case 101: - if ((active0 & 0x4000L) != 0L) - return jjStartNfaWithStates_1(3, 14, 42); - break; - case 108: - if ((active0 & 0x10000L) != 0L) - return jjStartNfaWithStates_1(3, 16, 42); - break; - case 115: - return jjMoveStringLiteralDfa4_1(active0, 0x8000L); - case 116: - return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L); - default: - break; - } - return jjStartNfa_1(2, active0); - } - - private final int jjMoveStringLiteralDfa4_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(2, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(3, active0); - return 4; - } - switch (curChar) { - case 97: - return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L); - case 101: - if ((active0 & 0x8000L) != 0L) - return jjStartNfaWithStates_1(4, 15, 42); - break; - case 121: - if ((active0 & 0x80000000000L) != 0L) - return jjStartNfaWithStates_1(4, 43, 42); - break; - default: - break; - } - return jjStartNfa_1(3, active0); - } - - private final int jjMoveStringLiteralDfa5_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(3, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(4, active0); - return 5; - } - switch (curChar) { - case 110: - return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L); - default: - break; - } - return jjStartNfa_1(4, active0); - } - - private final int jjMoveStringLiteralDfa6_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(4, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(5, active0); - return 6; - } - switch (curChar) { - case 99: - return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L); - default: - break; - } - return jjStartNfa_1(5, active0); - } - - private final int jjMoveStringLiteralDfa7_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(5, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(6, active0); - return 7; - } - switch (curChar) { - case 101: - return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L); - default: - break; - } - return jjStartNfa_1(6, active0); - } - - private final int jjMoveStringLiteralDfa8_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(6, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(7, active0); - return 8; - } - switch (curChar) { - case 111: - return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L); - default: - break; - } - return jjStartNfa_1(7, active0); - } - - private final int jjMoveStringLiteralDfa9_1(long old0, long active0) { - if (((active0 &= old0)) == 0L) - return jjStartNfa_1(7, old0); - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - jjStopStringLiteralDfa_1(8, active0); - return 9; - } - switch (curChar) { - case 102: - if ((active0 & 0x100000000000L) != 0L) - return jjStartNfaWithStates_1(9, 44, 42); - break; - default: - break; - } - return jjStartNfa_1(8, active0); - } - - static final long[] jjbitVec3 = { 0x1ff00000fffffffeL, 0xffffffffffffc000L, - 0xffffffffL, 0x600000000000000L }; - - static final long[] jjbitVec4 = { 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL }; - - static final long[] jjbitVec5 = { 0x0L, 0xffffffffffffffffL, - 0xffffffffffffffffL, 0xffffffffffffffffL }; - - static final long[] jjbitVec6 = { 0xffffffffffffffffL, 0xffffffffffffffffL, - 0xffffL, 0x0L }; - - static final long[] jjbitVec7 = { 0xffffffffffffffffL, 0xffffffffffffffffL, - 0x0L, 0x0L }; - - static final long[] jjbitVec8 = { 0x3fffffffffffL, 0x0L, 0x0L, 0x0L }; - - private final int jjMoveNfa_1(int startState, int curPos) { - int[] nextStates; - int startsAt = 0; - jjnewStateCnt = 41; - 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 41: - if ((0x3ff001000000000L & l) != 0L) { - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - } else if ((0x600000000000L & l) != 0L) - jjCheckNAddStates(4, 6); - else if (curChar == 58) { - if (kind > 54) - kind = 54; - } - if ((0x3ff001000000000L & l) != 0L) - jjCheckNAddStates(7, 10); - if ((0x3ff001000000000L & l) != 0L) { - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - } - if ((0x1800000000L & l) != 0L) - jjCheckNAddStates(11, 14); - break; - case 0: - if ((0x3ff000000000000L & l) != 0L) { - if (kind > 9) - kind = 9; - jjCheckNAddStates(15, 19); - } else if ((0x1800000000L & l) != 0L) { - if (kind > 53) - kind = 53; - jjCheckNAddStates(20, 25); - } else if (curChar == 39) - jjCheckNAddStates(26, 30); - else if (curChar == 34) - jjCheckNAddStates(31, 35); - else if (curChar == 46) - jjCheckNAdd(1); - break; - case 42: - if ((0x3ff001000000000L & l) != 0L) { - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - } else if ((0x600000000000L & l) != 0L) - jjCheckNAddStates(4, 6); - else if (curChar == 58) { - if (kind > 54) - kind = 54; - } - if ((0x3ff001000000000L & l) != 0L) - jjCheckNAddStates(11, 14); - if ((0x3ff001000000000L & l) != 0L) - jjCheckNAddStates(7, 10); - if ((0x3ff001000000000L & l) != 0L) { - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - } - if ((0x1800000000L & l) != 0L) - jjCheckNAddStates(11, 14); - break; - case 1: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 10) - kind = 10; - jjCheckNAddTwoStates(1, 2); - break; - case 3: - if ((0x280000000000L & l) != 0L) - jjCheckNAdd(4); - break; - case 4: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 10) - kind = 10; - jjCheckNAdd(4); - break; - case 5: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 9) - kind = 9; - jjCheckNAddStates(15, 19); - break; - case 6: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 9) - kind = 9; - jjCheckNAdd(6); - break; - case 7: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(7, 8); - break; - case 8: - if (curChar != 46) - break; - if (kind > 10) - kind = 10; - jjCheckNAddTwoStates(9, 10); - break; - case 9: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 10) - kind = 10; - jjCheckNAddTwoStates(9, 10); - break; - case 11: - if ((0x280000000000L & l) != 0L) - jjCheckNAdd(12); - break; - case 12: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 10) - kind = 10; - jjCheckNAdd(12); - break; - case 13: - if ((0x3ff000000000000L & l) != 0L) - jjCheckNAddTwoStates(13, 14); - break; - case 15: - if ((0x280000000000L & l) != 0L) - jjCheckNAdd(16); - break; - case 16: - if ((0x3ff000000000000L & l) == 0L) - break; - if (kind > 10) - kind = 10; - jjCheckNAdd(16); - break; - case 17: - if (curChar == 34) - jjCheckNAddStates(31, 35); - break; - case 18: - if ((0xfffffffbffffffffL & l) != 0L) - jjCheckNAddStates(36, 38); - break; - case 20: - if (curChar == 34) - jjCheckNAddStates(36, 38); - break; - case 21: - if (curChar == 34 && kind > 12) - kind = 12; - break; - case 22: - if ((0xfffffffbffffffffL & l) != 0L) - jjCheckNAddTwoStates(22, 23); - break; - case 24: - if ((0xfffffffbffffffffL & l) != 0L && kind > 13) - kind = 13; - break; - case 25: - if (curChar == 39) - jjCheckNAddStates(26, 30); - break; - case 26: - if ((0xffffff7fffffffffL & l) != 0L) - jjCheckNAddStates(39, 41); - break; - case 28: - if (curChar == 39) - jjCheckNAddStates(39, 41); - break; - case 29: - if (curChar == 39 && kind > 12) - kind = 12; - break; - case 30: - if ((0xffffff7fffffffffL & l) != 0L) - jjCheckNAddTwoStates(30, 31); - break; - case 32: - if ((0xffffff7fffffffffL & l) != 0L && kind > 13) - kind = 13; - break; - case 33: - if ((0x1800000000L & l) == 0L) - break; - if (kind > 53) - kind = 53; - jjCheckNAddStates(20, 25); - break; - case 34: - if ((0x3ff001000000000L & l) == 0L) - break; - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - break; - case 35: - if ((0x3ff001000000000L & l) != 0L) - jjCheckNAddStates(7, 10); - break; - case 36: - if ((0x1800000000L & l) != 0L) - jjCheckNAddStates(11, 14); - break; - case 37: - if ((0x3ff001000000000L & l) != 0L) - jjCheckNAddStates(11, 14); - break; - case 38: - if ((0x600000000000L & l) != 0L) - jjCheckNAddStates(4, 6); - break; - case 39: - if (curChar == 58 && kind > 54) - kind = 54; - break; - case 40: - if ((0x3ff001000000000L & l) == 0L) - break; - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - break; - default: - break; - } - } while (i != startsAt); - } else if (curChar < 128) { - long l = 1L << (curChar & 077); - MatchLoop: do { - switch (jjstateSet[--i]) { - case 41: - if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - } - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(11, 14); - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(7, 10); - if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - } - break; - case 0: - if ((0x7fffffe87fffffeL & l) == 0L) - break; - if (kind > 53) - kind = 53; - jjCheckNAddStates(20, 25); - break; - case 42: - if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - } - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(11, 14); - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(11, 14); - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(7, 10); - if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - } - break; - case 2: - if ((0x2000000020L & l) != 0L) - jjAddStates(42, 43); - break; - case 10: - if ((0x2000000020L & l) != 0L) - jjAddStates(44, 45); - break; - case 14: - if ((0x2000000020L & l) != 0L) - jjAddStates(46, 47); - break; - case 18: - if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddStates(36, 38); - break; - case 19: - if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 20; - break; - case 20: - if (curChar == 92) - jjCheckNAddStates(36, 38); - break; - case 22: - if ((0xffffffffefffffffL & l) != 0L) - jjAddStates(48, 49); - break; - case 23: - if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 24; - break; - case 24: - case 32: - if ((0xffffffffefffffffL & l) != 0L && kind > 13) - kind = 13; - break; - case 26: - if ((0xffffffffefffffffL & l) != 0L) - jjCheckNAddStates(39, 41); - break; - case 27: - if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 28; - break; - case 28: - if (curChar == 92) - jjCheckNAddStates(39, 41); - break; - case 30: - if ((0xffffffffefffffffL & l) != 0L) - jjAddStates(50, 51); - break; - case 31: - if (curChar == 92) - jjstateSet[jjnewStateCnt++] = 32; - break; - case 34: - if ((0x7fffffe87fffffeL & l) == 0L) - break; - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - break; - case 35: - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(7, 10); - break; - case 36: - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(11, 14); - break; - case 37: - if ((0x7fffffe87fffffeL & l) != 0L) - jjCheckNAddStates(11, 14); - break; - case 40: - if ((0x7fffffe87fffffeL & l) == 0L) - break; - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - 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 41: - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) { - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - } - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(7, 10); - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(11, 14); - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) { - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - } - break; - case 0: - if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) - break; - if (kind > 53) - kind = 53; - jjCheckNAddStates(20, 25); - break; - case 42: - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) { - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - } - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(7, 10); - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(11, 14); - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(11, 14); - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) { - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - } - break; - case 18: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(36, 38); - break; - case 22: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(48, 49); - break; - case 24: - case 32: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13) - kind = 13; - break; - case 26: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(39, 41); - break; - case 30: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(50, 51); - break; - case 34: - if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) - break; - if (kind > 53) - kind = 53; - jjCheckNAdd(34); - break; - case 35: - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(7, 10); - break; - case 36: - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(11, 14); - break; - case 37: - if (jjCanMove_1(hiByte, i1, i2, l1, l2)) - jjCheckNAddStates(11, 14); - break; - case 40: - if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) - break; - if (kind > 55) - kind = 55; - jjCheckNAdd(40); - break; - default: - break; - } - } while (i != startsAt); - } - if (kind != 0x7fffffff) { - jjmatchedKind = kind; - jjmatchedPos = curPos; - kind = 0x7fffffff; - } - ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt))) - return curPos; - try { - curChar = input_stream.readChar(); - } catch (java.io.IOException e) { - return curPos; - } - } - } - - static final int[] jjnextStates = { 0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39, - 36, 37, 38, 39, 6, 7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27, - 29, 30, 31, 18, 19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, - 12, 15, 16, 22, 23, 30, 31, }; - - 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; - } - } - - private static final boolean jjCanMove_1(int hiByte, int i1, int i2, - long l1, long l2) { - switch (hiByte) { - case 0: - return ((jjbitVec4[i2] & l2) != 0L); - case 48: - return ((jjbitVec5[i2] & l2) != 0L); - case 49: - return ((jjbitVec6[i2] & l2) != 0L); - case 51: - return ((jjbitVec7[i2] & l2) != 0L); - case 61: - return ((jjbitVec8[i2] & l2) != 0L); - default: - if ((jjbitVec3[i1] & l1) != 0L) - return true; - return false; - } - } - - public static final String[] jjstrLiteralImages = { "", null, "\44\173", - "\43\173", null, null, null, null, null, null, null, null, null, - null, "\164\162\165\145", "\146\141\154\163\145", - "\156\165\154\154", "\175", "\56", "\50", "\51", "\133", "\135", - "\72", "\54", "\76", "\147\164", "\74", "\154\164", "\76\75", - "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75", - "\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144", - "\174\174", "\157\162", "\145\155\160\164\171", - "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55", - "\77", "\57", "\144\151\166", "\45", "\155\157\144", null, null, - null, null, null, null, null, }; - - public static final String[] lexStateNames = { "DEFAULT", "IN_EXPRESSION", }; - - public static final int[] jjnewLexState = { -1, -1, 1, 1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, }; - - static final long[] jjtoToken = { 0x8fffffffffff60fL, }; - - static final long[] jjtoSkip = { 0x1f0L, }; - - protected SimpleCharStream input_stream; - - private final int[] jjrounds = new int[41]; - - private final int[] jjstateSet = new int[82]; - - protected char curChar; - - public ELParserTokenManager(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 ELParserTokenManager(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 = 41; i-- > 0;) - jjrounds[i] = 0x80000000; - } - - public void ReInit(SimpleCharStream stream, int lexState) { - ReInit(stream); - SwitchTo(lexState); - } - - public void SwitchTo(int lexState) { - if (lexState >= 2 || 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; - } +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; +} - switch (curLexState) { - case 0: - jjmatchedKind = 0x7fffffff; - jjmatchedPos = 0; - curPos = jjMoveStringLiteralDfa0_0(); - break; - case 1: - 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_1(); - if (jjmatchedPos == 0 && jjmatchedKind > 59) { - jjmatchedKind = 59; - } - 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 (jjnewLexState[jjmatchedKind] != -1) - curLexState = jjnewLexState[jjmatchedKind]; - continue EOFLoop; - } - } - 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); - } - } +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; + } + + switch(curLexState) + { + case 0: + jjmatchedKind = 0x7fffffff; + jjmatchedPos = 0; + curPos = jjMoveStringLiteralDfa0_0(); + break; + case 1: + 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_1(); + if (jjmatchedPos == 0 && jjmatchedKind > 59) + { + jjmatchedKind = 59; + } + 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 (jjnewLexState[jjmatchedKind] != -1) + curLexState = jjnewLexState[jjmatchedKind]; + continue EOFLoop; + } + } + 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/java/org/apache/el/parser/ParseException.java b/java/org/apache/el/parser/ParseException.java index 59c9c8946..278b3276a 100644 --- a/java/org/apache/el/parser/ParseException.java +++ b/java/org/apache/el/parser/ParseException.java @@ -114,19 +114,19 @@ public class ParseException extends Exception { if (!specialConstructor) { return super.getMessage(); } - String expected = ""; + StringBuffer expected = new StringBuffer(); int maxSize = 0; for (int i = 0; i < expectedTokenSequences.length; i++) { if (maxSize < expectedTokenSequences[i].length) { maxSize = expectedTokenSequences[i].length; } for (int j = 0; j < expectedTokenSequences[i].length; j++) { - expected += tokenImage[expectedTokenSequences[i][j]] + " "; + expected.append(tokenImage[expectedTokenSequences[i][j]]).append(" "); } if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) { - expected += "..."; + expected.append("..."); } - expected += eol + " "; + expected.append(eol).append(" "); } String retval = "Encountered \""; Token tok = currentToken.next; @@ -146,7 +146,7 @@ public class ParseException extends Exception { } else { retval += "Was expecting one of:" + eol + " "; } - retval += expected; + retval += expected.toString(); return retval; } -- 2.11.0