geirm       00/11/02 19:28:00

  Modified:    src/java/org/apache/velocity/runtime/parser Parser.java
                        Parser.jj ParserConstants.java
                        ParserTokenManager.java
  Log:
  The Parser.jjt followers (autogenerated by javacc).
  
  Revision  Changes    Path
  1.17      +403 -323  
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.java
  
  Index: Parser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- Parser.java       2000/11/02 03:53:55     1.16
  +++ Parser.java       2000/11/03 03:27:53     1.17
  @@ -18,7 +18,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
  - * @version $Id: Parser.java,v 1.16 2000/11/02 03:53:55 geirm Exp $ 
  + * @version $Id: Parser.java,v 1.17 2000/11/03 03:27:53 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants 
{/*@bgen(jjtree)*/
     protected JJTParserState jjtree = new JJTParserState();
  @@ -57,16 +57,19 @@
       {
           token_source.clearStateVars();
           ReInit(stream);
  +        return process();
   
  -       // return process();
  -
  -        SimpleNode n = null;
  -
  -        try {
  -            n = process();
  -        } catch (Exception e ) { System.out.println( e ); }
  -
  -        return n;
  +        /*
  +         * leave the following. Useful for debugging the parser.  thx - geir
  +         */
  +
  +       //SimpleNode n = null;
  +       //
  +       // try {
  +       //     n = process();
  +       // } catch (Exception e ) { System.out.println( e ); }   
  +       // 
  +       //  return n;
       }
   
       public void setDirectives(Hashtable directives)
  @@ -107,7 +110,14 @@
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
           case LPAREN:
           case RPAREN:
  -        case ESCAPE_SEQUENCE:
  +        case ESCAPE_SET_DIRECTIVE:
  +        case ESCAPE_IF_DIRECTIVE:
  +        case ESCAPE_END_DIRECTIVE:
  +        case ESCAPE_INCLUDE_DIRECTIVE:
  +        case ESCAPE_ELSEIF_DIRECTIVE:
  +        case ESCAPE_ELSE_DIRECTIVE:
  +        case ESCAPE_STOP_DIRECTIVE:
  +        case ESCAPE:
           case TEXT:
           case SINGLE_LINE_COMMENT:
           case FORMAL_COMMENT:
  @@ -189,7 +199,14 @@
         break;
       case LPAREN:
       case RPAREN:
  -    case ESCAPE_SEQUENCE:
  +    case ESCAPE_SET_DIRECTIVE:
  +    case ESCAPE_IF_DIRECTIVE:
  +    case ESCAPE_END_DIRECTIVE:
  +    case ESCAPE_INCLUDE_DIRECTIVE:
  +    case ESCAPE_ELSEIF_DIRECTIVE:
  +    case ESCAPE_ELSE_DIRECTIVE:
  +    case ESCAPE_STOP_DIRECTIVE:
  +    case ESCAPE:
       case TEXT:
       case STRING_LITERAL:
       case NEWLINE:
  @@ -340,18 +357,31 @@
       Directive d;
       try {
         /*
  -           *  Get the directive identifier and check to see if this is a directive.
  -           *   Note that because '#' is a <MORE> token, the identifier is preceeded 
by the '#'
  +           *  There are two things we do here :
  +           *  1) If the first char is a \, then this has been escaped, so don't 
  +           *     continue.  We will take care of the rest in ASTDirective.java
  +           *  2) Get the directive identifier and check to see if this is a 
directive.
  +           *     Note that because '#' is a <MORE> token, the identifier is 
preceeded by the '#'
              */
  +      
             t = jj_consume_token(WORD);
  -        d = (Directive) directives.get(t.image.substring(1));
  -
  -        if (d == null)
  +        if( t.image.startsWith("\\"))
           {
               token_source.stateStackPop();
               token_source.inDirective = false;
               {if (true) return jjtn000;}
           }
  +        else
  +        {
  +            d = (Directive) directives.get(t.image.substring(1));
  +
  +            if (d == null)
  +            {
  +                token_source.stateStackPop();
  +                token_source.inDirective = false;
  +                {if (true) return jjtn000;}
  +            }
  +        }
         jj_consume_token(LPAREN);
         label_2:
         while (true) {
  @@ -383,7 +413,14 @@
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
             case LPAREN:
             case RPAREN:
  -          case ESCAPE_SEQUENCE:
  +          case ESCAPE_SET_DIRECTIVE:
  +          case ESCAPE_IF_DIRECTIVE:
  +          case ESCAPE_END_DIRECTIVE:
  +          case ESCAPE_INCLUDE_DIRECTIVE:
  +          case ESCAPE_ELSEIF_DIRECTIVE:
  +          case ESCAPE_ELSE_DIRECTIVE:
  +          case ESCAPE_STOP_DIRECTIVE:
  +          case ESCAPE:
             case TEXT:
             case SINGLE_LINE_COMMENT:
             case FORMAL_COMMENT:
  @@ -732,12 +769,30 @@
         case STRING_LITERAL:
           jj_consume_token(STRING_LITERAL);
           break;
  -      case ESCAPE_SEQUENCE:
  -        t = jj_consume_token(ESCAPE_SEQUENCE);
  -      jjtree.closeNodeScope(jjtn000, true);
  -      jjtc000 = false;
  -        t.image = t.image.substring(1);
  +      case ESCAPE:
  +        jj_consume_token(ESCAPE);
  +        break;
  +      case ESCAPE_SET_DIRECTIVE:
  +        jj_consume_token(ESCAPE_SET_DIRECTIVE);
  +        break;
  +      case ESCAPE_IF_DIRECTIVE:
  +        jj_consume_token(ESCAPE_IF_DIRECTIVE);
  +        break;
  +      case ESCAPE_END_DIRECTIVE:
  +        jj_consume_token(ESCAPE_END_DIRECTIVE);
  +        break;
  +      case ESCAPE_INCLUDE_DIRECTIVE:
  +        jj_consume_token(ESCAPE_INCLUDE_DIRECTIVE);
           break;
  +      case ESCAPE_ELSEIF_DIRECTIVE:
  +        jj_consume_token(ESCAPE_ELSEIF_DIRECTIVE);
  +        break;
  +      case ESCAPE_ELSE_DIRECTIVE:
  +        jj_consume_token(ESCAPE_ELSE_DIRECTIVE);
  +        break;
  +      case ESCAPE_STOP_DIRECTIVE:
  +        jj_consume_token(ESCAPE_STOP_DIRECTIVE);
  +        break;
         default:
           jj_la1[15] = jj_gen;
           jj_consume_token(-1);
  @@ -775,7 +830,14 @@
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
             case LPAREN:
             case RPAREN:
  -          case ESCAPE_SEQUENCE:
  +          case ESCAPE_SET_DIRECTIVE:
  +          case ESCAPE_IF_DIRECTIVE:
  +          case ESCAPE_END_DIRECTIVE:
  +          case ESCAPE_INCLUDE_DIRECTIVE:
  +          case ESCAPE_ELSEIF_DIRECTIVE:
  +          case ESCAPE_ELSE_DIRECTIVE:
  +          case ESCAPE_STOP_DIRECTIVE:
  +          case ESCAPE:
             case TEXT:
             case SINGLE_LINE_COMMENT:
             case FORMAL_COMMENT:
  @@ -883,7 +945,14 @@
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
             case LPAREN:
             case RPAREN:
  -          case ESCAPE_SEQUENCE:
  +          case ESCAPE_SET_DIRECTIVE:
  +          case ESCAPE_IF_DIRECTIVE:
  +          case ESCAPE_END_DIRECTIVE:
  +          case ESCAPE_INCLUDE_DIRECTIVE:
  +          case ESCAPE_ELSEIF_DIRECTIVE:
  +          case ESCAPE_ELSE_DIRECTIVE:
  +          case ESCAPE_STOP_DIRECTIVE:
  +          case ESCAPE:
             case TEXT:
             case SINGLE_LINE_COMMENT:
             case FORMAL_COMMENT:
  @@ -966,7 +1035,14 @@
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
             case LPAREN:
             case RPAREN:
  -          case ESCAPE_SEQUENCE:
  +          case ESCAPE_SET_DIRECTIVE:
  +          case ESCAPE_IF_DIRECTIVE:
  +          case ESCAPE_END_DIRECTIVE:
  +          case ESCAPE_INCLUDE_DIRECTIVE:
  +          case ESCAPE_ELSEIF_DIRECTIVE:
  +          case ESCAPE_ELSE_DIRECTIVE:
  +          case ESCAPE_STOP_DIRECTIVE:
  +          case ESCAPE:
             case TEXT:
             case SINGLE_LINE_COMMENT:
             case FORMAL_COMMENT:
  @@ -1742,580 +1818,580 @@
       return retval;
     }
   
  -  final private boolean jj_3R_52() {
  -    if (jj_scan_token(LOGICAL_OR)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_51()) return true;
  +  final private boolean jj_3R_73() {
  +    if (jj_3R_19()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_21() {
  -    if (jj_3R_29()) return true;
  +  final private boolean jj_3R_76() {
  +    if (jj_scan_token(MODULUS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_55()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  +    if (jj_3R_68()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_3() {
  -    if (jj_3R_19()) return true;
  +  final private boolean jj_3R_72() {
  +    if (jj_scan_token(LOGICAL_NOT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(EQUALS)) return true;
  +    if (jj_3R_68()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_50() {
  -    if (jj_3R_51()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +  final private boolean jj_3R_68() {
       Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_52()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_35() {
  -    if (jj_scan_token(FALSE)) return true;
  +    xsp = jj_scanpos;
  +    if (jj_3R_72()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_73()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_49() {
  -    if (jj_3R_19()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(EQUALS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_30() {
  +    if (jj_scan_token(STRING_LITERAL)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_34() {
  -    if (jj_scan_token(TRUE)) return true;
  +  final private boolean jj_3R_75() {
  +    if (jj_scan_token(DIVIDE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_46() {
  -    if (jj_3R_50()) return true;
  +    if (jj_3R_68()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_45() {
  -    if (jj_3R_49()) return true;
  +  final private boolean jj_3R_74() {
  +    if (jj_scan_token(MULTIPLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_68()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_36() {
  +  final private boolean jj_3R_69() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_45()) {
  +    if (jj_3R_74()) {
       jj_scanpos = xsp;
  -    if (jj_3R_46()) return true;
  +    if (jj_3R_75()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_76()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_1() {
  -    if (jj_scan_token(DOT)) return true;
  +  final private boolean jj_3R_33() {
  +    if (jj_scan_token(LBRACKET)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3_2()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_17()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       xsp = jj_scanpos;
  -    if (jj_3R_47()) jj_scanpos = xsp;
  +    if (jj_3R_44()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(RBRACKET)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_43() {
  -    if (jj_scan_token(RCURLY)) return true;
  +  final private boolean jj_3R_31() {
  +    if (jj_scan_token(NUMBER_LITERAL)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_42() {
  -    if (jj_scan_token(LCURLY)) return true;
  +  final private boolean jj_3R_47() {
  +    if (jj_scan_token(RCURLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_20() {
  -    if (jj_scan_token(IDENTIFIER)) return true;
  +  final private boolean jj_3R_71() {
  +    if (jj_scan_token(MINUS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_62()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_32() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_42()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(IDENTIFIER)) return true;
  +  final private boolean jj_3R_62() {
  +    if (jj_3R_68()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    xsp = jj_scanpos;
  -    if (jj_3R_43()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3_1()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_69()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_48() {
  -    if (jj_scan_token(COMMA)) return true;
  +  final private boolean jj_3R_70() {
  +    if (jj_scan_token(PLUS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_29()) return true;
  +    if (jj_3R_62()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_18() {
  -    if (jj_3R_20()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(LPAREN)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +  final private boolean jj_3R_63() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_21()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(REFMOD2_RPAREN)) return true;
  +    if (jj_3R_70()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_71()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_30() {
  -    if (jj_scan_token(STRING_LITERAL)) return true;
  +  final private boolean jj_3R_67() {
  +    if (jj_scan_token(LOGICAL_GE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_41() {
  -    if (jj_3R_32()) return true;
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_44() {
  -    if (jj_3R_29()) return true;
  +  final private boolean jj_3R_58() {
  +    if (jj_3R_62()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_48()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_63()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
  -
  -  final private boolean jj_3R_40() {
  -    if (jj_3R_35()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
   
  -  final private boolean jj_3R_39() {
  -    if (jj_3R_34()) return true;
  +  final private boolean jj_3R_66() {
  +    if (jj_scan_token(LOGICAL_LE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_38() {
  -    if (jj_3R_33()) return true;
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_28() {
  -    if (jj_scan_token(LPAREN)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_65() {
  +    if (jj_scan_token(LOGICAL_GT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(RPAREN)) return true;
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_37() {
  -    if (jj_3R_30()) return true;
  +  final private boolean jj_3R_64() {
  +    if (jj_scan_token(LOGICAL_LT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_31() {
  -    if (jj_scan_token(NUMBER_LITERAL)) return true;
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_29() {
  +  final private boolean jj_3R_59() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_37()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_38()) {
  +    if (jj_3R_64()) {
       jj_scanpos = xsp;
  -    if (jj_3R_39()) {
  +    if (jj_3R_65()) {
       jj_scanpos = xsp;
  -    if (jj_3R_40()) {
  +    if (jj_3R_66()) {
       jj_scanpos = xsp;
  -    if (jj_3R_41()) return true;
  +    if (jj_3R_67()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_27() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_17() {
  +    if (jj_3R_20()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_26() {
  -    if (jj_3R_34()) return true;
  +  final private boolean jj_3R_61() {
  +    if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_25() {
  -    if (jj_3R_33()) return true;
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_24() {
  -    if (jj_3R_32()) return true;
  +  final private boolean jj_3R_56() {
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_59()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_23() {
  -    if (jj_3R_31()) return true;
  +  final private boolean jj_3R_60() {
  +    if (jj_scan_token(LOGICAL_EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_22() {
  -    if (jj_3R_30()) return true;
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_19() {
  +  final private boolean jj_3R_57() {
       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()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_26()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_27()) {
  +    if (jj_3R_60()) {
       jj_scanpos = xsp;
  -    if (jj_3R_28()) return true;
  +    if (jj_3R_61()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_73() {
  -    if (jj_3R_19()) return true;
  +  final private boolean jj_3R_53() {
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_57()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_33() {
  -    if (jj_scan_token(LBRACKET)) return true;
  +  final private boolean jj_3R_55() {
  +    if (jj_scan_token(COMMA)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_44()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(RBRACKET)) return true;
  +    if (jj_3R_29()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_76() {
  -    if (jj_scan_token(MODULUS)) return true;
  +  final private boolean jj_3R_54() {
  +    if (jj_scan_token(LOGICAL_AND)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_68()) return true;
  +    if (jj_3R_53()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_72() {
  -    if (jj_scan_token(LOGICAL_NOT)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_68()) return true;
  +  final private boolean jj_3R_51() {
  +    if (jj_3R_53()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_54()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_68() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_72()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_73()) return true;
  +  final private boolean jj_3_2() {
  +    if (jj_3R_18()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_75() {
  -    if (jj_scan_token(DIVIDE)) return true;
  +  final private boolean jj_3R_52() {
  +    if (jj_scan_token(LOGICAL_OR)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_68()) return true;
  +    if (jj_3R_51()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_74() {
  -    if (jj_scan_token(MULTIPLY)) return true;
  +  final private boolean jj_3_3() {
  +    if (jj_3R_19()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_68()) return true;
  +    if (jj_scan_token(EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_69() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_74()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_75()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_76()) return true;
  +  final private boolean jj_3R_50() {
  +    if (jj_3R_51()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_52()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_47() {
  -    if (jj_scan_token(RCURLY)) return true;
  +  final private boolean jj_3R_21() {
  +    if (jj_3R_29()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_55()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_71() {
  -    if (jj_scan_token(MINUS)) return true;
  +  final private boolean jj_3R_49() {
  +    if (jj_3R_19()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_62()) return true;
  +    if (jj_scan_token(EQUALS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_36()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_62() {
  -    if (jj_3R_68()) return true;
  +  final private boolean jj_3R_35() {
  +    if (jj_scan_token(FALSE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_69()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
       return false;
     }
   
  -  final private boolean jj_3R_70() {
  -    if (jj_scan_token(PLUS)) return true;
  +  final private boolean jj_3R_46() {
  +    if (jj_3R_50()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_62()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_45() {
  +    if (jj_3R_49()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_63() {
  +  final private boolean jj_3R_36() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_70()) {
  +    if (jj_3R_45()) {
       jj_scanpos = xsp;
  -    if (jj_3R_71()) return true;
  +    if (jj_3R_46()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_67() {
  -    if (jj_scan_token(LOGICAL_GE)) return true;
  +  final private boolean jj_3R_34() {
  +    if (jj_scan_token(TRUE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_58()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3_1() {
  +    if (jj_scan_token(DOT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3_2()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_17()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    xsp = jj_scanpos;
  +    if (jj_3R_47()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_58() {
  -    if (jj_3R_62()) return true;
  +  final private boolean jj_3R_43() {
  +    if (jj_scan_token(RCURLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_42() {
  +    if (jj_scan_token(LCURLY)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_32() {
       Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_42()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(IDENTIFIER)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    xsp = jj_scanpos;
  +    if (jj_3R_43()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_63()) { jj_scanpos = xsp; break; }
  +      if (jj_3_1()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_66() {
  -    if (jj_scan_token(LOGICAL_LE)) return true;
  +  final private boolean jj_3R_48() {
  +    if (jj_scan_token(COMMA)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_58()) return true;
  +    if (jj_3R_29()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_65() {
  -    if (jj_scan_token(LOGICAL_GT)) return true;
  +  final private boolean jj_3R_18() {
  +    if (jj_3R_20()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_58()) return true;
  +    if (jj_scan_token(LPAREN)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_17() {
  -    if (jj_3R_20()) return true;
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_21()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(REFMOD2_RPAREN)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_64() {
  -    if (jj_scan_token(LOGICAL_LT)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_58()) return true;
  +  final private boolean jj_3R_20() {
  +    if (jj_scan_token(IDENTIFIER)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_59() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_64()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_65()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_66()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_67()) return true;
  +  final private boolean jj_3R_41() {
  +    if (jj_3R_32()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_61() {
  -    if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
  +  final private boolean jj_3R_28() {
  +    if (jj_scan_token(LPAREN)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_56()) return true;
  +    if (jj_3R_36()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(RPAREN)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_56() {
  -    if (jj_3R_58()) return true;
  +  final private boolean jj_3R_44() {
  +    if (jj_3R_29()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_59()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_48()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_60() {
  -    if (jj_scan_token(LOGICAL_EQUALS)) return true;
  +  final private boolean jj_3R_40() {
  +    if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_56()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_27() {
  +    if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_57() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_60()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_61()) return true;
  +  final private boolean jj_3R_39() {
  +    if (jj_3R_34()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_55() {
  -    if (jj_scan_token(COMMA)) return true;
  +  final private boolean jj_3R_26() {
  +    if (jj_3R_34()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_29()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_38() {
  +    if (jj_3R_33()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_53() {
  -    if (jj_3R_56()) return true;
  +  final private boolean jj_3R_25() {
  +    if (jj_3R_33()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_57()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
       return false;
     }
   
  -  final private boolean jj_3R_54() {
  -    if (jj_scan_token(LOGICAL_AND)) return true;
  +  final private boolean jj_3R_37() {
  +    if (jj_3R_30()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_53()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_29() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_37()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_38()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_39()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_40()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_41()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_2() {
  -    if (jj_3R_18()) return true;
  +  final private boolean jj_3R_24() {
  +    if (jj_3R_32()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_51() {
  -    if (jj_3R_53()) return true;
  +  final private boolean jj_3R_23() {
  +    if (jj_3R_31()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_22() {
  +    if (jj_3R_30()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_19() {
       Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_54()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  +    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()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_26()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_27()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_28()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  @@ -2329,8 +2405,9 @@
     private boolean jj_semLA;
     private int jj_gen;
     final private int[] jj_la1 = new int[36];
  -  final private int[] jj_la1_0 = 
{0x123e030,0x123e030,0x38000,0x200002,0x200002,0x123e030,0x8,0xe00002,0xe00002,0x8,0xe00002,0x0,0x0,0x0,0x0,0x1206030,0x123e030,0x0,0x0,0x0,0x123e030,0x123e030,0x1000000,0xe00012,0x80000000,0x40000000,0x0,0x0,0x0,0x0,0x6000000,0x6000000,0x38000000,0x38000000,0xe00012,0xe00012,};
  -  final private int[] jj_la1_1 = 
{0x1c56600,0x1c56600,0x0,0x1450000,0x1450000,0x1c56600,0x0,0x1400000,0x1400000,0x0,0x1400000,0x1000000,0x2000000,0x400000,0x2000000,0x810000,0x1c56600,0x800,0x800,0x1000,0x1c56600,0x1c56600,0x0,0x1410040,0x0,0x0,0x30,0x30,0xf,0xf,0x0,0x0,0x0,0x0,0x1410040,0x1410000,};
  +  final private int[] jj_la1_0 = 
{0x91f03fb0,0x91f03fb0,0x1c00000,0x10000002,0x10000002,0x91f03fb0,0x8,0x70000002,0x70000002,0x8,0x70000002,0x0,0x0,0x0,0x0,0x90303fb0,0x91f03fb0,0x0,0x0,0x0,0x91f03fb0,0x91f03fb0,0x80000000,0x70000012,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70000012,0x70000012,};
  +  final private int[] jj_la1_1 = 
{0xe2b30000,0xe2b30000,0x0,0xa2800000,0xa2800000,0xe2b30000,0x0,0xa0000000,0xa0000000,0x0,0xa0000000,0x80000000,0x0,0x20000000,0x0,0x40800000,0xe2b30000,0x40000,0x40000,0x80000,0xe2b30000,0xe2b30000,0x0,0xa0802000,0x40,0x20,0x1800,0x1800,0x780,0x780,0x3,0x3,0x1c,0x1c,0xa0802000,0xa0800000,};
  +  final private int[] jj_la1_2 = 
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
     final private JJCalls[] jj_2_rtns = new JJCalls[3];
     private boolean jj_rescan = false;
     private int jj_gc = 0;
  @@ -2499,8 +2576,8 @@
   
     final public ParseException generateParseException() {
       jj_expentries.removeAllElements();
  -    boolean[] la1tokens = new boolean[59];
  -    for (int i = 0; i < 59; i++) {
  +    boolean[] la1tokens = new boolean[66];
  +    for (int i = 0; i < 66; i++) {
         la1tokens[i] = false;
       }
       if (jj_kind >= 0) {
  @@ -2516,10 +2593,13 @@
             if ((jj_la1_1[i] & (1<<j)) != 0) {
               la1tokens[32+j] = true;
             }
  +          if ((jj_la1_2[i] & (1<<j)) != 0) {
  +            la1tokens[64+j] = true;
  +          }
           }
         }
       }
  -    for (int i = 0; i < 59; i++) {
  +    for (int i = 0; i < 66; i++) {
         if (la1tokens[i]) {
           jj_expentry = new int[1];
           jj_expentry[0] = i;
  
  
  
  1.17      +140 -75   
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jj
  
  Index: Parser.jj
  ===================================================================
  RCS file: 
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jj,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- Parser.jj 2000/11/02 03:53:56     1.16
  +++ Parser.jj 2000/11/03 03:27:55     1.17
  @@ -103,7 +103,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
  - * @version $Id: Parser.jj,v 1.16 2000/11/02 03:53:56 geirm Exp $ 
  + * @version $Id: Parser.jj,v 1.17 2000/11/03 03:27:55 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
   {/*@bgen(jjtree)*/
  @@ -146,16 +146,19 @@
       {
           token_source.clearStateVars();
           ReInit(stream);  
  -    
  -       // return process();
  -
  -        SimpleNode n = null;
  +        return process();
   
  -        try {
  -            n = process();
  -        } catch (Exception e ) { System.out.println( e ); }
  +        /*
  +         * leave the following. Useful for debugging the parser.  thx - geir
  +         */
   
  -        return n;
  +       //SimpleNode n = null;
  +       //
  +       // try {
  +       //     n = process();
  +       // } catch (Exception e ) { System.out.println( e ); }   
  +       // 
  +       //  return n;
       }        
   
       public void setDirectives(Hashtable directives)
  @@ -451,7 +454,7 @@
               SwitchTo( REFMOD2 ); 
       }
   
  -|   <RPAREN: ")" (" ")* ("\n")?>
  +|   <RPAREN: ")" (" ")* ( "\n" | "\r" | "\r\n" )?>
       {
          RPARENHandler();
       }    
  @@ -469,14 +472,48 @@
       }    
   }
   
  +/*----------------------------------------------
  + *
  + *  escape "\\" handling for the built-in directives
  + *
  + *--------------------------------------------- */
  +TOKEN:
  +{
  +    /*
  +     *  We have to do this, because we want these to be a Text node, and
  +     *  whatever follows to be peer to this text in the tree.
  +     *  And we don't want to try an and deal with this w/in the AST.
  +     *
  +     *  This is really simplistic.  I actually would prefer to find them in
  +     *  grammatical context, but I am neither smart nor rested, a receipe
  +     *  for disaster, another long night with Mr. Parser, or both.
  +     */
  +
  +     <ESCAPE_SET_DIRECTIVE : "\\#set">   
  +     { matchedToken.image = "#set"; }
  +|    <ESCAPE_IF_DIRECTIVE : "\\#if">   
  +     { matchedToken.image = "#if"; }
  +|    <ESCAPE_END_DIRECTIVE : "\\#end">   
  +     { matchedToken.image = "#end"; }
  +|    <ESCAPE_INCLUDE_DIRECTIVE: "\\#include"> 
  +     { matchedToken.image = "#include"; }
  +|    <ESCAPE_ELSEIF_DIRECTIVE: "\\#elseif">
  +     { matchedToken.image = "#elseif"; }
  +|    <ESCAPE_ELSE_DIRECTIVE: "\\#else"> 
  +     { matchedToken.image = "#else"; }
  +|    <ESCAPE_STOP_DIRECTIVE: "\\#stop">
  +     { matchedToken.image = "#stop"; }
  +
  +}
  +
   <*>
   MORE :
   {
  -    //
  -    //  Note : DOLLARBANG is a duplicate of DOLLAR.  They must be identical.
  -    //
  +    /*
  +     *   Note : DOLLARBANG is a duplicate of DOLLAR.  They must be identical.
  +     */
   
  -    <DOLLAR: "$"> 
  +    <DOLLAR: ("\\")? "$"> 
       { 
           if (! inComment)
           {
  @@ -527,7 +564,7 @@
           SwitchTo( IN_MULTI_LINE_COMMENT ); 
       } 
   
  -|   <HASH : "#"> 
  +|   <HASH : ("\\")? "#"> 
       { 
           if (! inComment)
           {
  @@ -544,7 +581,7 @@
   
   TOKEN :
   {
  -    <ESCAPE_SEQUENCE: "\\" ~[] >
  +    <ESCAPE: "\\">
   |   <TEXT: (~["$", "#", "\\"])+ >
   }    
   
  @@ -560,7 +597,6 @@
     { 
        inComment = false;
        stateStackPop();
  -    // was :DEFAULT
     } 
   
   }
  @@ -572,7 +608,6 @@
     {     
       inComment = false;
       stateStackPop();
  -    // was :DEFAULT
     } 
   }
   
  @@ -583,7 +618,6 @@
     { 
       inComment = false; 
       stateStackPop();
  -    // was :DEFAULT
     } 
   }
   
  @@ -621,10 +655,6 @@
           }
           incMode = false;
       
  -       // from jason :
  -       // if (lparen == 0)
  -       //     SwitchTo(DEFAULT);
  -    
           /*
            *  - if we are in REFERENCE || REFMODIFIER then " is an ender
            *  - if we are in DIRECTIVE and haven't seen ( yet, then also drop out. 
  @@ -685,7 +715,7 @@
   <DIRECTIVE> 
   TOKEN :
   {
  -    <END: "end" ("\n")?> 
  +    <END: "end" ( "\n" | "\r" | "\r\n" )?> 
       { 
           inDirective = false; 
           stateStackPop();
  @@ -739,7 +769,7 @@
    *
    *  This is more than a single state, because of the  structure of
    *  the VTL references.  We use three states because the set of tokens
  - *  for each state is different.
  + *  for each state can be different.
    *
    *  $foo.bar( "arg" )
    *  ^   ^   ^
  @@ -796,7 +826,7 @@
            *  These can terminate a reference, but are needed in subsequent states
            */
   
  -        if (image.toString().equals("=") || image.toString().equals("\n"))
  +        if (image.toString().equals("=") || image.toString().equals("\n") || 
image.toString().equals("\r") )
           {
               input_stream.backup(1);
           } 
  @@ -1014,18 +1044,31 @@
       try {
   /*@egen*/
       /*
  -     *  Get the directive identifier and check to see if this is a directive.
  -     *   Note that because '#' is a <MORE> token, the identifier is preceeded by 
the '#'
  +     *  There are two things we do here :
  +     *  1) If the first char is a \, then this has been escaped, so don't 
  +     *     continue.  We will take care of the rest in ASTDirective.java
  +     *  2) Get the directive identifier and check to see if this is a directive.
  +     *     Note that because '#' is a <MORE> token, the identifier is preceeded by 
the '#'
        */
  +
       t = <WORD>
       {
  -        d = (Directive) directives.get(t.image.substring(1));
  -        
  -        if (d == null)
  +        if( t.image.startsWith("\\"))
           {
               token_source.stateStackPop();
               token_source.inDirective = false;
  -            return jjtn000;
  +            return jjtn000;            
  +        }
  +        else
  +        {
  +            d = (Directive) directives.get(t.image.substring(1));
  +        
  +            if (d == null)
  +            {
  +                token_source.stateStackPop();
  +                token_source.inDirective = false;
  +                return jjtn000;
  +            }
           }            
       }
   
  @@ -1276,22 +1319,20 @@
   |   <LPAREN>
   |   <NUMBER_LITERAL>
   |   <STRING_LITERAL>
  -|   t = <ESCAPE_SEQUENCE>/*@bgen(jjtree)*/
  -    {
  -      jjtree.closeNodeScope(jjtn000, true);
  -      jjtc000 = false;
  -    }
  -/*@egen*/
  -    {
  -        t.image = t.image.substring(1);
  -    }/*@bgen(jjtree)*/
  +|   <ESCAPE>
  +|   <ESCAPE_SET_DIRECTIVE>
  +|   <ESCAPE_IF_DIRECTIVE>
  +|   <ESCAPE_END_DIRECTIVE>   
  +|   <ESCAPE_INCLUDE_DIRECTIVE> 
  +|   <ESCAPE_ELSEIF_DIRECTIVE>
  +|   <ESCAPE_ELSE_DIRECTIVE> 
  +|   <ESCAPE_STOP_DIRECTIVE>/*@bgen(jjtree)*/
       } finally {
         if (jjtc000) {
           jjtree.closeNodeScope(jjtn000, true);
         }
       }
  -/*@egen*/      
  -
  +/*@egen*/
   }
   
   /* -----------------------------------------------------------------------
  @@ -2056,36 +2097,60 @@
   
   
   /* ======================================================================
  - *
  - *  Background
  - *  ----------
  - *
  - *  VTL == Velocity Template Language
  - *
  - *  The problem with parsing VTL is that an input stream consists generally of 
little
  - *  bits of VTL mixed in with 'other stuff' (hereafter referred to as 'schmoo').  
Unlike
  - *  other languages, like C or Java, where the parser can punt whenever it 
encounters 
  - *  input that doesn't conform to the grammar, the VTL parser can't do that.  
  - *
  - *  There are a few things that we do here :
  - *    - define a set of parser states (DEFAULT, DIRECTIVE, REFERENCE, etc)
  - *    - define for each parser state a set of tokens for each state
  - *    - define the VTL grammar, expressed (mostly) in the productions such as 
Text(), SetStatement(), etc.
  - *  
  - *  It is clear that this expression of the VTL grammer (the contents of this .jjt 
file) is maturing and
  - *  evolving as we learn more about how to parse VTL ( and as I learn about 
parsing...), so in the event 
  - *  this documentation is in disagreement w/ the source, the source takes 
precedence.
  - *
  - *  Parser States
  - *  -------------
  - *  DEFAULT :  This is the base or starting state, and strangely enough, the 
default state.
  - *
  - *  DIRECTIVE : This state is triggered by the '#' character, and is used when 
processing both
  - *     'defined' directives such as #if() #else #elseif() #end #set #foreach() as 
well as the 
  - *     so-called 'pluggable' directives (PDs), which include #foreach(), #macro() 
etc.  The
  - *     PDs are able to be implemented entirely outside of the parser.
  - *      - with the exception of #set, #else and #else, the 'shape' of a directive 
is  
  - *           #foo( optional args )
  - *      - 
  - */
  + 
  +   Background
  +   ----------
  + 
  +   VTL == Velocity Template Language
  + 
  +   The problem with parsing VTL is that an input stream consists generally of little
  +   bits of VTL mixed in with 'other stuff' (hereafter referred to as 'schmoo').  
Unlike
  +   other languages, like C or Java, where the parser can punt whenever it 
encounters 
  +   input that doesn't conform to the grammar, the VTL parser can't do that.  
  + 
  +   There are a few things that we do here :
  +     - define a set of parser states (DEFAULT, DIRECTIVE, REFERENCE, etc)
  +     - define for each parser state a set of tokens for each state
  +     - define the VTL grammar, expressed (mostly) in the productions such as 
Text(), SetStatement(), etc.
  +   
  +   It is clear that this expression of the VTL grammer (the contents of this .jjt 
file) is maturing and
  +   evolving as we learn more about how to parse VTL ( and as I learn about 
parsing...), so in the event 
  +   this documentation is in disagreement w/ the source, the source takes precedence.
  + 
  +   Parser States
  +   -------------
  +   DEFAULT :  This is the base or starting state, and strangely enough, the default 
state.
  + 
  +   DIRECTIVE : This state is triggered by the '#' character, and is used when 
processing both
  +      'defined' directives such as #if() #else #elseif() #end #set #foreach() as 
well as the 
  +      so-called 'pluggable' directives (PDs), which include #foreach(), #macro() 
etc.  The
  +      PDs are able to be implemented entirely outside of the parser.
  +       - with the exception of #set, #else and #else, the 'shape' of a directive is 
 
  +            #foo( optional args )
  +       - 
  + 
  +    (cont)
  +
  +    Escape Sequences
  +    ----------------
  +    The escape processing in VTL is very simple.  The '\' character acts only as an 
escape when :
  +    
  +        1) It preceeds a reference that is in the context.
  +
  +        2) It preceeds a defined directive (#set, #if, #end, etc) or a valid 
pluggable directive, 
  +            such as #foreach
  +
  +    In all other cases the '\' is just another piece of text.  The purpose of this 
is to allow the non-VTL
  +    parts of a template (the 'schmoo') to not have to be altered for processing by 
Velocity.
  +
  +    So if in the context $foo and $bar were defined and $woogie was not 
  +        
  +        \$foo  \$bar \$woogie
  +
  +    would output
  +
  +        $foo  $bar  \$woogie
  +
  +
  +*/
    
  
  
  
  1.9       +70 -56    
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserConstants.java
  
  Index: ParserConstants.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserConstants.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ParserConstants.java      2000/11/01 01:11:21     1.8
  +++ ParserConstants.java      2000/11/03 03:27:56     1.9
  @@ -10,61 +10,68 @@
     int LPAREN = 4;
     int RPAREN = 5;
     int REFMOD2_RPAREN = 6;
  -  int DOLLAR = 7;
  -  int DOLLARBANG = 8;
  -  int HASH = 12;
  -  int ESCAPE_SEQUENCE = 13;
  -  int TEXT = 14;
  -  int SINGLE_LINE_COMMENT = 15;
  -  int FORMAL_COMMENT = 16;
  -  int MULTI_LINE_COMMENT = 17;
  -  int STRING_LITERAL = 21;
  -  int TRUE = 22;
  -  int FALSE = 23;
  -  int NEWLINE = 24;
  -  int MINUS = 25;
  -  int PLUS = 26;
  -  int MULTIPLY = 27;
  -  int DIVIDE = 28;
  -  int MODULUS = 29;
  -  int LOGICAL_AND = 30;
  -  int LOGICAL_OR = 31;
  -  int LOGICAL_LT = 32;
  -  int LOGICAL_LE = 33;
  -  int LOGICAL_GT = 34;
  -  int LOGICAL_GE = 35;
  -  int LOGICAL_EQUALS = 36;
  -  int LOGICAL_NOT_EQUALS = 37;
  -  int LOGICAL_NOT = 38;
  -  int EQUALS = 39;
  -  int END = 40;
  -  int INCLUDE_DIRECTIVE = 41;
  -  int IF_DIRECTIVE = 42;
  -  int ELSEIF_DIRECTIVE = 43;
  -  int ELSE_DIRECTIVE = 44;
  -  int SET_DIRECTIVE = 45;
  -  int STOP_DIRECTIVE = 46;
  -  int DIGIT = 47;
  -  int NUMBER_LITERAL = 48;
  -  int LETTER = 49;
  -  int WORD = 50;
  -  int ALPHA_CHAR = 51;
  -  int ALPHANUM_CHAR = 52;
  -  int IDENTIFIER_CHAR = 53;
  -  int IDENTIFIER = 54;
  -  int DOT = 55;
  -  int LCURLY = 56;
  -  int RCURLY = 57;
  -  int REFERENCE_TERMINATOR = 58;
  +  int ESCAPE_SET_DIRECTIVE = 7;
  +  int ESCAPE_IF_DIRECTIVE = 8;
  +  int ESCAPE_END_DIRECTIVE = 9;
  +  int ESCAPE_INCLUDE_DIRECTIVE = 10;
  +  int ESCAPE_ELSEIF_DIRECTIVE = 11;
  +  int ESCAPE_ELSE_DIRECTIVE = 12;
  +  int ESCAPE_STOP_DIRECTIVE = 13;
  +  int DOLLAR = 14;
  +  int DOLLARBANG = 15;
  +  int HASH = 19;
  +  int ESCAPE = 20;
  +  int TEXT = 21;
  +  int SINGLE_LINE_COMMENT = 22;
  +  int FORMAL_COMMENT = 23;
  +  int MULTI_LINE_COMMENT = 24;
  +  int STRING_LITERAL = 28;
  +  int TRUE = 29;
  +  int FALSE = 30;
  +  int NEWLINE = 31;
  +  int MINUS = 32;
  +  int PLUS = 33;
  +  int MULTIPLY = 34;
  +  int DIVIDE = 35;
  +  int MODULUS = 36;
  +  int LOGICAL_AND = 37;
  +  int LOGICAL_OR = 38;
  +  int LOGICAL_LT = 39;
  +  int LOGICAL_LE = 40;
  +  int LOGICAL_GT = 41;
  +  int LOGICAL_GE = 42;
  +  int LOGICAL_EQUALS = 43;
  +  int LOGICAL_NOT_EQUALS = 44;
  +  int LOGICAL_NOT = 45;
  +  int EQUALS = 46;
  +  int END = 47;
  +  int INCLUDE_DIRECTIVE = 48;
  +  int IF_DIRECTIVE = 49;
  +  int ELSEIF_DIRECTIVE = 50;
  +  int ELSE_DIRECTIVE = 51;
  +  int SET_DIRECTIVE = 52;
  +  int STOP_DIRECTIVE = 53;
  +  int DIGIT = 54;
  +  int NUMBER_LITERAL = 55;
  +  int LETTER = 56;
  +  int WORD = 57;
  +  int ALPHA_CHAR = 58;
  +  int ALPHANUM_CHAR = 59;
  +  int IDENTIFIER_CHAR = 60;
  +  int IDENTIFIER = 61;
  +  int DOT = 62;
  +  int LCURLY = 63;
  +  int RCURLY = 64;
  +  int REFERENCE_TERMINATOR = 65;
   
     int DIRECTIVE = 0;
     int REFMODIFIER = 1;
     int REFMOD2 = 2;
  -  int REFERENCE = 3;
  -  int IN_MULTI_LINE_COMMENT = 4;
  -  int IN_FORMAL_COMMENT = 5;
  -  int IN_SINGLE_LINE_COMMENT = 6;
  -  int DEFAULT = 7;
  +  int DEFAULT = 3;
  +  int REFERENCE = 4;
  +  int IN_MULTI_LINE_COMMENT = 5;
  +  int IN_FORMAL_COMMENT = 6;
  +  int IN_SINGLE_LINE_COMMENT = 7;
   
     String[] tokenImage = {
       "<EOF>",
  @@ -74,18 +81,25 @@
       "\"(\"",
       "<RPAREN>",
       "\")\"",
  -    "\"$\"",
  +    "\"\\\\#set\"",
  +    "\"\\\\#if\"",
  +    "\"\\\\#end\"",
  +    "\"\\\\#include\"",
  +    "\"\\\\#elseif\"",
  +    "\"\\\\#else\"",
  +    "\"\\\\#stop\"",
  +    "<DOLLAR>",
       "\"$!\"",
       "\"##\"",
  -    "<token of kind 10>",
  +    "<token of kind 17>",
       "\"#*\"",
  -    "\"#\"",
  -    "<ESCAPE_SEQUENCE>",
  +    "<HASH>",
  +    "\"\\\\\"",
       "<TEXT>",
       "<SINGLE_LINE_COMMENT>",
       "\"*#\"",
       "\"*#\"",
  -    "<token of kind 18>",
  +    "<token of kind 25>",
       "\" \"",
       "\"\\t\"",
       "<STRING_LITERAL>",
  
  
  
  1.15      +1399 -778 
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java
  
  Index: ParserTokenManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ParserTokenManager.java   2000/11/02 03:53:56     1.14
  +++ ParserTokenManager.java   2000/11/03 03:27:56     1.15
  @@ -225,73 +225,90 @@
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x180000000000L) != 0L)
  +         if ((active0 & 0xc000000000000L) != 0L)
            {
  -            jjmatchedKind = 50;
  -            return 15;
  +            jjmatchedKind = 57;
  +            return 21;
  +         }
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 8;
            }
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 5;
  -         if ((active0 & 0x660000c00000L) != 0L)
  +         if ((active0 & 0x8000L) != 0L)
            {
  -            jjmatchedKind = 50;
  -            return 18;
  +            jjmatchedKind = 14;
  +            return -1;
            }
  +         if ((active0 & 0x33000060000000L) != 0L)
  +         {
  +            jjmatchedKind = 57;
  +            return 24;
  +         }
            return -1;
         case 1:
  -         if ((active0 & 0x800L) != 0L)
  -            return 3;
  -         if ((active0 & 0x40000000000L) != 0L)
  -            return 18;
  -         if ((active0 & 0x7a0000c00000L) != 0L)
  +         if ((active0 & 0x3d000060000000L) != 0L)
            {
  -            jjmatchedKind = 50;
  +            jjmatchedKind = 57;
               jjmatchedPos = 1;
  -            return 18;
  +            return 24;
            }
  +         if ((active0 & 0x2000000000000L) != 0L)
  +            return 24;
  +         if ((active0 & 0x40000L) != 0L)
  +            return 6;
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            if (jjmatchedPos == 0)
  +            {
  +               jjmatchedKind = 14;
  +               jjmatchedPos = 0;
  +            }
  +            return -1;
  +         }
            return -1;
         case 2:
  -         if ((active0 & 0x5a0000c00000L) != 0L)
  +         if ((active0 & 0x10000000000000L) != 0L)
  +            return 24;
  +         if ((active0 & 0x2d000060000000L) != 0L)
            {
  -            jjmatchedKind = 50;
  +            jjmatchedKind = 57;
               jjmatchedPos = 2;
  -            return 18;
  +            return 24;
            }
  -         if ((active0 & 0x200000000000L) != 0L)
  -            return 18;
            return -1;
         case 3:
  -         if ((active0 & 0x20000800000L) != 0L)
  +         if ((active0 & 0x2c000020000000L) != 0L)
  +            return 24;
  +         if ((active0 & 0x1000040000000L) != 0L)
            {
               if (jjmatchedPos != 3)
               {
  -               jjmatchedKind = 50;
  +               jjmatchedKind = 57;
                  jjmatchedPos = 3;
               }
  -            return 18;
  +            return 24;
            }
  -         if ((active0 & 0x580000400000L) != 0L)
  -            return 18;
            return -1;
         case 4:
  -         if ((active0 & 0xa0000000000L) != 0L)
  +         if ((active0 & 0x40000000L) != 0L)
  +            return 24;
  +         if ((active0 & 0x5000000000000L) != 0L)
            {
  -            jjmatchedKind = 50;
  +            jjmatchedKind = 57;
               jjmatchedPos = 4;
  -            return 18;
  +            return 24;
            }
  -         if ((active0 & 0x800000L) != 0L)
  -            return 18;
            return -1;
         case 5:
  -         if ((active0 & 0x20000000000L) != 0L)
  +         if ((active0 & 0x4000000000000L) != 0L)
  +            return 24;
  +         if ((active0 & 0x1000000000000L) != 0L)
            {
  -            jjmatchedKind = 50;
  +            jjmatchedKind = 57;
               jjmatchedPos = 5;
  -            return 18;
  +            return 24;
            }
  -         if ((active0 & 0x80000000000L) != 0L)
  -            return 18;
            return -1;
         default :
            return -1;
  @@ -320,55 +337,53 @@
      switch(curChar)
      {
         case 33:
  -         jjmatchedKind = 38;
  -         return jjMoveStringLiteralDfa1_0(0x2000000000L);
  +         jjmatchedKind = 45;
  +         return jjMoveStringLiteralDfa1_0(0x100000000000L);
         case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_0(0xa00L);
  +         return jjMoveStringLiteralDfa1_0(0x50000L);
         case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_0(0x100L);
  +         return jjMoveStringLiteralDfa1_0(0x8000L);
         case 37:
  -         return jjStopAtPos(0, 29);
  +         return jjStopAtPos(0, 36);
         case 38:
  -         return jjMoveStringLiteralDfa1_0(0x40000000L);
  +         return jjMoveStringLiteralDfa1_0(0x2000000000L);
         case 40:
            return jjStopAtPos(0, 4);
         case 42:
  -         return jjStopAtPos(0, 27);
  +         return jjStopAtPos(0, 34);
         case 43:
  -         return jjStopAtPos(0, 26);
  +         return jjStopAtPos(0, 33);
         case 44:
            return jjStopAtPos(0, 3);
         case 45:
  -         return jjStopAtPos(0, 25);
  +         return jjStopAtPos(0, 32);
         case 47:
  -         return jjStopAtPos(0, 28);
  +         return jjStopAtPos(0, 35);
         case 60:
  -         jjmatchedKind = 32;
  -         return jjMoveStringLiteralDfa1_0(0x200000000L);
  -      case 61:
            jjmatchedKind = 39;
  -         return jjMoveStringLiteralDfa1_0(0x1000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x10000000000L);
  +      case 61:
  +         jjmatchedKind = 46;
  +         return jjMoveStringLiteralDfa1_0(0x80000000000L);
         case 62:
  -         jjmatchedKind = 34;
  -         return jjMoveStringLiteralDfa1_0(0x800000000L);
  +         jjmatchedKind = 41;
  +         return jjMoveStringLiteralDfa1_0(0x40000000000L);
         case 91:
            return jjStopAtPos(0, 1);
         case 93:
            return jjStopAtPos(0, 2);
         case 101:
  -         return jjMoveStringLiteralDfa1_0(0x180000000000L);
  +         return jjMoveStringLiteralDfa1_0(0xc000000000000L);
         case 102:
  -         return jjMoveStringLiteralDfa1_0(0x800000L);
  +         return jjMoveStringLiteralDfa1_0(0x40000000L);
         case 105:
  -         return jjMoveStringLiteralDfa1_0(0x60000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x3000000000000L);
         case 115:
  -         return jjMoveStringLiteralDfa1_0(0x600000000000L);
  +         return jjMoveStringLiteralDfa1_0(0x30000000000000L);
         case 116:
  -         return jjMoveStringLiteralDfa1_0(0x400000L);
  +         return jjMoveStringLiteralDfa1_0(0x20000000L);
         case 124:
  -         return jjMoveStringLiteralDfa1_0(0x80000000L);
  +         return jjMoveStringLiteralDfa1_0(0x4000000000L);
         default :
            return jjMoveNfa_0(0, 0);
      }
  @@ -383,50 +398,50 @@
      switch(curChar)
      {
         case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
            break;
         case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  +         if ((active0 & 0x10000L) != 0L)
  +            return jjStopAtPos(1, 16);
            break;
         case 38:
  -         if ((active0 & 0x40000000L) != 0L)
  -            return jjStopAtPos(1, 30);
  +         if ((active0 & 0x2000000000L) != 0L)
  +            return jjStopAtPos(1, 37);
            break;
         case 42:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_0(1, 11, 3);
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_0(1, 18, 6);
            break;
         case 61:
  -         if ((active0 & 0x200000000L) != 0L)
  -            return jjStopAtPos(1, 33);
  -         else if ((active0 & 0x800000000L) != 0L)
  -            return jjStopAtPos(1, 35);
  -         else if ((active0 & 0x1000000000L) != 0L)
  -            return jjStopAtPos(1, 36);
  -         else if ((active0 & 0x2000000000L) != 0L)
  -            return jjStopAtPos(1, 37);
  +         if ((active0 & 0x10000000000L) != 0L)
  +            return jjStopAtPos(1, 40);
  +         else if ((active0 & 0x40000000000L) != 0L)
  +            return jjStopAtPos(1, 42);
  +         else if ((active0 & 0x80000000000L) != 0L)
  +            return jjStopAtPos(1, 43);
  +         else if ((active0 & 0x100000000000L) != 0L)
  +            return jjStopAtPos(1, 44);
            break;
         case 97:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x40000000L);
         case 101:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x200000000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L);
         case 102:
  -         if ((active0 & 0x40000000000L) != 0L)
  -            return jjStartNfaWithStates_0(1, 42, 18);
  +         if ((active0 & 0x2000000000000L) != 0L)
  +            return jjStartNfaWithStates_0(1, 49, 24);
            break;
         case 108:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x180000000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0xc000000000000L);
         case 110:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x20000000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000L);
         case 114:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x20000000L);
         case 116:
  -         return jjMoveStringLiteralDfa2_0(active0, 0x400000000000L);
  +         return jjMoveStringLiteralDfa2_0(active0, 0x20000000000000L);
         case 124:
  -         if ((active0 & 0x80000000L) != 0L)
  -            return jjStopAtPos(1, 31);
  +         if ((active0 & 0x4000000000L) != 0L)
  +            return jjStopAtPos(1, 38);
            break;
         default :
            break;
  @@ -445,19 +460,19 @@
      switch(curChar)
      {
         case 99:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000L);
         case 108:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x40000000L);
         case 111:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x400000000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x20000000000000L);
         case 115:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x180000000000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0xc000000000000L);
         case 116:
  -         if ((active0 & 0x200000000000L) != 0L)
  -            return jjStartNfaWithStates_0(2, 45, 18);
  +         if ((active0 & 0x10000000000000L) != 0L)
  +            return jjStartNfaWithStates_0(2, 52, 24);
            break;
         case 117:
  -         return jjMoveStringLiteralDfa3_0(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa3_0(active0, 0x20000000L);
         default :
            break;
      }
  @@ -475,22 +490,22 @@
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x400000L) != 0L)
  -            return jjStartNfaWithStates_0(3, 22, 18);
  -         else if ((active0 & 0x100000000000L) != 0L)
  +         if ((active0 & 0x20000000L) != 0L)
  +            return jjStartNfaWithStates_0(3, 29, 24);
  +         else if ((active0 & 0x8000000000000L) != 0L)
            {
  -            jjmatchedKind = 44;
  +            jjmatchedKind = 51;
               jjmatchedPos = 3;
            }
  -         return jjMoveStringLiteralDfa4_0(active0, 0x80000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000L);
         case 108:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x20000000000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x1000000000000L);
         case 112:
  -         if ((active0 & 0x400000000000L) != 0L)
  -            return jjStartNfaWithStates_0(3, 46, 18);
  +         if ((active0 & 0x20000000000000L) != 0L)
  +            return jjStartNfaWithStates_0(3, 53, 24);
            break;
         case 115:
  -         return jjMoveStringLiteralDfa4_0(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa4_0(active0, 0x40000000L);
         default :
            break;
      }
  @@ -508,13 +523,13 @@
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x800000L) != 0L)
  -            return jjStartNfaWithStates_0(4, 23, 18);
  +         if ((active0 & 0x40000000L) != 0L)
  +            return jjStartNfaWithStates_0(4, 30, 24);
            break;
         case 105:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x80000000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000L);
         case 117:
  -         return jjMoveStringLiteralDfa5_0(active0, 0x20000000000L);
  +         return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000L);
         default :
            break;
      }
  @@ -532,10 +547,10 @@
      switch(curChar)
      {
         case 100:
  -         return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L);
  +         return jjMoveStringLiteralDfa6_0(active0, 0x1000000000000L);
         case 102:
  -         if ((active0 & 0x80000000000L) != 0L)
  -            return jjStartNfaWithStates_0(5, 43, 18);
  +         if ((active0 & 0x4000000000000L) != 0L)
  +            return jjStartNfaWithStates_0(5, 50, 24);
            break;
         default :
            break;
  @@ -554,8 +569,8 @@
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x20000000000L) != 0L)
  -            return jjStartNfaWithStates_0(6, 41, 18);
  +         if ((active0 & 0x1000000000000L) != 0L)
  +            return jjStartNfaWithStates_0(6, 48, 24);
            break;
         default :
            break;
  @@ -599,7 +614,7 @@
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 19;
  +   jjnewStateCnt = 26;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -617,89 +632,123 @@
                  case 0:
                     if ((0x3ff000000000000L & l) != 0L)
                     {
  -                     if (kind > 48)
  -                        kind = 48;
  -                     jjCheckNAdd(17);
  +                     if (kind > 55)
  +                        kind = 55;
  +                     jjCheckNAdd(23);
                     }
                     else if ((0x2400L & l) != 0L)
                     {
  -                     if (kind > 24)
  -                        kind = 24;
  +                     if (kind > 31)
  +                        kind = 31;
                     }
                     else if (curChar == 34)
  -                     jjCheckNAddTwoStates(8, 9);
  +                     jjCheckNAddTwoStates(12, 13);
                     else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
                     else if (curChar == 41)
                     {
                        if (kind > 5)
                           kind = 5;
  -                     jjCheckNAddTwoStates(1, 2);
  +                     jjCheckNAddStates(0, 2);
                     }
                     if (curChar == 13)
  -                     jjstateSet[jjnewStateCnt++] = 11;
  +                     jjstateSet[jjnewStateCnt++] = 15;
  +                  else if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 8;
                     break;
                  case 1:
                     if (curChar != 32)
                        break;
                     if (kind > 5)
                        kind = 5;
  -                  jjCheckNAddTwoStates(1, 2);
  +                  jjCheckNAddStates(0, 2);
                     break;
                  case 2:
  -                  if (curChar == 10 && kind > 5)
  +                  if ((0x2400L & l) != 0L && kind > 5)
                        kind = 5;
                     break;
                  case 3:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 4;
  +                  if (curChar == 10 && kind > 5)
  +                     kind = 5;
                     break;
                  case 4:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 13)
  +                     jjstateSet[jjnewStateCnt++] = 3;
                     break;
                  case 5:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 3;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 6:
  -                  if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 7;
                     break;
                  case 7:
  -                  if (curChar == 34)
  -                     jjCheckNAddTwoStates(8, 9);
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  case 8:
  -                  if ((0xfffffffbffffdbffL & l) != 0L)
  -                     jjCheckNAddTwoStates(8, 9);
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 6;
                     break;
                  case 9:
  -                  if (curChar == 34 && kind > 21)
  -                     kind = 21;
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 8;
                     break;
                  case 10:
  -                  if ((0x2400L & l) != 0L && kind > 24)
  -                     kind = 24;
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
                     break;
                  case 11:
  -                  if (curChar == 10 && kind > 24)
  -                     kind = 24;
  +                  if (curChar == 34)
  +                     jjCheckNAddTwoStates(12, 13);
                     break;
                  case 12:
  -                  if (curChar == 13)
  -                     jjstateSet[jjnewStateCnt++] = 11;
  +                  if ((0xfffffffbffffdbffL & l) != 0L)
  +                     jjCheckNAddTwoStates(12, 13);
  +                  break;
  +               case 13:
  +                  if (curChar == 34 && kind > 28)
  +                     kind = 28;
                     break;
                  case 14:
  -                  if (curChar == 10 && kind > 40)
  -                     kind = 40;
  +                  if ((0x2400L & l) != 0L && kind > 31)
  +                     kind = 31;
                     break;
  -               case 17:
  +               case 15:
  +                  if (curChar == 10 && kind > 31)
  +                     kind = 31;
  +                  break;
  +               case 16:
  +                  if (curChar == 13)
  +                     jjstateSet[jjnewStateCnt++] = 15;
  +                  break;
  +               case 18:
  +                  if ((0x2400L & l) != 0L && kind > 47)
  +                     kind = 47;
  +                  break;
  +               case 19:
  +                  if (curChar == 10 && kind > 47)
  +                     kind = 47;
  +                  break;
  +               case 20:
  +                  if (curChar == 13)
  +                     jjstateSet[jjnewStateCnt++] = 19;
  +                  break;
  +               case 23:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
  -                  if (kind > 48)
  -                     kind = 48;
  -                  jjCheckNAdd(17);
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjCheckNAdd(23);
                     break;
                  default : break;
               }
  @@ -712,51 +761,57 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 15:
  +               case 21:
                     if ((0x7fffffe07fffffeL & l) != 0L)
                     {
  -                     if (kind > 50)
  -                        kind = 50;
  -                     jjCheckNAdd(18);
  +                     if (kind > 57)
  +                        kind = 57;
  +                     jjCheckNAdd(24);
                     }
                     if (curChar == 110)
  -                     jjstateSet[jjnewStateCnt++] = 13;
  +                     jjstateSet[jjnewStateCnt++] = 17;
                     break;
                  case 0:
                     if ((0x7fffffe07fffffeL & l) != 0L)
                     {
  -                     if (kind > 50)
  -                        kind = 50;
  -                     jjCheckNAdd(18);
  +                     if (kind > 57)
  +                        kind = 57;
  +                     jjCheckNAdd(24);
                     }
  +                  else if (curChar == 92)
  +                     jjAddStates(3, 4);
                     if (curChar == 101)
  -                     jjstateSet[jjnewStateCnt++] = 15;
  +                     jjstateSet[jjnewStateCnt++] = 21;
                     break;
  -               case 4:
  -                  if (kind > 10)
  -                     kind = 10;
  +               case 7:
  +                  if (kind > 17)
  +                     kind = 17;
                     break;
  -               case 8:
  -                  jjAddStates(0, 1);
  +               case 12:
  +                  jjAddStates(5, 6);
                     break;
  -               case 13:
  +               case 17:
                     if (curChar != 100)
                        break;
  -                  if (kind > 40)
  -                     kind = 40;
  -                  jjstateSet[jjnewStateCnt++] = 14;
  +                  if (kind > 47)
  +                     kind = 47;
  +                  jjAddStates(7, 8);
                     break;
  -               case 16:
  +               case 22:
                     if (curChar == 101)
  -                     jjstateSet[jjnewStateCnt++] = 15;
  +                     jjstateSet[jjnewStateCnt++] = 21;
                     break;
  -               case 18:
  +               case 24:
                     if ((0x7fffffe07fffffeL & l) == 0L)
                        break;
  -                  if (kind > 50)
  -                     kind = 50;
  -                  jjCheckNAdd(18);
  +                  if (kind > 57)
  +                     kind = 57;
  +                  jjCheckNAdd(24);
                     break;
  +               case 25:
  +                  if (curChar == 92)
  +                     jjAddStates(3, 4);
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -769,13 +824,13 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 4:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
  +               case 7:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
  -               case 8:
  +               case 12:
                     if ((jjbitVec0[i2] & l2) != 0L)
  -                     jjAddStates(0, 1);
  +                     jjAddStates(5, 6);
                     break;
                  default : break;
               }
  @@ -788,85 +843,91 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 19 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 26 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_4(int pos, long active0)
  +private final int jjStopStringLiteralDfa_5(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 2;
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 3;
  +         }
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            jjmatchedKind = 14;
  +            return -1;
  +         }
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_4(int pos, long active0)
  +private final int jjStartNfa_5(int pos, long active0)
   {
  -   return jjMoveNfa_4(jjStopStringLiteralDfa_4(pos, active0), pos + 1);
  +   return jjMoveNfa_5(jjStopStringLiteralDfa_5(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_4(int pos, int kind, int state)
  +private final int jjStartNfaWithStates_5(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_4(state, pos + 1);
  +   return jjMoveNfa_5(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_4()
  +private final int jjMoveStringLiteralDfa0_5()
   {
      switch(curChar)
      {
         case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_4(0xa00L);
  +         return jjMoveStringLiteralDfa1_5(0x50000L);
         case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_4(0x100L);
  +         return jjMoveStringLiteralDfa1_5(0x8000L);
         case 42:
  -         return jjMoveStringLiteralDfa1_4(0x20000L);
  +         return jjMoveStringLiteralDfa1_5(0x1000000L);
         default :
  -         return jjMoveNfa_4(3, 0);
  +         return jjMoveNfa_5(4, 0);
      }
   }
  -private final int jjMoveStringLiteralDfa1_4(long active0)
  +private final int jjMoveStringLiteralDfa1_5(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_4(0, active0);
  +      jjStopStringLiteralDfa_5(0, active0);
         return 1;
      }
      switch(curChar)
      {
         case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
            break;
         case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  -         else if ((active0 & 0x20000L) != 0L)
  -            return jjStopAtPos(1, 17);
  +         if ((active0 & 0x10000L) != 0L)
  +            return jjStopAtPos(1, 16);
  +         else if ((active0 & 0x1000000L) != 0L)
  +            return jjStopAtPos(1, 24);
            break;
         case 42:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_4(1, 11, 0);
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_5(1, 18, 1);
            break;
         default :
            break;
      }
  -   return jjStartNfa_4(0, active0);
  +   return jjStartNfa_5(0, active0);
   }
  -private final int jjMoveNfa_4(int startState, int curPos)
  +private final int jjMoveNfa_5(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 4;
  +   jjnewStateCnt = 7;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -881,21 +942,39 @@
            {
               switch(jjstateSet[--i])
               {
  +               case 4:
  +                  if (curChar == 35)
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 3;
  +                  break;
                  case 0:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 1;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 1:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 2:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 0;
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  case 3:
  -                  if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 1;
  +                  break;
  +               case 5:
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
                     break;
                  default : break;
               }
  @@ -908,8 +987,13 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  kind = 10;
  +               case 4:
  +                  if (curChar == 92)
  +                     jjAddStates(9, 10);
  +                  break;
  +               case 2:
  +                  if (kind > 17)
  +                     kind = 17;
                     break;
                  default : break;
               }
  @@ -923,9 +1007,9 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
  +               case 2:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  default : break;
               }
  @@ -938,188 +1022,203 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_3(int pos, long active0)
  +private final int jjStopStringLiteralDfa_4(int pos, long active0, long active1)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  -            return 8;
  +            jjmatchedKind = 61;
  +            return 10;
  +         }
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 3;
            }
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 2;
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            jjmatchedKind = 14;
  +            return -1;
  +         }
            return -1;
         case 1:
  -         if ((active0 & 0x800L) != 0L)
  -            return 0;
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x40000L) != 0L)
  +            return 1;
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            if (jjmatchedPos == 0)
  +            {
  +               jjmatchedKind = 14;
  +               jjmatchedPos = 0;
  +            }
  +            return -1;
  +         }
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 1;
  -            return 8;
  +            return 10;
            }
            return -1;
         case 2:
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 2;
  -            return 8;
  +            return 10;
            }
            return -1;
         case 3:
  -         if ((active0 & 0x800000L) != 0L)
  +         if ((active0 & 0x20000000L) != 0L)
  +            return 10;
  +         if ((active0 & 0x40000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 3;
  -            return 8;
  +            return 10;
            }
  -         if ((active0 & 0x400000L) != 0L)
  -            return 8;
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_3(int pos, long active0)
  +private final int jjStartNfa_4(int pos, long active0, long active1)
   {
  -   return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1);
  +   return jjMoveNfa_4(jjStopStringLiteralDfa_4(pos, active0, active1), pos + 1);
   }
  -private final int jjStartNfaWithStates_3(int pos, int kind, int state)
  +private final int jjStartNfaWithStates_4(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_3(state, pos + 1);
  +   return jjMoveNfa_4(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_3()
  +private final int jjMoveStringLiteralDfa0_4()
   {
      switch(curChar)
      {
         case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_3(0xa00L);
  +         return jjMoveStringLiteralDfa1_4(0x50000L);
         case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_3(0x100L);
  +         return jjMoveStringLiteralDfa1_4(0x8000L);
         case 102:
  -         return jjMoveStringLiteralDfa1_3(0x800000L);
  +         return jjMoveStringLiteralDfa1_4(0x40000000L);
         case 116:
  -         return jjMoveStringLiteralDfa1_3(0x400000L);
  +         return jjMoveStringLiteralDfa1_4(0x20000000L);
         case 123:
  -         return jjStopAtPos(0, 56);
  +         return jjStopAtPos(0, 63);
         case 125:
  -         return jjStopAtPos(0, 57);
  +         return jjStopAtPos(0, 64);
         default :
  -         return jjMoveNfa_3(3, 0);
  +         return jjMoveNfa_4(4, 0);
      }
   }
  -private final int jjMoveStringLiteralDfa1_3(long active0)
  +private final int jjMoveStringLiteralDfa1_4(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_3(0, active0);
  +      jjStopStringLiteralDfa_4(0, active0, 0L);
         return 1;
      }
      switch(curChar)
      {
         case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
            break;
         case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  +         if ((active0 & 0x10000L) != 0L)
  +            return jjStopAtPos(1, 16);
            break;
         case 42:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_3(1, 11, 0);
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_4(1, 18, 1);
            break;
         case 97:
  -         return jjMoveStringLiteralDfa2_3(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa2_4(active0, 0x40000000L);
         case 114:
  -         return jjMoveStringLiteralDfa2_3(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa2_4(active0, 0x20000000L);
         default :
            break;
      }
  -   return jjStartNfa_3(0, active0);
  +   return jjStartNfa_4(0, active0, 0L);
   }
  -private final int jjMoveStringLiteralDfa2_3(long old0, long active0)
  +private final int jjMoveStringLiteralDfa2_4(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_3(0, old0); 
  +      return jjStartNfa_4(0, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_3(1, active0);
  +      jjStopStringLiteralDfa_4(1, active0, 0L);
         return 2;
      }
      switch(curChar)
      {
         case 108:
  -         return jjMoveStringLiteralDfa3_3(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa3_4(active0, 0x40000000L);
         case 117:
  -         return jjMoveStringLiteralDfa3_3(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa3_4(active0, 0x20000000L);
         default :
            break;
      }
  -   return jjStartNfa_3(1, active0);
  +   return jjStartNfa_4(1, active0, 0L);
   }
  -private final int jjMoveStringLiteralDfa3_3(long old0, long active0)
  +private final int jjMoveStringLiteralDfa3_4(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_3(1, old0); 
  +      return jjStartNfa_4(1, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_3(2, active0);
  +      jjStopStringLiteralDfa_4(2, active0, 0L);
         return 3;
      }
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x400000L) != 0L)
  -            return jjStartNfaWithStates_3(3, 22, 8);
  +         if ((active0 & 0x20000000L) != 0L)
  +            return jjStartNfaWithStates_4(3, 29, 10);
            break;
         case 115:
  -         return jjMoveStringLiteralDfa4_3(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa4_4(active0, 0x40000000L);
         default :
            break;
      }
  -   return jjStartNfa_3(2, active0);
  +   return jjStartNfa_4(2, active0, 0L);
   }
  -private final int jjMoveStringLiteralDfa4_3(long old0, long active0)
  +private final int jjMoveStringLiteralDfa4_4(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_3(2, old0); 
  +      return jjStartNfa_4(2, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_3(3, active0);
  +      jjStopStringLiteralDfa_4(3, active0, 0L);
         return 4;
      }
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x800000L) != 0L)
  -            return jjStartNfaWithStates_3(4, 23, 8);
  +         if ((active0 & 0x40000000L) != 0L)
  +            return jjStartNfaWithStates_4(4, 30, 10);
            break;
         default :
            break;
      }
  -   return jjStartNfa_3(3, active0);
  +   return jjStartNfa_4(3, active0, 0L);
   }
  -private final int jjMoveNfa_3(int startState, int curPos)
  +private final int jjMoveNfa_4(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 11;
  +   jjnewStateCnt = 14;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1134,48 +1233,66 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  +               case 4:
                     if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 10;
  +                     jjstateSet[jjnewStateCnt++] = 12;
                     else if (curChar == 34)
  -                     jjCheckNAddTwoStates(5, 6);
  +                     jjCheckNAddTwoStates(7, 8);
                     else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 3;
                     break;
                  case 0:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 1;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 1:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 2:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 0;
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
                     break;
  -               case 4:
  -                  if (curChar == 34)
  -                     jjCheckNAddTwoStates(5, 6);
  +               case 3:
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 1;
                     break;
                  case 5:
  -                  if ((0xfffffffbffffdbffL & l) != 0L)
  -                     jjCheckNAddTwoStates(5, 6);
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
                     break;
                  case 6:
  -                  if (curChar == 34 && kind > 21)
  -                     kind = 21;
  +                  if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
  +                  break;
  +               case 7:
  +                  if ((0xfffffffbffffdbffL & l) != 0L)
  +                     jjCheckNAddTwoStates(7, 8);
                     break;
                  case 8:
  +                  if (curChar == 34 && kind > 28)
  +                     kind = 28;
  +                  break;
  +               case 10:
                     if ((0x3ff200000000000L & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjstateSet[jjnewStateCnt++] = 8;
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjstateSet[jjnewStateCnt++] = 10;
                     break;
  -               case 9:
  +               case 11:
                     if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 10;
  +                     jjstateSet[jjnewStateCnt++] = 12;
                     break;
                  default : break;
               }
  @@ -1188,30 +1305,44 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  -                  if ((0x7fffffe07fffffeL & l) == 0L)
  -                     break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjCheckNAdd(8);
  +               case 4:
  +                  if ((0x7fffffe07fffffeL & l) != 0L)
  +                  {
  +                     if (kind > 61)
  +                        kind = 61;
  +                     jjCheckNAdd(10);
  +                  }
  +                  else if (curChar == 92)
  +                     jjAddStates(9, 10);
                     break;
  -               case 1:
  -                  if (kind > 10)
  -                     kind = 10;
  +               case 2:
  +                  if (kind > 17)
  +                     kind = 17;
                     break;
  -               case 5:
  -                  jjAddStates(2, 3);
  +               case 7:
  +                  jjAddStates(11, 12);
                     break;
  -               case 8:
  -                  if ((0x7fffffe87fffffeL & l) == 0L)
  +               case 9:
  +                  if ((0x7fffffe07fffffeL & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjCheckNAdd(8);
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjCheckNAdd(10);
                     break;
                  case 10:
  -                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 55)
  -                     kind = 55;
  +                  if ((0x7fffffe87fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjCheckNAdd(10);
  +                  break;
  +               case 12:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 62)
  +                     kind = 62;
  +                  break;
  +               case 13:
  +                  if (curChar == 92)
  +                     jjAddStates(9, 10);
                     break;
                  default : break;
               }
  @@ -1225,13 +1356,13 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
  +               case 2:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
  -               case 5:
  +               case 7:
                     if ((jjbitVec0[i2] & l2) != 0L)
  -                     jjAddStates(2, 3);
  +                     jjAddStates(11, 12);
                     break;
                  default : break;
               }
  @@ -1244,60 +1375,77 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 11 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 14 - (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)
  +private final int jjStopStringLiteralDfa_1(int pos, long active0, long active1)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 5;
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x60000000L) != 0L)
  +         {
  +            jjmatchedKind = 61;
  +            return 15;
  +         }
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 8;
  +         }
  +         if ((active0 & 0x8000L) != 0L)
            {
  -            jjmatchedKind = 54;
  -            return 11;
  +            jjmatchedKind = 14;
  +            return -1;
            }
            return -1;
         case 1:
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 1;
  -            return 11;
  +            return 15;
            }
  -         if ((active0 & 0x800L) != 0L)
  -            return 3;
  +         if ((active0 & 0x40000L) != 0L)
  +            return 6;
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            if (jjmatchedPos == 0)
  +            {
  +               jjmatchedKind = 14;
  +               jjmatchedPos = 0;
  +            }
  +            return -1;
  +         }
            return -1;
         case 2:
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 2;
  -            return 11;
  +            return 15;
            }
            return -1;
         case 3:
  -         if ((active0 & 0x400000L) != 0L)
  -            return 11;
  -         if ((active0 & 0x800000L) != 0L)
  +         if ((active0 & 0x20000000L) != 0L)
  +            return 15;
  +         if ((active0 & 0x40000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 3;
  -            return 11;
  +            return 15;
            }
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_1(int pos, long active0)
  +private final int jjStartNfa_1(int pos, long active0, long active1)
   {
  -   return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
  +   return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0, active1), pos + 1);
   }
   private final int jjStartNfaWithStates_1(int pos, int kind, int state)
   {
  @@ -1312,11 +1460,9 @@
      switch(curChar)
      {
         case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_1(0xa00L);
  +         return jjMoveStringLiteralDfa1_1(0x50000L);
         case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_1(0x100L);
  +         return jjMoveStringLiteralDfa1_1(0x8000L);
         case 40:
            return jjStopAtPos(0, 4);
         case 91:
  @@ -1324,13 +1470,13 @@
         case 93:
            return jjStopAtPos(0, 2);
         case 102:
  -         return jjMoveStringLiteralDfa1_1(0x800000L);
  +         return jjMoveStringLiteralDfa1_1(0x40000000L);
         case 116:
  -         return jjMoveStringLiteralDfa1_1(0x400000L);
  +         return jjMoveStringLiteralDfa1_1(0x20000000L);
         case 123:
  -         return jjStopAtPos(0, 56);
  +         return jjStopAtPos(0, 63);
         case 125:
  -         return jjStopAtPos(0, 57);
  +         return jjStopAtPos(0, 64);
         default :
            return jjMoveNfa_1(0, 0);
      }
  @@ -1339,99 +1485,99 @@
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(0, active0);
  +      jjStopStringLiteralDfa_1(0, active0, 0L);
         return 1;
      }
      switch(curChar)
      {
         case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
            break;
         case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  +         if ((active0 & 0x10000L) != 0L)
  +            return jjStopAtPos(1, 16);
            break;
         case 42:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_1(1, 11, 3);
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_1(1, 18, 6);
            break;
         case 97:
  -         return jjMoveStringLiteralDfa2_1(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa2_1(active0, 0x40000000L);
         case 114:
  -         return jjMoveStringLiteralDfa2_1(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa2_1(active0, 0x20000000L);
         default :
            break;
      }
  -   return jjStartNfa_1(0, active0);
  +   return jjStartNfa_1(0, active0, 0L);
   }
   private final int jjMoveStringLiteralDfa2_1(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_1(0, old0); 
  +      return jjStartNfa_1(0, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(1, active0);
  +      jjStopStringLiteralDfa_1(1, active0, 0L);
         return 2;
      }
      switch(curChar)
      {
         case 108:
  -         return jjMoveStringLiteralDfa3_1(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa3_1(active0, 0x40000000L);
         case 117:
  -         return jjMoveStringLiteralDfa3_1(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa3_1(active0, 0x20000000L);
         default :
            break;
      }
  -   return jjStartNfa_1(1, active0);
  +   return jjStartNfa_1(1, active0, 0L);
   }
   private final int jjMoveStringLiteralDfa3_1(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_1(1, old0); 
  +      return jjStartNfa_1(1, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(2, active0);
  +      jjStopStringLiteralDfa_1(2, active0, 0L);
         return 3;
      }
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x400000L) != 0L)
  -            return jjStartNfaWithStates_1(3, 22, 11);
  +         if ((active0 & 0x20000000L) != 0L)
  +            return jjStartNfaWithStates_1(3, 29, 15);
            break;
         case 115:
  -         return jjMoveStringLiteralDfa4_1(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa4_1(active0, 0x40000000L);
         default :
            break;
      }
  -   return jjStartNfa_1(2, active0);
  +   return jjStartNfa_1(2, active0, 0L);
   }
   private final int jjMoveStringLiteralDfa4_1(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_1(2, old0); 
  +      return jjStartNfa_1(2, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(3, active0);
  +      jjStopStringLiteralDfa_1(3, active0, 0L);
         return 4;
      }
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x800000L) != 0L)
  -            return jjStartNfaWithStates_1(4, 23, 11);
  +         if ((active0 & 0x40000000L) != 0L)
  +            return jjStartNfaWithStates_1(4, 30, 15);
            break;
         default :
            break;
      }
  -   return jjStartNfa_1(3, active0);
  +   return jjStartNfa_1(3, active0, 0L);
   }
   private final int jjMoveNfa_1(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 14;
  +   jjnewStateCnt = 19;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1448,67 +1594,93 @@
               {
                  case 0:
                     if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 13;
  +                     jjstateSet[jjnewStateCnt++] = 17;
                     else if (curChar == 34)
  -                     jjCheckNAddTwoStates(8, 9);
  +                     jjCheckNAddTwoStates(12, 13);
                     else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
                     else if (curChar == 41)
                     {
                        if (kind > 5)
                           kind = 5;
  -                     jjCheckNAddTwoStates(1, 2);
  +                     jjCheckNAddStates(0, 2);
                     }
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 8;
                     break;
                  case 1:
                     if (curChar != 32)
                        break;
                     if (kind > 5)
                        kind = 5;
  -                  jjCheckNAddTwoStates(1, 2);
  +                  jjCheckNAddStates(0, 2);
                     break;
                  case 2:
  -                  if (curChar == 10 && kind > 5)
  +                  if ((0x2400L & l) != 0L && kind > 5)
                        kind = 5;
                     break;
                  case 3:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 4;
  +                  if (curChar == 10 && kind > 5)
  +                     kind = 5;
                     break;
                  case 4:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 13)
  +                     jjstateSet[jjnewStateCnt++] = 3;
                     break;
                  case 5:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 3;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 6:
  -                  if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 7;
                     break;
                  case 7:
  -                  if (curChar == 34)
  -                     jjCheckNAddTwoStates(8, 9);
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  case 8:
  -                  if ((0xfffffffbffffdbffL & l) != 0L)
  -                     jjCheckNAddTwoStates(8, 9);
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 6;
                     break;
                  case 9:
  -                  if (curChar == 34 && kind > 21)
  -                     kind = 21;
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 8;
                     break;
  +               case 10:
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
  +                  break;
                  case 11:
  +                  if (curChar == 34)
  +                     jjCheckNAddTwoStates(12, 13);
  +                  break;
  +               case 12:
  +                  if ((0xfffffffbffffdbffL & l) != 0L)
  +                     jjCheckNAddTwoStates(12, 13);
  +                  break;
  +               case 13:
  +                  if (curChar == 34 && kind > 28)
  +                     kind = 28;
  +                  break;
  +               case 15:
                     if ((0x3ff200000000000L & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjstateSet[jjnewStateCnt++] = 11;
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjstateSet[jjnewStateCnt++] = 15;
                     break;
  -               case 12:
  +               case 16:
                     if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 13;
  +                     jjstateSet[jjnewStateCnt++] = 17;
                     break;
                  default : break;
               }
  @@ -1522,30 +1694,44 @@
               switch(jjstateSet[--i])
               {
                  case 0:
  -                  if ((0x7fffffe07fffffeL & l) == 0L)
  -                     break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjCheckNAdd(11);
  +                  if ((0x7fffffe07fffffeL & l) != 0L)
  +                  {
  +                     if (kind > 61)
  +                        kind = 61;
  +                     jjCheckNAdd(15);
  +                  }
  +                  else if (curChar == 92)
  +                     jjAddStates(3, 4);
                     break;
  -               case 4:
  -                  if (kind > 10)
  -                     kind = 10;
  +               case 7:
  +                  if (kind > 17)
  +                     kind = 17;
                     break;
  -               case 8:
  -                  jjAddStates(0, 1);
  +               case 12:
  +                  jjAddStates(5, 6);
                     break;
  -               case 11:
  +               case 14:
  +                  if ((0x7fffffe07fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjCheckNAdd(15);
  +                  break;
  +               case 15:
                     if ((0x7fffffe87fffffeL & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjCheckNAdd(11);
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjCheckNAdd(15);
                     break;
  -               case 13:
  -                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 55)
  -                     kind = 55;
  +               case 17:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 62)
  +                     kind = 62;
                     break;
  +               case 18:
  +                  if (curChar == 92)
  +                     jjAddStates(3, 4);
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1558,13 +1744,13 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 4:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
  +               case 7:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
  -               case 8:
  +               case 12:
                     if ((jjbitVec0[i2] & l2) != 0L)
  -                     jjAddStates(0, 1);
  +                     jjAddStates(5, 6);
                     break;
                  default : break;
               }
  @@ -1577,85 +1763,91 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 14 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 19 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_5(int pos, long active0)
  +private final int jjStopStringLiteralDfa_6(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 2;
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 3;
  +         }
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            jjmatchedKind = 14;
  +            return -1;
  +         }
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_5(int pos, long active0)
  +private final int jjStartNfa_6(int pos, long active0)
   {
  -   return jjMoveNfa_5(jjStopStringLiteralDfa_5(pos, active0), pos + 1);
  +   return jjMoveNfa_6(jjStopStringLiteralDfa_6(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_5(int pos, int kind, int state)
  +private final int jjStartNfaWithStates_6(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_5(state, pos + 1);
  +   return jjMoveNfa_6(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_5()
  +private final int jjMoveStringLiteralDfa0_6()
   {
      switch(curChar)
      {
         case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_5(0xa00L);
  +         return jjMoveStringLiteralDfa1_6(0x50000L);
         case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_5(0x100L);
  +         return jjMoveStringLiteralDfa1_6(0x8000L);
         case 42:
  -         return jjMoveStringLiteralDfa1_5(0x10000L);
  +         return jjMoveStringLiteralDfa1_6(0x800000L);
         default :
  -         return jjMoveNfa_5(3, 0);
  +         return jjMoveNfa_6(4, 0);
      }
   }
  -private final int jjMoveStringLiteralDfa1_5(long active0)
  +private final int jjMoveStringLiteralDfa1_6(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_5(0, active0);
  +      jjStopStringLiteralDfa_6(0, active0);
         return 1;
      }
      switch(curChar)
      {
         case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
            break;
         case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  -         else if ((active0 & 0x10000L) != 0L)
  +         if ((active0 & 0x10000L) != 0L)
               return jjStopAtPos(1, 16);
  +         else if ((active0 & 0x800000L) != 0L)
  +            return jjStopAtPos(1, 23);
            break;
         case 42:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_5(1, 11, 0);
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_6(1, 18, 1);
            break;
         default :
            break;
      }
  -   return jjStartNfa_5(0, active0);
  +   return jjStartNfa_6(0, active0);
   }
  -private final int jjMoveNfa_5(int startState, int curPos)
  +private final int jjMoveNfa_6(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 4;
  +   jjnewStateCnt = 7;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1670,21 +1862,39 @@
            {
               switch(jjstateSet[--i])
               {
  +               case 4:
  +                  if (curChar == 35)
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 3;
  +                  break;
                  case 0:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 1;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 1:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 2:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 0;
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  case 3:
  -                  if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 1;
  +                  break;
  +               case 5:
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
                     break;
                  default : break;
               }
  @@ -1697,8 +1907,13 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  kind = 10;
  +               case 4:
  +                  if (curChar == 92)
  +                     jjAddStates(9, 10);
  +                  break;
  +               case 2:
  +                  if (kind > 17)
  +                     kind = 17;
                     break;
                  default : break;
               }
  @@ -1712,9 +1927,9 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
  +               case 2:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  default : break;
               }
  @@ -1727,60 +1942,77 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_2(int pos, long active0)
  +private final int jjStopStringLiteralDfa_2(int pos, long active0, long active1)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  -            return 8;
  +            jjmatchedKind = 61;
  +            return 10;
  +         }
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 3;
  +         }
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            jjmatchedKind = 14;
  +            return -1;
            }
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 2;
            return -1;
         case 1:
  -         if ((active0 & 0x800L) != 0L)
  -            return 0;
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x40000L) != 0L)
  +            return 1;
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            if (jjmatchedPos == 0)
  +            {
  +               jjmatchedKind = 14;
  +               jjmatchedPos = 0;
  +            }
  +            return -1;
  +         }
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 1;
  -            return 8;
  +            return 10;
            }
            return -1;
         case 2:
  -         if ((active0 & 0xc00000L) != 0L)
  +         if ((active0 & 0x60000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 2;
  -            return 8;
  +            return 10;
            }
            return -1;
         case 3:
  -         if ((active0 & 0x800000L) != 0L)
  +         if ((active0 & 0x20000000L) != 0L)
  +            return 10;
  +         if ((active0 & 0x40000000L) != 0L)
            {
  -            jjmatchedKind = 54;
  +            jjmatchedKind = 61;
               jjmatchedPos = 3;
  -            return 8;
  +            return 10;
            }
  -         if ((active0 & 0x400000L) != 0L)
  -            return 8;
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_2(int pos, long active0)
  +private final int jjStartNfa_2(int pos, long active0, long active1)
   {
  -   return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
  +   return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0, active1), pos + 1);
   }
   private final int jjStartNfaWithStates_2(int pos, int kind, int state)
   {
  @@ -1795,11 +2027,9 @@
      switch(curChar)
      {
         case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_2(0xa00L);
  +         return jjMoveStringLiteralDfa1_2(0x50000L);
         case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_2(0x100L);
  +         return jjMoveStringLiteralDfa1_2(0x8000L);
         case 41:
            return jjStopAtPos(0, 6);
         case 44:
  @@ -1809,114 +2039,114 @@
         case 93:
            return jjStopAtPos(0, 2);
         case 102:
  -         return jjMoveStringLiteralDfa1_2(0x800000L);
  +         return jjMoveStringLiteralDfa1_2(0x40000000L);
         case 116:
  -         return jjMoveStringLiteralDfa1_2(0x400000L);
  +         return jjMoveStringLiteralDfa1_2(0x20000000L);
         case 123:
  -         return jjStopAtPos(0, 56);
  +         return jjStopAtPos(0, 63);
         case 125:
  -         return jjStopAtPos(0, 57);
  +         return jjStopAtPos(0, 64);
         default :
  -         return jjMoveNfa_2(3, 0);
  +         return jjMoveNfa_2(4, 0);
      }
   }
   private final int jjMoveStringLiteralDfa1_2(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(0, active0);
  +      jjStopStringLiteralDfa_2(0, active0, 0L);
         return 1;
      }
      switch(curChar)
      {
         case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
            break;
         case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  +         if ((active0 & 0x10000L) != 0L)
  +            return jjStopAtPos(1, 16);
            break;
         case 42:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_2(1, 11, 0);
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_2(1, 18, 1);
            break;
         case 97:
  -         return jjMoveStringLiteralDfa2_2(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa2_2(active0, 0x40000000L);
         case 114:
  -         return jjMoveStringLiteralDfa2_2(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa2_2(active0, 0x20000000L);
         default :
            break;
      }
  -   return jjStartNfa_2(0, active0);
  +   return jjStartNfa_2(0, active0, 0L);
   }
   private final int jjMoveStringLiteralDfa2_2(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_2(0, old0); 
  +      return jjStartNfa_2(0, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(1, active0);
  +      jjStopStringLiteralDfa_2(1, active0, 0L);
         return 2;
      }
      switch(curChar)
      {
         case 108:
  -         return jjMoveStringLiteralDfa3_2(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa3_2(active0, 0x40000000L);
         case 117:
  -         return jjMoveStringLiteralDfa3_2(active0, 0x400000L);
  +         return jjMoveStringLiteralDfa3_2(active0, 0x20000000L);
         default :
            break;
      }
  -   return jjStartNfa_2(1, active0);
  +   return jjStartNfa_2(1, active0, 0L);
   }
   private final int jjMoveStringLiteralDfa3_2(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_2(1, old0); 
  +      return jjStartNfa_2(1, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(2, active0);
  +      jjStopStringLiteralDfa_2(2, active0, 0L);
         return 3;
      }
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x400000L) != 0L)
  -            return jjStartNfaWithStates_2(3, 22, 8);
  +         if ((active0 & 0x20000000L) != 0L)
  +            return jjStartNfaWithStates_2(3, 29, 10);
            break;
         case 115:
  -         return jjMoveStringLiteralDfa4_2(active0, 0x800000L);
  +         return jjMoveStringLiteralDfa4_2(active0, 0x40000000L);
         default :
            break;
      }
  -   return jjStartNfa_2(2, active0);
  +   return jjStartNfa_2(2, active0, 0L);
   }
   private final int jjMoveStringLiteralDfa4_2(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_2(2, old0); 
  +      return jjStartNfa_2(2, old0, 0L);
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(3, active0);
  +      jjStopStringLiteralDfa_2(3, active0, 0L);
         return 4;
      }
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x800000L) != 0L)
  -            return jjStartNfaWithStates_2(4, 23, 8);
  +         if ((active0 & 0x40000000L) != 0L)
  +            return jjStartNfaWithStates_2(4, 30, 10);
            break;
         default :
            break;
      }
  -   return jjStartNfa_2(3, active0);
  +   return jjStartNfa_2(3, active0, 0L);
   }
   private final int jjMoveNfa_2(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 11;
  +   jjnewStateCnt = 14;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1931,48 +2161,66 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  +               case 4:
                     if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 10;
  +                     jjstateSet[jjnewStateCnt++] = 12;
                     else if (curChar == 34)
  -                     jjCheckNAddTwoStates(5, 6);
  +                     jjCheckNAddTwoStates(7, 8);
                     else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 3;
                     break;
                  case 0:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 1;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 1:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 2:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 0;
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
                     break;
  -               case 4:
  -                  if (curChar == 34)
  -                     jjCheckNAddTwoStates(5, 6);
  +               case 3:
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 1;
                     break;
                  case 5:
  -                  if ((0xfffffffbffffdbffL & l) != 0L)
  -                     jjCheckNAddTwoStates(5, 6);
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
                     break;
                  case 6:
  -                  if (curChar == 34 && kind > 21)
  -                     kind = 21;
  +                  if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
  +                  break;
  +               case 7:
  +                  if ((0xfffffffbffffdbffL & l) != 0L)
  +                     jjCheckNAddTwoStates(7, 8);
                     break;
                  case 8:
  +                  if (curChar == 34 && kind > 28)
  +                     kind = 28;
  +                  break;
  +               case 10:
                     if ((0x3ff200000000000L & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjstateSet[jjnewStateCnt++] = 8;
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjstateSet[jjnewStateCnt++] = 10;
                     break;
  -               case 9:
  +               case 11:
                     if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 10;
  +                     jjstateSet[jjnewStateCnt++] = 12;
                     break;
                  default : break;
               }
  @@ -1985,31 +2233,45 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  -                  if ((0x7fffffe07fffffeL & l) == 0L)
  -                     break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjCheckNAdd(8);
  +               case 4:
  +                  if ((0x7fffffe07fffffeL & l) != 0L)
  +                  {
  +                     if (kind > 61)
  +                        kind = 61;
  +                     jjCheckNAdd(10);
  +                  }
  +                  else if (curChar == 92)
  +                     jjAddStates(9, 10);
                     break;
  -               case 1:
  -                  if (kind > 10)
  -                     kind = 10;
  +               case 2:
  +                  if (kind > 17)
  +                     kind = 17;
                     break;
  -               case 5:
  -                  jjAddStates(2, 3);
  +               case 7:
  +                  jjAddStates(11, 12);
                     break;
  -               case 8:
  -                  if ((0x7fffffe87fffffeL & l) == 0L)
  +               case 9:
  +                  if ((0x7fffffe07fffffeL & l) == 0L)
                        break;
  -                  if (kind > 54)
  -                     kind = 54;
  -                  jjCheckNAdd(8);
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjCheckNAdd(10);
                     break;
                  case 10:
  -                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 55)
  -                     kind = 55;
  +                  if ((0x7fffffe87fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 61)
  +                     kind = 61;
  +                  jjCheckNAdd(10);
  +                  break;
  +               case 12:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 62)
  +                     kind = 62;
                     break;
  +               case 13:
  +                  if (curChar == 92)
  +                     jjAddStates(9, 10);
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2022,13 +2284,13 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
  +               case 2:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
  -               case 5:
  +               case 7:
                     if ((jjbitVec0[i2] & l2) != 0L)
  -                     jjAddStates(2, 3);
  +                     jjAddStates(11, 12);
                     break;
                  default : break;
               }
  @@ -2041,81 +2303,87 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 11 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 14 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_6(int pos, long active0)
  +private final int jjStopStringLiteralDfa_7(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 2;
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 3;
  +         }
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            jjmatchedKind = 14;
  +            return -1;
  +         }
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_6(int pos, long active0)
  +private final int jjStartNfa_7(int pos, long active0)
   {
  -   return jjMoveNfa_6(jjStopStringLiteralDfa_6(pos, active0), pos + 1);
  +   return jjMoveNfa_7(jjStopStringLiteralDfa_7(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_6(int pos, int kind, int state)
  +private final int jjStartNfaWithStates_7(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_6(state, pos + 1);
  +   return jjMoveNfa_7(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_6()
  +private final int jjMoveStringLiteralDfa0_7()
   {
      switch(curChar)
      {
         case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_6(0xa00L);
  +         return jjMoveStringLiteralDfa1_7(0x50000L);
         case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_6(0x100L);
  +         return jjMoveStringLiteralDfa1_7(0x8000L);
         default :
  -         return jjMoveNfa_6(3, 0);
  +         return jjMoveNfa_7(4, 0);
      }
   }
  -private final int jjMoveStringLiteralDfa1_6(long active0)
  +private final int jjMoveStringLiteralDfa1_7(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_6(0, active0);
  +      jjStopStringLiteralDfa_7(0, active0);
         return 1;
      }
      switch(curChar)
      {
         case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
            break;
         case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  +         if ((active0 & 0x10000L) != 0L)
  +            return jjStopAtPos(1, 16);
            break;
         case 42:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_6(1, 11, 0);
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_7(1, 18, 1);
            break;
         default :
            break;
      }
  -   return jjStartNfa_6(0, active0);
  +   return jjStartNfa_7(0, active0);
   }
  -private final int jjMoveNfa_6(int startState, int curPos)
  +private final int jjMoveNfa_7(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 7;
  +   jjnewStateCnt = 10;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -2130,40 +2398,58 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  +               case 4:
                     if ((0x2400L & l) != 0L)
                     {
  -                     if (kind > 15)
  -                        kind = 15;
  +                     if (kind > 22)
  +                        kind = 22;
                     }
                     else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
                     if (curChar == 13)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  +                     jjstateSet[jjnewStateCnt++] = 7;
  +                  else if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 3;
                     break;
                  case 0:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 1;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 1:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 2:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 0;
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
                     break;
  -               case 4:
  -                  if ((0x2400L & l) != 0L && kind > 15)
  -                     kind = 15;
  +               case 3:
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 1;
                     break;
                  case 5:
  -                  if (curChar == 10 && kind > 15)
  -                     kind = 15;
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
                     break;
                  case 6:
  +                  if ((0x2400L & l) != 0L && kind > 22)
  +                     kind = 22;
  +                  break;
  +               case 7:
  +                  if (curChar == 10 && kind > 22)
  +                     kind = 22;
  +                  break;
  +               case 8:
                     if (curChar == 13)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  +                     jjstateSet[jjnewStateCnt++] = 7;
                     break;
                  default : break;
               }
  @@ -2176,9 +2462,14 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  kind = 10;
  +               case 4:
  +                  if (curChar == 92)
  +                     jjAddStates(9, 10);
                     break;
  +               case 2:
  +                  if (kind > 17)
  +                     kind = 17;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2191,9 +2482,9 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 1:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
  +               case 2:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  default : break;
               }
  @@ -2206,81 +2497,348 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 10 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
  +}
  +private final int jjStopStringLiteralDfa_3(int pos, long active0)
  +{
  +   switch (pos)
  +   {
  +      case 0:
  +         if ((active0 & 0x103f80L) != 0L)
  +            return 8;
  +         if ((active0 & 0x50000L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            return 3;
  +         }
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            jjmatchedKind = 14;
  +            return -1;
  +         }
  +         return -1;
  +      case 1:
  +         if ((active0 & 0x40000L) != 0L)
  +            return 1;
  +         if ((active0 & 0x3f80L) != 0L)
  +         {
  +            jjmatchedKind = 19;
  +            jjmatchedPos = 1;
  +            return -1;
  +         }
  +         if ((active0 & 0x8000L) != 0L)
  +         {
  +            if (jjmatchedPos == 0)
  +            {
  +               jjmatchedKind = 14;
  +               jjmatchedPos = 0;
  +            }
  +            return -1;
  +         }
  +         return -1;
  +      case 2:
  +         if ((active0 & 0x3f80L) != 0L)
  +         {
  +            if (jjmatchedPos < 1)
  +            {
  +               jjmatchedKind = 19;
  +               jjmatchedPos = 1;
  +            }
  +            return -1;
  +         }
  +         return -1;
  +      case 3:
  +         if ((active0 & 0x3f80L) != 0L)
  +         {
  +            if (jjmatchedPos < 1)
  +            {
  +               jjmatchedKind = 19;
  +               jjmatchedPos = 1;
  +            }
  +            return -1;
  +         }
  +         return -1;
  +      case 4:
  +         if ((active0 & 0x3e80L) != 0L)
  +         {
  +            if (jjmatchedPos < 1)
  +            {
  +               jjmatchedKind = 19;
  +               jjmatchedPos = 1;
  +            }
  +            return -1;
  +         }
  +         return -1;
  +      case 5:
  +         if ((active0 & 0x3c00L) != 0L)
  +         {
  +            if (jjmatchedPos < 1)
  +            {
  +               jjmatchedKind = 19;
  +               jjmatchedPos = 1;
  +            }
  +            return -1;
  +         }
  +         return -1;
  +      case 6:
  +         if ((active0 & 0xc00L) != 0L)
  +         {
  +            if (jjmatchedPos < 1)
  +            {
  +               jjmatchedKind = 19;
  +               jjmatchedPos = 1;
  +            }
  +            return -1;
  +         }
  +         return -1;
  +      case 7:
  +         if ((active0 & 0xc00L) != 0L)
  +         {
  +            if (jjmatchedPos < 1)
  +            {
  +               jjmatchedKind = 19;
  +               jjmatchedPos = 1;
  +            }
  +            return -1;
  +         }
  +         return -1;
  +      default :
  +         return -1;
  +   }
  +}
  +private final int jjStartNfa_3(int pos, long active0)
  +{
  +   return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1);
  +}
  +private final int jjStartNfaWithStates_3(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_3(state, pos + 1);
  +}
  +private final int jjMoveStringLiteralDfa0_3()
  +{
  +   switch(curChar)
  +   {
  +      case 35:
  +         return jjMoveStringLiteralDfa1_3(0x50000L);
  +      case 36:
  +         return jjMoveStringLiteralDfa1_3(0x8000L);
  +      case 92:
  +         jjmatchedKind = 20;
  +         return jjMoveStringLiteralDfa1_3(0x3f80L);
  +      default :
  +         return jjMoveNfa_3(4, 0);
  +   }
  +}
  +private final int jjMoveStringLiteralDfa1_3(long active0)
  +{
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_3(0, active0);
  +      return 1;
  +   }
  +   switch(curChar)
  +   {
  +      case 33:
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStopAtPos(1, 15);
  +         break;
  +      case 35:
  +         if ((active0 & 0x10000L) != 0L)
  +            return jjStopAtPos(1, 16);
  +         return jjMoveStringLiteralDfa2_3(active0, 0x3f80L);
  +      case 42:
  +         if ((active0 & 0x40000L) != 0L)
  +            return jjStartNfaWithStates_3(1, 18, 1);
  +         break;
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_3(0, active0);
   }
  -private final int jjStopStringLiteralDfa_7(int pos, long active0)
  +private final int jjMoveStringLiteralDfa2_3(long old0, long active0)
   {
  -   switch (pos)
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_3(0, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_3(1, active0);
  +      return 2;
  +   }
  +   switch(curChar)
      {
  -      case 0:
  -         if ((active0 & 0x1a00L) != 0L)
  -            return 2;
  -         return -1;
  +      case 101:
  +         return jjMoveStringLiteralDfa3_3(active0, 0x1a00L);
  +      case 105:
  +         return jjMoveStringLiteralDfa3_3(active0, 0x500L);
  +      case 115:
  +         return jjMoveStringLiteralDfa3_3(active0, 0x2080L);
         default :
  -         return -1;
  +         break;
      }
  +   return jjStartNfa_3(1, active0);
   }
  -private final int jjStartNfa_7(int pos, long active0)
  +private final int jjMoveStringLiteralDfa3_3(long old0, long active0)
   {
  -   return jjMoveNfa_7(jjStopStringLiteralDfa_7(pos, active0), pos + 1);
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_3(1, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_3(2, active0);
  +      return 3;
  +   }
  +   switch(curChar)
  +   {
  +      case 101:
  +         return jjMoveStringLiteralDfa4_3(active0, 0x80L);
  +      case 102:
  +         if ((active0 & 0x100L) != 0L)
  +            return jjStopAtPos(3, 8);
  +         break;
  +      case 108:
  +         return jjMoveStringLiteralDfa4_3(active0, 0x1800L);
  +      case 110:
  +         return jjMoveStringLiteralDfa4_3(active0, 0x600L);
  +      case 116:
  +         return jjMoveStringLiteralDfa4_3(active0, 0x2000L);
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_3(2, active0);
   }
  -private final int jjStartNfaWithStates_7(int pos, int kind, int state)
  +private final int jjMoveStringLiteralDfa4_3(long old0, long active0)
   {
  -   jjmatchedKind = kind;
  -   jjmatchedPos = pos;
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_3(2, old0); 
      try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) { return pos + 1; }
  -   return jjMoveNfa_7(state, pos + 1);
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_3(3, active0);
  +      return 4;
  +   }
  +   switch(curChar)
  +   {
  +      case 99:
  +         return jjMoveStringLiteralDfa5_3(active0, 0x400L);
  +      case 100:
  +         if ((active0 & 0x200L) != 0L)
  +            return jjStopAtPos(4, 9);
  +         break;
  +      case 111:
  +         return jjMoveStringLiteralDfa5_3(active0, 0x2000L);
  +      case 115:
  +         return jjMoveStringLiteralDfa5_3(active0, 0x1800L);
  +      case 116:
  +         if ((active0 & 0x80L) != 0L)
  +            return jjStopAtPos(4, 7);
  +         break;
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_3(3, active0);
   }
  -private final int jjMoveStringLiteralDfa0_7()
  +private final int jjMoveStringLiteralDfa5_3(long old0, long active0)
   {
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_3(3, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_3(4, active0);
  +      return 5;
  +   }
      switch(curChar)
      {
  -      case 35:
  -         jjmatchedKind = 12;
  -         return jjMoveStringLiteralDfa1_7(0xa00L);
  -      case 36:
  -         jjmatchedKind = 7;
  -         return jjMoveStringLiteralDfa1_7(0x100L);
  +      case 101:
  +         if ((active0 & 0x1000L) != 0L)
  +         {
  +            jjmatchedKind = 12;
  +            jjmatchedPos = 5;
  +         }
  +         return jjMoveStringLiteralDfa6_3(active0, 0x800L);
  +      case 108:
  +         return jjMoveStringLiteralDfa6_3(active0, 0x400L);
  +      case 112:
  +         if ((active0 & 0x2000L) != 0L)
  +            return jjStopAtPos(5, 13);
  +         break;
         default :
  -         return jjMoveNfa_7(3, 0);
  +         break;
      }
  +   return jjStartNfa_3(4, active0);
   }
  -private final int jjMoveStringLiteralDfa1_7(long active0)
  +private final int jjMoveStringLiteralDfa6_3(long old0, long active0)
   {
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_3(4, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_7(0, active0);
  -      return 1;
  +      jjStopStringLiteralDfa_3(5, active0);
  +      return 6;
      }
      switch(curChar)
      {
  -      case 33:
  -         if ((active0 & 0x100L) != 0L)
  -            return jjStopAtPos(1, 8);
  -         break;
  -      case 35:
  -         if ((active0 & 0x200L) != 0L)
  -            return jjStopAtPos(1, 9);
  +      case 105:
  +         return jjMoveStringLiteralDfa7_3(active0, 0x800L);
  +      case 117:
  +         return jjMoveStringLiteralDfa7_3(active0, 0x400L);
  +      default :
            break;
  -      case 42:
  +   }
  +   return jjStartNfa_3(5, active0);
  +}
  +private final int jjMoveStringLiteralDfa7_3(long old0, long active0)
  +{
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_3(5, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_3(6, active0);
  +      return 7;
  +   }
  +   switch(curChar)
  +   {
  +      case 100:
  +         return jjMoveStringLiteralDfa8_3(active0, 0x400L);
  +      case 102:
            if ((active0 & 0x800L) != 0L)
  -            return jjStartNfaWithStates_7(1, 11, 0);
  +            return jjStopAtPos(7, 11);
            break;
         default :
            break;
      }
  -   return jjStartNfa_7(0, active0);
  +   return jjStartNfa_3(6, active0);
   }
  -private final int jjMoveNfa_7(int startState, int curPos)
  +private final int jjMoveStringLiteralDfa8_3(long old0, long active0)
  +{
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_3(6, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_3(7, active0);
  +      return 8;
  +   }
  +   switch(curChar)
  +   {
  +      case 101:
  +         if ((active0 & 0x400L) != 0L)
  +            return jjStopAtPos(8, 10);
  +         break;
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_3(7, active0);
  +}
  +private final int jjMoveNfa_3(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 7;
  +   jjnewStateCnt = 8;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -2295,37 +2853,63 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  -                  if ((0xffffffe7ffffffffL & l) != 0L)
  +               case 8:
  +                  if (curChar == 35)
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
                     {
                        if (kind > 14)
                           kind = 14;
  +                  }
  +                  break;
  +               case 4:
  +                  if ((0xffffffe7ffffffffL & l) != 0L)
  +                  {
  +                     if (kind > 21)
  +                        kind = 21;
                        jjCheckNAdd(6);
                     }
                     else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  +                  {
  +                     if (kind > 19)
  +                        kind = 19;
  +                  }
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 14)
  +                        kind = 14;
  +                  }
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 3;
                     break;
                  case 0:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 1;
  +                  if (curChar == 36 && kind > 14)
  +                     kind = 14;
                     break;
                  case 1:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 10)
  -                     kind = 10;
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 2:
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
  +                     kind = 17;
  +                  break;
  +               case 3:
                     if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 0;
  +                     jjstateSet[jjnewStateCnt++] = 1;
                     break;
                  case 5:
  -                  if (kind > 13)
  -                     kind = 13;
  +                  if (curChar == 35 && kind > 19)
  +                     kind = 19;
                     break;
                  case 6:
                     if ((0xffffffe7ffffffffL & l) == 0L)
                        break;
  -                  if (kind > 14)
  -                     kind = 14;
  +                  if (kind > 21)
  +                     kind = 21;
                     jjCheckNAdd(6);
                     break;
                  default : break;
  @@ -2339,35 +2923,31 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  +               case 4:
                     if ((0xffffffffefffffffL & l) != 0L)
                     {
  -                     if (kind > 14)
  -                        kind = 14;
  +                     if (kind > 21)
  +                        kind = 21;
                        jjCheckNAdd(6);
                     }
                     else if (curChar == 92)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  -                  break;
  -               case 1:
  -                  if (kind > 10)
  -                     kind = 10;
  -                  break;
  -               case 4:
  -                  if (curChar == 92)
  -                     jjstateSet[jjnewStateCnt++] = 5;
  +                     jjAddStates(9, 10);
                     break;
  -               case 5:
  -                  if (kind > 13)
  -                     kind = 13;
  +               case 2:
  +                  if (kind > 17)
  +                     kind = 17;
                     break;
                  case 6:
                     if ((0xffffffffefffffffL & l) == 0L)
                        break;
  -                  if (kind > 14)
  -                     kind = 14;
  +                  if (kind > 21)
  +                     kind = 21;
                     jjCheckNAdd(6);
                     break;
  +               case 7:
  +                  if (curChar == 92)
  +                     jjAddStates(9, 10);
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2380,21 +2960,17 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  +               case 4:
                  case 6:
                     if ((jjbitVec0[i2] & l2) == 0L)
                        break;
  -                  if (kind > 14)
  -                     kind = 14;
  +                  if (kind > 21)
  +                     kind = 21;
                     jjCheckNAdd(6);
  -                  break;
  -               case 1:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 10)
  -                     kind = 10;
                     break;
  -               case 5:
  -                  if ((jjbitVec0[i2] & l2) != 0L && kind > 13)
  -                     kind = 13;
  +               case 2:
  +                  if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
  +                     kind = 17;
                     break;
                  default : break;
               }
  @@ -2407,51 +2983,51 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
   static final int[] jjnextStates = {
  -   8, 9, 5, 6, 
  +   1, 2, 4, 5, 10, 12, 13, 18, 20, 0, 5, 7, 8, 
   };
   public static final String[] jjstrLiteralImages = {
   null, null, null, null, null, null, null, null, null, null, null, null, null, 
   null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
   null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
   null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
  -null, null, null, null, };
  +null, null, null, null, null, null, null, null, null, null, null, };
   public static final String[] lexStateNames = {
      "DIRECTIVE", 
      "REFMODIFIER", 
      "REFMOD2", 
  +   "DEFAULT", 
      "REFERENCE", 
      "IN_MULTI_LINE_COMMENT", 
      "IN_FORMAL_COMMENT", 
      "IN_SINGLE_LINE_COMMENT", 
  -   "DEFAULT", 
   };
   public static final int[] jjnewLexState = {
      -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, -1, -1, -1, -1, 
      -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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 = {
  -   0x3c57fffffe3e07fL, 
  +   0xe2bffffff1f03fffL, 0x1L, 
   };
   static final long[] jjtoSkip = {
  -   0x400000000180000L, 
  +   0xc000000L, 0x2L, 
   };
   static final long[] jjtoSpecial = {
  -   0x400000000000000L, 
  +   0x0L, 0x2L, 
   };
   static final long[] jjtoMore = {
  -   0x41f80L, 
  +   0x20fc000L, 0x0L, 
   };
   private ASCII_CharStream input_stream;
  -private final int[] jjrounds = new int[19];
  -private final int[] jjstateSet = new int[38];
  +private final int[] jjrounds = new int[26];
  +private final int[] jjstateSet = new int[52];
   StringBuffer image;
   int jjimageLen;
   int lengthOfMatch;
  @@ -2478,7 +3054,7 @@
   {
      int i;
      jjround = 0x80000001;
  -   for (i = 19; i-- > 0;)
  +   for (i = 26; i-- > 0;)
         jjrounds[i] = 0x80000000;
   }
   public void ReInit(ASCII_CharStream stream, int lexState)
  @@ -2507,8 +3083,8 @@
      return t;
   }
   
  -int curLexState = 7;
  -int defaultLexState = 7;
  +int curLexState = 3;
  +int defaultLexState = 3;
   int jjnewStateCnt;
   int jjround;
   int jjmatchedPos;
  @@ -2557,9 +3133,9 @@
            jjmatchedKind = 0x7fffffff;
            jjmatchedPos = 0;
            curPos = jjMoveStringLiteralDfa0_1();
  -         if (jjmatchedPos == 0 && jjmatchedKind > 58)
  +         if (jjmatchedPos == 0 && jjmatchedKind > 65)
            {
  -            jjmatchedKind = 58;
  +            jjmatchedKind = 65;
            }
            break;
          case 2:
  @@ -2571,51 +3147,51 @@
            jjmatchedKind = 0x7fffffff;
            jjmatchedPos = 0;
            curPos = jjMoveStringLiteralDfa0_2();
  -         if (jjmatchedPos == 0 && jjmatchedKind > 58)
  +         if (jjmatchedPos == 0 && jjmatchedKind > 65)
            {
  -            jjmatchedKind = 58;
  +            jjmatchedKind = 65;
            }
            break;
          case 3:
            jjmatchedKind = 0x7fffffff;
            jjmatchedPos = 0;
            curPos = jjMoveStringLiteralDfa0_3();
  -         if (jjmatchedPos == 0 && jjmatchedKind > 58)
  -         {
  -            jjmatchedKind = 58;
  -         }
            break;
          case 4:
            jjmatchedKind = 0x7fffffff;
            jjmatchedPos = 0;
            curPos = jjMoveStringLiteralDfa0_4();
  -         if (jjmatchedPos == 0 && jjmatchedKind > 18)
  +         if (jjmatchedPos == 0 && jjmatchedKind > 65)
            {
  -            jjmatchedKind = 18;
  +            jjmatchedKind = 65;
            }
            break;
          case 5:
            jjmatchedKind = 0x7fffffff;
            jjmatchedPos = 0;
            curPos = jjMoveStringLiteralDfa0_5();
  -         if (jjmatchedPos == 0 && jjmatchedKind > 18)
  +         if (jjmatchedPos == 0 && jjmatchedKind > 25)
            {
  -            jjmatchedKind = 18;
  +            jjmatchedKind = 25;
            }
            break;
          case 6:
            jjmatchedKind = 0x7fffffff;
            jjmatchedPos = 0;
            curPos = jjMoveStringLiteralDfa0_6();
  -         if (jjmatchedPos == 0 && jjmatchedKind > 18)
  +         if (jjmatchedPos == 0 && jjmatchedKind > 25)
            {
  -            jjmatchedKind = 18;
  +            jjmatchedKind = 25;
            }
            break;
          case 7:
            jjmatchedKind = 0x7fffffff;
            jjmatchedPos = 0;
            curPos = jjMoveStringLiteralDfa0_7();
  +         if (jjmatchedPos == 0 && jjmatchedKind > 25)
  +         {
  +            jjmatchedKind = 25;
  +         }
            break;
        }
        if (jjmatchedKind != 0x7fffffff)
  @@ -2691,7 +3267,7 @@
   {
      switch(jjmatchedKind)
      {
  -      case 58 :
  +      case 65 :
            if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2700,7 +3276,7 @@
            *  These can terminate a reference, but are needed in subsequent states
            */
   
  -        if (image.toString().equals("=") || image.toString().equals("\n"))
  +        if (image.toString().equals("=") || image.toString().equals("\n") || 
image.toString().equals("\r") )
           {
               input_stream.backup(1);
           }
  @@ -2734,7 +3310,7 @@
      jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
      switch(jjmatchedKind)
      {
  -      case 7 :
  +      case 14 :
            if (image == null)
                 image = new StringBuffer(new 
String(input_stream.GetSuffix(jjimageLen)));
            else
  @@ -2751,7 +3327,7 @@
               SwitchTo(REFERENCE);
           }
            break;
  -      case 8 :
  +      case 15 :
            if (image == null)
                 image = new StringBuffer(new 
String(input_stream.GetSuffix(jjimageLen)));
            else
  @@ -2768,7 +3344,7 @@
               SwitchTo(REFERENCE);
           }
            break;
  -      case 9 :
  +      case 16 :
            if (image == null)
                 image = new StringBuffer(new 
String(input_stream.GetSuffix(jjimageLen)));
            else
  @@ -2778,7 +3354,7 @@
           stateStackPush();
           SwitchTo(IN_SINGLE_LINE_COMMENT);
            break;
  -      case 10 :
  +      case 17 :
            if (image == null)
                 image = new StringBuffer(new 
String(input_stream.GetSuffix(jjimageLen)));
            else
  @@ -2789,7 +3365,7 @@
           stateStackPush();
           SwitchTo( IN_FORMAL_COMMENT);
            break;
  -      case 11 :
  +      case 18 :
            if (image == null)
                 image = new StringBuffer(new 
String(input_stream.GetSuffix(jjimageLen)));
            else
  @@ -2799,7 +3375,7 @@
           stateStackPush();
           SwitchTo( IN_MULTI_LINE_COMMENT );
            break;
  -      case 12 :
  +      case 19 :
            if (image == null)
                 image = new StringBuffer(new 
String(input_stream.GetSuffix(jjimageLen)));
            else
  @@ -2853,7 +3429,56 @@
               image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
          RPARENHandler();
            break;
  -      case 15 :
  +      case 7 :
  +        if (image == null)
  +            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +         else
  +            image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +       matchedToken.image = "#set";
  +         break;
  +      case 8 :
  +        if (image == null)
  +            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +         else
  +            image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +       matchedToken.image = "#if";
  +         break;
  +      case 9 :
  +        if (image == null)
  +            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +         else
  +            image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +       matchedToken.image = "#end";
  +         break;
  +      case 10 :
  +        if (image == null)
  +            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +         else
  +            image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +       matchedToken.image = "#include";
  +         break;
  +      case 11 :
  +        if (image == null)
  +            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +         else
  +            image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +       matchedToken.image = "#elseif";
  +         break;
  +      case 12 :
  +        if (image == null)
  +            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +         else
  +            image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +       matchedToken.image = "#else";
  +         break;
  +      case 13 :
  +        if (image == null)
  +            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +         else
  +            image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +       matchedToken.image = "#stop";
  +         break;
  +      case 22 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2861,7 +3486,7 @@
        inComment = false;
        stateStackPop();
            break;
  -      case 16 :
  +      case 23 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2869,7 +3494,7 @@
       inComment = false;
       stateStackPop();
            break;
  -      case 17 :
  +      case 24 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2877,7 +3502,7 @@
       inComment = false;
       stateStackPop();
            break;
  -      case 21 :
  +      case 28 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2889,10 +3514,6 @@
           }
           incMode = false;
   
  -       // from jason :
  -       // if (lparen == 0)
  -       //     SwitchTo(DEFAULT);
  -
           /*
            *  - if we are in REFERENCE || REFMODIFIER then " is an ender
            *  - if we are in DIRECTIVE and haven't seen ( yet, then also drop out. 
  @@ -2905,7 +3526,7 @@
           else if( curLexState == DIRECTIVE && !inSet && lparen == 0)
               stateStackPop();
            break;
  -      case 24 :
  +      case 31 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2921,7 +3542,7 @@
           if (inDirective)
               inDirective = false;
            break;
  -      case 40 :
  +      case 47 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2929,14 +3550,14 @@
           inDirective = false;
           stateStackPop();
            break;
  -      case 41 :
  +      case 48 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
               image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
           incMode = true;
            break;
  -      case 44 :
  +      case 51 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2944,14 +3565,14 @@
           inDirective = false;
           stateStackPop();
            break;
  -      case 45 :
  +      case 52 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
               image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
         inSet = true;
            break;
  -      case 46 :
  +      case 53 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2959,7 +3580,7 @@
           matchedToken.kind = EOF;
           fileDepth = 0;
            break;
  -      case 48 :
  +      case 55 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2974,7 +3595,7 @@
           if ( lparen == 0 && !inSet )
               stateStackPop();
            break;
  -      case 55 :
  +      case 62 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  @@ -2995,7 +3616,7 @@
               System.out.print("DOT : switching to " + REFMODIFIER);
           SwitchTo(REFMODIFIER);
            break;
  -      case 57 :
  +      case 64 :
           if (image == null)
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
  
  
  

Reply via email to