You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2008/08/21 17:49:38 UTC

svn commit: r687787 [2/3] - in /geronimo/server/branches/2.1/repository/org/apache/tomcat: ./ catalina/6.0.18-G678601/ jasper-el/6.0.18-G678601/ jasper/6.0.18-G678601/

Added: geronimo/server/branches/2.1/repository/org/apache/tomcat/ELParser-6.0.18.patch
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/tomcat/ELParser-6.0.18.patch?rev=687787&view=auto
==============================================================================
--- geronimo/server/branches/2.1/repository/org/apache/tomcat/ELParser-6.0.18.patch (added)
+++ geronimo/server/branches/2.1/repository/org/apache/tomcat/ELParser-6.0.18.patch Thu Aug 21 08:49:36 2008
@@ -0,0 +1,3988 @@
+Index: java/org/apache/el/parser/ELParser.html
+===================================================================
+--- java/org/apache/el/parser/ELParser.html	(revision 685950)
++++ java/org/apache/el/parser/ELParser.html	(working copy)
+@@ -51,7 +51,7 @@
+ <TR>
+ <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">Choice</A></TD>
+ <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
+-<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod7">Or</A> ( &lt;QUESTIONMARK&gt; <A HREF="#prod6">Choice</A> &lt;COLON&gt; <A HREF="#prod6">Choice</A> )*</TD>
++<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod7">Or</A> ( &lt;QUESTIONMARK&gt; <A HREF="#prod7">Or</A> &lt;COLON&gt; <A HREF="#prod6">Choice</A> )*</TD>
+ </TR>
+ <TR>
+ <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">Or</A></TD>
+Index: java/org/apache/el/parser/ELParserTokenManager.java
+===================================================================
+--- java/org/apache/el/parser/ELParserTokenManager.java	(revision 685950)
++++ java/org/apache/el/parser/ELParserTokenManager.java	(working copy)
+@@ -16,1398 +16,1404 @@
+  */
+ /* 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 42;
+-         }
+-         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 & 0x18000001c000L) != 0L)
+-         {
+-            jjmatchedKind = 53;
+-            jjmatchedPos = 2;
+-            return 42;
+-         }
+-         if ((active0 & 0x14014000000000L) != 0L)
+-            return 42;
+-         return -1;
+-      case 3:
+-         if ((active0 & 0x180000008000L) != 0L)
+-         {
+-            jjmatchedKind = 53;
+-            jjmatchedPos = 3;
+-            return 42;
+-         }
+-         if ((active0 & 0x14000L) != 0L)
+-            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 = 42;
+-   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)
+-                  {
+-                     if (kind > 9)
+-                        kind = 9;
+-                     jjCheckNAddStates(4, 8);
+-                  }
+-                  else if ((0x1800000000L & l) != 0L)
+-                  {
+-                     if (kind > 53)
+-                        kind = 53;
+-                     jjCheckNAddStates(9, 15);
+-                  }
+-                  else if (curChar == 39)
+-                     jjCheckNAddStates(16, 20);
+-                  else if (curChar == 34)
+-                     jjCheckNAddStates(21, 25);
+-                  else if (curChar == 46)
+-                     jjCheckNAdd(1);
+-                  break;
+-               case 42:
+-                  if ((0x3ff601000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  else if (curChar == 40)
+-                  {
+-                     if (kind > 56)
+-                        kind = 56;
+-                  }
+-                  else if (curChar == 58)
+-                     jjstateSet[jjnewStateCnt++] = 38;
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                  {
+-                     if (kind > 57)
+-                        kind = 57;
+-                     jjCheckNAdd(41);
+-                  }
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddStates(26, 28);
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                  {
+-                     if (kind > 53)
+-                        kind = 53;
+-                     jjCheckNAdd(34);
+-                  }
+-                  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(4, 8);
+-                  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(21, 25);
+-                  break;
+-               case 18:
+-                  if ((0xfffffffbffffffffL & l) != 0L)
+-                     jjCheckNAddStates(29, 31);
+-                  break;
+-               case 20:
+-                  if (curChar == 34)
+-                     jjCheckNAddStates(29, 31);
+-                  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(16, 20);
+-                  break;
+-               case 26:
+-                  if ((0xffffff7fffffffffL & l) != 0L)
+-                     jjCheckNAddStates(32, 34);
+-                  break;
+-               case 28:
+-                  if (curChar == 39)
+-                     jjCheckNAddStates(32, 34);
+-                  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(9, 15);
+-                  break;
+-               case 34:
+-                  if ((0x3ff001000000000L & l) == 0L)
+-                     break;
+-                  if (kind > 53)
+-                     kind = 53;
+-                  jjCheckNAdd(34);
+-                  break;
+-               case 35:
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddStates(26, 28);
+-                  break;
+-               case 36:
+-                  if ((0x3ff601000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  break;
+-               case 37:
+-                  if (curChar == 58)
+-                     jjstateSet[jjnewStateCnt++] = 38;
+-                  break;
+-               case 38:
+-                  if ((0x1800000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 39:
+-                  if ((0x3ff001000000000L & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 40:
+-                  if (curChar == 40 && kind > 56)
+-                     kind = 56;
+-                  break;
+-               case 41:
+-                  if ((0x3ff001000000000L & l) == 0L)
+-                     break;
+-                  if (kind > 57)
+-                     kind = 57;
+-                  jjCheckNAdd(41);
+-                  break;
+-               default : break;
+-            }
+-         } while(i != startsAt);
+-      }
+-      else if (curChar < 128)
+-      {
+-         long l = 1L << (curChar & 077);
+-         MatchLoop: do
+-         {
+-            switch(jjstateSet[--i])
+-            {
+-               case 0:
+-                  if ((0x7fffffe87fffffeL & l) == 0L)
+-                     break;
+-                  if (kind > 53)
+-                     kind = 53;
+-                  jjCheckNAddStates(9, 15);
+-                  break;
+-               case 42:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                  {
+-                     if (kind > 57)
+-                        kind = 57;
+-                     jjCheckNAdd(41);
+-                  }
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddStates(26, 28);
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                  {
+-                     if (kind > 53)
+-                        kind = 53;
+-                     jjCheckNAdd(34);
+-                  }
+-                  break;
+-               case 2:
+-                  if ((0x2000000020L & l) != 0L)
+-                     jjAddStates(35, 36);
+-                  break;
+-               case 10:
+-                  if ((0x2000000020L & l) != 0L)
+-                     jjAddStates(37, 38);
+-                  break;
+-               case 14:
+-                  if ((0x2000000020L & l) != 0L)
+-                     jjAddStates(39, 40);
+-                  break;
+-               case 18:
+-                  if ((0xffffffffefffffffL & l) != 0L)
+-                     jjCheckNAddStates(29, 31);
+-                  break;
+-               case 19:
+-                  if (curChar == 92)
+-                     jjstateSet[jjnewStateCnt++] = 20;
+-                  break;
+-               case 20:
+-                  if (curChar == 92)
+-                     jjCheckNAddStates(29, 31);
+-                  break;
+-               case 22:
+-                  if ((0xffffffffefffffffL & l) != 0L)
+-                     jjAddStates(41, 42);
+-                  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(32, 34);
+-                  break;
+-               case 27:
+-                  if (curChar == 92)
+-                     jjstateSet[jjnewStateCnt++] = 28;
+-                  break;
+-               case 28:
+-                  if (curChar == 92)
+-                     jjCheckNAddStates(32, 34);
+-                  break;
+-               case 30:
+-                  if ((0xffffffffefffffffL & l) != 0L)
+-                     jjAddStates(43, 44);
+-                  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(26, 28);
+-                  break;
+-               case 36:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(36, 37);
+-                  break;
+-               case 38:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 39:
+-                  if ((0x7fffffe87fffffeL & l) != 0L)
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 41:
+-                  if ((0x7fffffe87fffffeL & l) == 0L)
+-                     break;
+-                  if (kind > 57)
+-                     kind = 57;
+-                  jjCheckNAdd(41);
+-                  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_1(hiByte, i1, i2, l1, l2))
+-                     break;
+-                  if (kind > 53)
+-                     kind = 53;
+-                  jjCheckNAddStates(9, 15);
+-                  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(26, 28);
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(36, 37);
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(39, 40);
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                  {
+-                     if (kind > 57)
+-                        kind = 57;
+-                     jjCheckNAdd(41);
+-                  }
+-                  break;
+-               case 18:
+-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+-                     jjAddStates(29, 31);
+-                  break;
+-               case 22:
+-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+-                     jjAddStates(41, 42);
+-                  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(32, 34);
+-                  break;
+-               case 30:
+-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+-                     jjAddStates(43, 44);
+-                  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(26, 28);
+-                  break;
+-               case 36:
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(36, 37);
+-                  break;
+-               case 38:
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 39:
+-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     jjCheckNAddTwoStates(39, 40);
+-                  break;
+-               case 41:
+-                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+-                     break;
+-                  if (kind > 57)
+-                     kind = 57;
+-                  jjCheckNAdd(41);
+-                  break;
+-               default : break;
+-            }
+-         } while(i != startsAt);
+-      }
+-      if (kind != 0x7fffffff)
+-      {
+-         jjmatchedKind = kind;
+-         jjmatchedPos = curPos;
+-         kind = 0x7fffffff;
+-      }
+-      ++curPos;
+-      if ((i = jjnewStateCnt) == (startsAt = 42 - (jjnewStateCnt = startsAt)))
+-         return curPos;
+-      try { curChar = input_stream.readChar(); }
+-      catch(java.io.IOException e) { return curPos; }
+-   }
+-}
+-static final int[] jjnextStates = {
+-   0, 1, 3, 5, 6, 7, 8, 13, 14, 34, 35, 36, 37, 39, 40, 41, 
+-   26, 27, 29, 30, 31, 18, 19, 21, 22, 23, 35, 36, 37, 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, 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, -1, -1, 
+-};
+-static final long[] jjtoToken = {
+-   0x233ffffffffff60fL, 
+-};
+-static final long[] jjtoSkip = {
+-   0x1f0L, 
+-};
+-protected SimpleCharStream input_stream;
+-private final int[] jjrounds = new int[42];
+-private final int[] jjstateSet = new int[84];
+-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 = 42; 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;
+ 
+-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;
+-}
++	public void setDebugStream(java.io.PrintStream ds) {
++		debugStream = ds;
++	}
+ 
+-int curLexState = 0;
+-int defaultLexState = 0;
+-int jjnewStateCnt;
+-int jjround;
+-int jjmatchedPos;
+-int jjmatchedKind;
++	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;
++		}
++	}
+ 
+-public Token getNextToken() 
+-{
+-  int kind;
+-  Token specialToken = null;
+-  Token matchedToken;
+-  int curPos = 0;
++	private final int jjStartNfa_0(int pos, long active0) {
++		return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
++	}
+ 
+-  EOFLoop :
+-  for (;;)
+-  {   
+-   try   
+-   {     
+-      curChar = input_stream.BeginToken();
+-   }     
+-   catch(java.io.IOException e)
+-   {        
+-      jjmatchedKind = 0;
+-      matchedToken = jjFillToken();
+-      return matchedToken;
+-   }
++	private final int jjStopAtPos(int pos, int kind) {
++		jjmatchedKind = kind;
++		jjmatchedPos = pos;
++		return pos + 1;
++	}
+ 
+-   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 > 61)
+-       {
+-          jjmatchedKind = 61;
+-       }
+-       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);
+-  }
+-}
++	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;
++			}
++
++			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);
++		}
++	}
++
+ }
+Index: java/org/apache/el/parser/ELParserConstants.java
+===================================================================
+--- java/org/apache/el/parser/ELParserConstants.java	(revision 685950)
++++ java/org/apache/el/parser/ELParserConstants.java	(working copy)
+@@ -19,130 +19,131 @@
+ 
+ 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 NAMESPACE_NAME = 55;
+-  int FUNCTION_CALL = 56;
+-  int FUNCTIONSUFFIX = 57;
+-  int IMPL_OBJ_START = 58;
+-  int LETTER = 59;
+-  int DIGIT = 60;
+-  int ILLEGAL_CHARACTER = 61;
++	int EOF = 0;
+ 
+-  int DEFAULT = 0;
+-  int IN_EXPRESSION = 1;
++	int LITERAL_EXPRESSION = 1;
+ 
+-  String[] tokenImage = {
+-    "<EOF>",
+-    "<LITERAL_EXPRESSION>",
+-    "\"${\"",
+-    "\"#{\"",
+-    "\"\\\\\"",
+-    "\" \"",
+-    "\"\\t\"",
+-    "\"\\n\"",
+-    "\"\\r\"",
+-    "<INTEGER_LITERAL>",
+-    "<FLOATING_POINT_LITERAL>",
+-    "<EXPONENT>",
+-    "<STRING_LITERAL>",
+-    "<BADLY_ESCAPED_STRING_LITERAL>",
+-    "\"true\"",
+-    "\"false\"",
+-    "\"null\"",
+-    "\"}\"",
+-    "\".\"",
+-    "\"(\"",
+-    "\")\"",
+-    "\"[\"",
+-    "\"]\"",
+-    "\":\"",
+-    "\",\"",
+-    "\">\"",
+-    "\"gt\"",
+-    "\"<\"",
+-    "\"lt\"",
+-    "\">=\"",
+-    "\"ge\"",
+-    "\"<=\"",
+-    "\"le\"",
+-    "\"==\"",
+-    "\"eq\"",
+-    "\"!=\"",
+-    "\"ne\"",
+-    "\"!\"",
+-    "\"not\"",
+-    "\"&&\"",
+-    "\"and\"",
+-    "\"||\"",
+-    "\"or\"",
+-    "\"empty\"",
+-    "\"instanceof\"",
+-    "\"*\"",
+-    "\"+\"",
+-    "\"-\"",
+-    "\"?\"",
+-    "\"/\"",
+-    "\"div\"",
+-    "\"%\"",
+-    "\"mod\"",
+-    "<IDENTIFIER>",
+-    "<NAMESPACE>",
+-    "<NAMESPACE_NAME>",
+-    "<FUNCTION_CALL>",
+-    "<FUNCTIONSUFFIX>",
+-    "\"#\"",
+-    "<LETTER>",
+-    "<DIGIT>",
+-    "<ILLEGAL_CHARACTER>",
+-  };
++	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 = { "<EOF>", "<LITERAL_EXPRESSION>", "\"${\"",
++			"\"#{\"", "\"\\\\\"", "\" \"", "\"\\t\"", "\"\\n\"", "\"\\r\"",
++			"<INTEGER_LITERAL>", "<FLOATING_POINT_LITERAL>", "<EXPONENT>",
++			"<STRING_LITERAL>", "<BADLY_ESCAPED_STRING_LITERAL>", "\"true\"",
++			"\"false\"", "\"null\"", "\"}\"", "\".\"", "\"(\"", "\")\"",
++			"\"[\"", "\"]\"", "\":\"", "\",\"", "\">\"", "\"gt\"", "\"<\"",
++			"\"lt\"", "\">=\"", "\"ge\"", "\"<=\"", "\"le\"", "\"==\"",
++			"\"eq\"", "\"!=\"", "\"ne\"", "\"!\"", "\"not\"", "\"&&\"",
++			"\"and\"", "\"||\"", "\"or\"", "\"empty\"", "\"instanceof\"",
++			"\"*\"", "\"+\"", "\"-\"", "\"?\"", "\"/\"", "\"div\"", "\"%\"",

[... 925 lines stripped ...]