geirm       00/11/16 12:25:06

  Modified:    src/java/org/apache/velocity/runtime/parser Parser.java
                        Parser.jj ParserTokenManager.java
  Log:
  Usual parser followers.
  
  Revision  Changes    Path
  1.31      +439 -396  
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.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- Parser.java       2000/11/11 22:47:57     1.30
  +++ Parser.java       2000/11/16 20:25:04     1.31
  @@ -7,6 +7,7 @@
   import org.apache.velocity.runtime.Runtime;
   import org.apache.velocity.runtime.parser.node.*;
   import org.apache.velocity.runtime.directive.Directive;
  +//import org.apache.velocity.runtime.directive.Macro;
   import org.apache.velocity.util.StringUtils;
   
   /**
  @@ -20,7 +21,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.30 2000/11/11 22:47:57 geirm Exp $ 
  + * @version $Id: Parser.java,v 1.31 2000/11/16 20:25:04 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants 
{/*@bgen(jjtree)*/
     protected JJTParserState jjtree = new JJTParserState();/**
  @@ -105,7 +106,8 @@
               return false;
       }
   
  -  /**
  +
  +    /**
        *  Produces a processed output for an escaped control or pluggable directive
        */
       private String escapedDirective( String strImage )
  @@ -206,12 +208,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       {if (true) throw (ParseException)jjte000;}
  -     }
        if (jjte000 instanceof RuntimeException) {
          {if (true) throw (RuntimeException)jjte000;}
        }
  +     if (jjte000 instanceof ParseException) {
  +       {if (true) throw (ParseException)jjte000;}
  +     }
        {if (true) throw (Error)jjte000;}
       } finally {
        if (jjtc000) {
  @@ -491,25 +493,48 @@
       boolean jjtc000 = true;
       jjtree.openNodeScope(jjtn000);Token t = null;
       Directive d;
  +    boolean bDoItNow = false;
       try {
         /*
              *  note that if we were escaped, that is now handled by 
EscapedDirective()
              */
         
             t = jj_consume_token(WORD);
  -        d = (Directive) directives.get(t.image.substring(1));
  +        String strDirectiveName = t.image.substring(1);
   
  +        d = (Directive) directives.get( strDirectiveName );
  +
  +      //  /*
  +      //   *  Velocimacro support : if the directive is macro directive
  +      //   *   then set the flag so after the block parsing, we add the VM
  +      //   *   right then. (So available if used w/in the current template )
  +      //   */
  +
  +      //  if ( strDirectiveName.equals("macro"))  
  +      //  {
  +      //       bDoItNow = true;
  +      //  }
  +
           /*
            *  set the directive name from here.  No reason for the thing to know 
about parser tokens
            */
   
  -        jjtn000.setDirectiveName( t.image.substring(1) );
  +        jjtn000.setDirectiveName( strDirectiveName );
   
  -        if (d == null)
  +        if ( d == null)
           {
  -            token_source.stateStackPop();
  -            token_source.inDirective = false;
  -            {if (true) return jjtn000;}
  +            /*      
  +             *  if null, then not a real directive, but maybe a Velocimacro
  +              */
  +
  +          //  d  =  (Directive) Runtime.getVelocimacro( strDirectiveName );
  +
  +            if (d == null)
  +            {
  +                token_source.stateStackPop();
  +                token_source.inDirective = false;
  +                {if (true) return jjtn000;}
  +            }
           }
   
           /*
  @@ -578,12 +603,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte001;}
  -      }
         if (jjte001 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte001;}
         }
  +      if (jjte001 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte001;}
  +      }
         {if (true) throw (Error)jjte001;}
         } finally {
         if (jjtc001) {
  @@ -593,6 +618,24 @@
         jj_consume_token(END);
         jjtree.closeNodeScope(jjtn000, true);
         jjtc000 = false;
  +        /*
  +         *  VM : if we are processing a #macro directive, we need to 
  +         *     process the block.  In truth, I can just register the name
  +         *     and do the work later when init-ing.  That would work
  +         *     as long as things were always defined before use.  This way
  +         *     we don't have to worry about forward references and such...
  +         */
  +
  +        if (bDoItNow)
  +        {
  +        //    Macro m = new Macro();
  +        //    m.processAndRegister( jjtThis );
  +        }
  +
  +        /*
  +         *  VM : end
  +         */
  +
           {if (true) return jjtn000;}
       } catch (Throwable jjte000) {
         if (jjtc000) {
  @@ -601,12 +644,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte000;}
  -      }
         if (jjte000 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte000;}
         }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
         {if (true) throw (Error)jjte000;}
       } finally {
         if (jjtc000) {
  @@ -658,12 +701,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte000;}
  -      }
         if (jjte000 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte000;}
         }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
         {if (true) throw (Error)jjte000;}
       } finally {
         if (jjtc000) {
  @@ -753,12 +796,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       {if (true) throw (ParseException)jjte000;}
  -     }
        if (jjte000 instanceof RuntimeException) {
          {if (true) throw (RuntimeException)jjte000;}
        }
  +     if (jjte000 instanceof ParseException) {
  +       {if (true) throw (ParseException)jjte000;}
  +     }
        {if (true) throw (Error)jjte000;}
       } finally {
        if (jjtc000) {
  @@ -827,12 +870,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte000;}
  -      }
         if (jjte000 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte000;}
         }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
         {if (true) throw (Error)jjte000;}
       } finally {
         if (jjtc000) {
  @@ -969,12 +1012,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte001;}
  -      }
         if (jjte001 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte001;}
         }
  +      if (jjte001 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte001;}
  +      }
         {if (true) throw (Error)jjte001;}
         } finally {
         if (jjtc001) {
  @@ -1016,12 +1059,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte000;}
  -      }
         if (jjte000 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte000;}
         }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
         {if (true) throw (Error)jjte000;}
       } finally {
         if (jjtc000) {
  @@ -1077,12 +1120,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte001;}
  -      }
         if (jjte001 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte001;}
         }
  +      if (jjte001 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte001;}
  +      }
         {if (true) throw (Error)jjte001;}
         } finally {
         if (jjtc001) {
  @@ -1096,12 +1139,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       {if (true) throw (ParseException)jjte000;}
  -     }
        if (jjte000 instanceof RuntimeException) {
          {if (true) throw (RuntimeException)jjte000;}
        }
  +     if (jjte000 instanceof ParseException) {
  +       {if (true) throw (ParseException)jjte000;}
  +     }
        {if (true) throw (Error)jjte000;}
       } finally {
        if (jjtc000) {
  @@ -1160,12 +1203,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte001;}
  -      }
         if (jjte001 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte001;}
         }
  +      if (jjte001 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte001;}
  +      }
         {if (true) throw (Error)jjte001;}
         } finally {
         if (jjtc001) {
  @@ -1179,12 +1222,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte000;}
  -      }
         if (jjte000 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte000;}
         }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
         {if (true) throw (Error)jjte000;}
       } finally {
         if (jjtc000) {
  @@ -1216,12 +1259,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       {if (true) throw (ParseException)jjte000;}
  -     }
        if (jjte000 instanceof RuntimeException) {
          {if (true) throw (RuntimeException)jjte000;}
        }
  +     if (jjte000 instanceof ParseException) {
  +       {if (true) throw (ParseException)jjte000;}
  +     }
        {if (true) throw (Error)jjte000;}
       } finally {
        if (jjtc000) {
  @@ -1280,12 +1323,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte000;}
  -      }
         if (jjte000 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte000;}
         }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
         {if (true) throw (Error)jjte000;}
       } finally {
         if (jjtc000) {
  @@ -1310,12 +1353,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        {if (true) throw (ParseException)jjte000;}
  -      }
         if (jjte000 instanceof RuntimeException) {
           {if (true) throw (RuntimeException)jjte000;}
         }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
         {if (true) throw (Error)jjte000;}
       } finally {
         if (jjtc000) {
  @@ -1349,12 +1392,12 @@
                      } else {
                        jjtree.popNode();
                      }
  -                   if (jjte001 instanceof ParseException) {
  -                     {if (true) throw (ParseException)jjte001;}
  -                   }
                      if (jjte001 instanceof RuntimeException) {
                        {if (true) throw (RuntimeException)jjte001;}
                      }
  +                   if (jjte001 instanceof ParseException) {
  +                     {if (true) throw (ParseException)jjte001;}
  +                   }
                      {if (true) throw (Error)jjte001;}
         } finally {
                      if (jjtc001) {
  @@ -1389,12 +1432,12 @@
                        } else {
                          jjtree.popNode();
                        }
  -                     if (jjte001 instanceof ParseException) {
  -                       {if (true) throw (ParseException)jjte001;}
  -                     }
                        if (jjte001 instanceof RuntimeException) {
                          {if (true) throw (RuntimeException)jjte001;}
                        }
  +                     if (jjte001 instanceof ParseException) {
  +                       {if (true) throw (ParseException)jjte001;}
  +                     }
                        {if (true) throw (Error)jjte001;}
         } finally {
                        if (jjtc001) {
  @@ -1432,12 +1475,12 @@
                                } else {
                                  jjtree.popNode();
                                }
  -                             if (jjte001 instanceof ParseException) {
  -                               {if (true) throw (ParseException)jjte001;}
  -                             }
                                if (jjte001 instanceof RuntimeException) {
                                  {if (true) throw (RuntimeException)jjte001;}
                                }
  +                             if (jjte001 instanceof ParseException) {
  +                               {if (true) throw (ParseException)jjte001;}
  +                             }
                                {if (true) throw (Error)jjte001;}
           } finally {
                                if (jjtc001) {
  @@ -1459,12 +1502,12 @@
                                    } else {
                                      jjtree.popNode();
                                    }
  -                                 if (jjte002 instanceof ParseException) {
  -                                   {if (true) throw (ParseException)jjte002;}
  -                                 }
                                    if (jjte002 instanceof RuntimeException) {
                                      {if (true) throw (RuntimeException)jjte002;}
                                    }
  +                                 if (jjte002 instanceof ParseException) {
  +                                   {if (true) throw (ParseException)jjte002;}
  +                                 }
                                    {if (true) throw (Error)jjte002;}
           } finally {
                                    if (jjtc002) {
  @@ -1510,12 +1553,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte001 instanceof ParseException) {
  -                           {if (true) throw (ParseException)jjte001;}
  -                         }
                            if (jjte001 instanceof RuntimeException) {
                              {if (true) throw (RuntimeException)jjte001;}
                            }
  +                         if (jjte001 instanceof ParseException) {
  +                           {if (true) throw (ParseException)jjte001;}
  +                         }
                            {if (true) throw (Error)jjte001;}
           } finally {
                            if (jjtc001) {
  @@ -1537,12 +1580,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte002 instanceof ParseException) {
  -                           {if (true) throw (ParseException)jjte002;}
  -                         }
                            if (jjte002 instanceof RuntimeException) {
                              {if (true) throw (RuntimeException)jjte002;}
                            }
  +                         if (jjte002 instanceof ParseException) {
  +                           {if (true) throw (ParseException)jjte002;}
  +                         }
                            {if (true) throw (Error)jjte002;}
           } finally {
                            if (jjtc002) {
  @@ -1564,12 +1607,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte003 instanceof ParseException) {
  -                           {if (true) throw (ParseException)jjte003;}
  -                         }
                            if (jjte003 instanceof RuntimeException) {
                              {if (true) throw (RuntimeException)jjte003;}
                            }
  +                         if (jjte003 instanceof ParseException) {
  +                           {if (true) throw (ParseException)jjte003;}
  +                         }
                            {if (true) throw (Error)jjte003;}
           } finally {
                            if (jjtc003) {
  @@ -1591,12 +1634,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte004 instanceof ParseException) {
  -                           {if (true) throw (ParseException)jjte004;}
  -                         }
                            if (jjte004 instanceof RuntimeException) {
                              {if (true) throw (RuntimeException)jjte004;}
                            }
  +                         if (jjte004 instanceof ParseException) {
  +                           {if (true) throw (ParseException)jjte004;}
  +                         }
                            {if (true) throw (Error)jjte004;}
           } finally {
                            if (jjtc004) {
  @@ -1640,12 +1683,12 @@
                       } else {
                         jjtree.popNode();
                       }
  -                    if (jjte001 instanceof ParseException) {
  -                      {if (true) throw (ParseException)jjte001;}
  -                    }
                       if (jjte001 instanceof RuntimeException) {
                         {if (true) throw (RuntimeException)jjte001;}
                       }
  +                    if (jjte001 instanceof ParseException) {
  +                      {if (true) throw (ParseException)jjte001;}
  +                    }
                       {if (true) throw (Error)jjte001;}
           } finally {
                       if (jjtc001) {
  @@ -1667,12 +1710,12 @@
                       } else {
                         jjtree.popNode();
                       }
  -                    if (jjte002 instanceof ParseException) {
  -                      {if (true) throw (ParseException)jjte002;}
  -                    }
                       if (jjte002 instanceof RuntimeException) {
                         {if (true) throw (RuntimeException)jjte002;}
                       }
  +                    if (jjte002 instanceof ParseException) {
  +                      {if (true) throw (ParseException)jjte002;}
  +                    }
                       {if (true) throw (Error)jjte002;}
           } finally {
                       if (jjtc002) {
  @@ -1717,12 +1760,12 @@
                          } else {
                            jjtree.popNode();
                          }
  -                       if (jjte001 instanceof ParseException) {
  -                         {if (true) throw (ParseException)jjte001;}
  -                       }
                          if (jjte001 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte001;}
                          }
  +                       if (jjte001 instanceof ParseException) {
  +                         {if (true) throw (ParseException)jjte001;}
  +                       }
                          {if (true) throw (Error)jjte001;}
           } finally {
                          if (jjtc001) {
  @@ -1744,12 +1787,12 @@
                          } else {
                            jjtree.popNode();
                          }
  -                       if (jjte002 instanceof ParseException) {
  -                         {if (true) throw (ParseException)jjte002;}
  -                       }
                          if (jjte002 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte002;}
                          }
  +                       if (jjte002 instanceof ParseException) {
  +                         {if (true) throw (ParseException)jjte002;}
  +                       }
                          {if (true) throw (Error)jjte002;}
           } finally {
                          if (jjtc002) {
  @@ -1771,12 +1814,12 @@
                          } else {
                            jjtree.popNode();
                          }
  -                       if (jjte003 instanceof ParseException) {
  -                         {if (true) throw (ParseException)jjte003;}
  -                       }
                          if (jjte003 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte003;}
                          }
  +                       if (jjte003 instanceof ParseException) {
  +                         {if (true) throw (ParseException)jjte003;}
  +                       }
                          {if (true) throw (Error)jjte003;}
           } finally {
                          if (jjtc003) {
  @@ -1808,12 +1851,12 @@
                       } else {
                         jjtree.popNode();
                       }
  -                    if (jjte001 instanceof ParseException) {
  -                      {if (true) throw (ParseException)jjte001;}
  -                    }
                       if (jjte001 instanceof RuntimeException) {
                         {if (true) throw (RuntimeException)jjte001;}
                       }
  +                    if (jjte001 instanceof ParseException) {
  +                      {if (true) throw (ParseException)jjte001;}
  +                    }
                       {if (true) throw (Error)jjte001;}
         } finally {
                       if (jjtc001) {
  @@ -1899,291 +1942,116 @@
       return retval;
     }
   
  -  final private boolean jj_3R_23() {
  -    if (jj_3R_31()) return true;
  +  final private boolean jj_3R_57() {
  +    if (jj_scan_token(COMMA)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_20() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    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()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_29()) return true;
  +    if (jj_3R_30()) 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_75() {
  -    if (jj_3R_20()) return true;
  +  final private boolean jj_3R_63() {
  +    if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_78() {
  -    if (jj_scan_token(MODULUS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_70()) return true;
  +  final private boolean jj_3R_58() {
  +    if (jj_3R_60()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_61()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_74() {
  -    if (jj_scan_token(LOGICAL_NOT)) return true;
  +  final private boolean jj_3R_62() {
  +    if (jj_scan_token(LOGICAL_EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_70()) 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_70() {
  +  final private boolean jj_3R_59() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_74()) {
  +    if (jj_3R_62()) {
       jj_scanpos = xsp;
  -    if (jj_3R_75()) return true;
  +    if (jj_3R_63()) 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_77() {
  -    if (jj_scan_token(DIVIDE)) 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_70()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_18() {
  -    if (jj_3R_21()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_76() {
  -    if (jj_scan_token(MULTIPLY)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_70()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_71() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_76()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_77()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_78()) 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_3R_73() {
  -    if (jj_scan_token(MINUS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_64()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_64() {
  -    if (jj_3R_70()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_71()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_72() {
  -    if (jj_scan_token(PLUS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_64()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_65() {
  -    Token xsp;
  -    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_69() {
  -    if (jj_scan_token(LOGICAL_GE)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_60()) return true;
  +  final private boolean jj_3R_31() {
  +    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_60() {
  -    if (jj_3R_64()) return true;
  +  final private boolean jj_3R_55() {
  +    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_65()) { jj_scanpos = xsp; break; }
  +      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_57() {
  -    if (jj_scan_token(COMMA)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) 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_68() {
  -    if (jj_scan_token(LOGICAL_LE)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_60()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_67() {
  -    if (jj_scan_token(LOGICAL_GT)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_60()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_66() {
  -    if (jj_scan_token(LOGICAL_LT)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_60()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_61() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_66()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_67()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_68()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_69()) 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_3_1() {
  -    if (jj_scan_token(DOUBLE_ESCAPE)) 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;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_63() {
  -    if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_58()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_58() {
  -    if (jj_3R_60()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_61()) { jj_scanpos = xsp; break; }
  +      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_62() {
  -    if (jj_scan_token(LOGICAL_EQUALS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_58()) return true;
  +  final private boolean jj_3R_32() {
  +    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_59() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_62()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_63()) return true;
  +  final private boolean jj_3R_36() {
  +    if (jj_scan_token(FALSE)) 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_22() {
  -    if (jj_3R_30()) return true;
  +  final private boolean jj_3R_56() {
  +    if (jj_scan_token(LOGICAL_AND)) 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_36() {
  -    if (jj_scan_token(FALSE)) return true;
  +    if (jj_3R_55()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_55() {
  -    if (jj_3R_58()) return true;
  +  final private boolean jj_3R_53() {
  +    if (jj_3R_55()) 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_56()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
  @@ -2195,10 +2063,10 @@
       return false;
     }
   
  -  final private boolean jj_3R_56() {
  -    if (jj_scan_token(LOGICAL_AND)) return true;
  +  final private boolean jj_3R_54() {
  +    if (jj_scan_token(LOGICAL_OR)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_55()) return true;
  +    if (jj_3R_53()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2225,13 +2093,21 @@
       return false;
     }
   
  -  final private boolean jj_3R_53() {
  -    if (jj_3R_55()) return true;
  +  final private boolean jj_3_4() {
  +    if (jj_3R_20()) 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;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_52() {
  +    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_56()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_54()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
  @@ -2243,10 +2119,12 @@
       return false;
     }
   
  -  final private boolean jj_3R_54() {
  -    if (jj_scan_token(LOGICAL_OR)) return true;
  +  final private boolean jj_3R_51() {
  +    if (jj_3R_20()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_53()) return true;
  +    if (jj_scan_token(EQUALS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_37()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2269,26 +2147,6 @@
       return false;
     }
   
  -  final private boolean jj_3_4() {
  -    if (jj_3R_20()) 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;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_52() {
  -    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_50() {
       if (jj_scan_token(COMMA)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2297,12 +2155,8 @@
       return false;
     }
   
  -  final private boolean jj_3R_51() {
  -    if (jj_3R_20()) 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_37()) return true;
  +  final private boolean jj_3R_48() {
  +    if (jj_3R_52()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2321,35 +2175,23 @@
       return false;
     }
   
  -  final private boolean jj_3R_48() {
  -    if (jj_3R_52()) return true;
  +  final private boolean jj_3R_37() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_47()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_48()) 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_21() {
  -    if (jj_scan_token(IDENTIFIER)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_47() {
       if (jj_3R_51()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_37() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_47()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_48()) 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_43() {
       if (jj_3R_32()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2362,6 +2204,12 @@
       return false;
     }
   
  +  final private boolean jj_3R_41() {
  +    if (jj_3R_36()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3R_46() {
       if (jj_3R_30()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2374,12 +2222,6 @@
       return false;
     }
   
  -  final private boolean jj_3R_41() {
  -    if (jj_3R_36()) return true;
  -    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;
  @@ -2392,12 +2234,6 @@
       return false;
     }
   
  -  final private boolean jj_3R_38() {
  -    if (jj_3R_31()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_30() {
       Token xsp;
       xsp = jj_scanpos;
  @@ -2421,12 +2257,52 @@
       return false;
     }
   
  -  final private boolean jj_3R_31() {
  -    if (jj_scan_token(STRING_LITERAL)) return true;
  +  final private boolean jj_3R_38() {
  +    if (jj_3R_31()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_29() {
  +    if (jj_scan_token(LPAREN)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_37()) 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_3_1() {
  +    if (jj_scan_token(DOUBLE_ESCAPE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_28() {
  +    if (jj_3R_36()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    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_49() {
  +    if (jj_scan_token(RCURLY)) 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;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3R_34() {
       if (jj_scan_token(LBRACKET)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2439,55 +2315,222 @@
       return false;
     }
   
  -  final private boolean jj_3R_32() {
  -    if (jj_scan_token(NUMBER_LITERAL)) return true;
  +  final private boolean jj_3R_25() {
  +    if (jj_3R_33()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_49() {
  -    if (jj_scan_token(RCURLY)) 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_29() {
  -    if (jj_scan_token(LPAREN)) return true;
  +  final private boolean jj_3R_23() {
  +    if (jj_3R_31()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_37()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_20() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    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()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_29()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(RPAREN)) return true;
  +    } 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_75() {
  +    if (jj_3R_20()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_28() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_78() {
  +    if (jj_scan_token(MODULUS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_70()) return true;
       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_74() {
  +    if (jj_scan_token(LOGICAL_NOT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_70()) 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_70() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_74()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_75()) 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_25() {
  -    if (jj_3R_33()) return true;
  +  final private boolean jj_3R_77() {
  +    if (jj_scan_token(DIVIDE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_70()) 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_76() {
  +    if (jj_scan_token(MULTIPLY)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_70()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_71() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_76()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_77()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_78()) 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_3R_18() {
  +    if (jj_3R_21()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_73() {
  +    if (jj_scan_token(MINUS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_64()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_64() {
  +    if (jj_3R_70()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_71()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_72() {
  +    if (jj_scan_token(PLUS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_64()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_65() {
  +    Token xsp;
  +    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_69() {
  +    if (jj_scan_token(LOGICAL_GE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_60()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_60() {
  +    if (jj_3R_64()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_65()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_68() {
  +    if (jj_scan_token(LOGICAL_LE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_60()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_21() {
  +    if (jj_scan_token(IDENTIFIER)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_67() {
  +    if (jj_scan_token(LOGICAL_GT)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_60()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_66() {
  +    if (jj_scan_token(LOGICAL_LT)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_60()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_61() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_66()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_67()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_68()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_69()) 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;
     }
   
  
  
  
  1.29      +147 -101  
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.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- Parser.jj 2000/11/11 22:47:57     1.28
  +++ Parser.jj 2000/11/16 20:25:04     1.29
  @@ -92,6 +92,7 @@
   import org.apache.velocity.runtime.Runtime;
   import org.apache.velocity.runtime.parser.node.*;
   import org.apache.velocity.runtime.directive.Directive;
  +//import org.apache.velocity.runtime.directive.Macro;
   import org.apache.velocity.util.StringUtils;
   
   /**
  @@ -105,7 +106,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.28 2000/11/11 22:47:57 geirm Exp $ 
  + * @version $Id: Parser.jj,v 1.29 2000/11/16 20:25:04 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
   {/*@bgen(jjtree)*/
  @@ -116,7 +117,7 @@
        *  This Hashtable contains a list of all of the dynamic directives.
        */
       private Hashtable directives = new Hashtable(0);
  -    
  +  
       /** This was added to allow the parser to be associated
        * with a particular syntax. JavaCC doesn't generate
        * a constructor without parameters. The normal constructor
  @@ -194,7 +195,8 @@
               return false;
       }            
   
  -  /**
  +   
  +    /**
        *  Produces a processed output for an escaped control or pluggable directive
        */
       private String escapedDirective( String strImage )
  @@ -601,9 +603,12 @@
   
   |   "##"
      { 
  -        inComment = true;
  -        stateStackPush();
  -        SwitchTo(IN_SINGLE_LINE_COMMENT);
  +        if (!inComment)
  +        {
  +            inComment = true;
  +            stateStackPush();
  +            SwitchTo(IN_SINGLE_LINE_COMMENT);
  +        }
        }
   
   |   <"#**" ~["#"]> 
  @@ -936,12 +941,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       throw (ParseException)jjte000;
  -     }
        if (jjte000 instanceof RuntimeException) {
          throw (RuntimeException)jjte000;
        }
  +     if (jjte000 instanceof ParseException) {
  +       throw (ParseException)jjte000;
  +     }
        throw (Error)jjte000;
      } finally {
        if (jjtc000) {
  @@ -1196,6 +1201,7 @@
   /*@egen*/
       Token t = null;
       Directive d;
  +    boolean bDoItNow = false;
   }
   {/*@bgen(jjtree) Directive */
       try {
  @@ -1206,21 +1212,43 @@
     
       t = <WORD> 
       {
  -        d = (Directive) directives.get(t.image.substring(1));
  +        String strDirectiveName = t.image.substring(1);
  + 
  +        d = (Directive) directives.get( strDirectiveName );
   
  +      //  /*
  +      //   *  Velocimacro support : if the directive is macro directive
  +      //   *   then set the flag so after the block parsing, we add the VM
  +      //   *   right then. (So available if used w/in the current template )
  +      //   */
  +
  +      //  if ( strDirectiveName.equals("macro"))  
  +      //  {
  +      //       bDoItNow = true;
  +      //  }
  +
           /*
            *  set the directive name from here.  No reason for the thing to know 
about parser tokens
            */
   
  -        jjtn000.setDirectiveName( t.image.substring(1) );
  +        jjtn000.setDirectiveName( strDirectiveName );
   
  -        if (d == null)
  +        if ( d == null) 
           {
  -            token_source.stateStackPop();
  -            token_source.inDirective = false;
  -            return jjtn000;
  -        }         
  -    
  +            /*      
  +             *  if null, then not a real directive, but maybe a Velocimacro
  +              */
  +
  +          //  d  =  (Directive) Runtime.getVelocimacro( strDirectiveName );
  +
  +            if (d == null) 
  +            {   
  +                token_source.stateStackPop();
  +                token_source.inDirective = false;
  +                return jjtn000;
  +            }         
  +        }
  +
           /*
            *  now, switch us out of PRE_DIRECTIVE
            */
  @@ -1257,12 +1285,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        throw (ParseException)jjte001;
  -      }
         if (jjte001 instanceof RuntimeException) {
           throw (RuntimeException)jjte001;
         }
  +      if (jjte001 instanceof ParseException) {
  +        throw (ParseException)jjte001;
  +      }
         throw (Error)jjte001;
       } finally {
         if (jjtc001) {
  @@ -1277,6 +1305,24 @@
       }
   /*@egen*/ 
       {
  +        /*
  +         *  VM : if we are processing a #macro directive, we need to 
  +         *     process the block.  In truth, I can just register the name
  +         *     and do the work later when init-ing.  That would work
  +         *     as long as things were always defined before use.  This way
  +         *     we don't have to worry about forward references and such...
  +         */
  +      
  +        if (bDoItNow)  
  +        {
  +        //    Macro m = new Macro();
  +        //    m.processAndRegister( jjtThis );
  +        }
  +
  +        /*
  +         *  VM : end
  +         */
  +
           return jjtn000;
       }/*@bgen(jjtree)*/
       } catch (Throwable jjte000) {
  @@ -1286,12 +1332,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        throw (ParseException)jjte000;
  -      }
         if (jjte000 instanceof RuntimeException) {
           throw (RuntimeException)jjte000;
         }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
         throw (Error)jjte000;
       } finally {
         if (jjtc000) {
  @@ -1317,12 +1363,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        throw (ParseException)jjte000;
  -      }
         if (jjte000 instanceof RuntimeException) {
           throw (RuntimeException)jjte000;
         }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
         throw (Error)jjte000;
       } finally {
         if (jjtc000) {
  @@ -1368,12 +1414,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       throw (ParseException)jjte000;
  -     }
        if (jjte000 instanceof RuntimeException) {
          throw (RuntimeException)jjte000;
        }
  +     if (jjte000 instanceof ParseException) {
  +       throw (ParseException)jjte000;
  +     }
        throw (Error)jjte000;
      } finally {
        if (jjtc000) {
  @@ -1404,12 +1450,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        throw (ParseException)jjte000;
  -      }
         if (jjte000 instanceof RuntimeException) {
           throw (RuntimeException)jjte000;
         }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
         throw (Error)jjte000;
       } finally {
         if (jjtc000) {
  @@ -1511,12 +1557,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        throw (ParseException)jjte001;
  -      }
         if (jjte001 instanceof RuntimeException) {
           throw (RuntimeException)jjte001;
         }
  +      if (jjte001 instanceof ParseException) {
  +        throw (ParseException)jjte001;
  +      }
         throw (Error)jjte001;
       } finally {
         if (jjtc001) {
  @@ -1534,12 +1580,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        throw (ParseException)jjte000;
  -      }
         if (jjte000 instanceof RuntimeException) {
           throw (RuntimeException)jjte000;
         }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
         throw (Error)jjte000;
       } finally {
         if (jjtc000) {
  @@ -1574,12 +1620,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        throw (ParseException)jjte001;
  -      }
         if (jjte001 instanceof RuntimeException) {
           throw (RuntimeException)jjte001;
         }
  +      if (jjte001 instanceof ParseException) {
  +        throw (ParseException)jjte001;
  +      }
         throw (Error)jjte001;
       } finally {
         if (jjtc001) {
  @@ -1594,12 +1640,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       throw (ParseException)jjte000;
  -     }
        if (jjte000 instanceof RuntimeException) {
          throw (RuntimeException)jjte000;
        }
  +     if (jjte000 instanceof ParseException) {
  +       throw (ParseException)jjte000;
  +     }
        throw (Error)jjte000;
      } finally {
        if (jjtc000) {
  @@ -1634,12 +1680,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte001 instanceof ParseException) {
  -        throw (ParseException)jjte001;
  -      }
         if (jjte001 instanceof RuntimeException) {
           throw (RuntimeException)jjte001;
         }
  +      if (jjte001 instanceof ParseException) {
  +        throw (ParseException)jjte001;
  +      }
         throw (Error)jjte001;
       } finally {
         if (jjtc001) {
  @@ -1654,12 +1700,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        throw (ParseException)jjte000;
  -      }
         if (jjte000 instanceof RuntimeException) {
           throw (RuntimeException)jjte000;
         }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
         throw (Error)jjte000;
       } finally {
         if (jjtc000) {
  @@ -1685,12 +1731,12 @@
        } else {
          jjtree.popNode();
        }
  -     if (jjte000 instanceof ParseException) {
  -       throw (ParseException)jjte000;
  -     }
        if (jjte000 instanceof RuntimeException) {
          throw (RuntimeException)jjte000;
        }
  +     if (jjte000 instanceof ParseException) {
  +       throw (ParseException)jjte000;
  +     }
        throw (Error)jjte000;
      } finally {
        if (jjtc000) {
  @@ -1736,12 +1782,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        throw (ParseException)jjte000;
  -      }
         if (jjte000 instanceof RuntimeException) {
           throw (RuntimeException)jjte000;
         }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
         throw (Error)jjte000;
       } finally {
         if (jjtc000) {
  @@ -1767,12 +1813,12 @@
         } else {
           jjtree.popNode();
         }
  -      if (jjte000 instanceof ParseException) {
  -        throw (ParseException)jjte000;
  -      }
         if (jjte000 instanceof RuntimeException) {
           throw (RuntimeException)jjte000;
         }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
         throw (Error)jjte000;
       } finally {
         if (jjtc000) {
  @@ -1800,12 +1846,12 @@
                      } else {
                        jjtree.popNode();
                      }
  -                   if (jjte001 instanceof ParseException) {
  -                     throw (ParseException)jjte001;
  -                   }
                      if (jjte001 instanceof RuntimeException) {
                        throw (RuntimeException)jjte001;
                      }
  +                   if (jjte001 instanceof ParseException) {
  +                     throw (ParseException)jjte001;
  +                   }
                      throw (Error)jjte001;
                    } finally {
                      if (jjtc001) {
  @@ -1834,12 +1880,12 @@
                        } else {
                          jjtree.popNode();
                        }
  -                     if (jjte001 instanceof ParseException) {
  -                       throw (ParseException)jjte001;
  -                     }
                        if (jjte001 instanceof RuntimeException) {
                          throw (RuntimeException)jjte001;
                        }
  +                     if (jjte001 instanceof ParseException) {
  +                       throw (ParseException)jjte001;
  +                     }
                        throw (Error)jjte001;
                      } finally {
                        if (jjtc001) {
  @@ -1868,12 +1914,12 @@
                                } else {
                                  jjtree.popNode();
                                }
  -                             if (jjte001 instanceof ParseException) {
  -                               throw (ParseException)jjte001;
  -                             }
                                if (jjte001 instanceof RuntimeException) {
                                  throw (RuntimeException)jjte001;
                                }
  +                             if (jjte001 instanceof ParseException) {
  +                               throw (ParseException)jjte001;
  +                             }
                                throw (Error)jjte001;
                              } finally {
                                if (jjtc001) {
  @@ -1896,12 +1942,12 @@
                                    } else {
                                      jjtree.popNode();
                                    }
  -                                 if (jjte002 instanceof ParseException) {
  -                                   throw (ParseException)jjte002;
  -                                 }
                                    if (jjte002 instanceof RuntimeException) {
                                      throw (RuntimeException)jjte002;
                                    }
  +                                 if (jjte002 instanceof ParseException) {
  +                                   throw (ParseException)jjte002;
  +                                 }
                                    throw (Error)jjte002;
                                  } finally {
                                    if (jjtc002) {
  @@ -1931,12 +1977,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte001 instanceof ParseException) {
  -                           throw (ParseException)jjte001;
  -                         }
                            if (jjte001 instanceof RuntimeException) {
                              throw (RuntimeException)jjte001;
                            }
  +                         if (jjte001 instanceof ParseException) {
  +                           throw (ParseException)jjte001;
  +                         }
                            throw (Error)jjte001;
                          } finally {
                            if (jjtc001) {
  @@ -1959,12 +2005,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte002 instanceof ParseException) {
  -                           throw (ParseException)jjte002;
  -                         }
                            if (jjte002 instanceof RuntimeException) {
                              throw (RuntimeException)jjte002;
                            }
  +                         if (jjte002 instanceof ParseException) {
  +                           throw (ParseException)jjte002;
  +                         }
                            throw (Error)jjte002;
                          } finally {
                            if (jjtc002) {
  @@ -1987,12 +2033,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte003 instanceof ParseException) {
  -                           throw (ParseException)jjte003;
  -                         }
                            if (jjte003 instanceof RuntimeException) {
                              throw (RuntimeException)jjte003;
                            }
  +                         if (jjte003 instanceof ParseException) {
  +                           throw (ParseException)jjte003;
  +                         }
                            throw (Error)jjte003;
                          } finally {
                            if (jjtc003) {
  @@ -2015,12 +2061,12 @@
                            } else {
                              jjtree.popNode();
                            }
  -                         if (jjte004 instanceof ParseException) {
  -                           throw (ParseException)jjte004;
  -                         }
                            if (jjte004 instanceof RuntimeException) {
                              throw (RuntimeException)jjte004;
                            }
  +                         if (jjte004 instanceof ParseException) {
  +                           throw (ParseException)jjte004;
  +                         }
                            throw (Error)jjte004;
                          } finally {
                            if (jjtc004) {
  @@ -2050,12 +2096,12 @@
                       } else {
                         jjtree.popNode();
                       }
  -                    if (jjte001 instanceof ParseException) {
  -                      throw (ParseException)jjte001;
  -                    }
                       if (jjte001 instanceof RuntimeException) {
                         throw (RuntimeException)jjte001;
                       }
  +                    if (jjte001 instanceof ParseException) {
  +                      throw (ParseException)jjte001;
  +                    }
                       throw (Error)jjte001;
                     } finally {
                       if (jjtc001) {
  @@ -2078,12 +2124,12 @@
                       } else {
                         jjtree.popNode();
                       }
  -                    if (jjte002 instanceof ParseException) {
  -                      throw (ParseException)jjte002;
  -                    }
                       if (jjte002 instanceof RuntimeException) {
                         throw (RuntimeException)jjte002;
                       }
  +                    if (jjte002 instanceof ParseException) {
  +                      throw (ParseException)jjte002;
  +                    }
                       throw (Error)jjte002;
                     } finally {
                       if (jjtc002) {
  @@ -2113,12 +2159,12 @@
                          } else {
                            jjtree.popNode();
                          }
  -                       if (jjte001 instanceof ParseException) {
  -                         throw (ParseException)jjte001;
  -                       }
                          if (jjte001 instanceof RuntimeException) {
                            throw (RuntimeException)jjte001;
                          }
  +                       if (jjte001 instanceof ParseException) {
  +                         throw (ParseException)jjte001;
  +                       }
                          throw (Error)jjte001;
                        } finally {
                          if (jjtc001) {
  @@ -2141,12 +2187,12 @@
                          } else {
                            jjtree.popNode();
                          }
  -                       if (jjte002 instanceof ParseException) {
  -                         throw (ParseException)jjte002;
  -                       }
                          if (jjte002 instanceof RuntimeException) {
                            throw (RuntimeException)jjte002;
                          }
  +                       if (jjte002 instanceof ParseException) {
  +                         throw (ParseException)jjte002;
  +                       }
                          throw (Error)jjte002;
                        } finally {
                          if (jjtc002) {
  @@ -2169,12 +2215,12 @@
                          } else {
                            jjtree.popNode();
                          }
  -                       if (jjte003 instanceof ParseException) {
  -                         throw (ParseException)jjte003;
  -                       }
                          if (jjte003 instanceof RuntimeException) {
                            throw (RuntimeException)jjte003;
                          }
  +                       if (jjte003 instanceof ParseException) {
  +                         throw (ParseException)jjte003;
  +                       }
                          throw (Error)jjte003;
                        } finally {
                          if (jjtc003) {
  @@ -2202,11 +2248,11 @@
                       } else {
                         jjtree.popNode();
                       }
  -                    if (jjte001 instanceof ParseException) {
  -                      throw (ParseException)jjte001;
  -                    }
                       if (jjte001 instanceof RuntimeException) {
                         throw (RuntimeException)jjte001;
  +                    }
  +                    if (jjte001 instanceof ParseException) {
  +                      throw (ParseException)jjte001;
                       }
                       throw (Error)jjte001;
                     } finally {
  
  
  
  1.27      +907 -903  
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.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- ParserTokenManager.java   2000/11/11 22:47:57     1.26
  +++ ParserTokenManager.java   2000/11/16 20:25:04     1.27
  @@ -5,6 +5,7 @@
   import org.apache.velocity.runtime.Runtime;
   import org.apache.velocity.runtime.parser.node.*;
   import org.apache.velocity.runtime.directive.Directive;
  +//import org.apache.velocity.runtime.directive.Macro;
   import org.apache.velocity.util.StringUtils;
   
   public class ParserTokenManager implements ParserConstants
  @@ -195,18 +196,18 @@
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x6800L) != 0L)
  -            return 9;
  -         if ((active0 & 0x400L) != 0L)
  -         {
  -            jjmatchedKind = 9;
  -            return -1;
  -         }
            if ((active0 & 0x6000000L) != 0L)
            {
               jjmatchedKind = 51;
               return 18;
            }
  +         if ((active0 & 0x400L) != 0L)
  +         {
  +            jjmatchedKind = 9;
  +            return -1;
  +         }
  +         if ((active0 & 0x6800L) != 0L)
  +            return 9;
            return -1;
         case 1:
            if ((active0 & 0x400L) != 0L)
  @@ -218,14 +219,14 @@
               }
               return -1;
            }
  -         if ((active0 & 0x2000L) != 0L)
  -            return 7;
            if ((active0 & 0x6000000L) != 0L)
            {
               jjmatchedKind = 51;
               jjmatchedPos = 1;
               return 18;
            }
  +         if ((active0 & 0x2000L) != 0L)
  +            return 7;
            return -1;
         case 2:
            if ((active0 & 0x6000000L) != 0L)
  @@ -236,14 +237,14 @@
            }
            return -1;
         case 3:
  +         if ((active0 & 0x2000000L) != 0L)
  +            return 18;
            if ((active0 & 0x4000000L) != 0L)
            {
               jjmatchedKind = 51;
               jjmatchedPos = 3;
               return 18;
            }
  -         if ((active0 & 0x2000000L) != 0L)
  -            return 18;
            return -1;
         default :
            return -1;
  @@ -822,31 +823,40 @@
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_5(int pos, long active0)
  +private final int jjStopStringLiteralDfa_4(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x6800L) != 0L)
  -            return 4;
  -         if ((active0 & 0x6000000L) != 0L)
  +         if ((active0 & 0x600000000000L) != 0L)
            {
  -            jjmatchedKind = 55;
  -            return 10;
  +            jjmatchedKind = 51;
  +            return 11;
            }
  +         if ((active0 & 0x6800L) != 0L)
  +            return 4;
            if ((active0 & 0x400L) != 0L)
            {
               jjmatchedKind = 9;
               return -1;
            }
  +         if ((active0 & 0x900000000000L) != 0L)
  +         {
  +            jjmatchedKind = 51;
  +            return 14;
  +         }
            return -1;
         case 1:
  -         if ((active0 & 0x6000000L) != 0L)
  +         if ((active0 & 0x2000L) != 0L)
  +            return 2;
  +         if ((active0 & 0xe00000000000L) != 0L)
            {
  -            jjmatchedKind = 55;
  +            jjmatchedKind = 51;
               jjmatchedPos = 1;
  -            return 10;
  +            return 14;
            }
  +         if ((active0 & 0x100000000000L) != 0L)
  +            return 14;
            if ((active0 & 0x400L) != 0L)
            {
               if (jjmatchedPos == 0)
  @@ -856,69 +866,67 @@
               }
               return -1;
            }
  -         if ((active0 & 0x2000L) != 0L)
  -            return 2;
            return -1;
         case 2:
  -         if ((active0 & 0x6000000L) != 0L)
  +         if ((active0 & 0xe00000000000L) != 0L)
            {
  -            jjmatchedKind = 55;
  +            jjmatchedKind = 51;
               jjmatchedPos = 2;
  -            return 10;
  +            return 14;
            }
            return -1;
         case 3:
  -         if ((active0 & 0x4000000L) != 0L)
  +         if ((active0 & 0xe00000000000L) != 0L)
  +            return 14;
  +         return -1;
  +      case 4:
  +         if ((active0 & 0x200000000000L) != 0L)
            {
  -            jjmatchedKind = 55;
  -            jjmatchedPos = 3;
  -            return 10;
  +            jjmatchedKind = 51;
  +            jjmatchedPos = 4;
  +            return 14;
            }
  -         if ((active0 & 0x2000000L) != 0L)
  -            return 10;
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_5(int pos, long active0)
  +private final int jjStartNfa_4(int pos, long active0)
   {
  -   return jjMoveNfa_5(jjStopStringLiteralDfa_5(pos, active0), pos + 1);
  +   return jjMoveNfa_4(jjStopStringLiteralDfa_4(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_5(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_5(state, pos + 1);
  +   return jjMoveNfa_4(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_5()
  +private final int jjMoveStringLiteralDfa0_4()
   {
      switch(curChar)
      {
         case 35:
            jjmatchedKind = 14;
  -         return jjMoveStringLiteralDfa1_5(0x2800L);
  +         return jjMoveStringLiteralDfa1_4(0x2800L);
         case 36:
  -         return jjMoveStringLiteralDfa1_5(0x400L);
  -      case 102:
  -         return jjMoveStringLiteralDfa1_5(0x4000000L);
  -      case 116:
  -         return jjMoveStringLiteralDfa1_5(0x2000000L);
  -      case 123:
  -         return jjStopAtPos(0, 57);
  -      case 125:
  -         return jjStopAtPos(0, 58);
  +         return jjMoveStringLiteralDfa1_4(0x400L);
  +      case 101:
  +         return jjMoveStringLiteralDfa1_4(0x600000000000L);
  +      case 105:
  +         return jjMoveStringLiteralDfa1_4(0x100000000000L);
  +      case 115:
  +         return jjMoveStringLiteralDfa1_4(0x800000000000L);
         default :
  -         return jjMoveNfa_5(5, 0);
  +         return jjMoveNfa_4(5, 0);
      }
   }
  -private final int jjMoveStringLiteralDfa1_5(long active0)
  +private final int jjMoveStringLiteralDfa1_4(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_5(0, active0);
  +      jjStopStringLiteralDfa_4(0, active0);
         return 1;
      }
      switch(curChar)
  @@ -933,84 +941,111 @@
            break;
         case 42:
            if ((active0 & 0x2000L) != 0L)
  -            return jjStartNfaWithStates_5(1, 13, 2);
  +            return jjStartNfaWithStates_4(1, 13, 2);
            break;
  -      case 97:
  -         return jjMoveStringLiteralDfa2_5(active0, 0x4000000L);
  -      case 114:
  -         return jjMoveStringLiteralDfa2_5(active0, 0x2000000L);
  +      case 102:
  +         if ((active0 & 0x100000000000L) != 0L)
  +            return jjStartNfaWithStates_4(1, 44, 14);
  +         break;
  +      case 108:
  +         return jjMoveStringLiteralDfa2_4(active0, 0x600000000000L);
  +      case 116:
  +         return jjMoveStringLiteralDfa2_4(active0, 0x800000000000L);
         default :
            break;
      }
  -   return jjStartNfa_5(0, active0);
  +   return jjStartNfa_4(0, active0);
   }
  -private final int jjMoveStringLiteralDfa2_5(long old0, long active0)
  +private final int jjMoveStringLiteralDfa2_4(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_5(0, old0); 
  +      return jjStartNfa_4(0, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_5(1, active0);
  +      jjStopStringLiteralDfa_4(1, active0);
         return 2;
      }
      switch(curChar)
      {
  -      case 108:
  -         return jjMoveStringLiteralDfa3_5(active0, 0x4000000L);
  -      case 117:
  -         return jjMoveStringLiteralDfa3_5(active0, 0x2000000L);
  +      case 111:
  +         return jjMoveStringLiteralDfa3_4(active0, 0x800000000000L);
  +      case 115:
  +         return jjMoveStringLiteralDfa3_4(active0, 0x600000000000L);
         default :
            break;
      }
  -   return jjStartNfa_5(1, active0);
  +   return jjStartNfa_4(1, active0);
   }
  -private final int jjMoveStringLiteralDfa3_5(long old0, long active0)
  +private final int jjMoveStringLiteralDfa3_4(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_5(1, old0); 
  +      return jjStartNfa_4(1, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_5(2, active0);
  +      jjStopStringLiteralDfa_4(2, active0);
         return 3;
      }
      switch(curChar)
      {
         case 101:
  -         if ((active0 & 0x2000000L) != 0L)
  -            return jjStartNfaWithStates_5(3, 25, 10);
  +         if ((active0 & 0x400000000000L) != 0L)
  +         {
  +            jjmatchedKind = 46;
  +            jjmatchedPos = 3;
  +         }
  +         return jjMoveStringLiteralDfa4_4(active0, 0x200000000000L);
  +      case 112:
  +         if ((active0 & 0x800000000000L) != 0L)
  +            return jjStartNfaWithStates_4(3, 47, 14);
            break;
  -      case 115:
  -         return jjMoveStringLiteralDfa4_5(active0, 0x4000000L);
         default :
            break;
      }
  -   return jjStartNfa_5(2, active0);
  +   return jjStartNfa_4(2, active0);
   }
  -private final int jjMoveStringLiteralDfa4_5(long old0, long active0)
  +private final int jjMoveStringLiteralDfa4_4(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_5(2, old0); 
  +      return jjStartNfa_4(2, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_5(3, active0);
  +      jjStopStringLiteralDfa_4(3, active0);
         return 4;
      }
      switch(curChar)
      {
  -      case 101:
  -         if ((active0 & 0x4000000L) != 0L)
  -            return jjStartNfaWithStates_5(4, 26, 10);
  +      case 105:
  +         return jjMoveStringLiteralDfa5_4(active0, 0x200000000000L);
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_4(3, active0);
  +}
  +private final int jjMoveStringLiteralDfa5_4(long old0, long active0)
  +{
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_4(3, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_4(4, active0);
  +      return 5;
  +   }
  +   switch(curChar)
  +   {
  +      case 102:
  +         if ((active0 & 0x200000000000L) != 0L)
  +            return jjStartNfaWithStates_4(5, 45, 14);
            break;
         default :
            break;
      }
  -   return jjStartNfa_5(3, active0);
  +   return jjStartNfa_4(4, active0);
   }
  -private final int jjMoveNfa_5(int startState, int curPos)
  +private final int jjMoveNfa_4(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 13;
  +   jjnewStateCnt = 15;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1026,10 +1061,12 @@
               switch(jjstateSet[--i])
               {
                  case 5:
  -                  if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 12;
  -                  else if (curChar == 34)
  -                     jjCheckNAddTwoStates(7, 8);
  +                  if ((0x3ff000000000000L & l) != 0L)
  +                  {
  +                     if (kind > 49)
  +                        kind = 49;
  +                     jjCheckNAdd(13);
  +                  }
                     else if (curChar == 35)
                        jjstateSet[jjnewStateCnt++] = 4;
                     else if (curChar == 36)
  @@ -1054,28 +1091,28 @@
                     if (curChar == 42)
                        jjstateSet[jjnewStateCnt++] = 2;
                     break;
  -               case 6:
  -                  if (curChar == 34)
  -                     jjCheckNAddTwoStates(7, 8);
  -                  break;
                  case 7:
  -                  if ((0xfffffffbffffdbffL & l) != 0L)
  -                     jjCheckNAddTwoStates(7, 8);
  +                  if ((0x100000200L & l) != 0L)
  +                     jjAddStates(5, 7);
                     break;
                  case 8:
  -                  if (curChar == 34 && kind > 24)
  -                     kind = 24;
  +                  if ((0x2400L & l) != 0L && kind > 43)
  +                     kind = 43;
  +                  break;
  +               case 9:
  +                  if (curChar == 10 && kind > 43)
  +                     kind = 43;
                     break;
                  case 10:
  -                  if ((0x3ff200000000000L & l) == 0L)
  -                     break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjstateSet[jjnewStateCnt++] = 10;
  +                  if (curChar == 13)
  +                     jjstateSet[jjnewStateCnt++] = 9;
                     break;
  -               case 11:
  -                  if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 12;
  +               case 13:
  +                  if ((0x3ff000000000000L & l) == 0L)
  +                     break;
  +                  if (kind > 49)
  +                     kind = 49;
  +                  jjCheckNAdd(13);
                     break;
                  default : break;
               }
  @@ -1091,12 +1128,24 @@
                  case 5:
                     if ((0x7fffffe07fffffeL & l) != 0L)
                     {
  -                     if (kind > 55)
  -                        kind = 55;
  -                     jjCheckNAdd(10);
  +                     if (kind > 51)
  +                        kind = 51;
  +                     jjCheckNAdd(14);
                     }
                     else if (curChar == 92)
                        jjCheckNAddTwoStates(0, 1);
  +                  if (curChar == 101)
  +                     jjstateSet[jjnewStateCnt++] = 11;
  +                  break;
  +               case 11:
  +                  if ((0x7fffffe07fffffeL & l) != 0L)
  +                  {
  +                     if (kind > 51)
  +                        kind = 51;
  +                     jjCheckNAdd(14);
  +                  }
  +                  if (curChar == 110)
  +                     jjstateSet[jjnewStateCnt++] = 6;
                     break;
                  case 0:
                     if (curChar == 92)
  @@ -1105,27 +1154,24 @@
                  case 3:
                     if (kind > 12)
                        kind = 12;
  -                  break;
  -               case 7:
  -                  jjAddStates(5, 6);
                     break;
  -               case 9:
  -                  if ((0x7fffffe07fffffeL & l) == 0L)
  -                     break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjCheckNAdd(10);
  -                  break;
  -               case 10:
  -                  if ((0x7fffffe87fffffeL & l) == 0L)
  +               case 6:
  +                  if (curChar != 100)
                        break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjCheckNAdd(10);
  +                  if (kind > 43)
  +                     kind = 43;
  +                  jjAddStates(5, 7);
                     break;
                  case 12:
  -                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 56)
  -                     kind = 56;
  +                  if (curChar == 101)
  +                     jjstateSet[jjnewStateCnt++] = 11;
  +                  break;
  +               case 14:
  +                  if ((0x7fffffe07fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 51)
  +                     kind = 51;
  +                  jjCheckNAdd(14);
                     break;
                  default : break;
               }
  @@ -1143,10 +1189,6 @@
                     if ((jjbitVec0[i2] & l2) != 0L && kind > 12)
                        kind = 12;
                     break;
  -               case 7:
  -                  if ((jjbitVec0[i2] & l2) != 0L)
  -                     jjAddStates(5, 6);
  -                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1158,115 +1200,64 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 13 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 15 - (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_3(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x6800L) != 0L)
  -            return 4;
  -         if ((active0 & 0x6000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            return 10;
  -         }
  +         if ((active0 & 0x18000L) != 0L)
  +            return 9;
            if ((active0 & 0x400L) != 0L)
            {
               jjmatchedKind = 9;
               return -1;
  -         }
  -         return -1;
  -      case 1:
  -         if ((active0 & 0x6000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            jjmatchedPos = 1;
  -            return 10;
  -         }
  -         if ((active0 & 0x400L) != 0L)
  -         {
  -            if (jjmatchedPos == 0)
  -            {
  -               jjmatchedKind = 9;
  -               jjmatchedPos = 0;
  -            }
  -            return -1;
  -         }
  -         if ((active0 & 0x2000L) != 0L)
  -            return 2;
  -         return -1;
  -      case 2:
  -         if ((active0 & 0x6000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            jjmatchedPos = 2;
  -            return 10;
  -         }
  -         return -1;
  -      case 3:
  -         if ((active0 & 0x4000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            jjmatchedPos = 3;
  -            return 10;
            }
  -         if ((active0 & 0x2000000L) != 0L)
  -            return 10;
  +         if ((active0 & 0x6800L) != 0L)
  +            return 15;
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_1(int pos, long active0)
  +private final int jjStartNfa_3(int pos, long active0)
   {
  -   return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
  +   return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_1(int pos, int kind, int state)
  +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_1(state, pos + 1);
  +   return jjMoveNfa_3(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_1()
  +private final int jjMoveStringLiteralDfa0_3()
   {
      switch(curChar)
      {
         case 35:
            jjmatchedKind = 14;
  -         return jjMoveStringLiteralDfa1_1(0x2800L);
  +         return jjMoveStringLiteralDfa1_3(0x2800L);
         case 36:
  -         return jjMoveStringLiteralDfa1_1(0x400L);
  -      case 40:
  -         return jjStopAtPos(0, 4);
  -      case 91:
  -         return jjStopAtPos(0, 1);
  -      case 93:
  -         return jjStopAtPos(0, 2);
  -      case 102:
  -         return jjMoveStringLiteralDfa1_1(0x4000000L);
  -      case 116:
  -         return jjMoveStringLiteralDfa1_1(0x2000000L);
  -      case 123:
  -         return jjStopAtPos(0, 57);
  -      case 125:
  -         return jjStopAtPos(0, 58);
  +         return jjMoveStringLiteralDfa1_3(0x400L);
  +      case 92:
  +         jjmatchedKind = 16;
  +         return jjMoveStringLiteralDfa1_3(0x8000L);
         default :
  -         return jjMoveNfa_1(5, 0);
  +         return jjMoveNfa_3(12, 0);
      }
   }
  -private final int jjMoveStringLiteralDfa1_1(long active0)
  +private final int jjMoveStringLiteralDfa1_3(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(0, active0);
  +      jjStopStringLiteralDfa_3(0, active0);
         return 1;
      }
      switch(curChar)
  @@ -1281,84 +1272,22 @@
            break;
         case 42:
            if ((active0 & 0x2000L) != 0L)
  -            return jjStartNfaWithStates_1(1, 13, 2);
  -         break;
  -      case 97:
  -         return jjMoveStringLiteralDfa2_1(active0, 0x4000000L);
  -      case 114:
  -         return jjMoveStringLiteralDfa2_1(active0, 0x2000000L);
  -      default :
  -         break;
  -   }
  -   return jjStartNfa_1(0, active0);
  -}
  -private final int jjMoveStringLiteralDfa2_1(long old0, long active0)
  -{
  -   if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_1(0, old0); 
  -   try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(1, active0);
  -      return 2;
  -   }
  -   switch(curChar)
  -   {
  -      case 108:
  -         return jjMoveStringLiteralDfa3_1(active0, 0x4000000L);
  -      case 117:
  -         return jjMoveStringLiteralDfa3_1(active0, 0x2000000L);
  -      default :
  -         break;
  -   }
  -   return jjStartNfa_1(1, active0);
  -}
  -private final int jjMoveStringLiteralDfa3_1(long old0, long active0)
  -{
  -   if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_1(1, old0); 
  -   try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(2, active0);
  -      return 3;
  -   }
  -   switch(curChar)
  -   {
  -      case 101:
  -         if ((active0 & 0x2000000L) != 0L)
  -            return jjStartNfaWithStates_1(3, 25, 10);
  -         break;
  -      case 115:
  -         return jjMoveStringLiteralDfa4_1(active0, 0x4000000L);
  -      default :
  +            return jjStartNfaWithStates_3(1, 13, 13);
            break;
  -   }
  -   return jjStartNfa_1(2, active0);
  -}
  -private final int jjMoveStringLiteralDfa4_1(long old0, long active0)
  -{
  -   if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_1(2, old0); 
  -   try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_1(3, active0);
  -      return 4;
  -   }
  -   switch(curChar)
  -   {
  -      case 101:
  -         if ((active0 & 0x4000000L) != 0L)
  -            return jjStartNfaWithStates_1(4, 26, 10);
  +      case 92:
  +         if ((active0 & 0x8000L) != 0L)
  +            return jjStartNfaWithStates_3(1, 15, 16);
            break;
         default :
            break;
      }
  -   return jjStartNfa_1(3, active0);
  +   return jjStartNfa_3(0, active0);
   }
  -private final int jjMoveNfa_1(int startState, int curPos)
  +private final int jjMoveNfa_3(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 13;
  +   jjnewStateCnt = 16;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1373,57 +1302,67 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 5:
  -                  if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 12;
  -                  else if (curChar == 34)
  -                     jjCheckNAddTwoStates(7, 8);
  -                  else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 4;
  -                  else if (curChar == 36)
  +               case 9:
  +                  if (curChar == 36)
                     {
                        if (kind > 9)
                           kind = 9;
                     }
  +                  else if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 11;
                     break;
  -               case 1:
  +               case 15:
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 13;
  +                  break;
  +               case 16:
  +               case 6:
                     if (curChar == 36 && kind > 9)
                        kind = 9;
                     break;
  -               case 2:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 3;
  +               case 12:
  +                  if ((0xffffffe7ffffffffL & l) != 0L)
  +                  {
  +                     if (kind > 17)
  +                        kind = 17;
  +                     jjCheckNAdd(7);
  +                  }
  +                  else if (curChar == 35)
  +                     jjCheckNAddTwoStates(3, 15);
  +                  else if (curChar == 36)
  +                  {
  +                     if (kind > 9)
  +                        kind = 9;
  +                  }
  +                  if ((0x100000200L & l) != 0L)
  +                     jjCheckNAddTwoStates(0, 4);
                     break;
  -               case 3:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 12)
  -                     kind = 12;
  +               case 0:
  +                  if ((0x100000200L & l) != 0L)
  +                     jjCheckNAddTwoStates(0, 4);
                     break;
                  case 4:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  -                  break;
  -               case 6:
  -                  if (curChar == 34)
  -                     jjCheckNAddTwoStates(7, 8);
  +                  if (curChar == 35)
  +                     jjCheckNAdd(3);
                     break;
                  case 7:
  -                  if ((0xfffffffbffffdbffL & l) != 0L)
  -                     jjCheckNAddTwoStates(7, 8);
  -                  break;
  -               case 8:
  -                  if (curChar == 34 && kind > 24)
  -                     kind = 24;
  +                  if ((0xffffffe7ffffffffL & l) == 0L)
  +                     break;
  +                  if (kind > 17)
  +                     kind = 17;
  +                  jjCheckNAdd(7);
                     break;
                  case 10:
  -                  if ((0x3ff200000000000L & l) == 0L)
  -                     break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjstateSet[jjnewStateCnt++] = 10;
  +                  if (curChar == 35)
  +                     jjstateSet[jjnewStateCnt++] = 11;
                     break;
  -               case 11:
  -                  if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 12;
  +               case 13:
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 14;
  +                  break;
  +               case 14:
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 12)
  +                     kind = 12;
                     break;
                  default : break;
               }
  @@ -1436,44 +1375,68 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 5:
  -                  if ((0x7fffffe07fffffeL & l) != 0L)
  +               case 9:
  +                  if (curChar == 92)
  +                     jjCheckNAddTwoStates(5, 6);
  +                  if (curChar == 92)
  +                     jjstateSet[jjnewStateCnt++] = 8;
  +                  break;
  +               case 15:
  +               case 3:
  +                  if (curChar == 115)
  +                     jjstateSet[jjnewStateCnt++] = 2;
  +                  break;
  +               case 16:
  +                  if (curChar == 92)
  +                     jjAddStates(8, 9);
  +                  if (curChar == 92)
  +                     jjCheckNAddTwoStates(5, 6);
  +                  break;
  +               case 12:
  +                  if ((0xffffffffefffffffL & l) != 0L)
                     {
  -                     if (kind > 55)
  -                        kind = 55;
  -                     jjCheckNAdd(10);
  +                     if (kind > 17)
  +                        kind = 17;
  +                     jjCheckNAdd(7);
                     }
                     else if (curChar == 92)
  -                     jjCheckNAddTwoStates(0, 1);
  -                  break;
  -               case 0:
  +                     jjAddStates(8, 9);
                     if (curChar == 92)
  -                     jjCheckNAddTwoStates(0, 1);
  +                     jjCheckNAddTwoStates(5, 6);
                     break;
  -               case 3:
  -                  if (kind > 12)
  -                     kind = 12;
  +               case 1:
  +                  if (curChar == 116 && kind > 8)
  +                     kind = 8;
                     break;
  -               case 7:
  -                  jjAddStates(5, 6);
  +               case 2:
  +                  if (curChar == 101)
  +                     jjstateSet[jjnewStateCnt++] = 1;
                     break;
  -               case 9:
  -                  if ((0x7fffffe07fffffeL & l) == 0L)
  +               case 5:
  +                  if (curChar == 92)
  +                     jjCheckNAddTwoStates(5, 6);
  +                  break;
  +               case 7:
  +                  if ((0xffffffffefffffffL & l) == 0L)
                        break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjCheckNAdd(10);
  +                  if (kind > 17)
  +                     kind = 17;
  +                  jjCheckNAdd(7);
                     break;
  -               case 10:
  -                  if ((0x7fffffe87fffffeL & l) == 0L)
  +               case 8:
  +                  if (curChar == 92)
  +                     jjAddStates(8, 9);
  +                  break;
  +               case 11:
  +                  if ((0x7fffffe07fffffeL & l) == 0L)
                        break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjCheckNAdd(10);
  +                  if (kind > 7)
  +                     kind = 7;
  +                  jjstateSet[jjnewStateCnt++] = 11;
                     break;
  -               case 12:
  -                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 56)
  -                     kind = 56;
  +               case 14:
  +                  if (kind > 12)
  +                     kind = 12;
                     break;
                  default : break;
               }
  @@ -1487,14 +1450,18 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 3:
  +               case 12:
  +               case 7:
  +                  if ((jjbitVec0[i2] & l2) == 0L)
  +                     break;
  +                  if (kind > 17)
  +                     kind = 17;
  +                  jjCheckNAdd(7);
  +                  break;
  +               case 14:
                     if ((jjbitVec0[i2] & l2) != 0L && kind > 12)
                        kind = 12;
                     break;
  -               case 7:
  -                  if ((jjbitVec0[i2] & l2) != 0L)
  -                     jjAddStates(5, 6);
  -                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1506,7 +1473,7 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 13 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 16 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
  @@ -1681,203 +1648,79 @@
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_2(int pos, long active0)
  +private final int jjStopStringLiteralDfa_8(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
            if ((active0 & 0x6800L) != 0L)
               return 4;
  -         if ((active0 & 0x6000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            return 11;
  -         }
            if ((active0 & 0x400L) != 0L)
            {
               jjmatchedKind = 9;
               return -1;
            }
            return -1;
  -      case 1:
  -         if ((active0 & 0x400L) != 0L)
  -         {
  -            if (jjmatchedPos == 0)
  -            {
  -               jjmatchedKind = 9;
  -               jjmatchedPos = 0;
  -            }
  -            return -1;
  -         }
  -         if ((active0 & 0x2000L) != 0L)
  -            return 2;
  -         if ((active0 & 0x6000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            jjmatchedPos = 1;
  -            return 11;
  -         }
  -         return -1;
  -      case 2:
  -         if ((active0 & 0x6000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            jjmatchedPos = 2;
  -            return 11;
  -         }
  -         return -1;
  -      case 3:
  -         if ((active0 & 0x4000000L) != 0L)
  -         {
  -            jjmatchedKind = 55;
  -            jjmatchedPos = 3;
  -            return 11;
  -         }
  -         if ((active0 & 0x2000000L) != 0L)
  -            return 11;
  -         return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_2(int pos, long active0)
  +private final int jjStartNfa_8(int pos, long active0)
   {
  -   return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
  +   return jjMoveNfa_8(jjStopStringLiteralDfa_8(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_2(int pos, int kind, int state)
  +private final int jjStartNfaWithStates_8(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_2(state, pos + 1);
  -}
  -private final int jjMoveStringLiteralDfa0_2()
  -{
  -   switch(curChar)
  -   {
  -      case 35:
  -         jjmatchedKind = 14;
  -         return jjMoveStringLiteralDfa1_2(0x2800L);
  -      case 36:
  -         return jjMoveStringLiteralDfa1_2(0x400L);
  -      case 41:
  -         return jjStopAtPos(0, 6);
  -      case 44:
  -         return jjStopAtPos(0, 3);
  -      case 91:
  -         return jjStopAtPos(0, 1);
  -      case 93:
  -         return jjStopAtPos(0, 2);
  -      case 102:
  -         return jjMoveStringLiteralDfa1_2(0x4000000L);
  -      case 116:
  -         return jjMoveStringLiteralDfa1_2(0x2000000L);
  -      case 123:
  -         return jjStopAtPos(0, 57);
  -      case 125:
  -         return jjStopAtPos(0, 58);
  -      default :
  -         return jjMoveNfa_2(5, 0);
  -   }
  -}
  -private final int jjMoveStringLiteralDfa1_2(long active0)
  -{
  -   try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(0, active0);
  -      return 1;
  -   }
  -   switch(curChar)
  -   {
  -      case 33:
  -         if ((active0 & 0x400L) != 0L)
  -            return jjStopAtPos(1, 10);
  -         break;
  -      case 35:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStopAtPos(1, 11);
  -         break;
  -      case 42:
  -         if ((active0 & 0x2000L) != 0L)
  -            return jjStartNfaWithStates_2(1, 13, 2);
  -         break;
  -      case 97:
  -         return jjMoveStringLiteralDfa2_2(active0, 0x4000000L);
  -      case 114:
  -         return jjMoveStringLiteralDfa2_2(active0, 0x2000000L);
  -      default :
  -         break;
  -   }
  -   return jjStartNfa_2(0, active0);
  -}
  -private final int jjMoveStringLiteralDfa2_2(long old0, long active0)
  -{
  -   if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_2(0, old0); 
  -   try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(1, active0);
  -      return 2;
  -   }
  -   switch(curChar)
  -   {
  -      case 108:
  -         return jjMoveStringLiteralDfa3_2(active0, 0x4000000L);
  -      case 117:
  -         return jjMoveStringLiteralDfa3_2(active0, 0x2000000L);
  -      default :
  -         break;
  -   }
  -   return jjStartNfa_2(1, active0);
  +   return jjMoveNfa_8(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa3_2(long old0, long active0)
  -{
  -   if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_2(1, old0); 
  -   try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(2, active0);
  -      return 3;
  -   }
  -   switch(curChar)
  -   {
  -      case 101:
  -         if ((active0 & 0x2000000L) != 0L)
  -            return jjStartNfaWithStates_2(3, 25, 11);
  -         break;
  -      case 115:
  -         return jjMoveStringLiteralDfa4_2(active0, 0x4000000L);
  +private final int jjMoveStringLiteralDfa0_8()
  +{
  +   switch(curChar)
  +   {
  +      case 35:
  +         jjmatchedKind = 14;
  +         return jjMoveStringLiteralDfa1_8(0x2800L);
  +      case 36:
  +         return jjMoveStringLiteralDfa1_8(0x400L);
         default :
  -         break;
  +         return jjMoveNfa_8(5, 0);
      }
  -   return jjStartNfa_2(2, active0);
   }
  -private final int jjMoveStringLiteralDfa4_2(long old0, long active0)
  +private final int jjMoveStringLiteralDfa1_8(long active0)
   {
  -   if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_2(2, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_2(3, active0);
  -      return 4;
  +      jjStopStringLiteralDfa_8(0, active0);
  +      return 1;
      }
      switch(curChar)
      {
  -      case 101:
  -         if ((active0 & 0x4000000L) != 0L)
  -            return jjStartNfaWithStates_2(4, 26, 11);
  +      case 33:
  +         if ((active0 & 0x400L) != 0L)
  +            return jjStopAtPos(1, 10);
  +         break;
  +      case 35:
  +         if ((active0 & 0x800L) != 0L)
  +            return jjStopAtPos(1, 11);
  +         break;
  +      case 42:
  +         if ((active0 & 0x2000L) != 0L)
  +            return jjStartNfaWithStates_8(1, 13, 2);
            break;
         default :
            break;
      }
  -   return jjStartNfa_2(3, active0);
  +   return jjStartNfa_8(0, active0);
   }
  -private final int jjMoveNfa_2(int startState, int curPos)
  +private final int jjMoveNfa_8(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 14;
  +   jjnewStateCnt = 9;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1893,16 +1736,11 @@
               switch(jjstateSet[--i])
               {
                  case 5:
  -                  if ((0x3ff000000000000L & l) != 0L)
  +                  if ((0x2400L & l) != 0L)
                     {
  -                     if (kind > 49)
  -                        kind = 49;
  -                     jjCheckNAdd(9);
  +                     if (kind > 18)
  +                        kind = 18;
                     }
  -                  else if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 13;
  -                  else if (curChar == 34)
  -                     jjCheckNAddTwoStates(7, 8);
                     else if (curChar == 35)
                        jjstateSet[jjnewStateCnt++] = 4;
                     else if (curChar == 36)
  @@ -1910,6 +1748,8 @@
                        if (kind > 9)
                           kind = 9;
                     }
  +                  if (curChar == 13)
  +                     jjstateSet[jjnewStateCnt++] = 7;
                     break;
                  case 1:
                     if (curChar == 36 && kind > 9)
  @@ -1928,34 +1768,16 @@
                        jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 6:
  -                  if (curChar == 34)
  -                     jjCheckNAddTwoStates(7, 8);
  +                  if ((0x2400L & l) != 0L && kind > 18)
  +                     kind = 18;
                     break;
                  case 7:
  -                  if ((0xfffffffbffffdbffL & l) != 0L)
  -                     jjCheckNAddTwoStates(7, 8);
  +                  if (curChar == 10 && kind > 18)
  +                     kind = 18;
                     break;
                  case 8:
  -                  if (curChar == 34 && kind > 24)
  -                     kind = 24;
  -                  break;
  -               case 9:
  -                  if ((0x3ff000000000000L & l) == 0L)
  -                     break;
  -                  if (kind > 49)
  -                     kind = 49;
  -                  jjCheckNAdd(9);
  -                  break;
  -               case 11:
  -                  if ((0x3ff200000000000L & l) == 0L)
  -                     break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjstateSet[jjnewStateCnt++] = 11;
  -                  break;
  -               case 12:
  -                  if (curChar == 46)
  -                     jjstateSet[jjnewStateCnt++] = 13;
  +                  if (curChar == 13)
  +                     jjstateSet[jjnewStateCnt++] = 7;
                     break;
                  default : break;
               }
  @@ -1969,15 +1791,6 @@
               switch(jjstateSet[--i])
               {
                  case 5:
  -                  if ((0x7fffffe07fffffeL & l) != 0L)
  -                  {
  -                     if (kind > 55)
  -                        kind = 55;
  -                     jjCheckNAdd(11);
  -                  }
  -                  else if (curChar == 92)
  -                     jjCheckNAddTwoStates(0, 1);
  -                  break;
                  case 0:
                     if (curChar == 92)
                        jjCheckNAddTwoStates(0, 1);
  @@ -1986,27 +1799,6 @@
                     if (kind > 12)
                        kind = 12;
                     break;
  -               case 7:
  -                  jjAddStates(5, 6);
  -                  break;
  -               case 10:
  -                  if ((0x7fffffe07fffffeL & l) == 0L)
  -                     break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjCheckNAdd(11);
  -                  break;
  -               case 11:
  -                  if ((0x7fffffe87fffffeL & l) == 0L)
  -                     break;
  -                  if (kind > 55)
  -                     kind = 55;
  -                  jjCheckNAdd(11);
  -                  break;
  -               case 13:
  -                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 56)
  -                     kind = 56;
  -                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2023,10 +1815,6 @@
                     if ((jjbitVec0[i2] & l2) != 0L && kind > 12)
                        kind = 12;
                     break;
  -               case 7:
  -                  if ((jjbitVec0[i2] & l2) != 0L)
  -                     jjAddStates(5, 6);
  -                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2038,13 +1826,13 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 14 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
  -private final int jjStopStringLiteralDfa_8(int pos, long active0)
  +private final int jjStopStringLiteralDfa_5(int pos, long active0)
   {
      switch (pos)
      {
  @@ -2056,67 +1844,183 @@
               jjmatchedKind = 9;
               return -1;
            }
  +         if ((active0 & 0x6000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            return 10;
  +         }
  +         return -1;
  +      case 1:
  +         if ((active0 & 0x2000L) != 0L)
  +            return 2;
  +         if ((active0 & 0x400L) != 0L)
  +         {
  +            if (jjmatchedPos == 0)
  +            {
  +               jjmatchedKind = 9;
  +               jjmatchedPos = 0;
  +            }
  +            return -1;
  +         }
  +         if ((active0 & 0x6000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 1;
  +            return 10;
  +         }
  +         return -1;
  +      case 2:
  +         if ((active0 & 0x6000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 2;
  +            return 10;
  +         }
  +         return -1;
  +      case 3:
  +         if ((active0 & 0x2000000L) != 0L)
  +            return 10;
  +         if ((active0 & 0x4000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 3;
  +            return 10;
  +         }
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_8(int pos, long active0)
  +private final int jjStartNfa_5(int pos, long active0)
   {
  -   return jjMoveNfa_8(jjStopStringLiteralDfa_8(pos, active0), pos + 1);
  +   return jjMoveNfa_5(jjStopStringLiteralDfa_5(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_8(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_8(state, pos + 1);
  +   return jjMoveNfa_5(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_8()
  +private final int jjMoveStringLiteralDfa0_5()
   {
      switch(curChar)
      {
         case 35:
            jjmatchedKind = 14;
  -         return jjMoveStringLiteralDfa1_8(0x2800L);
  +         return jjMoveStringLiteralDfa1_5(0x2800L);
         case 36:
  -         return jjMoveStringLiteralDfa1_8(0x400L);
  +         return jjMoveStringLiteralDfa1_5(0x400L);
  +      case 102:
  +         return jjMoveStringLiteralDfa1_5(0x4000000L);
  +      case 116:
  +         return jjMoveStringLiteralDfa1_5(0x2000000L);
  +      case 123:
  +         return jjStopAtPos(0, 57);
  +      case 125:
  +         return jjStopAtPos(0, 58);
         default :
  -         return jjMoveNfa_8(5, 0);
  +         return jjMoveNfa_5(5, 0);
  +   }
  +}
  +private final int jjMoveStringLiteralDfa1_5(long active0)
  +{
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_5(0, active0);
  +      return 1;
  +   }
  +   switch(curChar)
  +   {
  +      case 33:
  +         if ((active0 & 0x400L) != 0L)
  +            return jjStopAtPos(1, 10);
  +         break;
  +      case 35:
  +         if ((active0 & 0x800L) != 0L)
  +            return jjStopAtPos(1, 11);
  +         break;
  +      case 42:
  +         if ((active0 & 0x2000L) != 0L)
  +            return jjStartNfaWithStates_5(1, 13, 2);
  +         break;
  +      case 97:
  +         return jjMoveStringLiteralDfa2_5(active0, 0x4000000L);
  +      case 114:
  +         return jjMoveStringLiteralDfa2_5(active0, 0x2000000L);
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_5(0, active0);
  +}
  +private final int jjMoveStringLiteralDfa2_5(long old0, long active0)
  +{
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_5(0, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_5(1, active0);
  +      return 2;
  +   }
  +   switch(curChar)
  +   {
  +      case 108:
  +         return jjMoveStringLiteralDfa3_5(active0, 0x4000000L);
  +      case 117:
  +         return jjMoveStringLiteralDfa3_5(active0, 0x2000000L);
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_5(1, active0);
  +}
  +private final int jjMoveStringLiteralDfa3_5(long old0, long active0)
  +{
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_5(1, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_5(2, active0);
  +      return 3;
  +   }
  +   switch(curChar)
  +   {
  +      case 101:
  +         if ((active0 & 0x2000000L) != 0L)
  +            return jjStartNfaWithStates_5(3, 25, 10);
  +         break;
  +      case 115:
  +         return jjMoveStringLiteralDfa4_5(active0, 0x4000000L);
  +      default :
  +         break;
      }
  +   return jjStartNfa_5(2, active0);
   }
  -private final int jjMoveStringLiteralDfa1_8(long active0)
  +private final int jjMoveStringLiteralDfa4_5(long old0, long active0)
   {
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_5(2, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_8(0, active0);
  -      return 1;
  +      jjStopStringLiteralDfa_5(3, active0);
  +      return 4;
      }
      switch(curChar)
      {
  -      case 33:
  -         if ((active0 & 0x400L) != 0L)
  -            return jjStopAtPos(1, 10);
  -         break;
  -      case 35:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStopAtPos(1, 11);
  -         break;
  -      case 42:
  -         if ((active0 & 0x2000L) != 0L)
  -            return jjStartNfaWithStates_8(1, 13, 2);
  +      case 101:
  +         if ((active0 & 0x4000000L) != 0L)
  +            return jjStartNfaWithStates_5(4, 26, 10);
            break;
         default :
            break;
      }
  -   return jjStartNfa_8(0, active0);
  +   return jjStartNfa_5(3, active0);
   }
  -private final int jjMoveNfa_8(int startState, int curPos)
  +private final int jjMoveNfa_5(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 9;
  +   jjnewStateCnt = 13;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -2132,11 +2036,10 @@
               switch(jjstateSet[--i])
               {
                  case 5:
  -                  if ((0x2400L & l) != 0L)
  -                  {
  -                     if (kind > 18)
  -                        kind = 18;
  -                  }
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 12;
  +                  else if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
                     else if (curChar == 35)
                        jjstateSet[jjnewStateCnt++] = 4;
                     else if (curChar == 36)
  @@ -2144,8 +2047,6 @@
                        if (kind > 9)
                           kind = 9;
                     }
  -                  if (curChar == 13)
  -                     jjstateSet[jjnewStateCnt++] = 7;
                     break;
                  case 1:
                     if (curChar == 36 && kind > 9)
  @@ -2164,16 +2065,27 @@
                        jjstateSet[jjnewStateCnt++] = 2;
                     break;
                  case 6:
  -                  if ((0x2400L & l) != 0L && kind > 18)
  -                     kind = 18;
  +                  if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
                     break;
                  case 7:
  -                  if (curChar == 10 && kind > 18)
  -                     kind = 18;
  +                  if ((0xfffffffbffffdbffL & l) != 0L)
  +                     jjCheckNAddTwoStates(7, 8);
                     break;
                  case 8:
  -                  if (curChar == 13)
  -                     jjstateSet[jjnewStateCnt++] = 7;
  +                  if (curChar == 34 && kind > 24)
  +                     kind = 24;
  +                  break;
  +               case 10:
  +                  if ((0x3ff200000000000L & l) == 0L)
  +                     break;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjstateSet[jjnewStateCnt++] = 10;
  +                  break;
  +               case 11:
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 12;
                     break;
                  default : break;
               }
  @@ -2187,6 +2099,15 @@
               switch(jjstateSet[--i])
               {
                  case 5:
  +                  if ((0x7fffffe07fffffeL & l) != 0L)
  +                  {
  +                     if (kind > 55)
  +                        kind = 55;
  +                     jjCheckNAdd(10);
  +                  }
  +                  else if (curChar == 92)
  +                     jjCheckNAddTwoStates(0, 1);
  +                  break;
                  case 0:
                     if (curChar == 92)
                        jjCheckNAddTwoStates(0, 1);
  @@ -2195,6 +2116,27 @@
                     if (kind > 12)
                        kind = 12;
                     break;
  +               case 7:
  +                  jjAddStates(10, 11);
  +                  break;
  +               case 9:
  +                  if ((0x7fffffe07fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjCheckNAdd(10);
  +                  break;
  +               case 10:
  +                  if ((0x7fffffe87fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjCheckNAdd(10);
  +                  break;
  +               case 12:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 56)
  +                     kind = 56;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2211,6 +2153,10 @@
                     if ((jjbitVec0[i2] & l2) != 0L && kind > 12)
                        kind = 12;
                     break;
  +               case 7:
  +                  if ((jjbitVec0[i2] & l2) != 0L)
  +                     jjAddStates(10, 11);
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2222,44 +2168,33 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 13 - (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_2(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x6800L) != 0L)
  -            return 4;
  -         if ((active0 & 0x600000000000L) != 0L)
  +         if ((active0 & 0x6000000L) != 0L)
            {
  -            jjmatchedKind = 51;
  +            jjmatchedKind = 55;
               return 11;
            }
  +         if ((active0 & 0x6800L) != 0L)
  +            return 4;
            if ((active0 & 0x400L) != 0L)
            {
               jjmatchedKind = 9;
               return -1;
            }
  -         if ((active0 & 0x900000000000L) != 0L)
  -         {
  -            jjmatchedKind = 51;
  -            return 14;
  -         }
            return -1;
         case 1:
  -         if ((active0 & 0x100000000000L) != 0L)
  -            return 14;
  -         if ((active0 & 0xe00000000000L) != 0L)
  -         {
  -            jjmatchedKind = 51;
  -            jjmatchedPos = 1;
  -            return 14;
  -         }
  +         if ((active0 & 0x2000L) != 0L)
  +            return 2;
            if ((active0 & 0x400L) != 0L)
            {
               if (jjmatchedPos == 0)
  @@ -2269,69 +2204,81 @@
               }
               return -1;
            }
  -         if ((active0 & 0x2000L) != 0L)
  -            return 2;
  +         if ((active0 & 0x6000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 1;
  +            return 11;
  +         }
            return -1;
         case 2:
  -         if ((active0 & 0xe00000000000L) != 0L)
  +         if ((active0 & 0x6000000L) != 0L)
            {
  -            jjmatchedKind = 51;
  +            jjmatchedKind = 55;
               jjmatchedPos = 2;
  -            return 14;
  +            return 11;
            }
            return -1;
         case 3:
  -         if ((active0 & 0xe00000000000L) != 0L)
  -            return 14;
  -         return -1;
  -      case 4:
  -         if ((active0 & 0x200000000000L) != 0L)
  +         if ((active0 & 0x2000000L) != 0L)
  +            return 11;
  +         if ((active0 & 0x4000000L) != 0L)
            {
  -            jjmatchedKind = 51;
  -            jjmatchedPos = 4;
  -            return 14;
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 3;
  +            return 11;
            }
            return -1;
         default :
            return -1;
      }
   }
  -private final int jjStartNfa_4(int pos, long active0)
  +private final int jjStartNfa_2(int pos, long active0)
   {
  -   return jjMoveNfa_4(jjStopStringLiteralDfa_4(pos, active0), pos + 1);
  +   return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
   }
  -private final int jjStartNfaWithStates_4(int pos, int kind, int state)
  +private final int jjStartNfaWithStates_2(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_2(state, pos + 1);
   }
  -private final int jjMoveStringLiteralDfa0_4()
  +private final int jjMoveStringLiteralDfa0_2()
   {
      switch(curChar)
      {
         case 35:
            jjmatchedKind = 14;
  -         return jjMoveStringLiteralDfa1_4(0x2800L);
  +         return jjMoveStringLiteralDfa1_2(0x2800L);
         case 36:
  -         return jjMoveStringLiteralDfa1_4(0x400L);
  -      case 101:
  -         return jjMoveStringLiteralDfa1_4(0x600000000000L);
  -      case 105:
  -         return jjMoveStringLiteralDfa1_4(0x100000000000L);
  -      case 115:
  -         return jjMoveStringLiteralDfa1_4(0x800000000000L);
  +         return jjMoveStringLiteralDfa1_2(0x400L);
  +      case 41:
  +         return jjStopAtPos(0, 6);
  +      case 44:
  +         return jjStopAtPos(0, 3);
  +      case 91:
  +         return jjStopAtPos(0, 1);
  +      case 93:
  +         return jjStopAtPos(0, 2);
  +      case 102:
  +         return jjMoveStringLiteralDfa1_2(0x4000000L);
  +      case 116:
  +         return jjMoveStringLiteralDfa1_2(0x2000000L);
  +      case 123:
  +         return jjStopAtPos(0, 57);
  +      case 125:
  +         return jjStopAtPos(0, 58);
         default :
  -         return jjMoveNfa_4(5, 0);
  +         return jjMoveNfa_2(5, 0);
      }
   }
  -private final int jjMoveStringLiteralDfa1_4(long active0)
  +private final int jjMoveStringLiteralDfa1_2(long active0)
   {
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_4(0, active0);
  +      jjStopStringLiteralDfa_2(0, active0);
         return 1;
      }
      switch(curChar)
  @@ -2346,111 +2293,84 @@
            break;
         case 42:
            if ((active0 & 0x2000L) != 0L)
  -            return jjStartNfaWithStates_4(1, 13, 2);
  -         break;
  -      case 102:
  -         if ((active0 & 0x100000000000L) != 0L)
  -            return jjStartNfaWithStates_4(1, 44, 14);
  +            return jjStartNfaWithStates_2(1, 13, 2);
            break;
  -      case 108:
  -         return jjMoveStringLiteralDfa2_4(active0, 0x600000000000L);
  -      case 116:
  -         return jjMoveStringLiteralDfa2_4(active0, 0x800000000000L);
  +      case 97:
  +         return jjMoveStringLiteralDfa2_2(active0, 0x4000000L);
  +      case 114:
  +         return jjMoveStringLiteralDfa2_2(active0, 0x2000000L);
         default :
            break;
      }
  -   return jjStartNfa_4(0, active0);
  +   return jjStartNfa_2(0, active0);
   }
  -private final int jjMoveStringLiteralDfa2_4(long old0, long active0)
  +private final int jjMoveStringLiteralDfa2_2(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_4(0, old0); 
  +      return jjStartNfa_2(0, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_4(1, active0);
  +      jjStopStringLiteralDfa_2(1, active0);
         return 2;
      }
      switch(curChar)
  -   {
  -      case 111:
  -         return jjMoveStringLiteralDfa3_4(active0, 0x800000000000L);
  -      case 115:
  -         return jjMoveStringLiteralDfa3_4(active0, 0x600000000000L);
  -      default :
  -         break;
  -   }
  -   return jjStartNfa_4(1, active0);
  -}
  -private final int jjMoveStringLiteralDfa3_4(long old0, long active0)
  -{
  -   if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_4(1, old0); 
  -   try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_4(2, active0);
  -      return 3;
  -   }
  -   switch(curChar)
      {
  -      case 101:
  -         if ((active0 & 0x400000000000L) != 0L)
  -         {
  -            jjmatchedKind = 46;
  -            jjmatchedPos = 3;
  -         }
  -         return jjMoveStringLiteralDfa4_4(active0, 0x200000000000L);
  -      case 112:
  -         if ((active0 & 0x800000000000L) != 0L)
  -            return jjStartNfaWithStates_4(3, 47, 14);
  -         break;
  +      case 108:
  +         return jjMoveStringLiteralDfa3_2(active0, 0x4000000L);
  +      case 117:
  +         return jjMoveStringLiteralDfa3_2(active0, 0x2000000L);
         default :
            break;
      }
  -   return jjStartNfa_4(2, active0);
  +   return jjStartNfa_2(1, active0);
   }
  -private final int jjMoveStringLiteralDfa4_4(long old0, long active0)
  +private final int jjMoveStringLiteralDfa3_2(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_4(2, old0); 
  +      return jjStartNfa_2(1, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_4(3, active0);
  -      return 4;
  +      jjStopStringLiteralDfa_2(2, active0);
  +      return 3;
      }
      switch(curChar)
      {
  -      case 105:
  -         return jjMoveStringLiteralDfa5_4(active0, 0x200000000000L);
  +      case 101:
  +         if ((active0 & 0x2000000L) != 0L)
  +            return jjStartNfaWithStates_2(3, 25, 11);
  +         break;
  +      case 115:
  +         return jjMoveStringLiteralDfa4_2(active0, 0x4000000L);
         default :
            break;
      }
  -   return jjStartNfa_4(3, active0);
  +   return jjStartNfa_2(2, active0);
   }
  -private final int jjMoveStringLiteralDfa5_4(long old0, long active0)
  +private final int jjMoveStringLiteralDfa4_2(long old0, long active0)
   {
      if (((active0 &= old0)) == 0L)
  -      return jjStartNfa_4(3, old0); 
  +      return jjStartNfa_2(2, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_4(4, active0);
  -      return 5;
  +      jjStopStringLiteralDfa_2(3, active0);
  +      return 4;
      }
      switch(curChar)
      {
  -      case 102:
  -         if ((active0 & 0x200000000000L) != 0L)
  -            return jjStartNfaWithStates_4(5, 45, 14);
  +      case 101:
  +         if ((active0 & 0x4000000L) != 0L)
  +            return jjStartNfaWithStates_2(4, 26, 11);
            break;
         default :
            break;
      }
  -   return jjStartNfa_4(4, active0);
  +   return jjStartNfa_2(3, active0);
   }
  -private final int jjMoveNfa_4(int startState, int curPos)
  +private final int jjMoveNfa_2(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 15;
  +   jjnewStateCnt = 14;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -2470,8 +2390,12 @@
                     {
                        if (kind > 49)
                           kind = 49;
  -                     jjCheckNAdd(13);
  +                     jjCheckNAdd(9);
                     }
  +                  else if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 13;
  +                  else if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
                     else if (curChar == 35)
                        jjstateSet[jjnewStateCnt++] = 4;
                     else if (curChar == 36)
  @@ -2496,28 +2420,35 @@
                     if (curChar == 42)
                        jjstateSet[jjnewStateCnt++] = 2;
                     break;
  +               case 6:
  +                  if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
  +                  break;
                  case 7:
  -                  if ((0x100000200L & l) != 0L)
  -                     jjAddStates(7, 9);
  +                  if ((0xfffffffbffffdbffL & l) != 0L)
  +                     jjCheckNAddTwoStates(7, 8);
                     break;
                  case 8:
  -                  if ((0x2400L & l) != 0L && kind > 43)
  -                     kind = 43;
  +                  if (curChar == 34 && kind > 24)
  +                     kind = 24;
                     break;
                  case 9:
  -                  if (curChar == 10 && kind > 43)
  -                     kind = 43;
  -                  break;
  -               case 10:
  -                  if (curChar == 13)
  -                     jjstateSet[jjnewStateCnt++] = 9;
  -                  break;
  -               case 13:
                     if ((0x3ff000000000000L & l) == 0L)
                        break;
                     if (kind > 49)
                        kind = 49;
  -                  jjCheckNAdd(13);
  +                  jjCheckNAdd(9);
  +                  break;
  +               case 11:
  +                  if ((0x3ff200000000000L & l) == 0L)
  +                     break;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjstateSet[jjnewStateCnt++] = 11;
  +                  break;
  +               case 12:
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 13;
                     break;
                  default : break;
               }
  @@ -2533,25 +2464,13 @@
                  case 5:
                     if ((0x7fffffe07fffffeL & l) != 0L)
                     {
  -                     if (kind > 51)
  -                        kind = 51;
  -                     jjCheckNAdd(14);
  +                     if (kind > 55)
  +                        kind = 55;
  +                     jjCheckNAdd(11);
                     }
                     else if (curChar == 92)
                        jjCheckNAddTwoStates(0, 1);
  -                  if (curChar == 101)
  -                     jjstateSet[jjnewStateCnt++] = 11;
                     break;
  -               case 11:
  -                  if ((0x7fffffe07fffffeL & l) != 0L)
  -                  {
  -                     if (kind > 51)
  -                        kind = 51;
  -                     jjCheckNAdd(14);
  -                  }
  -                  if (curChar == 110)
  -                     jjstateSet[jjnewStateCnt++] = 6;
  -                  break;
                  case 0:
                     if (curChar == 92)
                        jjCheckNAddTwoStates(0, 1);
  @@ -2559,24 +2478,27 @@
                  case 3:
                     if (kind > 12)
                        kind = 12;
  -                  break;
  -               case 6:
  -                  if (curChar != 100)
  -                     break;
  -                  if (kind > 43)
  -                     kind = 43;
  -                  jjAddStates(7, 9);
                     break;
  -               case 12:
  -                  if (curChar == 101)
  -                     jjstateSet[jjnewStateCnt++] = 11;
  +               case 7:
  +                  jjAddStates(10, 11);
                     break;
  -               case 14:
  +               case 10:
                     if ((0x7fffffe07fffffeL & l) == 0L)
                        break;
  -                  if (kind > 51)
  -                     kind = 51;
  -                  jjCheckNAdd(14);
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjCheckNAdd(11);
  +                  break;
  +               case 11:
  +                  if ((0x7fffffe87fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjCheckNAdd(11);
  +                  break;
  +               case 13:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 56)
  +                     kind = 56;
                     break;
                  default : break;
               }
  @@ -2594,6 +2516,10 @@
                     if ((jjbitVec0[i2] & l2) != 0L && kind > 12)
                        kind = 12;
                     break;
  +               case 7:
  +                  if ((jjbitVec0[i2] & l2) != 0L)
  +                     jjAddStates(10, 11);
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2605,94 +2531,207 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 15 - (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_3(int pos, long active0)
  +private final int jjStopStringLiteralDfa_1(int pos, long active0)
   {
      switch (pos)
      {
         case 0:
  -         if ((active0 & 0x18000L) != 0L)
  -            return 9;
            if ((active0 & 0x6800L) != 0L)
  -            return 15;
  +            return 4;
            if ((active0 & 0x400L) != 0L)
            {
               jjmatchedKind = 9;
               return -1;
            }
  +         if ((active0 & 0x6000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            return 10;
  +         }
  +         return -1;
  +      case 1:
  +         if ((active0 & 0x2000L) != 0L)
  +            return 2;
  +         if ((active0 & 0x400L) != 0L)
  +         {
  +            if (jjmatchedPos == 0)
  +            {
  +               jjmatchedKind = 9;
  +               jjmatchedPos = 0;
  +            }
  +            return -1;
  +         }
  +         if ((active0 & 0x6000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 1;
  +            return 10;
  +         }
  +         return -1;
  +      case 2:
  +         if ((active0 & 0x6000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 2;
  +            return 10;
  +         }
  +         return -1;
  +      case 3:
  +         if ((active0 & 0x2000000L) != 0L)
  +            return 10;
  +         if ((active0 & 0x4000000L) != 0L)
  +         {
  +            jjmatchedKind = 55;
  +            jjmatchedPos = 3;
  +            return 10;
  +         }
  +         return -1;
  +      default :
            return -1;
  +   }
  +}
  +private final int jjStartNfa_1(int pos, long active0)
  +{
  +   return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
  +}
  +private final int jjStartNfaWithStates_1(int pos, int kind, int state)
  +{
  +   jjmatchedKind = kind;
  +   jjmatchedPos = pos;
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) { return pos + 1; }
  +   return jjMoveNfa_1(state, pos + 1);
  +}
  +private final int jjMoveStringLiteralDfa0_1()
  +{
  +   switch(curChar)
  +   {
  +      case 35:
  +         jjmatchedKind = 14;
  +         return jjMoveStringLiteralDfa1_1(0x2800L);
  +      case 36:
  +         return jjMoveStringLiteralDfa1_1(0x400L);
  +      case 40:
  +         return jjStopAtPos(0, 4);
  +      case 91:
  +         return jjStopAtPos(0, 1);
  +      case 93:
  +         return jjStopAtPos(0, 2);
  +      case 102:
  +         return jjMoveStringLiteralDfa1_1(0x4000000L);
  +      case 116:
  +         return jjMoveStringLiteralDfa1_1(0x2000000L);
  +      case 123:
  +         return jjStopAtPos(0, 57);
  +      case 125:
  +         return jjStopAtPos(0, 58);
  +      default :
  +         return jjMoveNfa_1(5, 0);
  +   }
  +}
  +private final int jjMoveStringLiteralDfa1_1(long active0)
  +{
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_1(0, active0);
  +      return 1;
  +   }
  +   switch(curChar)
  +   {
  +      case 33:
  +         if ((active0 & 0x400L) != 0L)
  +            return jjStopAtPos(1, 10);
  +         break;
  +      case 35:
  +         if ((active0 & 0x800L) != 0L)
  +            return jjStopAtPos(1, 11);
  +         break;
  +      case 42:
  +         if ((active0 & 0x2000L) != 0L)
  +            return jjStartNfaWithStates_1(1, 13, 2);
  +         break;
  +      case 97:
  +         return jjMoveStringLiteralDfa2_1(active0, 0x4000000L);
  +      case 114:
  +         return jjMoveStringLiteralDfa2_1(active0, 0x2000000L);
  +      default :
  +         break;
  +   }
  +   return jjStartNfa_1(0, active0);
  +}
  +private final int jjMoveStringLiteralDfa2_1(long old0, long active0)
  +{
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_1(0, old0); 
  +   try { curChar = input_stream.readChar(); }
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_1(1, active0);
  +      return 2;
  +   }
  +   switch(curChar)
  +   {
  +      case 108:
  +         return jjMoveStringLiteralDfa3_1(active0, 0x4000000L);
  +      case 117:
  +         return jjMoveStringLiteralDfa3_1(active0, 0x2000000L);
         default :
  -         return -1;
  +         break;
      }
  -}
  -private final int jjStartNfa_3(int pos, long active0)
  -{
  -   return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1);
  +   return jjStartNfa_1(1, active0);
   }
  -private final int jjStartNfaWithStates_3(int pos, int kind, int state)
  +private final int jjMoveStringLiteralDfa3_1(long old0, long active0)
   {
  -   jjmatchedKind = kind;
  -   jjmatchedPos = pos;
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_1(1, old0); 
      try { curChar = input_stream.readChar(); }
  -   catch(java.io.IOException e) { return pos + 1; }
  -   return jjMoveNfa_3(state, pos + 1);
  -}
  -private final int jjMoveStringLiteralDfa0_3()
  -{
  +   catch(java.io.IOException e) {
  +      jjStopStringLiteralDfa_1(2, active0);
  +      return 3;
  +   }
      switch(curChar)
      {
  -      case 35:
  -         jjmatchedKind = 14;
  -         return jjMoveStringLiteralDfa1_3(0x2800L);
  -      case 36:
  -         return jjMoveStringLiteralDfa1_3(0x400L);
  -      case 92:
  -         jjmatchedKind = 16;
  -         return jjMoveStringLiteralDfa1_3(0x8000L);
  +      case 101:
  +         if ((active0 & 0x2000000L) != 0L)
  +            return jjStartNfaWithStates_1(3, 25, 10);
  +         break;
  +      case 115:
  +         return jjMoveStringLiteralDfa4_1(active0, 0x4000000L);
         default :
  -         return jjMoveNfa_3(12, 0);
  +         break;
      }
  +   return jjStartNfa_1(2, active0);
   }
  -private final int jjMoveStringLiteralDfa1_3(long active0)
  +private final int jjMoveStringLiteralDfa4_1(long old0, long active0)
   {
  +   if (((active0 &= old0)) == 0L)
  +      return jjStartNfa_1(2, old0); 
      try { curChar = input_stream.readChar(); }
      catch(java.io.IOException e) {
  -      jjStopStringLiteralDfa_3(0, active0);
  -      return 1;
  +      jjStopStringLiteralDfa_1(3, active0);
  +      return 4;
      }
      switch(curChar)
      {
  -      case 33:
  -         if ((active0 & 0x400L) != 0L)
  -            return jjStopAtPos(1, 10);
  -         break;
  -      case 35:
  -         if ((active0 & 0x800L) != 0L)
  -            return jjStopAtPos(1, 11);
  -         break;
  -      case 42:
  -         if ((active0 & 0x2000L) != 0L)
  -            return jjStartNfaWithStates_3(1, 13, 13);
  -         break;
  -      case 92:
  -         if ((active0 & 0x8000L) != 0L)
  -            return jjStartNfaWithStates_3(1, 15, 16);
  +      case 101:
  +         if ((active0 & 0x4000000L) != 0L)
  +            return jjStartNfaWithStates_1(4, 26, 10);
            break;
         default :
            break;
      }
  -   return jjStartNfa_3(0, active0);
  +   return jjStartNfa_1(3, active0);
   }
  -private final int jjMoveNfa_3(int startState, int curPos)
  +private final int jjMoveNfa_1(int startState, int curPos)
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 16;
  +   jjnewStateCnt = 13;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -2707,67 +2746,57 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 15:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 13;
  -                  break;
  -               case 16:
  -               case 6:
  -                  if (curChar == 36 && kind > 9)
  -                     kind = 9;
  -                  break;
  -               case 9:
  -                  if (curChar == 36)
  -                  {
  -                     if (kind > 9)
  -                        kind = 9;
  -                  }
  -                  else if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 11;
  -                  break;
  -               case 12:
  -                  if ((0xffffffe7ffffffffL & l) != 0L)
  -                  {
  -                     if (kind > 17)
  -                        kind = 17;
  -                     jjCheckNAdd(7);
  -                  }
  +               case 5:
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 12;
  +                  else if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
                     else if (curChar == 35)
  -                     jjCheckNAddTwoStates(3, 15);
  +                     jjstateSet[jjnewStateCnt++] = 4;
                     else if (curChar == 36)
                     {
                        if (kind > 9)
                           kind = 9;
                     }
  -                  if ((0x100000200L & l) != 0L)
  -                     jjCheckNAddTwoStates(0, 4);
                     break;
  -               case 0:
  -                  if ((0x100000200L & l) != 0L)
  -                     jjCheckNAddTwoStates(0, 4);
  +               case 1:
  +                  if (curChar == 36 && kind > 9)
  +                     kind = 9;
  +                  break;
  +               case 2:
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 3;
                     break;
  +               case 3:
  +                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 12)
  +                     kind = 12;
  +                  break;
                  case 4:
  -                  if (curChar == 35)
  -                     jjCheckNAdd(3);
  +                  if (curChar == 42)
  +                     jjstateSet[jjnewStateCnt++] = 2;
                     break;
  +               case 6:
  +                  if (curChar == 34)
  +                     jjCheckNAddTwoStates(7, 8);
  +                  break;
                  case 7:
  -                  if ((0xffffffe7ffffffffL & l) == 0L)
  -                     break;
  -                  if (kind > 17)
  -                     kind = 17;
  -                  jjCheckNAdd(7);
  +                  if ((0xfffffffbffffdbffL & l) != 0L)
  +                     jjCheckNAddTwoStates(7, 8);
                     break;
  -               case 10:
  -                  if (curChar == 35)
  -                     jjstateSet[jjnewStateCnt++] = 11;
  +               case 8:
  +                  if (curChar == 34 && kind > 24)
  +                     kind = 24;
                     break;
  -               case 13:
  -                  if (curChar == 42)
  -                     jjstateSet[jjnewStateCnt++] = 14;
  +               case 10:
  +                  if ((0x3ff200000000000L & l) == 0L)
  +                     break;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjstateSet[jjnewStateCnt++] = 10;
                     break;
  -               case 14:
  -                  if ((0xfffffff7ffffffffL & l) != 0L && kind > 12)
  -                     kind = 12;
  +               case 11:
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 12;
                     break;
                  default : break;
               }
  @@ -2780,68 +2809,44 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 15:
  -               case 3:
  -                  if (curChar == 115)
  -                     jjstateSet[jjnewStateCnt++] = 2;
  -                  break;
  -               case 16:
  -                  if (curChar == 92)
  -                     jjAddStates(10, 11);
  -                  if (curChar == 92)
  -                     jjCheckNAddTwoStates(5, 6);
  -                  break;
  -               case 9:
  -                  if (curChar == 92)
  -                     jjCheckNAddTwoStates(5, 6);
  -                  if (curChar == 92)
  -                     jjstateSet[jjnewStateCnt++] = 8;
  -                  break;
  -               case 12:
  -                  if ((0xffffffffefffffffL & l) != 0L)
  +               case 5:
  +                  if ((0x7fffffe07fffffeL & l) != 0L)
                     {
  -                     if (kind > 17)
  -                        kind = 17;
  -                     jjCheckNAdd(7);
  +                     if (kind > 55)
  +                        kind = 55;
  +                     jjCheckNAdd(10);
                     }
                     else if (curChar == 92)
  -                     jjAddStates(10, 11);
  -                  if (curChar == 92)
  -                     jjCheckNAddTwoStates(5, 6);
  -                  break;
  -               case 1:
  -                  if (curChar == 116 && kind > 8)
  -                     kind = 8;
  -                  break;
  -               case 2:
  -                  if (curChar == 101)
  -                     jjstateSet[jjnewStateCnt++] = 1;
  +                     jjCheckNAddTwoStates(0, 1);
                     break;
  -               case 5:
  +               case 0:
                     if (curChar == 92)
  -                     jjCheckNAddTwoStates(5, 6);
  +                     jjCheckNAddTwoStates(0, 1);
                     break;
  -               case 7:
  -                  if ((0xffffffffefffffffL & l) == 0L)
  -                     break;
  -                  if (kind > 17)
  -                     kind = 17;
  -                  jjCheckNAdd(7);
  +               case 3:
  +                  if (kind > 12)
  +                     kind = 12;
                     break;
  -               case 8:
  -                  if (curChar == 92)
  -                     jjAddStates(10, 11);
  +               case 7:
  +                  jjAddStates(10, 11);
                     break;
  -               case 11:
  +               case 9:
                     if ((0x7fffffe07fffffeL & l) == 0L)
                        break;
  -                  if (kind > 7)
  -                     kind = 7;
  -                  jjstateSet[jjnewStateCnt++] = 11;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjCheckNAdd(10);
                     break;
  -               case 14:
  -                  if (kind > 12)
  -                     kind = 12;
  +               case 10:
  +                  if ((0x7fffffe87fffffeL & l) == 0L)
  +                     break;
  +                  if (kind > 55)
  +                     kind = 55;
  +                  jjCheckNAdd(10);
  +                  break;
  +               case 12:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 56)
  +                     kind = 56;
                     break;
                  default : break;
               }
  @@ -2855,18 +2860,14 @@
            {
               switch(jjstateSet[--i])
               {
  -               case 12:
  -               case 7:
  -                  if ((jjbitVec0[i2] & l2) == 0L)
  -                     break;
  -                  if (kind > 17)
  -                     kind = 17;
  -                  jjCheckNAdd(7);
  -                  break;
  -               case 14:
  +               case 3:
                     if ((jjbitVec0[i2] & l2) != 0L && kind > 12)
                        kind = 12;
                     break;
  +               case 7:
  +                  if ((jjbitVec0[i2] & l2) != 0L)
  +                     jjAddStates(10, 11);
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -2878,14 +2879,14 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 16 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 13 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
      }
   }
   static final int[] jjnextStates = {
  -   1, 2, 4, 12, 13, 7, 8, 7, 8, 10, 9, 10, 
  +   1, 2, 4, 12, 13, 7, 8, 10, 9, 10, 7, 8, 
   };
   public static final String[] jjstrLiteralImages = {
   null, null, null, null, null, null, null, null, null, null, null, null, null, 
  @@ -3251,9 +3252,12 @@
            else
               image.append(new String(input_stream.GetSuffix(jjimageLen)));
            jjimageLen = 0;
  -        inComment = true;
  -        stateStackPush();
  -        SwitchTo(IN_SINGLE_LINE_COMMENT);
  +        if (!inComment)
  +        {
  +            inComment = true;
  +            stateStackPush();
  +            SwitchTo(IN_SINGLE_LINE_COMMENT);
  +        }
            break;
         case 12 :
            if (image == null)
  
  
  

Reply via email to