support for full xml namespaces according to spec, (<IDENTITY> (<IDENTITY>|<DOT>...
authorjhook <jhook@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 6 Aug 2006 23:35:29 +0000 (23:35 +0000)
committerjhook <jhook@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 6 Aug 2006 23:35:29 +0000 (23:35 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@429210 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/el/parser/ELParser.java
java/org/apache/el/parser/ELParser.jjt
java/org/apache/el/parser/ELParserConstants.java
java/org/apache/el/parser/ELParserTokenManager.java
java/org/apache/el/parser/ELParserTreeConstants.java
java/org/apache/el/parser/SimpleCharStream.java

index b3e8c9b..1a8acf4 100644 (file)
@@ -11,6 +11,15 @@ 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
@@ -947,6 +956,7 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
     case NULL:
     case LPAREN:
     case IDENTIFIER:
+    case NAMESPACE:
       Value();
       break;
     default:
@@ -1016,6 +1026,7 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
       break;
     case LPAREN:
     case IDENTIFIER:
+    case NAMESPACE:
       NonLiteral();
       break;
     default:
@@ -1113,7 +1124,7 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
       break;
     default:
       jj_la1[28] = jj_gen;
-      if (jj_2_1(2)) {
+      if (jj_2_1(3)) {
         Function();
       } else {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1161,20 +1172,20 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
         jjtree.openNodeScope(jjtn000);Token t0 = null;
         Token t1 = null;
     try {
-      t0 = jj_consume_token(IDENTIFIER);
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case FUNCTIONSUFFIX:
-        t1 = jj_consume_token(FUNCTIONSUFFIX);
+      case NAMESPACE:
+        t0 = jj_consume_token(NAMESPACE);
         break;
       default:
         jj_la1[30] = jj_gen;
         ;
       }
-                if (t1 != null) {
-                        jjtn000.setPrefix(t0.image);
-                        jjtn000.setLocalName(t1.image.substring(1));
+      t1 = jj_consume_token(IDENTIFIER);
+                if (t0 != null) {
+                        jjtn000.setPrefix(t0.image.substring(0, t0.image.length() - 1));
+                        jjtn000.setLocalName(t1.image);
                 } else {
-                        jjtn000.setLocalName(t0.image);
+                        jjtn000.setLocalName(t1.image);
                 }
       jj_consume_token(LPAREN);
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1190,6 +1201,7 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
       case EMPTY:
       case MINUS:
       case IDENTIFIER:
+      case NAMESPACE:
         Expression();
         label_10:
         while (true) {
@@ -1385,20 +1397,246 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
     finally { jj_save(0, xla); }
   }
 
+  final private boolean jj_3R_11() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(54)) jj_scanpos = xsp;
+    if (jj_scan_token(IDENTIFIER)) return true;
+    if (jj_scan_token(LPAREN)) return true;
+    xsp = jj_scanpos;
+    if (jj_3R_12()) jj_scanpos = xsp;
+    if (jj_scan_token(RPAREN)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_20() {
+    if (jj_3R_21()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_44() {
+    if (jj_scan_token(IDENTIFIER)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_19() {
+    if (jj_3R_20()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_38() {
+    if (jj_3R_44()) return true;
+    return false;
+  }
+
   final private boolean jj_3_1() {
     if (jj_3R_11()) return true;
     return false;
   }
 
-  final private boolean jj_3R_11() {
-    if (jj_scan_token(IDENTIFIER)) return true;
+  final private boolean jj_3R_31() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_scan_token(54)) jj_scanpos = xsp;
+    if (jj_3R_37()) {
+    jj_scanpos = xsp;
+    if (jj_3_1()) {
+    jj_scanpos = xsp;
+    if (jj_3R_38()) return true;
+    }
+    }
+    return false;
+  }
+
+  final private boolean jj_3R_37() {
     if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
+  final private boolean jj_3R_43() {
+    if (jj_scan_token(NULL)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_42() {
+    if (jj_scan_token(STRING_LITERAL)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_18() {
+    if (jj_3R_19()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_41() {
+    if (jj_scan_token(INTEGER_LITERAL)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_17() {
+    if (jj_3R_18()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_40() {
+    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_29() {
+    if (jj_3R_31()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_46() {
+    if (jj_scan_token(FALSE)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_16() {
+    if (jj_3R_17()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_27() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_28()) {
+    jj_scanpos = xsp;
+    if (jj_3R_29()) return true;
+    }
+    return false;
+  }
+
+  final private boolean jj_3R_28() {
+    if (jj_3R_30()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_45() {
+    if (jj_scan_token(TRUE)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_39() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_45()) {
+    jj_scanpos = xsp;
+    if (jj_3R_46()) return true;
+    }
+    return false;
+  }
+
+  final private boolean jj_3R_15() {
+    if (jj_3R_16()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_26() {
+    if (jj_3R_27()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_25() {
+    if (jj_3R_26()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_36() {
+    if (jj_3R_43()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_35() {
+    if (jj_3R_42()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_24() {
+    if (jj_scan_token(EMPTY)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_34() {
+    if (jj_3R_41()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_33() {
+    if (jj_3R_40()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_23() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_scan_token(37)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(38)) return true;
+    }
+    return false;
+  }
+
+  final private boolean jj_3R_12() {
+    if (jj_3R_13()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_22() {
+    if (jj_scan_token(MINUS)) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_21() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_22()) {
+    jj_scanpos = xsp;
+    if (jj_3R_23()) {
+    jj_scanpos = xsp;
+    if (jj_3R_24()) {
+    jj_scanpos = xsp;
+    if (jj_3R_25()) return true;
+    }
+    }
+    }
+    return false;
+  }
+
+  final private boolean jj_3R_30() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_32()) {
+    jj_scanpos = xsp;
+    if (jj_3R_33()) {
+    jj_scanpos = xsp;
+    if (jj_3R_34()) {
+    jj_scanpos = xsp;
+    if (jj_3R_35()) {
+    jj_scanpos = xsp;
+    if (jj_3R_36()) return true;
+    }
+    }
+    }
+    }
+    return false;
+  }
+
+  final private boolean jj_3R_32() {
+    if (jj_3R_39()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_14() {
+    if (jj_3R_15()) return true;
+    return false;
+  }
+
+  final private boolean jj_3R_13() {
+    if (jj_3R_14()) return true;
+    return false;
+  }
+
   public ELParserTokenManager token_source;
   SimpleCharStream jj_input_stream;
   public Token token, jj_nt;
@@ -1419,14 +1657,17 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
       jj_la1_0 = new int[] {0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d600,0x240000,0x9d600,0x240000,0x80000,0x0,0x0,0x1000000,0x9d600,0x1d600,0xc000,};
    }
    private static void jj_la1_1() {
-      jj_la1_1 = new int[] {0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x208860,0x0,0x200000,0x0,0x0,0x200000,0x400000,0x0,0x208860,0x0,0x0,};
+      jj_la1_1 = new int[] {0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x608860,0x0,0x600000,0x0,0x0,0x200000,0x400000,0x0,0x608860,0x0,0x0,};
    }
   final private JJCalls[] jj_2_rtns = new JJCalls[1];
   private boolean jj_rescan = false;
   private int jj_gc = 0;
 
   public ELParser(java.io.InputStream stream) {
-    jj_input_stream = new SimpleCharStream(stream, 1, 1);
+     this(stream, null);
+  }
+  public ELParser(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
     token_source = new ELParserTokenManager(jj_input_stream);
     token = new Token();
     jj_ntk = -1;
@@ -1436,7 +1677,10 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
   }
 
   public void ReInit(java.io.InputStream stream) {
-    jj_input_stream.ReInit(stream, 1, 1);
+     ReInit(stream, null);
+  }
+  public void ReInit(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
     token_source.ReInit(jj_input_stream);
     token = new Token();
     jj_ntk = -1;
@@ -1593,8 +1837,8 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
 
   public ParseException generateParseException() {
     jj_expentries.removeAllElements();
-    boolean[] la1tokens = new boolean[59];
-    for (int i = 0; i < 59; i++) {
+    boolean[] la1tokens = new boolean[60];
+    for (int i = 0; i < 60; i++) {
       la1tokens[i] = false;
     }
     if (jj_kind >= 0) {
@@ -1613,7 +1857,7 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
         }
       }
     }
-    for (int i = 0; i < 59; i++) {
+    for (int i = 0; i < 60; i++) {
       if (la1tokens[i]) {
         jj_expentry = new int[1];
         jj_expentry[0] = i;
@@ -1639,6 +1883,7 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
   final private void jj_rescan_token() {
     jj_rescan = true;
     for (int i = 0; i < 1; i++) {
+    try {
       JJCalls p = jj_2_rtns[i];
       do {
         if (p.gen > jj_gen) {
@@ -1649,6 +1894,7 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
         }
         p = p.next;
       } while (p != null);
+      } catch(LookaheadSuccess ls) { }
     }
     jj_rescan = false;
   }
index 2dc0845..649a018 100644 (file)
@@ -35,7 +35,7 @@ options
 \r
 /* == Parser Declaration == */\r
 PARSER_BEGIN( ELParser )\r
-package com.sun.el.parser;\r
+package org.apache.el.parser;\r
 import java.io.StringReader;\r
 import javax.el.ELException;\r
 public class ELParser\r
@@ -254,7 +254,7 @@ void BracketSuffix() #BracketSuffix : {}
 void NonLiteral() : {}\r
 {\r
        <LPAREN> Expression() <RPAREN>\r
-       | LOOKAHEAD(2) Function()\r
+       | LOOKAHEAD(3) Function()\r
        | Identifier()\r
 }\r
 \r
@@ -277,19 +277,18 @@ void Function() #Function :
        Token t1 = null;\r
 }\r
 {\r
-       t0=<IDENTIFIER> (t1=<FUNCTIONSUFFIX>)?\r
+       (t0=<NAMESPACE>)? t1=<IDENTIFIER>\r
        {\r
-               if (t1 != null) {\r
-                       jjtThis.setPrefix(t0.image);\r
-                       jjtThis.setLocalName(t1.image.substring(1));\r
+               if (t0 != null) {\r
+                       jjtThis.setPrefix(t0.image.substring(0, t0.image.length() - 1));\r
+                       jjtThis.setLocalName(t1.image);\r
                } else {\r
-                       jjtThis.setLocalName(t0.image);\r
+                       jjtThis.setLocalName(t1.image);\r
                }\r
        }\r
        <LPAREN> (Expression() (<COMMA> Expression())*)? <RPAREN>\r
 }\r
 \r
-\r
 /*\r
  * Literal\r
  * Reserved Keywords\r
@@ -428,7 +427,8 @@ void Null() #Null : {}
 |      < MOD0 : "%" >\r
 |      < MOD1 : "mod" >\r
 |      < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>) (<LETTER>|<DIGIT>)* >\r
-|      < FUNCTIONSUFFIX : (<COLON> <IDENTIFIER>)  >\r
+|   < NAMESPACE : (<IDENTIFIER> (<IDENTIFIER>|<MINUS>|<DOT>)* <COLON>) >\r
+|      < FUNCTIONSUFFIX : (<IDENTIFIER>) >\r
 |      < #IMPL_OBJ_START: "#" >\r
 |      < #LETTER:\r
                [\r
index 1fec460..e1c1043 100644 (file)
@@ -3,124 +3,131 @@ 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 FUNCTIONSUFFIX = 54;
-  int IMPL_OBJ_START = 55;
-  int LETTER = 56;
-  int DIGIT = 57;
-  int ILLEGAL_CHARACTER = 58;
-
-  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\"",
-    "\"%\"",
-    "\"mod\"",
-    "<IDENTIFIER>",
-    "<FUNCTIONSUFFIX>",
-    "\"#\"",
-    "<LETTER>",
-    "<DIGIT>",
-    "<ILLEGAL_CHARACTER>",
-  };
+       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 = { "<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>", "<FUNCTIONSUFFIX>",
+                       "\"#\"", "<LETTER>", "<DIGIT>", "<ILLEGAL_CHARACTER>", };
 
 }
index 23b56df..b657feb 100644 (file)
 /* 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 & 0x800000L) != 0L)
-            return 8;
-         if ((active0 & 0x40000L) != 0L)
-            return 1;
-         if ((active0 & 0x141d555401c000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            return 6;
-         }
-         return -1;
-      case 1:
-         if ((active0 & 0x41554000000L) != 0L)
-            return 6;
-         if ((active0 & 0x1419400001c000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 1;
-            return 6;
-         }
-         return -1;
-      case 2:
-         if ((active0 & 0x14014000000000L) != 0L)
-            return 6;
-         if ((active0 & 0x18000001c000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 2;
-            return 6;
-         }
-         return -1;
-      case 3:
-         if ((active0 & 0x14000L) != 0L)
-            return 6;
-         if ((active0 & 0x180000008000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 3;
-            return 6;
-         }
-         return -1;
-      case 4:
-         if ((active0 & 0x80000008000L) != 0L)
-            return 6;
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 4;
-            return 6;
-         }
-         return -1;
-      case 5:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 5;
-            return 6;
-         }
-         return -1;
-      case 6:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 6;
-            return 6;
-         }
-         return -1;
-      case 7:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 7;
-            return 6;
-         }
-         return -1;
-      case 8:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 8;
-            return 6;
-         }
-         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 jjStartNfaWithStates_1(0, 23, 8);
-      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, 6);
-         else if ((active0 & 0x100000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 32, 6);
-         else if ((active0 & 0x1000000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 36, 6);
-         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, 6);
-         break;
-      case 114:
-         if ((active0 & 0x40000000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 42, 6);
-         return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
-      case 116:
-         if ((active0 & 0x4000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 26, 6);
-         else if ((active0 & 0x10000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 28, 6);
-         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, 6);
-         else if ((active0 & 0x10000000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 52, 6);
-         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, 6);
-         break;
-      case 117:
-         return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
-      case 118:
-         if ((active0 & 0x4000000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 50, 6);
-         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, 6);
-         break;
-      case 108:
-         if ((active0 & 0x10000L) != 0L)
-            return jjStartNfaWithStates_1(3, 16, 6);
-         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, 6);
-         break;
-      case 121:
-         if ((active0 & 0x80000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 43, 6);
-         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, 6);
-         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 = 38;
-   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;
-                     jjCheckNAdd(6);
-                  }
-                  else if (curChar == 39)
-                     jjCheckNAddStates(9, 13);
-                  else if (curChar == 34)
-                     jjCheckNAddStates(14, 18);
-                  else if (curChar == 58)
-                     jjstateSet[jjnewStateCnt++] = 8;
-                  else if (curChar == 46)
-                     jjCheckNAdd(1);
-                  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 ((0x1800000000L & l) == 0L)
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(6);
-                  break;
-               case 6:
-                  if ((0x3ff001000000000L & l) == 0L)
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(6);
-                  break;
-               case 7:
-                  if (curChar == 58)
-                     jjstateSet[jjnewStateCnt++] = 8;
-                  break;
-               case 8:
-                  if ((0x1800000000L & l) == 0L)
-                     break;
-                  if (kind > 54)
-                     kind = 54;
-                  jjCheckNAdd(9);
-                  break;
-               case 9:
-                  if ((0x3ff001000000000L & l) == 0L)
-                     break;
-                  if (kind > 54)
-                     kind = 54;
-                  jjCheckNAdd(9);
-                  break;
-               case 10:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 9)
-                     kind = 9;
-                  jjCheckNAddStates(4, 8);
-                  break;
-               case 11:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 9)
-                     kind = 9;
-                  jjCheckNAdd(11);
-                  break;
-               case 12:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(12, 13);
-                  break;
-               case 13:
-                  if (curChar != 46)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAddTwoStates(14, 15);
-                  break;
-               case 14:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAddTwoStates(14, 15);
-                  break;
-               case 16:
-                  if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(17);
-                  break;
-               case 17:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAdd(17);
-                  break;
-               case 18:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(18, 19);
-                  break;
-               case 20:
-                  if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(21);
-                  break;
-               case 21:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAdd(21);
-                  break;
-               case 22:
-                  if (curChar == 34)
-                     jjCheckNAddStates(14, 18);
-                  break;
-               case 23:
-                  if ((0xfffffffbffffffffL & l) != 0L)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 25:
-                  if (curChar == 34)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 26:
-                  if (curChar == 34 && kind > 12)
-                     kind = 12;
-                  break;
-               case 27:
-                  if ((0xfffffffbffffffffL & l) != 0L)
-                     jjCheckNAddTwoStates(27, 28);
-                  break;
-               case 29:
-                  if ((0xfffffffbffffffffL & l) != 0L && kind > 13)
-                     kind = 13;
-                  break;
-               case 30:
-                  if (curChar == 39)
-                     jjCheckNAddStates(9, 13);
-                  break;
-               case 31:
-                  if ((0xffffff7fffffffffL & l) != 0L)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 33:
-                  if (curChar == 39)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 34:
-                  if (curChar == 39 && kind > 12)
-                     kind = 12;
-                  break;
-               case 35:
-                  if ((0xffffff7fffffffffL & l) != 0L)
-                     jjCheckNAddTwoStates(35, 36);
-                  break;
-               case 37:
-                  if ((0xffffff7fffffffffL & l) != 0L && kind > 13)
-                     kind = 13;
-                  break;
-               default : break;
-            }
-         } while(i != startsAt);
-      }
-      else if (curChar < 128)
-      {
-         long l = 1L << (curChar & 077);
-         MatchLoop: do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 0:
-               case 6:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(6);
-                  break;
-               case 2:
-                  if ((0x2000000020L & l) != 0L)
-                     jjAddStates(25, 26);
-                  break;
-               case 8:
-               case 9:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 54)
-                     kind = 54;
-                  jjCheckNAdd(9);
-                  break;
-               case 15:
-                  if ((0x2000000020L & l) != 0L)
-                     jjAddStates(27, 28);
-                  break;
-               case 19:
-                  if ((0x2000000020L & l) != 0L)
-                     jjAddStates(29, 30);
-                  break;
-               case 23:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 24:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 25;
-                  break;
-               case 25:
-                  if (curChar == 92)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 27:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjAddStates(31, 32);
-                  break;
-               case 28:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 29;
-                  break;
-               case 29:
-               case 37:
-                  if ((0xffffffffefffffffL & l) != 0L && kind > 13)
-                     kind = 13;
-                  break;
-               case 31:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 32:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 33;
-                  break;
-               case 33:
-                  if (curChar == 92)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 35:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjAddStates(33, 34);
-                  break;
-               case 36:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 37;
-                  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:
-               case 6:
-                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(6);
-                  break;
-               case 8:
-               case 9:
-                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                     break;
-                  if (kind > 54)
-                     kind = 54;
-                  jjCheckNAdd(9);
-                  break;
-               case 23:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(19, 21);
-                  break;
-               case 27:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(31, 32);
-                  break;
-               case 29:
-               case 37:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13)
-                     kind = 13;
-                  break;
-               case 31:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(22, 24);
-                  break;
-               case 35:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(33, 34);
-                  break;
-               default : break;
-            }
-         } while(i != startsAt);
-      }
-      if (kind != 0x7fffffff)
-      {
-         jjmatchedKind = kind;
-         jjmatchedPos = curPos;
-         kind = 0x7fffffff;
-      }
-      ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 38 - (jjnewStateCnt = startsAt)))
-         return curPos;
-      try { curChar = input_stream.readChar(); }
-      catch(java.io.IOException e) { return curPos; }
-   }
-}
-static final int[] jjnextStates = {
-   0, 1, 3, 5, 11, 12, 13, 18, 19, 31, 32, 34, 35, 36, 23, 24, 
-   26, 27, 28, 23, 24, 26, 31, 32, 34, 3, 4, 16, 17, 20, 21, 27, 
-   28, 35, 36, 
-};
-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, };
-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, 
-};
-static final long[] jjtoToken = {
-   0x47ffffffffff60fL, 
-};
-static final long[] jjtoSkip = {
-   0x1f0L, 
-};
-protected SimpleCharStream input_stream;
-private final int[] jjrounds = new int[38];
-private final int[] jjstateSet = new int[76];
-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 = 38; 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;
-}
+public class ELParserTokenManager implements ELParserConstants {
+       public java.io.PrintStream debugStream = System.out;
 
-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 > 58)
-       {
-          jjmatchedKind = 58;
-       }
-       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);
-  }
-}
+       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;
+                       }
+
+                       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 4c225fe..1e33c6e 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated By:JJTree: Do not edit this line. /tomc/web.align/webtier-alignment/prototype/el-ri/src/com/sun/el/parser/ELParserTreeConstants.java */
+/* Generated By:JJTree: Do not edit this line. ./ELParserTreeConstants.java */
 
 package org.apache.el.parser;
 
index 1122037..ba7b662 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 3.0 */
+/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 4.0 */
 package org.apache.el.parser;
 
 /**
@@ -27,6 +27,11 @@ public class SimpleCharStream
   protected char[] buffer;
   protected int maxNextCharInd = 0;
   protected int inBuf = 0;
+  protected int tabSize = 8;
+
+  protected void setTabSize(int i) { tabSize = i; }
+  protected int getTabSize(int i) { return tabSize; }
+
 
   protected void ExpandBuff(boolean wrapAround)
   {
@@ -162,7 +167,7 @@ public class SimpleCharStream
            break;
         case '\t' :
            column--;
-           column += (8 - (column & 07));
+           column += (tabSize - (column % tabSize));
            break;
         default :
            break;
@@ -248,7 +253,7 @@ public class SimpleCharStream
   }
 
   public SimpleCharStream(java.io.Reader dstream, int startline,
-                                                           int startcolumn)
+                          int startcolumn)
   {
      this(dstream, startline, startcolumn, 4096);
   }
@@ -277,7 +282,7 @@ public class SimpleCharStream
   }
 
   public void ReInit(java.io.Reader dstream, int startline,
-                                                           int startcolumn)
+                     int startcolumn)
   {
      ReInit(dstream, startline, startcolumn, 4096);
   }
@@ -286,35 +291,68 @@ public class SimpleCharStream
   {
      ReInit(dstream, 1, 1, 4096);
   }
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+     this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
   public SimpleCharStream(java.io.InputStream dstream, int startline,
   int startcolumn, int buffersize)
   {
-     this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+     this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+  }
+
+  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+                          int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+     this(dstream, encoding, startline, startcolumn, 4096);
   }
 
   public SimpleCharStream(java.io.InputStream dstream, int startline,
-                                                           int startcolumn)
+                          int startcolumn)
   {
      this(dstream, startline, startcolumn, 4096);
   }
 
+  public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+     this(dstream, encoding, 1, 1, 4096);
+  }
+
   public SimpleCharStream(java.io.InputStream dstream)
   {
      this(dstream, 1, 1, 4096);
   }
 
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                          int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+     ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
   public void ReInit(java.io.InputStream dstream, int startline,
                           int startcolumn, int buffersize)
   {
-     ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+     ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+  }
+
+  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+     ReInit(dstream, encoding, 1, 1, 4096);
   }
 
   public void ReInit(java.io.InputStream dstream)
   {
      ReInit(dstream, 1, 1, 4096);
   }
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                     int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+     ReInit(dstream, encoding, startline, startcolumn, 4096);
+  }
   public void ReInit(java.io.InputStream dstream, int startline,
-                                                           int startcolumn)
+                     int startcolumn)
   {
      ReInit(dstream, startline, startcolumn, 4096);
   }