[pkg-java] r3167 - in trunk/qdox/debian: . patches

Arnaud Vandyck avdyk at alioth.debian.org
Wed Apr 11 14:25:51 UTC 2007


Author: avdyk
Date: 2007-04-11 14:25:49 +0000 (Wed, 11 Apr 2007)
New Revision: 3167

Modified:
   trunk/qdox/debian/changelog
   trunk/qdox/debian/control
   trunk/qdox/debian/copyright
   trunk/qdox/debian/patches/01_build_files.patch
   trunk/qdox/debian/patches/02_parser_files.patch
   trunk/qdox/debian/rules
Log:
build with java-gcj-compat-dev, tried to re-generate two classes but does not work

Modified: trunk/qdox/debian/changelog
===================================================================
--- trunk/qdox/debian/changelog	2007-04-11 11:39:59 UTC (rev 3166)
+++ trunk/qdox/debian/changelog	2007-04-11 14:25:49 UTC (rev 3167)
@@ -1,6 +1,6 @@
-libqdox-java (1.5-1) unstable; urgency=low
+qdox (1.6.1-1) unstable; urgency=low
 
-  * Non-maintainer upload.
+  Trygve Laugstøl <trygvis at inamo.no>:
   * Initial Release (closes: #323043).
 
- -- Trygve Laugstøl <trygvis at inamo.no>  Mon,  8 Aug 2005 02:56:59 +0200
+ -- Arnaud Vandyck <avdyk at debian.org>  Wed, 11 Apr 2007 13:51:08 +0200

Modified: trunk/qdox/debian/control
===================================================================
--- trunk/qdox/debian/control	2007-04-11 11:39:59 UTC (rev 3166)
+++ trunk/qdox/debian/control	2007-04-11 14:25:49 UTC (rev 3167)
@@ -1,14 +1,14 @@
-Source: libqdox-java
+Source: qdox
 Section: libs
 Priority: optional
 Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
-Uploaders: Trygve Laugstøl <trygvis at inamo.no>
-Build-Depends-Indep: debhelper (>> 4.0.0), cdbs, kaffe (>= 1.1.5), ant (>= 1.6.5), junit (>= 3.8.1), libjmock-java (>= 1.0.1)
-Standards-Version: 3.6.2
+Uploaders: Trygve Laugstøl <trygvis at inamo.no>, Arnaud Vandyck <avdyk at debian.org>
+Build-Depends-Indep: debhelper (>> 4.0.0), cdbs, java-gcj-compat-dev, ant (>= 1.6.5), junit (>= 3.8.1), libjmock-java (>= 1.0.1)
+Standards-Version: 3.7.2
 
 Package: libqdox-java
 Architecture: all
-Depends: kaffe | jamvm | java2-runtime
+Depends: java-gcj-compat | java2-runtime
 Suggests: libqdox-java-doc
 Description: High speed source parser for extracting from Java class/method definitions
  The parser skims the source files only looking for things of interest such as
@@ -21,6 +21,6 @@
 
 Package: libqdox-java-doc
 Architecture: all
-Depends:
+Suggests: libqdox-java
 Description: Documentation for the qdox package
  Javadoc only.

Modified: trunk/qdox/debian/copyright
===================================================================
--- trunk/qdox/debian/copyright	2007-04-11 11:39:59 UTC (rev 3166)
+++ trunk/qdox/debian/copyright	2007-04-11 14:25:49 UTC (rev 3167)
@@ -3,7 +3,7 @@
 
 It was downloaded from http://dist.codehaus.org/qdox/distributions/qdox-1.5-src.tar.gz
 
-Upstream Authors: Aslak Hellesøy <aslak at thoughtworks.net>
+Upstream Authors: Aslak Hellesøy <aslak at thoughtworks.net>
                   Joe Walnes <joew at thoughtworks.com>
                   Mike Royle <mroyle at thoughtworks.com>
                   Paul Hammant <Paul_Hammant at yahoo.com>

Modified: trunk/qdox/debian/patches/01_build_files.patch
===================================================================
--- trunk/qdox/debian/patches/01_build_files.patch	2007-04-11 11:39:59 UTC (rev 3166)
+++ trunk/qdox/debian/patches/01_build_files.patch	2007-04-11 14:25:49 UTC (rev 3167)
@@ -1,8 +1,8 @@
---- ../qdox-1.5/build.xml	2004-06-20 02:30:31.000000000 +0200
-+++ build.xml	2005-09-05 00:43:54.999987288 +0200
+--- build.xml.old	2006-10-28 15:01:37.000000000 +0000
++++ build.xml	2007-04-11 12:46:52.000000000 +0000
 @@ -3,7 +3,32 @@
- <!--build.xml generated by maven from project.xml version 1.5-SNAPSHOT
-   on date June 5 2004, time 2316-->
+ <!--build.xml generated by maven from project.xml version 1.6.1
+   on date October 28 2006, time 1601-->
  
 -<project default="jar" name="qdox" basedir=".">
 +<project name="qdox" basedir=".">
@@ -34,18 +34,25 @@
    <property name="defaulttargetdir" value="target">
    </property>
    <property name="libdir" value="target/lib">
-@@ -36,6 +61,10 @@
+@@ -47,6 +72,8 @@
+       <src>
          <pathelement location="src/java">
          </pathelement>
++        <pathelement location="target/generated-sources">
++        </pathelement>
        </src>
-+      <src>
+       <classpath refid="build.classpath">
+       </classpath>
+@@ -116,6 +143,8 @@
+       <src>
+         <pathelement location="src/test">
+         </pathelement>
 +        <pathelement location="target/generated-sources">
 +        </pathelement>
-+      </src>
+       </src>
        <classpath>
-         <fileset dir="${libdir}">
-           <include name="*.jar">
-@@ -158,4 +187,4 @@
+         <path refid="build.classpath">
+@@ -161,4 +190,4 @@
      <unjar dest="${maven.home}" src="${user.home}/maven-install-latest.jar">
      </unjar>
    </target>

Modified: trunk/qdox/debian/patches/02_parser_files.patch
===================================================================
--- trunk/qdox/debian/patches/02_parser_files.patch	2007-04-11 11:39:59 UTC (rev 3166)
+++ trunk/qdox/debian/patches/02_parser_files.patch	2007-04-11 14:25:49 UTC (rev 3167)
@@ -1,7 +1,7 @@
---- /dev/null	2005-04-30 15:48:21.320416232 +0200
-+++ Parser.java	2005-08-15 04:03:17.549122272 +0200
-@@ -0,0 +1,960 @@
-+//### This file created by BYACC 1.8(/Java extension  1.1)
+--- /dev/null	2006-09-11 12:55:45.000000000 +0000
++++ Parser.java	2007-04-11 13:36:30.000000000 +0000
+@@ -0,0 +1,1173 @@
++//### This file created by BYACC 1.8(/Java extension  1.14)
 +//### Java capabilities added 7 Jan 97, Bob Jamison
 +//### Updated : 27 Nov 97  -- Bob Jamison, Joe Nieten
 +//###           01 Jan 98  -- Bob Jamison -- fixed generic semantic constructor
@@ -9,7 +9,9 @@
 +//###           06 Aug 00  -- Bob Jamison -- made state variables class-global
 +//###           03 Jan 01  -- Bob Jamison -- improved flags, tracing
 +//###           16 May 01  -- Bob Jamison -- added custom stack sizing
-+//### Please send bug reports to rjamison at lincom-asg.com
++//###           04 Mar 02  -- Yuval Oren  -- improved java performance, added options
++//###           14 Mar 02  -- Tomas Hurka -- -d support, static initializer workaround
++//### Please send bug reports to tom at hukatronic.cz
 +//### static char yysccsid[] = "@(#)yaccpar	1.8 (Berkeley) 01/20/90";
 +
 +
@@ -22,15 +24,11 @@
 +import com.thoughtworks.qdox.parser.*;
 +import com.thoughtworks.qdox.parser.structs.*;
 +import java.io.IOException;
-+//#line 19 "Parser.java"
++//#line 21 "Parser.java"
 +
 +
 +
 +
-+/**
-+ * Encapsulates yacc() parser functionality in a Java
-+ *        class for quick code development
-+ */
 +public class Parser
 +{
 +
@@ -51,54 +49,46 @@
 +
 +//########## STATE STACK ##########
 +final static int YYSTACKSIZE = 500;  //maximum stack size
-+int statestk[],stateptr;           //state stack
++int statestk[] = new int[YYSTACKSIZE]; //state stack
++int stateptr;
 +int stateptrmax;                     //highest index of stackptr
 +int statemax;                        //state when highest index reached
 +//###############################################################
 +// methods: state stack push,pop,drop,peek
 +//###############################################################
-+void state_push(int state)
++final void state_push(int state)
 +{
-+  if (stateptr>=YYSTACKSIZE)         //overflowed?
-+    return;
-+  statestk[++stateptr]=state;
-+  if (stateptr>statemax)
-+    {
-+    statemax=state;
-+    stateptrmax=stateptr;
-+    }
++  try {
++		stateptr++;
++		statestk[stateptr]=state;
++	 }
++	 catch (ArrayIndexOutOfBoundsException e) {
++     int oldsize = statestk.length;
++     int newsize = oldsize * 2;
++     int[] newstack = new int[newsize];
++     System.arraycopy(statestk,0,newstack,0,oldsize);
++     statestk = newstack;
++     statestk[stateptr]=state;
++  }
 +}
-+int state_pop()
++final int state_pop()
 +{
-+  if (stateptr<0)                    //underflowed?
-+    return -1;
 +  return statestk[stateptr--];
 +}
-+void state_drop(int cnt)
++final void state_drop(int cnt)
 +{
-+int ptr;
-+  ptr=stateptr-cnt;
-+  if (ptr<0)
-+    return;
-+  stateptr = ptr;
++  stateptr -= cnt; 
 +}
-+int state_peek(int relative)
++final int state_peek(int relative)
 +{
-+int ptr;
-+  ptr=stateptr-relative;
-+  if (ptr<0)
-+    return -1;
-+  return statestk[ptr];
++  return statestk[stateptr-relative];
 +}
 +//###############################################################
 +// method: init_stacks : allocate and prepare stacks
 +//###############################################################
-+boolean init_stacks()
++final boolean init_stacks()
 +{
-+  statestk = new int[YYSTACKSIZE];
 +  stateptr = -1;
-+  statemax = -1;
-+  stateptrmax = -1;
 +  val_init();
 +  return true;
 +}
@@ -120,230 +110,305 @@
 +String   yytext;//user variable to return contextual strings
 +Value yyval; //used to return semantic vals from action routines
 +Value yylval;//the 'lval' (result) I got from yylex()
-+Value valstk[];
++Value valstk[] = new Value[YYSTACKSIZE];
 +int valptr;
 +//###############################################################
 +// methods: value stack push,pop,drop,peek.
 +//###############################################################
-+void val_init()
++final void val_init()
 +{
-+  valstk=new Value[YYSTACKSIZE];
 +  yyval=new Value();
 +  yylval=new Value();
 +  valptr=-1;
 +}
-+void val_push(Value val)
++final void val_push(Value val)
 +{
-+  if (valptr>=YYSTACKSIZE)
-+    return;
-+  valstk[++valptr]=val;
++  try {
++    valptr++;
++    valstk[valptr]=val;
++  }
++  catch (ArrayIndexOutOfBoundsException e) {
++    int oldsize = valstk.length;
++    int newsize = oldsize*2;
++    Value[] newstack = new Value[newsize];
++    System.arraycopy(valstk,0,newstack,0,oldsize);
++    valstk = newstack;
++    valstk[valptr]=val;
++  }
 +}
-+Value val_pop()
++final Value val_pop()
 +{
-+  if (valptr<0)
-+    return null;
 +  return valstk[valptr--];
 +}
-+void val_drop(int cnt)
++final void val_drop(int cnt)
 +{
-+int ptr;
-+  ptr=valptr-cnt;
-+  if (ptr<0)
-+    return;
-+  valptr = ptr;
++  valptr -= cnt;
 +}
-+Value val_peek(int relative)
++final Value val_peek(int relative)
 +{
-+int ptr;
-+  ptr=valptr-relative;
-+  if (ptr<0)
-+    return null;
-+  return valstk[ptr];
++  return valstk[valptr-relative];
 +}
 +//#### end semantic value section ####
 +public final static short SEMI=257;
 +public final static short DOT=258;
-+public final static short COMMA=259;
-+public final static short STAR=260;
-+public final static short EQUALS=261;
-+public final static short PACKAGE=262;
-+public final static short IMPORT=263;
-+public final static short PUBLIC=264;
-+public final static short PROTECTED=265;
-+public final static short PRIVATE=266;
-+public final static short STATIC=267;
-+public final static short FINAL=268;
-+public final static short ABSTRACT=269;
-+public final static short NATIVE=270;
-+public final static short STRICTFP=271;
-+public final static short SYNCHRONIZED=272;
-+public final static short TRANSIENT=273;
-+public final static short VOLATILE=274;
-+public final static short CLASS=275;
-+public final static short INTERFACE=276;
-+public final static short THROWS=277;
-+public final static short EXTENDS=278;
-+public final static short IMPLEMENTS=279;
-+public final static short BRACEOPEN=280;
-+public final static short BRACECLOSE=281;
-+public final static short SQUAREOPEN=282;
-+public final static short SQUARECLOSE=283;
-+public final static short PARENOPEN=284;
-+public final static short PARENCLOSE=285;
-+public final static short LESSTHAN=286;
-+public final static short GREATERTHAN=287;
-+public final static short AMPERSAND=288;
-+public final static short JAVADOCSTART=289;
-+public final static short JAVADOCEND=290;
-+public final static short CODEBLOCK=291;
-+public final static short STRING=292;
-+public final static short IDENTIFIER=293;
-+public final static short JAVADOCTAG=294;
-+public final static short JAVADOCTOKEN=295;
++public final static short DOTDOTDOT=259;
++public final static short COMMA=260;
++public final static short STAR=261;
++public final static short EQUALS=262;
++public final static short PACKAGE=263;
++public final static short IMPORT=264;
++public final static short PUBLIC=265;
++public final static short PROTECTED=266;
++public final static short PRIVATE=267;
++public final static short STATIC=268;
++public final static short FINAL=269;
++public final static short ABSTRACT=270;
++public final static short NATIVE=271;
++public final static short STRICTFP=272;
++public final static short SYNCHRONIZED=273;
++public final static short TRANSIENT=274;
++public final static short VOLATILE=275;
++public final static short CLASS=276;
++public final static short INTERFACE=277;
++public final static short ENUM=278;
++public final static short THROWS=279;
++public final static short EXTENDS=280;
++public final static short IMPLEMENTS=281;
++public final static short SUPER=282;
++public final static short DEFAULT=283;
++public final static short BRACEOPEN=284;
++public final static short BRACECLOSE=285;
++public final static short SQUAREOPEN=286;
++public final static short SQUARECLOSE=287;
++public final static short PARENOPEN=288;
++public final static short PARENCLOSE=289;
++public final static short LESSTHAN=290;
++public final static short GREATERTHAN=291;
++public final static short AMPERSAND=292;
++public final static short QUERY=293;
++public final static short AT=294;
++public final static short JAVADOCSTART=295;
++public final static short JAVADOCEND=296;
++public final static short JAVADOCEOL=297;
++public final static short CODEBLOCK=298;
++public final static short PARENBLOCK=299;
++public final static short INTEGER_LITERAL=300;
++public final static short FLOAT_LITERAL=301;
++public final static short IDENTIFIER=302;
++public final static short JAVADOCTAG=303;
++public final static short JAVADOCTOKEN=304;
 +public final static short YYERRCODE=256;
 +final static short yylhs[] = {                           -1,
-+    0,    0,    6,    6,    6,    6,    7,    8,    9,   11,
-+   13,   13,   14,   12,   12,   16,   15,    1,    1,    1,
-+    5,    3,    3,    2,    2,    2,    2,    2,    2,    2,
-+    2,    2,    2,    2,   17,   17,    4,   18,   18,   19,
-+   19,   10,   22,   20,   23,   23,   24,   24,   27,   27,
-+   28,   29,   29,   30,   30,   25,   25,   32,   31,   31,
-+   26,   26,   33,   33,   21,   35,   21,   34,   34,   34,
-+   34,   34,   34,   34,   39,   39,   41,   36,   40,   42,
-+   40,   37,   38,   43,   45,   45,   46,   46,   44,   44,
-+   48,   48,   47,   49,   49,
++    0,   10,    0,    9,    9,    9,    9,    9,    9,   11,
++   12,   12,   13,   16,   18,   18,   19,   19,   17,   17,
++   21,   20,    1,    1,    1,    8,    5,    5,    2,    2,
++    2,    2,    2,    2,    2,    2,    2,    2,    2,   22,
++   22,   22,   23,   23,   24,   24,   24,   24,   24,   24,
++    7,    3,   25,   25,   26,   26,   27,   27,   27,   27,
++   28,   28,   29,   30,   30,   31,   31,   32,   32,   15,
++   33,   34,   34,   36,   36,   36,   38,   38,   39,   39,
++   39,   39,   14,   41,   42,   42,   42,   43,   43,   44,
++   44,   35,   35,   45,   45,   37,   47,   37,   46,   46,
++   46,   46,   46,   46,   46,   46,    4,    4,   51,   53,
++   48,   52,   54,   52,   49,   49,   50,   55,   56,   56,
++   58,   58,   57,   57,   59,   59,   60,    6,    6,   40,
++   40,   61,   61,
 +};
 +final static short yylen[] = {                            2,
-+    0,    2,    1,    1,    1,    1,    3,    3,    4,    1,
-+    0,    2,    1,    0,    2,    0,    3,    1,    3,    3,
-+    2,    0,    3,    1,    1,    1,    1,    1,    1,    1,
-+    1,    1,    1,    1,    0,    2,    3,    0,    3,    1,
-+    3,    4,    0,    7,    1,    1,    0,    3,    1,    3,
-+    2,    0,    2,    1,    3,    0,    2,    0,    3,    3,
-+    0,    2,    1,    3,    0,    0,    3,    1,    1,    1,
-+    1,    2,    1,    1,    1,    1,    0,    6,    0,    0,
-+    4,    5,    4,    4,    0,    2,    1,    3,    0,    2,
-+    0,    3,    3,    0,    2,
++    0,    0,    3,    1,    1,    1,    1,    1,    1,    3,
++    3,    4,    4,    1,    0,    2,    1,    1,    0,    2,
++    0,    3,    1,    3,    3,    2,    0,    3,    1,    1,
++    1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
++    2,    0,    2,    5,    0,    2,    2,    4,    4,    2,
++    3,    2,    0,    3,    1,    3,    1,    1,    3,    3,
++    0,    1,    3,    1,    3,    1,    3,    1,    3,    4,
++    4,    1,    3,    0,    1,    3,    2,    2,    1,    2,
++    2,    3,    4,    6,    1,    1,    2,    0,    2,    1,
++    3,    0,    2,    1,    3,    0,    0,    3,    1,    1,
++    1,    1,    1,    1,    1,    1,    1,    1,    2,    0,
++    6,    0,    0,    4,    8,    7,    5,    3,    0,    2,
++    1,    3,    0,    1,    1,    3,    5,    0,    1,    0,
++    2,    0,    2,
 +};
 +final static short yydefred[] = {                         1,
-+    0,    0,    0,   11,    2,    3,    4,    5,    6,    0,
-+   35,   18,    0,    0,   14,    0,   65,    0,    7,    0,
-+    8,    0,   13,   12,    0,   24,   25,   26,   27,   28,
-+   29,   30,   34,   31,   33,   32,   45,   46,   36,    0,
-+   20,   19,    9,   16,   15,   42,    0,    0,   11,   74,
-+   68,   73,    0,   67,   69,   70,   71,    0,    0,    0,
-+   72,    0,    0,    0,    0,   40,    0,    0,   49,    0,
-+    0,    0,    0,    0,   22,    0,   77,    0,   51,    0,
-+   48,    0,    0,    0,   44,    0,   91,    0,   75,   76,
-+   83,    0,    0,    0,    0,   79,    0,    0,   53,   41,
-+   50,    0,    0,    0,    0,    0,    0,   95,    0,    0,
-+   39,    0,   82,    0,    0,   59,    0,    0,    0,   84,
-+   94,   22,   93,   23,   80,   78,   55,    0,    0,    0,
-+   92,    0,    0,   81,    0,
++    2,    0,    9,    0,    0,   15,    3,    4,    5,    6,
++    7,    8,    0,    0,    0,   23,    0,    0,    0,   19,
++    0,   29,   30,   31,   32,   33,   34,   35,   39,   36,
++   38,   37,   85,   86,    0,    0,   40,   41,    0,    0,
++   96,   10,    0,    0,   11,    0,   18,   17,   16,    0,
++   87,    0,    0,    0,    0,    0,    0,    0,    0,   25,
++   24,   12,   13,   21,   20,    0,   71,   45,    0,    0,
++   62,    0,   77,   70,   96,    0,    0,  131,   78,   83,
++    0,   15,    0,   94,    0,    0,    0,    0,   64,    0,
++    0,   80,    0,    0,   76,  106,   99,  104,  105,    0,
++   98,  100,  101,  102,  103,    0,    0,   52,    0,   46,
++   45,   44,    0,   50,    0,    0,   63,   90,    0,   84,
++   82,  109,    0,    0,    0,    0,    0,   57,    0,   55,
++   95,    0,    0,   68,    0,   65,    0,    0,    0,   27,
++    0,  110,    0,    0,    0,    0,   54,   49,   48,    0,
++   91,    0,    0,    0,  125,    0,    0,    0,    0,   27,
++  112,    0,   59,   60,   56,   69,    0,  118,  130,    0,
++    0,  107,  108,  117,    0,    0,    0,   27,  133,    0,
++  126,    0,   28,    0,  113,  111,    0,  129,    0,    0,
++  116,    0,    0,   27,  127,  114,  115,
 +};
 +final static short yydgoto[] = {                          1,
-+   63,   39,   94,   66,   77,    5,    6,    7,    8,    9,
-+   15,   22,   16,   24,   45,   49,   18,   75,   67,   10,
-+   25,   11,   40,   59,   71,   85,   68,   69,   79,   99,
-+   83,  102,  105,   54,   47,   55,   56,   57,   91,  114,
-+   96,  132,   73,   86,  120,  130,   87,  107,   88,
++   83,   37,  124,  174,  159,  189,  128,  142,    7,    2,
++    8,    9,   54,   11,   12,   20,   46,   21,   49,   65,
++   82,   13,   38,   86,  108,  129,  130,   70,   71,   88,
++   89,  135,   14,   55,   67,   56,   59,   57,   73,   58,
++   15,   39,   91,  119,   85,  101,   81,  102,  103,  104,
++  105,  177,  161,  192,  139,  157,  153,  171,  154,  155,
++  167,
 +};
 +final static short yysindex[] = {                         0,
-+ -114, -286, -286,    0,    0,    0,    0,    0,    0, -255,
-+    0,    0, -158,  -73,    0, -206,    0,  -71,    0, -221,
-+    0, -285,    0,    0, -200,    0,    0,    0,    0,    0,
-+    0,    0,    0,    0,    0,    0,    0,    0,    0, -149,
-+    0,    0,    0,    0,    0,    0, -254, -195,    0,    0,
-+    0,    0, -146,    0,    0,    0,    0, -147, -126, -206,
-+    0, -110, -210, -135,  -90,    0,  -81,  -98,    0, -286,
-+  -89,    0, -229, -286,    0, -110,    0, -286,    0, -147,
-+    0,  -67,  -40, -286,    0,  -65,    0, -101,    0,    0,
-+    0, -185,  -61,  -61, -229,    0,    0, -209,    0,    0,
-+    0,  -64, -286,  -67,  -36,  -53,  -34,    0,  -66, -286,
-+    0,  -57,    0, -213, -286,    0,  -67, -286, -286,    0,
-+    0,    0,    0,    0,    0,    0,    0,  -67,  -67,  -31,
-+    0,  -66, -286,    0,  -67,
++    0,  -69,    0, -290, -208,    0,    0,    0,    0,    0,
++    0,    0,   76, -213, -211,    0,   -8, -290,   -3,    0,
++ -288,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++    0,    0,    0,    0, -212, -146,    0,    0, -157, -228,
++    0,    0, -181,    4,    0, -217,    0,    0,    0, -196,
++    0,  -83,  -71,  -45,  -32,    6,   -2, -279,  -26,    0,
++    0,    0,    0,    0,    0, -290,    0,    0,  -37,   12,
++    0,  -74,    0,    0,    0, -228,   -9,    0,    0,    0,
++ -229,    0, -177,    0,   34,  -86,   16,  -85,    0, -290,
++ -196,    0,   -1,    0,    0,    0,    0,    0,    0,  -38,
++    0,    0,    0,    0,    0, -288, -161,    0, -290,    0,
++    0,    0,   40,    0, -290,  -37,    0,    0,   41,    0,
++    0,    0,   14,   10,    3, -290, -269,    0,  -68,    0,
++    0, -207, -143,    0,   18,    0, -290,    0,   27,    0,
++   14,    0,    5, -290, -290, -161,    0,    0,    0, -290,
++    0,   17,   19,   52,    0, -290, -115,   28,   28,    0,
++    0,   14,    0,    0,    0,    0,   53,    0,    0,   55,
++   56,    0,    0,    0,   69,  -79, -250,    0,    0,   81,
++    0, -290,    0, -115,    0,    0,  -79,    0,   13,   55,
++    0,   13, -115,    0,    0,    0,    0,
 +};
 +final static short yyrindex[] = {                         0,
-+  -58,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-+    0,    0,    0,    0,    0, -204,    0,    0,    0,    0,
-+    0,    0,    0,    0, -253,    0,    0,    0,    0,    0,
++    0,  106,    0,    0,    0,    0,    0,    0,    0,    0,
 +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-+    0,    0,    0,    0,    0,    0, -161,  -97,    0,    0,
-+    0,    0,    0,    0,    0,    0,    0,    0, -119, -139,
-+    0, -252, -235,    0, -202,    0,    0,    0,    0,    0,
-+  -50, -131,    0,    0,    0, -249,    0,    0,    0,    0,
-+    0, -192,  -93,    0,    0,    0,    0,    0,    0,    0,
-+    0,    0, -233, -214,    0,    0, -190,    0,    0,    0,
-+    0, -103,    0, -184,  -49, -226,  -56,    0,    0,    0,
-+    0,    0,    0,    0,    0,    0, -100,    0,    0,    0,
-+    0,    0,    0,    0,    0,    0,    0, -130, -208, -225,
-+    0,    0,    0,    0, -196,
++  -94,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++    0,    0,    0,    0,    0,    0,    0,    0,    0, -238,
++    0,    0,    0,    0,    0,    0,    0,    0,    0,   73,
++    0, -105,  -33,    0,    0,   74, -134,    0, -168,    0,
++    0,    0,    0,    0,    0,    0,    0,    0,    0, -131,
++    0,  -40,    0,    0,    0, -238,    0,    0,    0,    0,
++    1,    0, -167,    0,   77,    0,  -50,    0,    0,    0,
++   73,    0,  -39, -233,    0,    0,    0,    0,    0,    0,
++    0,    0,    0,    0,    0,  -81,    0,    0,    0,    0,
++    0,    0, -103,    0,    0,    0,    0,    0,  -80,    0,
++    0,    0, -232, -148,    0,    0,  -49,    0,    0,    0,
++    0,    0,    0,    0,  -48,    0,    0,   15, -111,    0,
++ -235,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++    0,   64,    0,   71,    0,    0,    0, -144, -169,    0,
++    0,    0,    0,    0,    0,    0,    0,    0,    0, -239,
++ -108,    0,    0,    0,    0, -111,    0,    0,    0,   60,
++    0,    0,    0,    0,    0,    0, -111,    0,    0, -121,
++    0,    0,    0,    0,    0,    0,    0,
 +};
 +final static short yygindex[] = {                         0,
-+   -2,  144,  158,  -51,  -39,    0,    0,    0,  187,  188,
-+    0,    0,  189,    0,    0,    0,  190,  134,   79,    0,
-+    0,    0,    0,    0,    0,    0,    0,  159,    0,    0,
-+    0,    0,    0,    0,    0,    0,    0,    0,  -22,    0,
-+    0,    0,  164,    0,    0,    0,  120,    0,    0,
++   -4,  191,  -63, -109,   36,    0,  -95,  -52,    0,    0,
++    0,    0,    2,  282,  283,    0,    0,  285,    0,    0,
++    0,  284,  -56,  257,  245,    0,  239,    0,  286,    0,
++  271,    0,    0,    0,  297,  313,  315,    0,  333,   75,
++    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++    0,    0,    0,    0, -133, -170,    0,    0,    0,  223,
++    0,
 +};
-+final static int YYTABLESIZE=241;
-+final static short yytable[] = {                         13,
-+   14,   64,   50,   66,   43,   18,   12,   22,   44,   22,
-+   66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
-+   66,   66,   66,   38,   17,   37,   97,   89,  100,   18,
-+   85,   86,   22,   18,    4,   66,  109,   66,   41,   66,
-+   18,   22,   21,   89,   21,  125,   38,   20,   87,  110,
-+   87,   38,   38,   37,   37,   18,   18,   38,  100,   37,
-+   88,   90,   88,  127,   85,   86,   58,   82,   40,  123,
-+   21,   42,  113,  110,   63,   74,   21,   90,  115,   18,
-+   46,  104,   87,   18,   52,   10,   58,   58,   23,   10,
-+   58,  126,  134,   58,   88,   63,   54,   40,   19,   20,
-+  117,  111,   35,   35,   35,   35,   35,   35,   35,   35,
-+   35,   35,   35,   43,   43,  128,  129,   26,   27,   28,
-+   29,   30,   31,   32,   33,   34,   35,   36,   64,   35,
-+  135,   35,   94,   94,   94,   94,   94,   94,   94,   94,
-+   94,   94,   94,   48,   61,   65,   62,    2,    3,   64,
-+   17,   70,   92,   89,   17,   38,   98,   76,   60,   56,
-+   56,   94,   26,   27,   28,   29,   30,   31,   32,   33,
-+   34,   35,   36,   72,    4,   38,   38,   80,   60,   60,
-+   47,   47,   47,   21,   20,   57,   57,   78,   81,   84,
-+   20,   12,   26,   27,   28,   29,   30,   31,   32,   33,
-+   34,   35,   36,   37,   38,   43,   43,   43,   43,   43,
-+   43,   43,   43,   43,   43,   43,   43,   43,  103,  106,
-+  112,   74,  118,  119,  121,  124,  122,  133,   90,   61,
-+   62,  108,   93,   51,   52,  116,   53,   60,  101,   95,
-+  131,
++final static int YYTABLESIZE=400;
++static short yytable[];
++static { yytable();}
++static void yytable(){
++yytable = new short[]{                         17,
++   19,   78,   84,   10,  125,  184,  172,  160,   47,  185,
++  144,   16,  145,   44,   77,   48,  193,  121,   74,  134,
++  121,   27,   72,   97,   27,   23,  118,   96,  178,  114,
++  143,   97,   97,   97,   97,   97,   97,   97,   97,   97,
++   97,   97,   97,   97,   97,  131,   74,  173,  163,  164,
++   27,   73,  110,   23,  166,  130,   97,   23,  121,   18,
++   97,   97,   27,  130,   97,    6,    6,  186,   97,   23,
++   40,  180,   41,  151,  191,  114,  111,  148,   63,   60,
++   43,  113,   97,  197,   66,   64,   77,   26,   97,   50,
++   26,   53,   53,   16,   16,   78,   97,   97,   97,   97,
++   97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
++   53,   53,  107,   53,   51,   51,   53,   60,   53,   26,
++   61,   97,   75,   53,   53,   97,   97,  113,   26,   97,
++   51,  127,  149,   97,   53,  122,  195,   53,  122,  196,
++   16,  172,   53,   53,   53,  119,   51,   51,  120,   88,
++   75,  170,   88,   53,   43,   52,   47,   51,   61,   43,
++   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
++   43,   43,   43,  110,  116,  158,  122,  190,   43,   43,
++   47,   47,  173,   43,   43,   47,  119,    3,   43,  120,
++   47,  146,   43,    4,    5,  176,   43,  111,   47,  156,
++   89,   14,  112,   89,   68,  117,  175,   77,   14,   66,
++   58,   67,  152,  187,   22,   16,   79,   81,   69,   79,
++   81,   22,  147,   92,   93,    6,   22,   23,   24,   25,
++   26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
++   66,   58,   67,  152,   79,   81,   61,   61,   42,   43,
++   61,   69,   74,   45,   43,   36,   72,   76,   80,  122,
++   62,   43,   75,  123,   87,   42,   42,   42,   42,   42,
++   42,   42,   42,   42,   42,   42,   42,   42,   42,  130,
++  130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
++   42,   90,   52,  109,   42,  115,  121,  133,   42,  107,
++  137,  138,   42,  123,  141,  156,  162,  168,  130,  150,
++   77,  169,   43,  175,  194,  182,  130,   22,   23,   24,
++   25,   26,   27,   28,   29,   30,   31,   32,  132,  132,
++  132,  132,  132,  132,  132,  132,  132,  132,  132,  188,
++   22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
++   32,   33,   34,   35,   16,  183,   92,  179,   72,  124,
++   93,  128,   98,   99,  100,  132,  106,  132,  140,   36,
++   42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
++   42,   42,   42,   42,  165,  126,  136,  120,   95,   94,
++   79,  181,    0,    0,    0,    0,    0,    0,    0,   42,
 +};
-+final static short yycheck[] = {                          2,
-+    3,   53,  257,  257,  290,  258,  293,  257,  294,  259,
-+  264,  265,  266,  267,  268,  269,  270,  271,  272,  273,
-+  274,  275,  276,  259,  280,  259,   78,  257,   80,  282,
-+  257,  257,  282,  286,  289,  289,   88,  291,  260,  293,
-+  293,  291,  257,  257,  259,  259,  282,  258,  257,  259,
-+  259,  287,  288,  287,  288,  258,  259,  293,  110,  293,
-+  257,  291,  259,  115,  291,  291,  259,   70,  259,  109,
-+  285,  293,   95,  259,  259,  286,  291,  291,  288,  282,
-+  281,   84,  291,  286,  287,  290,  279,  280,  295,  294,
-+  286,  114,  132,  286,  291,  280,  287,  288,  257,  258,
-+  103,  287,  264,  265,  266,  267,  268,  269,  270,  271,
-+  272,  273,  274,  275,  276,  118,  119,  264,  265,  266,
-+  267,  268,  269,  270,  271,  272,  273,  274,  259,  291,
-+  133,  293,  264,  265,  266,  267,  268,  269,  270,  271,
-+  272,  273,  274,  293,  291,  293,  293,  262,  263,  280,
-+  290,  278,   74,  285,  294,  259,   78,  293,  259,  279,
-+  280,  293,  264,  265,  266,  267,  268,  269,  270,  271,
-+  272,  273,  274,  284,  289,  279,  280,  259,  279,  280,
-+  278,  279,  280,  257,  258,  279,  280,  278,  287,  279,
-+  258,  293,  264,  265,  266,  267,  268,  269,  270,  271,
-+  272,  273,  274,  275,  276,  264,  265,  266,  267,  268,
-+  269,  270,  271,  272,  273,  274,  275,  276,  259,  285,
-+  282,  286,  259,  277,  259,  283,  293,  259,  285,  280,
-+  280,   88,   75,   47,   47,  102,   47,   49,   80,   76,
-+  121,
++}
++static short yycheck[];
++static { yycheck(); }
++static void yycheck() {
++yycheck = new short[] {                          4,
++    5,   58,   66,    2,  100,  176,  257,  141,  297,  260,
++  280,  302,  282,   18,  294,  304,  187,  257,  257,  115,
++  260,  257,  302,  257,  260,  258,   90,  257,  162,   86,
++  126,  265,  266,  267,  268,  269,  270,  271,  272,  273,
++  274,  275,  276,  277,  278,  109,  285,  298,  144,  145,
++  286,  285,  260,  286,  150,  294,  290,  290,  298,  268,
++  294,  295,  298,  302,  298,  295,  295,  177,  302,  302,
++  284,  167,  284,  137,  184,  132,  284,  285,  296,  261,
++  258,   86,   81,  193,  281,  303,  294,  257,  257,  302,
++  260,  259,  260,  302,  302,  152,  265,  266,  267,  268,
++  269,  270,  271,  272,  273,  274,  275,  276,  277,  278,
++  259,  260,  290,  281,  259,  260,  284,  261,  286,  289,
++  302,  290,  257,  291,  292,  294,  295,  132,  298,  298,
++  277,  293,  276,  302,  302,  257,  189,  286,  260,  192,
++  302,  257,  291,  292,  302,  257,  291,  292,  257,  281,
++  285,  156,  284,  302,  260,  302,  260,  302,  302,  265,
++  266,  267,  268,  269,  270,  271,  272,  273,  274,  275,
++  276,  277,  278,  260,  260,  140,  298,  182,  284,  285,
++  284,  285,  298,  289,  290,  289,  298,  257,  294,  298,
++  294,  260,  298,  263,  264,  160,  302,  284,  302,  279,
++  281,  296,  289,  284,  288,  291,  286,  294,  303,  260,
++  260,  260,  138,  178,  296,  302,  257,  257,  290,  260,
++  260,  303,  291,  298,  299,  295,  265,  266,  267,  268,
++  269,  270,  271,  272,  273,  274,  275,  276,  277,  278,
++  291,  291,  291,  169,  285,  285,  280,  281,  257,  258,
++  284,  290,  285,  257,  258,  294,  302,  260,  285,  298,
++  257,  258,  257,  302,  302,  265,  266,  267,  268,  269,
++  270,  271,  272,  273,  274,  275,  276,  277,  278,  265,
++  266,  267,  268,  269,  270,  271,  272,  273,  274,  275,
++  290,  280,  302,  260,  294,  280,  298,  258,  298,  290,
++  260,  288,  302,  289,  302,  279,  302,  289,  294,  292,
++  294,  260,  258,  286,  302,  260,  302,  265,  266,  267,
++  268,  269,  270,  271,  272,  273,  274,  275,  265,  266,
++  267,  268,  269,  270,  271,  272,  273,  274,  275,  259,
++  265,  266,  267,  268,  269,  270,  271,  272,  273,  274,
++  275,  276,  277,  278,  302,  287,  284,  167,  285,  289,
++  284,  302,   81,   81,   81,  302,   82,  111,  124,  294,
++  265,  266,  267,  268,  269,  270,  271,  272,  273,  274,
++  275,  276,  277,  278,  146,  100,  116,   91,   76,   75,
++   58,  169,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  294,
 +};
++}
 +final static short YYFINAL=1;
-+final static short YYMAXTOKEN=295;
++final static short YYMAXTOKEN=304;
 +final static String yyname[] = {
 +"end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null,
 +null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
@@ -361,32 +426,39 @@
 +null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 +null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 +null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-+null,null,null,"SEMI","DOT","COMMA","STAR","EQUALS","PACKAGE","IMPORT","PUBLIC",
-+"PROTECTED","PRIVATE","STATIC","FINAL","ABSTRACT","NATIVE","STRICTFP",
-+"SYNCHRONIZED","TRANSIENT","VOLATILE","CLASS","INTERFACE","THROWS","EXTENDS",
-+"IMPLEMENTS","BRACEOPEN","BRACECLOSE","SQUAREOPEN","SQUARECLOSE","PARENOPEN",
-+"PARENCLOSE","LESSTHAN","GREATERTHAN","AMPERSAND","JAVADOCSTART","JAVADOCEND",
-+"CODEBLOCK","STRING","IDENTIFIER","JAVADOCTAG","JAVADOCTOKEN",
++null,null,null,"SEMI","DOT","DOTDOTDOT","COMMA","STAR","EQUALS","PACKAGE",
++"IMPORT","PUBLIC","PROTECTED","PRIVATE","STATIC","FINAL","ABSTRACT","NATIVE",
++"STRICTFP","SYNCHRONIZED","TRANSIENT","VOLATILE","CLASS","INTERFACE","ENUM",
++"THROWS","EXTENDS","IMPLEMENTS","SUPER","DEFAULT","BRACEOPEN","BRACECLOSE",
++"SQUAREOPEN","SQUARECLOSE","PARENOPEN","PARENCLOSE","LESSTHAN","GREATERTHAN",
++"AMPERSAND","QUERY","AT","JAVADOCSTART","JAVADOCEND","JAVADOCEOL","CODEBLOCK",
++"PARENBLOCK","INTEGER_LITERAL","FLOAT_LITERAL","IDENTIFIER","JAVADOCTAG",
++"JAVADOCTOKEN",
 +};
 +final static String yyrule[] = {
 +"$accept : file",
 +"file :",
-+"file : file filepart",
++"$$1 :",
++"file : file $$1 filepart",
 +"filepart : package",
 +"filepart : import",
 +"filepart : javadoc",
 +"filepart : class",
++"filepart : enum",
++"filepart : SEMI",
 +"package : PACKAGE fullidentifier SEMI",
 +"import : IMPORT fullidentifier SEMI",
++"import : IMPORT STATIC fullidentifier SEMI",
 +"javadoc : JAVADOCSTART javadocdescription javadoctags JAVADOCEND",
 +"javadocdescription : javadoctokens",
 +"javadoctokens :",
 +"javadoctokens : javadoctokens javadoctoken",
 +"javadoctoken : JAVADOCTOKEN",
++"javadoctoken : JAVADOCEOL",
 +"javadoctags :",
 +"javadoctags : javadoctags javadoctag",
-+"$$1 :",
-+"javadoctag : JAVADOCTAG $$1 javadoctokens",
++"$$2 :",
++"javadoctag : JAVADOCTAG $$2 javadoctokens",
 +"fullidentifier : IDENTIFIER",
 +"fullidentifier : fullidentifier DOT IDENTIFIER",
 +"fullidentifier : fullidentifier DOT STAR",
@@ -404,70 +476,103 @@
 +"modifier : VOLATILE",
 +"modifier : TRANSIENT",
 +"modifier : STRICTFP",
++"modifiers : modifiers modifier",
++"modifiers : modifiers annotation",
 +"modifiers :",
-+"modifiers : modifiers modifier",
-+"type : fullidentifier typearguments dimensions",
-+"typearguments :",
-+"typearguments : LESSTHAN typelist GREATERTHAN",
-+"typelist : type",
-+"typelist : typelist COMMA type",
++"annotation : AT IDENTIFIER",
++"annotation : AT IDENTIFIER PARENOPEN annotationarglist PARENCLOSE",
++"annotationarglist :",
++"annotationarglist : annotationarglist COMMA",
++"annotationarglist : annotationarglist fullidentifier",
++"annotationarglist : annotationarglist fullidentifier DOT CLASS",
++"annotationarglist : annotationarglist BRACEOPEN annotationarglist BRACECLOSE",
++"annotationarglist : annotationarglist annotation",
++"type : classtype opt_typearguments dimensions",
++"classtype : fullidentifier opt_typearguments",
++"opt_typearguments :",
++"opt_typearguments : LESSTHAN typearglist GREATERTHAN",
++"typearglist : typearg",
++"typearglist : typearglist COMMA typearg",
++"typearg : type",
++"typearg : QUERY",
++"typearg : QUERY EXTENDS type",
++"typearg : QUERY SUPER type",
++"opt_typeparams :",
++"opt_typeparams : typeparams",
++"typeparams : LESSTHAN typeparamlist GREATERTHAN",
++"typeparamlist : typeparam",
++"typeparamlist : typeparamlist COMMA typeparam",
++"typeparam : IDENTIFIER",
++"typeparam : IDENTIFIER EXTENDS typeboundlist",
++"typeboundlist : type",
++"typeboundlist : typeboundlist AMPERSAND type",
++"enum : enum_definition BRACEOPEN enum_body BRACECLOSE",
++"enum_definition : modifiers ENUM IDENTIFIER opt_implements",
++"enum_body : enum_values",
++"enum_body : enum_values SEMI members",
++"enum_values :",
++"enum_values : enum_value",
++"enum_values : enum_value COMMA enum_values",
++"enum_value : javadoc enum_constructor",
++"enum_value : opt_annotations enum_constructor",
++"enum_constructor : IDENTIFIER",
++"enum_constructor : IDENTIFIER CODEBLOCK",
++"enum_constructor : IDENTIFIER PARENBLOCK",
++"enum_constructor : IDENTIFIER PARENBLOCK CODEBLOCK",
 +"class : classdefinition BRACEOPEN members BRACECLOSE",
-+"$$2 :",
-+"classdefinition : $$2 modifiers classorinterface IDENTIFIER typeparams extends implements",
++"classdefinition : modifiers classorinterface IDENTIFIER opt_typeparams opt_extends opt_implements",
 +"classorinterface : CLASS",
 +"classorinterface : INTERFACE",
-+"typeparams :",
-+"typeparams : LESSTHAN typeparamlist GREATERTHAN",
-+"typeparamlist : typeparam",
-+"typeparamlist : typelist COMMA typeparam",
-+"typeparam : IDENTIFIER typebounds",
-+"typebounds :",
-+"typebounds : EXTENDS typeboundlist",
-+"typeboundlist : type",
-+"typeboundlist : typelist AMPERSAND type",
-+"extends :",
-+"extends : EXTENDS extendslist",
++"classorinterface : AT INTERFACE",
++"opt_extends :",
++"opt_extends : EXTENDS extendslist",
++"extendslist : classtype",
++"extendslist : extendslist COMMA classtype",
++"opt_implements :",
++"opt_implements : IMPLEMENTS implementslist",
++"implementslist : classtype",
++"implementslist : implementslist COMMA classtype",
++"members :",
 +"$$3 :",
-+"extendslist : fullidentifier $$3 typearguments",
-+"extendslist : extendslist COMMA fullidentifier",
-+"implements :",
-+"implements : IMPLEMENTS implementslist",
-+"implementslist : fullidentifier",
-+"implementslist : implementslist COMMA fullidentifier",
-+"members :",
-+"$$4 :",
-+"members : members $$4 member",
++"members : members $$3 member",
 +"member : javadoc",
 +"member : fields",
 +"member : method",
 +"member : constructor",
-+"member : modifiers CODEBLOCK",
++"member : static_block",
 +"member : class",
++"member : enum",
 +"member : SEMI",
 +"memberend : SEMI",
 +"memberend : CODEBLOCK",
++"static_block : modifiers CODEBLOCK",
++"$$4 :",
++"fields : modifiers type arrayidentifier $$4 extrafields memberend",
++"extrafields :",
 +"$$5 :",
-+"fields : modifiers type arrayidentifier $$5 extrafields memberend",
-+"extrafields :",
-+"$$6 :",
-+"extrafields : extrafields COMMA $$6 arrayidentifier",
-+"method : modifiers type IDENTIFIER methoddef memberend",
-+"constructor : modifiers IDENTIFIER methoddef memberend",
-+"methoddef : PARENOPEN params PARENCLOSE exceptions",
-+"exceptions :",
-+"exceptions : THROWS exceptionlist",
++"extrafields : extrafields COMMA $$5 arrayidentifier",
++"method : modifiers typeparams type IDENTIFIER methoddef dimensions opt_exceptions memberend",
++"method : modifiers type IDENTIFIER methoddef dimensions opt_exceptions memberend",
++"constructor : modifiers IDENTIFIER methoddef opt_exceptions memberend",
++"methoddef : PARENOPEN opt_params PARENCLOSE",
++"opt_exceptions :",
++"opt_exceptions : THROWS exceptionlist",
 +"exceptionlist : fullidentifier",
 +"exceptionlist : exceptionlist COMMA fullidentifier",
-+"params :",
-+"params : param paramlist",
-+"paramlist :",
++"opt_params :",
++"opt_params : paramlist",
++"paramlist : param",
 +"paramlist : paramlist COMMA param",
-+"param : parammodifiers type arrayidentifier",
-+"parammodifiers :",
-+"parammodifiers : parammodifiers modifier",
++"param : opt_annotations opt_parammodifiers type varargs arrayidentifier",
++"varargs :",
++"varargs : DOTDOTDOT",
++"opt_annotations :",
++"opt_annotations : opt_annotations annotation",
++"opt_parammodifiers :",
++"opt_parammodifiers : opt_parammodifiers modifier",
 +};
 +
-+//#line 236 "src/grammar/parser.y"
++//#line 333 "src/grammar/parser.y"
 +
 +private Lexer lexer;
 +private Builder builder;
@@ -478,10 +583,21 @@
 +private java.util.Set modifiers = new java.util.HashSet();
 +private TypeDef fieldType;
 +private int line;
++private int column;
++private boolean debugLexer;
 +
++private void appendToBuffer(String word) {
++    if (textBuffer.length() > 0) {
++        char lastChar = textBuffer.charAt(textBuffer.length() - 1);
++        if (!Character.isWhitespace(lastChar)) {
++            textBuffer.append(' ');
++        }
++    }
++    textBuffer.append(word);
++}
++
 +private String buffer() {
-+    if (textBuffer.length() > 0) textBuffer.deleteCharAt(textBuffer.length() - 1);
-+    String result = textBuffer.toString();
++    String result = textBuffer.toString().trim();
 +    textBuffer.setLength(0);
 +    return result;
 +}
@@ -491,6 +607,14 @@
 +    this.builder = builder;
 +}
 +
++public void setDebugParser(boolean debug) {
++    yydebug = debug;
++}
++
++public void setDebugLexer(boolean debug) {
++    debugLexer = debug;
++}
++
 +/**
 + * Parse file. Return true if successful.
 + */
@@ -503,6 +627,9 @@
 +        final int result = lexer.lex();
 +        yylval = new Value();
 +        yylval.sval = lexer.text();
++        if (debugLexer) {
++            System.err.println("Token: " + yyname[result] + " \"" + yylval.sval + "\"");
++        }
 +        return result;
 +    }
 +    catch(IOException e) {
@@ -517,20 +644,22 @@
 +private class Value {
 +    String sval;
 +    int ival;
++    boolean bval;
 +    TypeDef type;
 +}
 +
-+private void makeField(TypeDef field) {
++private void makeField(TypeDef field, String body) {
 +    FieldDef fd = new FieldDef();
 +    fd.lineNumber = line;
 +    fd.modifiers.addAll(modifiers); 
 +    fd.type = fieldType.name; 
 +    fd.dimensions = fieldType.dimensions + field.dimensions;
 +    fd.name = field.name;
++    fd.body = body;
 +    builder.addField(fd);
 +}
 +            
-+//#line 477 "Parser.java"
++//#line 600 "Parser.java"
 +//###############################################################
 +// method: yylexdebug : check lexer state
 +//###############################################################
@@ -568,6 +697,7 @@
 +  yychar = -1;          //impossible char forces a read
 +  yystate=0;            //initial state
 +  state_push(yystate);  //save it
++  val_push(yylval);     //save empty value
 +  while (true) //until parsing is done, either correctly, or w/error
 +    {
 +    doaction=true;
@@ -682,228 +812,311 @@
 +    switch(yyn)
 +      {
 +//########## USER-SUPPLIED ACTIONS ##########
-+case 7:
-+//#line 32 "src/grammar/parser.y"
++case 2:
++//#line 28 "src/grammar/parser.y"
++{ line = lexer.getLine(); }
++break;
++case 10:
++//#line 34 "src/grammar/parser.y"
 +{ builder.addPackage(val_peek(1).sval); }
 +break;
-+case 8:
-+//#line 35 "src/grammar/parser.y"
++case 11:
++//#line 37 "src/grammar/parser.y"
 +{ builder.addImport(val_peek(1).sval); }
 +break;
-+case 10:
-+//#line 43 "src/grammar/parser.y"
++case 12:
++//#line 38 "src/grammar/parser.y"
++{ builder.addImport(val_peek(1).sval); }
++break;
++case 14:
++//#line 46 "src/grammar/parser.y"
 +{ 
 +        builder.addJavaDoc(buffer()); 
 +    }
 +break;
-+case 13:
-+//#line 50 "src/grammar/parser.y"
-+{ 
-+        textBuffer.append(val_peek(0).sval); textBuffer.append(' '); 
++case 17:
++//#line 53 "src/grammar/parser.y"
++{
++        appendToBuffer(val_peek(0).sval);
 +    }
 +break;
-+case 16:
-+//#line 57 "src/grammar/parser.y"
++case 18:
++//#line 56 "src/grammar/parser.y"
++{
++        textBuffer.append('\n');
++    }
++break;
++case 21:
++//#line 63 "src/grammar/parser.y"
 +{ line = lexer.getLine(); }
 +break;
-+case 17:
-+//#line 58 "src/grammar/parser.y"
++case 22:
++//#line 64 "src/grammar/parser.y"
 +{
 +        builder.addJavaDocTag(new TagDef(val_peek(2).sval.substring(1), buffer(), line)); 
 +    }
 +break;
-+case 18:
-+//#line 67 "src/grammar/parser.y"
++case 23:
++//#line 73 "src/grammar/parser.y"
 +{ yyval.sval = val_peek(0).sval; }
 +break;
-+case 19:
-+//#line 68 "src/grammar/parser.y"
++case 24:
++//#line 74 "src/grammar/parser.y"
 +{ yyval.sval = val_peek(2).sval + '.' + val_peek(0).sval; }
 +break;
-+case 20:
-+//#line 69 "src/grammar/parser.y"
++case 25:
++//#line 75 "src/grammar/parser.y"
 +{ yyval.sval = val_peek(2).sval + ".*"; }
 +break;
-+case 21:
-+//#line 72 "src/grammar/parser.y"
++case 26:
++//#line 78 "src/grammar/parser.y"
 +{
-+        yyval.type = new TypeDef(val_peek(1).sval,val_peek(0).ival); 
++        yyval.type = new TypeDef(val_peek(1).sval,val_peek(0).ival);
 +    }
 +break;
-+case 22:
-+//#line 77 "src/grammar/parser.y"
++case 27:
++//#line 83 "src/grammar/parser.y"
 +{ yyval.ival = 0; }
 +break;
-+case 23:
-+//#line 78 "src/grammar/parser.y"
++case 28:
++//#line 84 "src/grammar/parser.y"
 +{
 +        yyval.ival = val_peek(2).ival + 1; 
 +    }
 +break;
-+case 24:
-+//#line 84 "src/grammar/parser.y"
++case 29:
++//#line 90 "src/grammar/parser.y"
 +{ yyval.sval = "public"; }
 +break;
-+case 25:
-+//#line 85 "src/grammar/parser.y"
++case 30:
++//#line 91 "src/grammar/parser.y"
 +{ yyval.sval = "protected"; }
 +break;
-+case 26:
-+//#line 86 "src/grammar/parser.y"
++case 31:
++//#line 92 "src/grammar/parser.y"
 +{ yyval.sval = "private"; }
 +break;
-+case 27:
-+//#line 87 "src/grammar/parser.y"
++case 32:
++//#line 93 "src/grammar/parser.y"
 +{ yyval.sval = "static"; }
 +break;
-+case 28:
-+//#line 88 "src/grammar/parser.y"
++case 33:
++//#line 94 "src/grammar/parser.y"
 +{ yyval.sval = "final"; }
 +break;
-+case 29:
-+//#line 89 "src/grammar/parser.y"
++case 34:
++//#line 95 "src/grammar/parser.y"
 +{ yyval.sval = "abstract"; }
 +break;
-+case 30:
-+//#line 90 "src/grammar/parser.y"
++case 35:
++//#line 96 "src/grammar/parser.y"
 +{ yyval.sval = "native"; }
 +break;
-+case 31:
-+//#line 91 "src/grammar/parser.y"
++case 36:
++//#line 97 "src/grammar/parser.y"
 +{ yyval.sval = "synchronized"; }
 +break;
-+case 32:
-+//#line 92 "src/grammar/parser.y"
++case 37:
++//#line 98 "src/grammar/parser.y"
 +{ yyval.sval = "volatile"; }
 +break;
-+case 33:
-+//#line 93 "src/grammar/parser.y"
++case 38:
++//#line 99 "src/grammar/parser.y"
 +{ yyval.sval = "transient"; }
 +break;
-+case 34:
-+//#line 94 "src/grammar/parser.y"
++case 39:
++//#line 100 "src/grammar/parser.y"
 +{ yyval.sval = "strictfp"; }
 +break;
-+case 36:
-+//#line 96 "src/grammar/parser.y"
++case 40:
++//#line 103 "src/grammar/parser.y"
 +{ modifiers.add(val_peek(0).sval); }
 +break;
-+case 37:
-+//#line 102 "src/grammar/parser.y"
++case 51:
++//#line 125 "src/grammar/parser.y"
 +{
-+        yyval.type = new TypeDef(val_peek(2).sval,val_peek(0).ival); 
++        yyval.type = new TypeDef(val_peek(2).sval,val_peek(0).ival);
 +    }
 +break;
-+case 42:
-+//#line 116 "src/grammar/parser.y"
-+{ 
-+        builder.endClass(); 
++case 52:
++//#line 130 "src/grammar/parser.y"
++{
++        yyval.sval = val_peek(1).sval; 
 +    }
 +break;
-+case 43:
-+//#line 121 "src/grammar/parser.y"
-+{ line = lexer.getLine(); }
++case 70:
++//#line 164 "src/grammar/parser.y"
++{
++  builder.endClass();
++}
 +break;
-+case 44:
-+//#line 121 "src/grammar/parser.y"
++case 71:
++//#line 168 "src/grammar/parser.y"
 +{
++    cls.lineNumber = line;
++    cls.modifiers.addAll(modifiers); modifiers.clear();
++    cls.name = val_peek(1).sval;
++    cls.type = ClassDef.ENUM;
++    builder.beginClass(cls);
++    cls = new ClassDef();
++}
++break;
++case 83:
++//#line 195 "src/grammar/parser.y"
++{
++        builder.endClass(); 
++    }
++break;
++case 84:
++//#line 200 "src/grammar/parser.y"
++{
 +        cls.lineNumber = line;
 +        cls.modifiers.addAll(modifiers); modifiers.clear(); 
-+        cls.name = val_peek(3).sval; 
++        cls.name = val_peek(3).sval;
 +        builder.beginClass(cls); 
 +        cls = new ClassDef(); 
 +    }
 +break;
-+case 46:
-+//#line 131 "src/grammar/parser.y"
-+{ cls.isInterface = true; }
++case 85:
++//#line 209 "src/grammar/parser.y"
++{ cls.type = ClassDef.CLASS; }
 +break;
-+case 58:
-+//#line 150 "src/grammar/parser.y"
++case 86:
++//#line 210 "src/grammar/parser.y"
++{ cls.type = ClassDef.INTERFACE; }
++break;
++case 87:
++//#line 211 "src/grammar/parser.y"
++{ cls.type = ClassDef.ANNOTATION_TYPE; }
++break;
++case 90:
++//#line 216 "src/grammar/parser.y"
 +{ cls.extendz.add(val_peek(0).sval); }
 +break;
-+case 60:
-+//#line 151 "src/grammar/parser.y"
++case 91:
++//#line 217 "src/grammar/parser.y"
 +{ cls.extendz.add(val_peek(0).sval); }
 +break;
-+case 63:
-+//#line 156 "src/grammar/parser.y"
++case 94:
++//#line 222 "src/grammar/parser.y"
 +{ cls.implementz.add(val_peek(0).sval); }
 +break;
-+case 64:
-+//#line 157 "src/grammar/parser.y"
++case 95:
++//#line 223 "src/grammar/parser.y"
 +{ cls.implementz.add(val_peek(0).sval); }
 +break;
-+case 66:
-+//#line 159 "src/grammar/parser.y"
++case 97:
++//#line 225 "src/grammar/parser.y"
 +{ line = lexer.getLine(); }
 +break;
-+case 77:
-+//#line 176 "src/grammar/parser.y"
++case 107:
++//#line 238 "src/grammar/parser.y"
 +{
++      yyval.sval = "";
++    }
++break;
++case 108:
++//#line 241 "src/grammar/parser.y"
++{
++	  yyval.sval = lexer.getCodeBody();
++    }
++break;
++case 109:
++//#line 246 "src/grammar/parser.y"
++{ modifiers.clear(); }
++break;
++case 110:
++//#line 251 "src/grammar/parser.y"
++{
 +        fieldType = val_peek(1).type;
-+        makeField(val_peek(0).type);
++        makeField(val_peek(0).type, lexer.getCodeBody());
 +    }
 +break;
-+case 78:
-+//#line 180 "src/grammar/parser.y"
++case 111:
++//#line 255 "src/grammar/parser.y"
 +{
 +        modifiers.clear();
 +    }
 +break;
-+case 80:
-+//#line 185 "src/grammar/parser.y"
++case 113:
++//#line 260 "src/grammar/parser.y"
 +{ line = lexer.getLine(); }
 +break;
-+case 81:
-+//#line 185 "src/grammar/parser.y"
++case 114:
++//#line 260 "src/grammar/parser.y"
 +{
-+        makeField(val_peek(0).type);
++        makeField(val_peek(0).type, lexer.getCodeBody());
 +    }
 +break;
-+case 82:
-+//#line 193 "src/grammar/parser.y"
++case 115:
++//#line 268 "src/grammar/parser.y"
 +{
-+    	mth.lineNumber = line;
++        mth.lineNumber = line;
 +        mth.modifiers.addAll(modifiers); modifiers.clear(); 
-+        mth.returns = val_peek(3).type.name; mth.dimensions = val_peek(3).type.dimensions; 
-+        mth.name = val_peek(2).sval;
++        mth.returns = val_peek(5).type.name;
++        mth.dimensions = val_peek(2).ival + val_peek(5).type.dimensions; /* return dimensions can be specified after return type OR after params*/
++        mth.name = val_peek(4).sval;
++        mth.body = val_peek(0).sval;
 +        builder.addMethod(mth);
 +        mth = new MethodDef(); 
 +    }
 +break;
-+case 83:
-+//#line 203 "src/grammar/parser.y"
++case 116:
++//#line 278 "src/grammar/parser.y"
 +{
-+    	mth.lineNumber = line;
++        mth.lineNumber = line;
++        mth.modifiers.addAll(modifiers); modifiers.clear();
++        mth.returns = val_peek(5).type.name;
++        mth.dimensions = val_peek(2).ival + val_peek(5).type.dimensions; /* return dimensions can be specified after return type OR after params*/
++        mth.name = val_peek(4).sval;
++        mth.body = val_peek(0).sval;
++        builder.addMethod(mth);
++        mth = new MethodDef();
++    }
++break;
++case 117:
++//#line 290 "src/grammar/parser.y"
++{
++        mth.lineNumber = line;
 +        mth.modifiers.addAll(modifiers); modifiers.clear(); 
-+        mth.constructor = true; mth.name = val_peek(2).sval; 
++        mth.constructor = true; mth.name = val_peek(3).sval;
++        mth.body = val_peek(0).sval;
 +        builder.addMethod(mth);
 +        mth = new MethodDef(); 
 +    }
 +break;
-+case 87:
-+//#line 216 "src/grammar/parser.y"
++case 121:
++//#line 304 "src/grammar/parser.y"
 +{ mth.exceptions.add(val_peek(0).sval); }
 +break;
-+case 88:
-+//#line 217 "src/grammar/parser.y"
++case 122:
++//#line 305 "src/grammar/parser.y"
 +{ mth.exceptions.add(val_peek(0).sval); }
 +break;
-+case 93:
-+//#line 224 "src/grammar/parser.y"
-+{ 
-+        param.name = val_peek(0).type.name; 
-+        param.type = val_peek(1).type.name; 
-+        param.dimensions = val_peek(1).type.dimensions + val_peek(0).type.dimensions; 
-+        mth.params.add(param); param = new FieldDef(); 
++case 127:
++//#line 314 "src/grammar/parser.y"
++{
++        param.name = val_peek(0).type.name;
++        param.type = val_peek(2).type.name;
++        param.dimensions = val_peek(2).type.dimensions + val_peek(0).type.dimensions;
++        param.isVarArgs = val_peek(1).bval;
++        mth.params.add(param);
++        param = new FieldDef();
 +    }
 +break;
-+case 95:
-+//#line 232 "src/grammar/parser.y"
++case 128:
++//#line 324 "src/grammar/parser.y"
++{ yyval.bval = false; }
++break;
++case 129:
++//#line 325 "src/grammar/parser.y"
++{ yyval.bval = true; }
++break;
++case 133:
++//#line 330 "src/grammar/parser.y"
 +{ param.modifiers.add(val_peek(0).sval); }
 +break;
-+//#line 845 "Parser.java"
++//#line 1052 "Parser.java"
 +//########## END OF USER-SUPPLIED ACTIONS ##########
 +    }//switch
 +    //#### Now let's reduce... ####
@@ -914,7 +1127,7 @@
 +    yym = yylhs[yyn];            //select next TERMINAL(on lhs)
 +    if (yystate == 0 && yym == 0)//done? 'rest' state and at first TERMINAL
 +      {
-+      debug("After reduction, shifting from state 0 to state "+YYFINAL+"");
++      if (yydebug) debug("After reduction, shifting from state 0 to state "+YYFINAL+"");
 +      yystate = YYFINAL;         //explicitly say we're done
 +      state_push(YYFINAL);       //and save it
 +      val_push(yyval);           //also save the semantic value of parsing
@@ -936,7 +1149,7 @@
 +        yystate = yytable[yyn]; //get new state
 +      else
 +        yystate = yydgoto[yym]; //else go to new defred
-+      debug("after reduction, shifting from state "+state_peek(0)+" to state "+yystate+"");
++      if (yydebug) debug("after reduction, shifting from state "+state_peek(0)+" to state "+yystate+"");
 +      state_push(yystate);     //going again, so push state & val...
 +      val_push(yyval);         //for next action
 +      }
@@ -961,10 +1174,10 @@
 +
 +}
 +//################### END OF CLASS ##############################
---- /dev/null	2005-04-30 15:48:21.320416232 +0200
-+++ JFlexLexer.java	2005-08-15 04:03:07.423543056 +0200
-@@ -0,0 +1,1069 @@
-+/* The following code was generated by JFlex 1.3.5 on 8/14/05 9:06 PM */
+--- /dev/null	2006-09-11 12:55:45.000000000 +0000
++++ JFlexLexer.java	2007-04-11 13:36:40.000000000 +0000
+@@ -0,0 +1,1287 @@
++/* The following code was generated by JFlex 1.4.1 on 4/11/07 1:31 PM */
 +
 +// class headers
 +package com.thoughtworks.qdox.parser.impl;
@@ -972,250 +1185,446 @@
 +
 +/**
 + * This class is a scanner generated by 
-+ * <a href="http://www.jflex.de/">JFlex</a> 1.3.5
-+ * on 8/14/05 9:06 PM from the specification file
-+ * <tt>file:/home/trygvis/dev/org.debian.pkg-java/libqdox-java/src/grammar/lexer.flex</tt>
++ * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
++ * on 4/11/07 1:31 PM from the specification file
++ * <tt>src/grammar/lexer.flex</tt>
 + */
 +public class JFlexLexer implements Lexer {
 +
 +  /** This character denotes the end of file */
-+  final public static int YYEOF = -1;
++  public static final int YYEOF = -1;
 +
 +  /** initial size of the lookahead buffer */
-+  final private static int YY_BUFFERSIZE = 16384;
++  private static final int ZZ_BUFFERSIZE = 16384;
 +
 +  /** lexical states */
-+  final public static int MULTILINECOMMENT = 14;
-+  final public static int ASSIGNMENT = 6;
-+  final public static int STRING = 8;
-+  final public static int CODEBLOCK = 4;
-+  final public static int YYINITIAL = 0;
-+  final public static int SINGLELINECOMMENT = 12;
-+  final public static int CHAR = 10;
-+  final public static int JAVADOC = 2;
++  public static final int SINGLELINECOMMENT = 14;
++  public static final int ASSIGNMENT = 8;
++  public static final int STRING = 10;
++  public static final int YYINITIAL = 0;
++  public static final int MULTILINECOMMENT = 16;
++  public static final int PARENBLOCK = 6;
++  public static final int CODEBLOCK = 4;
++  public static final int JAVADOC = 2;
++  public static final int CHAR = 12;
 +
 +  /**
-+   * YY_LEXSTATE[l] is the state in the DFA for the lexical state l
-+   * YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l
++   * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
++   * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
 +   *                  at the beginning of a line
 +   * l is of the form l = 2*k, k a non negative integer
 +   */
-+  private final static int YY_LEXSTATE[] = { 
-+     0,  0,  1,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,  8, 8
++  private static final int ZZ_LEXSTATE[] = { 
++     0,  0,  1,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,  8,  8, 
++     9, 9
 +  };
 +
 +  /** 
 +   * Translates characters to character classes
 +   */
-+  final private static String yycmap_packed = 
-+    "\11\0\1\3\1\2\2\0\1\1\22\0\1\3\1\0\1\54\1\0"+
-+    "\1\53\1\0\1\47\1\55\1\43\1\44\1\4\1\0\1\10\1\0"+
-+    "\1\7\1\5\12\53\1\0\1\6\1\45\1\52\1\46\2\0\32\53"+
-+    "\1\41\1\56\1\42\1\0\1\53\1\0\1\12\1\25\1\13\1\27"+
-+    "\1\16\1\32\1\15\1\35\1\17\1\53\1\14\1\26\1\20\1\33"+
-+    "\1\21\1\11\1\53\1\22\1\31\1\23\1\24\1\30\1\37\1\40"+
-+    "\1\34\1\36\1\50\1\0\1\51\uff82\0";
++  private static final String ZZ_CMAP_PACKED = 
++    "\11\56\1\4\1\2\1\0\1\0\1\1\16\56\4\0\1\4\1\0"+
++    "\1\57\1\0\1\55\1\0\1\47\1\60\1\43\1\44\1\3\1\0"+
++    "\1\10\1\0\1\7\1\5\12\56\1\0\1\6\1\45\1\54\1\46"+
++    "\1\50\1\51\32\55\1\41\1\61\1\42\1\0\1\55\1\0\1\12"+
++    "\1\25\1\13\1\27\1\16\1\32\1\15\1\35\1\17\1\55\1\14"+
++    "\1\26\1\20\1\33\1\21\1\11\1\55\1\22\1\31\1\23\1\24"+
++    "\1\30\1\37\1\40\1\34\1\36\1\52\1\0\1\53\1\0\41\56"+
++    "\2\0\4\55\4\0\1\55\2\0\1\56\7\0\1\55\4\0\1\55"+
++    "\5\0\27\55\1\0\37\55\1\0\u013f\55\31\0\162\55\4\0\14\55"+
++    "\16\0\5\55\11\0\1\55\21\0\130\56\5\0\23\56\12\0\1\55"+
++    "\13\0\1\55\1\0\3\55\1\0\1\55\1\0\24\55\1\0\54\55"+
++    "\1\0\46\55\1\0\5\55\4\0\202\55\1\0\4\56\3\0\105\55"+
++    "\1\0\46\55\2\0\2\55\6\0\20\55\41\0\46\55\2\0\1\55"+
++    "\7\0\47\55\11\0\21\56\1\0\27\56\1\0\3\56\1\0\1\56"+
++    "\1\0\2\56\1\0\1\56\13\0\33\55\5\0\3\55\15\0\4\56"+
++    "\14\0\6\56\13\0\32\55\5\0\13\55\16\56\7\0\12\56\4\0"+
++    "\2\55\1\56\143\55\1\0\1\55\10\56\1\0\6\56\2\55\2\56"+
++    "\1\0\4\56\2\55\12\56\3\55\2\0\1\55\17\0\1\56\1\55"+
++    "\1\56\36\55\33\56\2\0\3\55\60\0\46\55\13\56\1\55\u014f\0"+
++    "\3\56\66\55\2\0\1\56\1\55\20\56\2\0\1\55\4\56\3\0"+
++    "\12\55\2\56\2\0\12\56\21\0\3\56\1\0\10\55\2\0\2\55"+
++    "\2\0\26\55\1\0\7\55\1\0\1\55\3\0\4\55\2\0\1\56"+
++    "\1\55\7\56\2\0\2\56\2\0\3\56\11\0\1\56\4\0\2\55"+
++    "\1\0\3\55\2\56\2\0\12\56\4\55\15\0\3\56\1\0\6\55"+
++    "\4\0\2\55\2\0\26\55\1\0\7\55\1\0\2\55\1\0\2\55"+
++    "\1\0\2\55\2\0\1\56\1\0\5\56\4\0\2\56\2\0\3\56"+
++    "\13\0\4\55\1\0\1\55\7\0\14\56\3\55\14\0\3\56\1\0"+
++    "\11\55\1\0\3\55\1\0\26\55\1\0\7\55\1\0\2\55\1\0"+
++    "\5\55\2\0\1\56\1\55\10\56\1\0\3\56\1\0\3\56\2\0"+
++    "\1\55\17\0\2\55\2\56\2\0\12\56\1\0\1\55\17\0\3\56"+
++    "\1\0\10\55\2\0\2\55\2\0\26\55\1\0\7\55\1\0\2\55"+
++    "\1\0\5\55\2\0\1\56\1\55\6\56\3\0\2\56\2\0\3\56"+
++    "\10\0\2\56\4\0\2\55\1\0\3\55\4\0\12\56\1\0\1\55"+
++    "\20\0\1\56\1\55\1\0\6\55\3\0\3\55\1\0\4\55\3\0"+
++    "\2\55\1\0\1\55\1\0\2\55\3\0\2\55\3\0\3\55\3\0"+
++    "\10\55\1\0\3\55\4\0\5\56\3\0\3\56\1\0\4\56\11\0"+
++    "\1\56\17\0\11\56\11\0\1\55\7\0\3\56\1\0\10\55\1\0"+
++    "\3\55\1\0\27\55\1\0\12\55\1\0\5\55\4\0\7\56\1\0"+
++    "\3\56\1\0\4\56\7\0\2\56\11\0\2\55\4\0\12\56\22\0"+
++    "\2\56\1\0\10\55\1\0\3\55\1\0\27\55\1\0\12\55\1\0"+
++    "\5\55\2\0\1\56\1\55\7\56\1\0\3\56\1\0\4\56\7\0"+
++    "\2\56\7\0\1\55\1\0\2\55\4\0\12\56\22\0\2\56\1\0"+
++    "\10\55\1\0\3\55\1\0\27\55\1\0\20\55\4\0\6\56\2\0"+
++    "\3\56\1\0\4\56\11\0\1\56\10\0\2\55\4\0\12\56\22\0"+
++    "\2\56\1\0\22\55\3\0\30\55\1\0\11\55\1\0\1\55\2\0"+
++    "\7\55\3\0\1\56\4\0\6\56\1\0\1\56\1\0\10\56\22\0"+
++    "\2\56\15\0\60\55\1\56\2\55\7\56\4\0\10\55\10\56\1\0"+
++    "\12\56\47\0\2\55\1\0\1\55\2\0\2\55\1\0\1\55\2\0"+
++    "\1\55\6\0\4\55\1\0\7\55\1\0\3\55\1\0\1\55\1\0"+
++    "\1\55\2\0\2\55\1\0\4\55\1\56\2\55\6\56\1\0\2\56"+
++    "\1\55\2\0\5\55\1\0\1\55\1\0\6\56\2\0\12\56\2\0"+
++    "\2\55\42\0\1\55\27\0\2\56\6\0\12\56\13\0\1\56\1\0"+
++    "\1\56\1\0\1\56\4\0\2\56\10\55\1\0\42\55\6\0\24\56"+
++    "\1\0\2\56\4\55\4\0\10\56\1\0\44\56\11\0\1\56\71\0"+
++    "\42\55\1\0\5\55\1\0\2\55\1\0\7\56\3\0\4\56\6\0"+
++    "\12\56\6\0\6\55\4\56\106\0\46\55\12\0\51\55\7\0\132\55"+
++    "\5\0\104\55\5\0\122\55\6\0\7\55\1\0\77\55\1\0\1\55"+
++    "\1\0\4\55\2\0\7\55\1\0\1\55\1\0\4\55\2\0\47\55"+
++    "\1\0\1\55\1\0\4\55\2\0\37\55\1\0\1\55\1\0\4\55"+
++    "\2\0\7\55\1\0\1\55\1\0\4\55\2\0\7\55\1\0\7\55"+
++    "\1\0\27\55\1\0\37\55\1\0\1\55\1\0\4\55\2\0\7\55"+
++    "\1\0\47\55\1\0\23\55\16\0\11\56\56\0\125\55\14\0\u026c\55"+
++    "\2\0\10\55\12\0\32\55\5\0\113\55\3\0\3\55\17\0\15\55"+
++    "\1\0\4\55\3\56\13\0\22\55\3\56\13\0\22\55\2\56\14\0"+
++    "\15\55\1\0\3\55\1\0\2\56\14\0\64\55\40\56\3\0\1\55"+
++    "\3\0\2\55\1\56\2\0\12\56\41\0\3\56\2\0\12\56\6\0"+
++    "\130\55\10\0\51\55\1\56\126\0\35\55\3\0\14\56\4\0\14\56"+
++    "\12\0\12\56\36\55\2\0\5\55\u038b\0\154\55\224\0\234\55\4\0"+
++    "\132\55\6\0\26\55\2\0\6\55\2\0\46\55\2\0\6\55\2\0"+
++    "\10\55\1\0\1\55\1\0\1\55\1\0\1\55\1\0\37\55\2\0"+
++    "\65\55\1\0\7\55\1\0\1\55\3\0\3\55\1\0\7\55\3\0"+
++    "\4\55\2\0\6\55\4\0\15\55\5\0\3\55\1\0\7\55\17\0"+
++    "\4\56\32\0\5\56\20\0\2\55\23\0\1\55\13\0\4\56\6\0"+
++    "\6\56\1\0\1\55\15\0\1\55\40\0\22\55\36\0\15\56\4\0"+
++    "\1\56\3\0\6\56\27\0\1\55\4\0\1\55\2\0\12\55\1\0"+
++    "\1\55\3\0\5\55\6\0\1\55\1\0\1\55\1\0\1\55\1\0"+
++    "\4\55\1\0\3\55\1\0\7\55\3\0\3\55\5\0\5\55\26\0"+
++    "\44\55\u0e81\0\3\55\31\0\11\55\6\56\1\0\5\55\2\0\5\55"+
++    "\4\0\126\55\2\0\2\56\2\0\3\55\1\0\137\55\5\0\50\55"+
++    "\4\0\136\55\21\0\30\55\70\0\20\55\u0200\0\u19b6\55\112\0\u51a6\55"+
++    "\132\0\u048d\55\u0773\0\u2ba4\55\u215c\0\u012e\55\2\0\73\55\225\0\7\55"+
++    "\14\0\5\55\5\0\1\55\1\56\12\55\1\0\15\55\1\0\5\55"+
++    "\1\0\1\55\1\0\2\55\1\0\2\55\1\0\154\55\41\0\u016b\55"+
++    "\22\0\100\55\2\0\66\55\50\0\15\55\3\0\20\56\20\0\4\56"+
++    "\17\0\2\55\30\0\3\55\31\0\1\55\6\0\5\55\1\0\207\55"+
++    "\2\0\1\56\4\0\1\55\13\0\12\56\7\0\32\55\4\0\1\55"+
++    "\1\0\32\55\12\0\132\55\3\0\6\55\2\0\6\55\2\0\6\55"+
++    "\2\0\3\55\3\0\2\55\3\0\2\55\22\0\3\56\4\0";
 +
 +  /** 
 +   * Translates characters to character classes
 +   */
-+  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
++  private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
 +
 +  /** 
-+   * Translates a state to a row index in the transition table
++   * Translates DFA states to action switch labels.
 +   */
-+  final private static int yy_rowMap [] = { 
-+        0,    47,    94,   141,   188,   235,   282,   329,   376,   423, 
-+      470,   423,   517,   423,   423,   423,   564,   611,   658,   705, 
-+      752,   799,   846,   893,   940,   987,  1034,   423,   423,   423, 
-+      423,   423,   423,   423,   423,   423,   423,   423,   423,  1081, 
-+     1128,   423,  1175,  1222,  1269,  1316,   423,   423,   423,   423, 
-+      423,   423,  1363,  1410,  1457,  1504,  1551,   423,  1598,  1645, 
-+     1692,  1739,  1786,  1833,  1880,  1927,  1974,  2021,  2068,  2115, 
-+     2162,  2209,  2256,  2303,   423,  1175,   423,  1222,  2350,  1081, 
-+      423,  1269,   423,  1551,  2397,  2444,  2491,  2538,  2585,  2632, 
-+     2679,  2726,  2773,  2820,  2867,  2914,  2961,  3008,  3055,  3102, 
-+     3149,  3196,  3243,  3290,  3337,  3384,  3431,  3478,  3525,  3572, 
-+     3619,  3666,  3713,  3760,  3807,  3854,  3901,  3948,  3995,  4042, 
-+     4089,  4136,  4183,  4230,   705,  4277,  4324,  4371,  4418,  4465, 
-+     4512,  4559,  4606,  4653,  4700,   705,  4747,  4794,  4841,  4888, 
-+      705,  4935,  4982,   705,  5029,  5076,  5123,   705,  5170,   705, 
-+     5217,  5264,   705,   705,   705,  5311,  5358,   705,  5405,  5452, 
-+     5499,  5546,  5593,  5640,  5687,   705,  5734,  5781,  5828,   705, 
-+      705,  5875,   705,  5922,   705,   705,  5969,   705,  6016,  6063, 
-+      705
-+  };
++  private static final int [] ZZ_ACTION = zzUnpackAction();
 +
++  private static final String ZZ_ACTION_PACKED_0 =
++    "\12\0\2\1\1\2\1\1\1\3\1\4\1\5\14\6"+
++    "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16"+
++    "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\2\26"+
++    "\3\1\3\27\1\30\1\31\1\1\1\32\1\33\1\34"+
++    "\1\35\1\27\1\36\1\37\1\40\1\41\1\42\1\43"+
++    "\1\44\1\45\2\1\2\46\1\1\1\47\1\50\1\0"+
++    "\22\6\1\0\1\51\1\0\1\52\2\53\3\0\1\47"+
++    "\1\0\1\54\1\55\1\56\1\57\1\60\1\61\24\6"+
++    "\1\0\1\62\1\60\1\63\6\6\1\64\23\6\1\65"+
++    "\12\6\1\66\1\6\1\67\4\6\1\70\2\6\1\71"+
++    "\3\6\1\72\2\6\1\73\2\6\1\74\1\75\1\76"+
++    "\2\6\1\77\3\6\1\22\4\6\1\100\3\6\1\101"+
++    "\1\102\1\6\1\103\1\6\1\104\1\105\1\6\1\106"+
++    "\2\6\1\107";
++
++  private static int [] zzUnpackAction() {
++    int [] result = new int[222];
++    int offset = 0;
++    offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
++    return result;
++  }
++
++  private static int zzUnpackAction(String packed, int offset, int [] result) {
++    int i = 0;       /* index in packed string  */
++    int j = offset;  /* index in unpacked array */
++    int l = packed.length();
++    while (i < l) {
++      int count = packed.charAt(i++);
++      int value = packed.charAt(i++);
++      do result[j++] = value; while (--count > 0);
++    }
++    return j;
++  }
++
++
 +  /** 
-+   * The packed transition table of the DFA (part 0)
++   * Translates a state to a row index in the transition table
 +   */
-+  final private static String yy_packed0 = 
-+    "\1\12\1\13\2\12\1\14\1\15\1\16\1\17\1\20"+
-+    "\1\21\1\22\1\23\2\24\1\25\1\26\3\24\1\27"+
-+    "\4\24\1\30\1\31\1\32\1\33\5\24\1\34\1\35"+
-+    "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45"+
-+    "\1\24\1\46\1\47\1\12\1\50\1\51\1\52\1\12"+
-+    "\1\53\53\50\1\51\1\52\1\54\1\55\52\50\1\12"+
-+    "\1\13\3\12\1\56\42\12\1\57\1\60\2\12\1\46"+
-+    "\1\47\2\12\1\13\3\12\1\56\1\61\1\12\1\62"+
-+    "\30\12\1\57\1\63\1\57\1\63\3\12\1\57\1\63"+
-+    "\2\12\1\46\1\47\2\12\1\13\52\12\1\64\1\12"+
-+    "\1\65\1\12\1\13\53\12\1\64\1\66\1\12\1\67"+
-+    "\1\64\55\12\1\13\2\12\1\70\52\12\61\0\1\12"+
-+    "\60\0\1\71\1\72\62\0\1\24\1\73\7\24\1\74"+
-+    "\1\24\1\75\14\24\12\0\1\24\14\0\14\24\1\76"+
-+    "\13\24\12\0\1\24\14\0\15\24\1\77\12\24\12\0"+
-+    "\1\24\14\0\30\24\12\0\1\24\14\0\27\24\1\100"+
-+    "\12\0\1\24\14\0\7\24\1\101\12\24\1\102\5\24"+
-+    "\12\0\1\24\14\0\11\24\1\103\12\24\1\104\3\24"+
-+    "\12\0\1\24\14\0\10\24\1\105\17\24\12\0\1\24"+
-+    "\14\0\12\24\1\106\10\24\1\107\4\24\12\0\1\24"+
-+    "\14\0\6\24\1\110\21\24\12\0\1\24\14\0\1\24"+
-+    "\1\111\26\24\12\0\1\24\3\0\1\50\3\0\1\112"+
-+    "\52\50\2\0\1\52\54\0\1\50\3\113\1\114\1\115"+
-+    "\51\50\3\0\1\116\1\117\52\0\1\120\3\121\1\122"+
-+    "\1\115\51\120\4\0\1\123\1\72\125\0\1\12\1\0"+
-+    "\1\12\55\0\2\12\2\0\1\64\61\0\1\64\55\0"+
-+    "\1\124\63\0\2\24\1\125\25\24\12\0\1\24\14\0"+
-+    "\6\24\1\126\1\24\1\127\17\24\12\0\1\24\14\0"+
-+    "\14\24\1\130\13\24\12\0\1\24\14\0\20\24\1\131"+
-+    "\7\24\12\0\1\24\14\0\1\24\1\132\26\24\12\0"+
-+    "\1\24\14\0\12\24\1\133\15\24\12\0\1\24\14\0"+
-+    "\1\134\27\24\12\0\1\24\14\0\12\24\1\135\15\24"+
-+    "\12\0\1\24\14\0\1\24\1\136\26\24\12\0\1\24"+
-+    "\14\0\11\24\1\137\16\24\12\0\1\24\14\0\15\24"+
-+    "\1\140\12\24\12\0\1\24\14\0\1\24\1\141\7\24"+
-+    "\1\142\16\24\12\0\1\24\14\0\22\24\1\143\5\24"+
-+    "\12\0\1\24\14\0\22\24\1\144\5\24\12\0\1\24"+
-+    "\14\0\12\24\1\145\15\24\12\0\1\24\3\0\1\50"+
-+    "\3\113\1\112\1\0\51\50\4\121\1\117\1\0\51\121"+
-+    "\11\0\3\24\1\146\24\24\12\0\1\24\14\0\17\24"+
-+    "\1\147\10\24\12\0\1\24\14\0\12\24\1\150\15\24"+
-+    "\12\0\1\24\14\0\15\24\1\151\12\24\12\0\1\24"+
-+    "\14\0\12\24\1\152\15\24\12\0\1\24\14\0\20\24"+
-+    "\1\153\7\24\12\0\1\24\14\0\5\24\1\154\22\24"+
-+    "\12\0\1\24\14\0\10\24\1\155\4\24\1\156\12\24"+
-+    "\12\0\1\24\14\0\5\24\1\157\22\24\12\0\1\24"+
-+    "\14\0\22\24\1\160\5\24\12\0\1\24\14\0\10\24"+
-+    "\1\161\17\24\12\0\1\24\14\0\1\24\1\162\26\24"+
-+    "\12\0\1\24\14\0\12\24\1\163\15\24\12\0\1\24"+
-+    "\14\0\6\24\1\164\21\24\12\0\1\24\14\0\2\24"+
-+    "\1\165\25\24\12\0\1\24\14\0\1\24\1\166\26\24"+
-+    "\12\0\1\24\14\0\6\24\1\167\21\24\12\0\1\24"+
-+    "\14\0\1\24\1\170\26\24\12\0\1\24\14\0\1\24"+
-+    "\1\171\26\24\12\0\1\24\14\0\5\24\1\172\22\24"+
-+    "\12\0\1\24\14\0\6\24\1\173\21\24\12\0\1\24"+
-+    "\14\0\11\24\1\174\16\24\12\0\1\24\14\0\20\24"+
-+    "\1\175\7\24\12\0\1\24\14\0\22\24\1\176\5\24"+
-+    "\12\0\1\24\14\0\11\24\1\177\16\24\12\0\1\24"+
-+    "\14\0\5\24\1\200\22\24\12\0\1\24\14\0\11\24"+
-+    "\1\201\16\24\12\0\1\24\14\0\20\24\1\202\7\24"+
-+    "\12\0\1\24\14\0\26\24\1\203\1\24\12\0\1\24"+
-+    "\14\0\12\24\1\204\15\24\12\0\1\24\14\0\6\24"+
-+    "\1\205\21\24\12\0\1\24\14\0\2\24\1\206\25\24"+
-+    "\12\0\1\24\14\0\24\24\1\207\3\24\12\0\1\24"+
-+    "\14\0\15\24\1\210\12\24\12\0\1\24\14\0\17\24"+
-+    "\1\211\10\24\12\0\1\24\14\0\4\24\1\212\23\24"+
-+    "\12\0\1\24\14\0\12\24\1\213\15\24\12\0\1\24"+
-+    "\14\0\2\24\1\214\25\24\12\0\1\24\14\0\2\24"+
-+    "\1\215\25\24\12\0\1\24\14\0\1\24\1\216\26\24"+
-+    "\12\0\1\24\14\0\16\24\1\217\11\24\12\0\1\24"+
-+    "\14\0\12\24\1\220\15\24\12\0\1\24\14\0\7\24"+
-+    "\1\221\20\24\12\0\1\24\14\0\21\24\1\222\6\24"+
-+    "\12\0\1\24\14\0\6\24\1\223\21\24\12\0\1\24"+
-+    "\14\0\20\24\1\224\7\24\12\0\1\24\14\0\6\24"+
-+    "\1\225\21\24\12\0\1\24\14\0\2\24\1\226\25\24"+
-+    "\12\0\1\24\14\0\12\24\1\227\15\24\12\0\1\24"+
-+    "\14\0\11\24\1\230\16\24\12\0\1\24\14\0\5\24"+
-+    "\1\231\22\24\12\0\1\24\14\0\5\24\1\232\22\24"+
-+    "\12\0\1\24\14\0\5\24\1\233\22\24\12\0\1\24"+
-+    "\14\0\12\24\1\234\15\24\12\0\1\24\14\0\2\24"+
-+    "\1\235\25\24\12\0\1\24\14\0\20\24\1\236\7\24"+
-+    "\12\0\1\24\14\0\5\24\1\237\22\24\12\0\1\24"+
-+    "\14\0\1\24\1\240\26\24\12\0\1\24\14\0\5\24"+
-+    "\1\241\22\24\12\0\1\24\14\0\15\24\1\242\12\24"+
-+    "\12\0\1\24\14\0\21\24\1\243\6\24\12\0\1\24"+
-+    "\14\0\10\24\1\244\17\24\12\0\1\24\14\0\5\24"+
-+    "\1\245\22\24\12\0\1\24\14\0\12\24\1\246\15\24"+
-+    "\12\0\1\24\14\0\22\24\1\247\5\24\12\0\1\24"+
-+    "\14\0\2\24\1\250\25\24\12\0\1\24\14\0\22\24"+
-+    "\1\251\5\24\12\0\1\24\14\0\5\24\1\252\22\24"+
-+    "\12\0\1\24\14\0\1\253\27\24\12\0\1\24\14\0"+
-+    "\22\24\1\254\5\24\12\0\1\24\14\0\16\24\1\255"+
-+    "\11\24\12\0\1\24\14\0\12\24\1\256\15\24\12\0"+
-+    "\1\24\14\0\5\24\1\257\22\24\12\0\1\24\14\0"+
-+    "\12\24\1\260\15\24\12\0\1\24\14\0\6\24\1\261"+
-+    "\21\24\12\0\1\24\14\0\20\24\1\262\7\24\12\0"+
-+    "\1\24\14\0\25\24\1\263\2\24\12\0\1\24\14\0"+
-+    "\5\24\1\264\22\24\12\0\1\24\14\0\16\24\1\265"+
-+    "\11\24\12\0\1\24\3\0";
++  private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
 +
++  private static final String ZZ_ROWMAP_PACKED_0 =
++    "\0\0\0\62\0\144\0\226\0\310\0\372\0\u012c\0\u015e"+
++    "\0\u0190\0\u01c2\0\u01f4\0\u0226\0\u01f4\0\u0258\0\u01f4\0\u028a"+
++    "\0\u01f4\0\u02bc\0\u02ee\0\u0320\0\u0352\0\u0384\0\u03b6\0\u03e8"+
++    "\0\u041a\0\u044c\0\u047e\0\u04b0\0\u04e2\0\u01f4\0\u01f4\0\u01f4"+
++    "\0\u01f4\0\u01f4\0\u01f4\0\u01f4\0\u01f4\0\u01f4\0\u01f4\0\u01f4"+
++    "\0\u01f4\0\u01f4\0\u01f4\0\u0514\0\u0546\0\u01f4\0\u0578\0\u05aa"+
++    "\0\u05dc\0\u01f4\0\u060e\0\u0640\0\u01f4\0\u01f4\0\u0640\0\u01f4"+
++    "\0\u01f4\0\u01f4\0\u01f4\0\u0672\0\u01f4\0\u01f4\0\u01f4\0\u01f4"+
++    "\0\u01f4\0\u01f4\0\u01f4\0\u01f4\0\u06a4\0\u06d6\0\u0708\0\u01f4"+
++    "\0\u073a\0\u076c\0\u01f4\0\u079e\0\u07d0\0\u0802\0\u0834\0\u0866"+
++    "\0\u0898\0\u08ca\0\u08fc\0\u092e\0\u0960\0\u0992\0\u09c4\0\u09f6"+
++    "\0\u0a28\0\u0a5a\0\u0a8c\0\u0abe\0\u0af0\0\u0b22\0\u0b54\0\u01f4"+
++    "\0\u0578\0\u01f4\0\u0514\0\u01f4\0\u05aa\0\u0b86\0\u05dc\0\u0bb8"+
++    "\0\u0bea\0\u01f4\0\u01f4\0\u01f4\0\u01f4\0\u0c1c\0\u01f4\0\u0c4e"+
++    "\0\u0c80\0\u0cb2\0\u0ce4\0\u0d16\0\u0d48\0\u0d7a\0\u0dac\0\u0dde"+
++    "\0\u0e10\0\u0e42\0\u0e74\0\u0ea6\0\u0ed8\0\u0f0a\0\u0f3c\0\u0f6e"+
++    "\0\u0fa0\0\u0fd2\0\u1004\0\u1036\0\u01f4\0\u1068\0\u01f4\0\u109a"+
++    "\0\u10cc\0\u10fe\0\u1130\0\u1162\0\u1194\0\u0352\0\u11c6\0\u11f8"+
++    "\0\u122a\0\u125c\0\u128e\0\u12c0\0\u12f2\0\u1324\0\u1356\0\u1388"+
++    "\0\u13ba\0\u13ec\0\u141e\0\u1450\0\u1482\0\u14b4\0\u14e6\0\u1518"+
++    "\0\u154a\0\u0352\0\u157c\0\u15ae\0\u15e0\0\u1612\0\u1644\0\u1676"+
++    "\0\u16a8\0\u16da\0\u170c\0\u173e\0\u0352\0\u1770\0\u0352\0\u17a2"+
++    "\0\u17d4\0\u1806\0\u1838\0\u0352\0\u186a\0\u189c\0\u0352\0\u18ce"+
++    "\0\u1900\0\u1932\0\u0352\0\u1964\0\u1996\0\u0352\0\u19c8\0\u19fa"+
++    "\0\u0352\0\u0352\0\u0352\0\u1a2c\0\u1a5e\0\u0352\0\u1a90\0\u1ac2"+
++    "\0\u1af4\0\u0352\0\u1b26\0\u1b58\0\u1b8a\0\u1bbc\0\u0352\0\u1bee"+
++    "\0\u1c20\0\u1c52\0\u0352\0\u0352\0\u1c84\0\u0352\0\u1cb6\0\u0352"+
++    "\0\u0352\0\u1ce8\0\u0352\0\u1d1a\0\u1d4c\0\u0352";
++
++  private static int [] zzUnpackRowMap() {
++    int [] result = new int[222];
++    int offset = 0;
++    offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
++    return result;
++  }
++
++  private static int zzUnpackRowMap(String packed, int offset, int [] result) {
++    int i = 0;  /* index in packed string  */
++    int j = offset;  /* index in unpacked array */
++    int l = packed.length();
++    while (i < l) {
++      int high = packed.charAt(i++) << 16;
++      result[j++] = high | packed.charAt(i++);
++    }
++    return j;
++  }
++
 +  /** 
 +   * The transition table of the DFA
 +   */
-+  final private static int yytrans [] = yy_unpack();
++  private static final int [] ZZ_TRANS = zzUnpackTrans();
 +
++  private static final String ZZ_TRANS_PACKED_0 =
++    "\1\13\1\14\1\13\1\15\1\13\1\16\1\17\1\20"+
++    "\1\21\1\22\1\23\1\24\2\25\1\26\1\27\3\25"+
++    "\1\30\3\25\1\31\1\32\1\33\1\34\1\35\5\25"+
++    "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45"+
++    "\1\46\1\47\1\50\1\51\1\25\1\13\1\52\1\53"+
++    "\1\13\1\54\1\55\1\56\1\57\1\13\56\54\1\55"+
++    "\1\56\1\60\1\61\55\54\1\62\1\63\3\62\1\64"+
++    "\44\62\1\65\1\66\3\62\1\52\1\53\1\62\1\13"+
++    "\1\14\3\13\1\67\35\13\1\70\1\71\12\13\1\52"+
++    "\1\53\1\13\1\62\1\63\3\62\1\64\1\72\1\62"+
++    "\1\73\22\62\1\74\5\62\1\75\1\76\1\77\1\100"+
++    "\1\101\1\102\3\62\1\65\1\103\3\62\1\52\1\53"+
++    "\1\62\1\13\1\14\55\13\1\104\1\13\1\105\1\13"+
++    "\1\14\56\13\1\104\1\106\1\13\1\107\1\110\60\13"+
++    "\1\14\1\13\1\111\56\13\64\0\1\13\62\0\1\112"+
++    "\1\0\1\113\63\0\1\114\63\0\1\25\1\115\7\25"+
++    "\1\116\1\25\1\117\14\25\14\0\2\25\14\0\14\25"+
++    "\1\120\13\25\14\0\2\25\14\0\15\25\1\121\12\25"+
++    "\14\0\2\25\14\0\30\25\14\0\2\25\14\0\22\25"+
++    "\1\122\4\25\1\123\14\0\2\25\14\0\7\25\1\124"+
++    "\12\25\1\125\5\25\14\0\2\25\14\0\11\25\1\126"+
++    "\12\25\1\127\3\25\14\0\2\25\14\0\5\25\1\130"+
++    "\22\25\14\0\2\25\14\0\10\25\1\131\17\25\14\0"+
++    "\2\25\14\0\12\25\1\132\1\133\7\25\1\134\4\25"+
++    "\14\0\2\25\14\0\6\25\1\135\21\25\14\0\2\25"+
++    "\14\0\1\25\1\136\26\25\14\0\2\25\3\0\1\54"+
++    "\2\0\1\137\1\0\55\54\2\0\1\56\57\0\1\54"+
++    "\2\140\1\141\1\140\1\142\54\54\1\143\2\144\1\145"+
++    "\1\144\1\142\54\143\3\0\1\146\1\147\57\0\1\62"+
++    "\62\0\1\150\1\0\1\113\72\0\1\151\122\0\1\152"+
++    "\1\0\1\153\60\0\1\154\1\153\2\0\1\110\64\0"+
++    "\1\155\57\0\1\156\65\0\1\157\63\0\2\25\1\160"+
++    "\25\25\14\0\2\25\14\0\6\25\1\161\1\25\1\162"+
++    "\17\25\14\0\2\25\14\0\14\25\1\163\13\25\14\0"+
++    "\2\25\14\0\20\25\1\164\7\25\14\0\2\25\14\0"+
++    "\1\25\1\165\26\25\14\0\2\25\14\0\13\25\1\166"+
++    "\14\25\14\0\2\25\14\0\12\25\1\167\15\25\14\0"+
++    "\2\25\14\0\1\170\27\25\14\0\2\25\14\0\12\25"+
++    "\1\171\15\25\14\0\2\25\14\0\1\25\1\172\26\25"+
++    "\14\0\2\25\14\0\11\25\1\173\16\25\14\0\2\25"+
++    "\14\0\21\25\1\174\6\25\14\0\2\25\14\0\15\25"+
++    "\1\175\12\25\14\0\2\25\14\0\1\25\1\176\7\25"+
++    "\1\177\16\25\14\0\2\25\14\0\1\200\27\25\14\0"+
++    "\2\25\14\0\22\25\1\201\5\25\14\0\2\25\14\0"+
++    "\22\25\1\202\5\25\14\0\2\25\14\0\12\25\1\203"+
++    "\15\25\14\0\2\25\3\0\1\54\2\140\1\137\1\140"+
++    "\1\0\54\54\3\144\1\146\1\144\1\0\54\144\3\0"+
++    "\1\204\115\0\1\205\25\0\1\206\1\0\1\207\65\0"+
++    "\3\25\1\210\24\25\14\0\2\25\14\0\17\25\1\211"+
++    "\10\25\14\0\2\25\14\0\12\25\1\212\15\25\14\0"+
++    "\2\25\14\0\15\25\1\213\12\25\14\0\2\25\14\0"+
++    "\12\25\1\214\15\25\14\0\2\25\14\0\20\25\1\215"+
++    "\7\25\14\0\2\25\14\0\7\25\1\216\20\25\14\0"+
++    "\2\25\14\0\5\25\1\217\22\25\14\0\2\25\14\0"+
++    "\10\25\1\220\4\25\1\221\12\25\14\0\2\25\14\0"+
++    "\5\25\1\222\22\25\14\0\2\25\14\0\22\25\1\223"+
++    "\5\25\14\0\2\25\14\0\10\25\1\224\17\25\14\0"+
++    "\2\25\14\0\1\25\1\225\26\25\14\0\2\25\14\0"+
++    "\1\25\1\226\26\25\14\0\2\25\14\0\12\25\1\227"+
++    "\15\25\14\0\2\25\14\0\6\25\1\230\21\25\14\0"+
++    "\2\25\14\0\5\25\1\231\22\25\14\0\2\25\14\0"+
++    "\2\25\1\232\25\25\14\0\2\25\14\0\1\25\1\233"+
++    "\26\25\14\0\2\25\14\0\6\25\1\234\21\25\14\0"+
++    "\2\25\10\0\1\207\57\0\1\206\67\0\1\25\1\235"+
++    "\26\25\14\0\2\25\14\0\1\25\1\236\26\25\14\0"+
++    "\2\25\14\0\5\25\1\237\22\25\14\0\2\25\14\0"+
++    "\6\25\1\240\21\25\14\0\2\25\14\0\11\25\1\241"+
++    "\16\25\14\0\2\25\14\0\20\25\1\242\7\25\14\0"+
++    "\2\25\14\0\22\25\1\243\5\25\14\0\2\25\14\0"+
++    "\11\25\1\244\16\25\14\0\2\25\14\0\5\25\1\245"+
++    "\22\25\14\0\2\25\14\0\11\25\1\246\16\25\14\0"+
++    "\2\25\14\0\20\25\1\247\7\25\14\0\2\25\14\0"+
++    "\26\25\1\250\1\25\14\0\2\25\14\0\13\25\1\251"+
++    "\14\25\14\0\2\25\14\0\12\25\1\252\15\25\14\0"+
++    "\2\25\14\0\6\25\1\253\21\25\14\0\2\25\14\0"+
++    "\2\25\1\254\25\25\14\0\2\25\14\0\11\25\1\255"+
++    "\16\25\14\0\2\25\14\0\24\25\1\256\3\25\14\0"+
++    "\2\25\14\0\15\25\1\257\12\25\14\0\2\25\14\0"+
++    "\17\25\1\260\10\25\14\0\2\25\14\0\4\25\1\261"+
++    "\23\25\14\0\2\25\14\0\12\25\1\262\15\25\14\0"+
++    "\2\25\14\0\2\25\1\263\25\25\14\0\2\25\14\0"+
++    "\2\25\1\264\25\25\14\0\2\25\14\0\1\25\1\265"+
++    "\26\25\14\0\2\25\14\0\16\25\1\266\11\25\14\0"+
++    "\2\25\14\0\12\25\1\267\15\25\14\0\2\25\14\0"+
++    "\7\25\1\270\20\25\14\0\2\25\14\0\21\25\1\271"+
++    "\6\25\14\0\2\25\14\0\6\25\1\272\21\25\14\0"+
++    "\2\25\14\0\20\25\1\273\7\25\14\0\2\25\14\0"+
++    "\15\25\1\274\12\25\14\0\2\25\14\0\6\25\1\275"+
++    "\21\25\14\0\2\25\14\0\2\25\1\276\25\25\14\0"+
++    "\2\25\14\0\12\25\1\277\15\25\14\0\2\25\14\0"+
++    "\11\25\1\300\16\25\14\0\2\25\14\0\5\25\1\301"+
++    "\22\25\14\0\2\25\14\0\5\25\1\302\22\25\14\0"+
++    "\2\25\14\0\5\25\1\303\22\25\14\0\2\25\14\0"+
++    "\12\25\1\304\15\25\14\0\2\25\14\0\2\25\1\305"+
++    "\25\25\14\0\2\25\14\0\20\25\1\306\7\25\14\0"+
++    "\2\25\14\0\5\25\1\307\22\25\14\0\2\25\14\0"+
++    "\1\25\1\310\26\25\14\0\2\25\14\0\5\25\1\311"+
++    "\22\25\14\0\2\25\14\0\12\25\1\312\15\25\14\0"+
++    "\2\25\14\0\15\25\1\313\12\25\14\0\2\25\14\0"+
++    "\21\25\1\314\6\25\14\0\2\25\14\0\10\25\1\315"+
++    "\17\25\14\0\2\25\14\0\5\25\1\316\22\25\14\0"+
++    "\2\25\14\0\12\25\1\317\15\25\14\0\2\25\14\0"+
++    "\22\25\1\320\5\25\14\0\2\25\14\0\2\25\1\321"+
++    "\25\25\14\0\2\25\14\0\22\25\1\322\5\25\14\0"+
++    "\2\25\14\0\5\25\1\323\22\25\14\0\2\25\14\0"+
++    "\1\324\27\25\14\0\2\25\14\0\22\25\1\325\5\25"+
++    "\14\0\2\25\14\0\16\25\1\326\11\25\14\0\2\25"+
++    "\14\0\12\25\1\327\15\25\14\0\2\25\14\0\5\25"+
++    "\1\330\22\25\14\0\2\25\14\0\12\25\1\331\15\25"+
++    "\14\0\2\25\14\0\6\25\1\332\21\25\14\0\2\25"+
++    "\14\0\20\25\1\333\7\25\14\0\2\25\14\0\25\25"+
++    "\1\334\2\25\14\0\2\25\14\0\5\25\1\335\22\25"+
++    "\14\0\2\25\14\0\16\25\1\336\11\25\14\0\2\25"+
++    "\3\0";
 +
++  private static int [] zzUnpackTrans() {
++    int [] result = new int[7550];
++    int offset = 0;
++    offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
++    return result;
++  }
++
++  private static int zzUnpackTrans(String packed, int offset, int [] result) {
++    int i = 0;       /* index in packed string  */
++    int j = offset;  /* index in unpacked array */
++    int l = packed.length();
++    while (i < l) {
++      int count = packed.charAt(i++);
++      int value = packed.charAt(i++);
++      value--;
++      do result[j++] = value; while (--count > 0);
++    }
++    return j;
++  }
++
++
 +  /* error codes */
-+  final private static int YY_UNKNOWN_ERROR = 0;
-+  final private static int YY_ILLEGAL_STATE = 1;
-+  final private static int YY_NO_MATCH = 2;
-+  final private static int YY_PUSHBACK_2BIG = 3;
++  private static final int ZZ_UNKNOWN_ERROR = 0;
++  private static final int ZZ_NO_MATCH = 1;
++  private static final int ZZ_PUSHBACK_2BIG = 2;
 +
 +  /* error messages for the codes above */
-+  final private static String YY_ERROR_MSG[] = {
++  private static final String ZZ_ERROR_MSG[] = {
 +    "Unkown internal scanner error",
-+    "Internal error: unknown state",
 +    "Error: could not match input",
 +    "Error: pushback value was too large"
 +  };
 +
 +  /**
-+   * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
++   * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
 +   */
-+  private final static byte YY_ATTRIBUTE[] = {
-+     1,  0,  0,  0,  0,  0,  0,  0,  0,  9,  1,  9,  1,  9,  9,  9, 
-+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  9,  9,  9,  9, 
-+     9,  9,  9,  9,  9,  9,  9,  1,  1,  9,  3,  1,  3,  1,  9,  9, 
-+     9,  9,  9,  9,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1, 
-+     1,  1,  1,  1,  1,  1,  1,  1,  1,  2, 13,  2,  9,  0,  2,  5, 
-+    13,  2,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-+     1,  1,  1,  1,  1
-+  };
++  private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
 +
++  private static final String ZZ_ATTRIBUTE_PACKED_0 =
++    "\12\0\1\11\1\1\1\11\1\1\1\11\1\1\1\11"+
++    "\14\1\16\11\2\1\1\11\2\3\1\1\1\11\2\1"+
++    "\2\11\1\1\4\11\1\1\10\11\3\1\1\11\2\1"+
++    "\1\11\1\0\22\1\1\2\1\15\1\2\1\11\1\5"+
++    "\1\15\2\2\1\0\1\1\1\0\4\11\1\1\1\11"+
++    "\24\1\1\0\1\11\1\1\1\11\127\1";
++
++  private static int [] zzUnpackAttribute() {
++    int [] result = new int[222];
++    int offset = 0;
++    offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
++    return result;
++  }
++
++  private static int zzUnpackAttribute(String packed, int offset, int [] result) {
++    int i = 0;       /* index in packed string  */
++    int j = offset;  /* index in unpacked array */
++    int l = packed.length();
++    while (i < l) {
++      int count = packed.charAt(i++);
++      int value = packed.charAt(i++);
++      do result[j++] = value; while (--count > 0);
++    }
++    return j;
++  }
++
 +  /** the input device */
-+  private java.io.Reader yy_reader;
++  private java.io.Reader zzReader;
 +
 +  /** the current state of the DFA */
-+  private int yy_state;
++  private int zzState;
 +
 +  /** the current lexical state */
-+  private int yy_lexical_state = YYINITIAL;
++  private int zzLexicalState = YYINITIAL;
 +
 +  /** this buffer contains the current text to be matched and is
 +      the source of the yytext() string */
-+  private char yy_buffer[] = new char[YY_BUFFERSIZE];
++  private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
 +
 +  /** the textposition at the last accepting state */
-+  private int yy_markedPos;
++  private int zzMarkedPos;
 +
 +  /** the textposition at the last state to be included in yytext */
-+  private int yy_pushbackPos;
++  private int zzPushbackPos;
 +
 +  /** the current text position in the buffer */
-+  private int yy_currentPos;
++  private int zzCurrentPos;
 +
 +  /** startRead marks the beginning of the yytext() string in the buffer */
-+  private int yy_startRead;
++  private int zzStartRead;
 +
 +  /** endRead marks the last character in the buffer, that has been read
 +      from input */
-+  private int yy_endRead;
++  private int zzEndRead;
 +
 +  /** number of newlines encountered up to the start of the matched text */
 +  private int yyline;
@@ -1227,28 +1636,38 @@
 +   * the number of characters from the last newline up to the start of the 
 +   * matched text
 +   */
-+  private int yycolumn; 
++  private int yycolumn;
 +
 +  /** 
-+   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
++   * zzAtBOL == true <=> the scanner is currently at the beginning of a line
 +   */
-+  private boolean yy_atBOL = true;
++  private boolean zzAtBOL = true;
 +
-+  /** yy_atEOF == true <=> the scanner is at the EOF */
-+  private boolean yy_atEOF;
++  /** zzAtEOF == true <=> the scanner is at the EOF */
++  private boolean zzAtEOF;
 +
 +  /** denotes if the user-EOF-code has already been executed */
-+  private boolean yy_eof_done;
++  private boolean zzEOFDone;
 +
 +  /* user code: */
 +
 +    private int classDepth = 0;
-+    private int braceDepth = 0;
++    private int nestingDepth = 0;
++    private int assignmentDepth = 0;
 +    private int stateDepth = 0;
 +    private int[] stateStack = new int[10];
 +    private boolean javaDocNewLine;
 +    private boolean javaDocStartedContent;
++    private StringBuffer codeBody = new StringBuffer(8192);
++    private boolean newMode;
++    private boolean enumMode;
++    private boolean appendingToCodeBody;
++    private boolean shouldCaptureCodeBody;
 +
++    public void setCaptureCodeBody(boolean shouldCaptureCodeBody) {
++        this.shouldCaptureCodeBody = shouldCaptureCodeBody;
++    }
++
 +    public String text() {
 +        return yytext();
 +    }
@@ -1273,6 +1692,12 @@
 +    private void popState() {
 +        yybegin(stateStack[--stateDepth]);
 +    }
++    
++    public String getCodeBody(){
++        String s = codeBody.toString();
++        codeBody = new StringBuffer(8192);
++        return s;
++    }
 +
 +
 +
@@ -1283,7 +1708,7 @@
 +   * @param   in  the java.io.Reader to read input from.
 +   */
 +  public JFlexLexer(java.io.Reader in) {
-+    this.yy_reader = in;
++    this.zzReader = in;
 +  }
 +
 +  /**
@@ -1297,47 +1722,16 @@
 +  }
 +
 +  /** 
-+   * Unpacks the split, compressed DFA transition table.
-+   *
-+   * @return the unpacked transition table
-+   */
-+  private static int [] yy_unpack() {
-+    int [] trans = new int[6110];
-+    int offset = 0;
-+    offset = yy_unpack(yy_packed0, offset, trans);
-+    return trans;
-+  }
-+
-+  /** 
-+   * Unpacks the compressed DFA transition table.
-+   *
-+   * @param packed   the packed transition table
-+   * @return         the index of the last entry
-+   */
-+  private static int yy_unpack(String packed, int offset, int [] trans) {
-+    int i = 0;       /* index in packed string  */
-+    int j = offset;  /* index in unpacked array */
-+    int l = packed.length();
-+    while (i < l) {
-+      int count = packed.charAt(i++);
-+      int value = packed.charAt(i++);
-+      value--;
-+      do trans[j++] = value; while (--count > 0);
-+    }
-+    return j;
-+  }
-+
-+  /** 
 +   * Unpacks the compressed character translation table.
 +   *
 +   * @param packed   the packed character translation table
 +   * @return         the unpacked character translation table
 +   */
-+  private static char [] yy_unpack_cmap(String packed) {
++  private static char [] zzUnpackCMap(String packed) {
 +    char [] map = new char[0x10000];
 +    int i = 0;  /* index in packed string  */
 +    int j = 0;  /* index in unpacked array */
-+    while (i < 132) {
++    while (i < 1758) {
 +      int  count = packed.charAt(i++);
 +      char value = packed.charAt(i++);
 +      do map[j++] = value; while (--count > 0);
@@ -1351,85 +1745,84 @@
 +   *
 +   * @return      <code>false</code>, iff there was new input.
 +   * 
-+   * @exception   IOException  if any I/O-Error occurs
++   * @exception   java.io.IOException  if any I/O-Error occurs
 +   */
-+  private boolean yy_refill() throws java.io.IOException {
++  private boolean zzRefill() throws java.io.IOException {
 +
 +    /* first: make room (if you can) */
-+    if (yy_startRead > 0) {
-+      System.arraycopy(yy_buffer, yy_startRead, 
-+                       yy_buffer, 0, 
-+                       yy_endRead-yy_startRead);
++    if (zzStartRead > 0) {
++      System.arraycopy(zzBuffer, zzStartRead,
++                       zzBuffer, 0,
++                       zzEndRead-zzStartRead);
 +
 +      /* translate stored positions */
-+      yy_endRead-= yy_startRead;
-+      yy_currentPos-= yy_startRead;
-+      yy_markedPos-= yy_startRead;
-+      yy_pushbackPos-= yy_startRead;
-+      yy_startRead = 0;
++      zzEndRead-= zzStartRead;
++      zzCurrentPos-= zzStartRead;
++      zzMarkedPos-= zzStartRead;
++      zzPushbackPos-= zzStartRead;
++      zzStartRead = 0;
 +    }
 +
 +    /* is the buffer big enough? */
-+    if (yy_currentPos >= yy_buffer.length) {
++    if (zzCurrentPos >= zzBuffer.length) {
 +      /* if not: blow it up */
-+      char newBuffer[] = new char[yy_currentPos*2];
-+      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
-+      yy_buffer = newBuffer;
++      char newBuffer[] = new char[zzCurrentPos*2];
++      System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
++      zzBuffer = newBuffer;
 +    }
 +
 +    /* finally: fill the buffer with new input */
-+    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
-+                                            yy_buffer.length-yy_endRead);
++    int numRead = zzReader.read(zzBuffer, zzEndRead,
++                                            zzBuffer.length-zzEndRead);
 +
 +    if (numRead < 0) {
 +      return true;
 +    }
 +    else {
-+      yy_endRead+= numRead;  
++      zzEndRead+= numRead;
 +      return false;
 +    }
 +  }
 +
-+
++    
 +  /**
 +   * Closes the input stream.
 +   */
-+  final public void yyclose() throws java.io.IOException {
-+    yy_atEOF = true;            /* indicate end of file */
-+    yy_endRead = yy_startRead;  /* invalidate buffer    */
++  public final void yyclose() throws java.io.IOException {
++    zzAtEOF = true;            /* indicate end of file */
++    zzEndRead = zzStartRead;  /* invalidate buffer    */
 +
-+    if (yy_reader != null)
-+      yy_reader.close();
++    if (zzReader != null)
++      zzReader.close();
 +  }
 +
 +
 +  /**
-+   * Closes the current stream, and resets the
-+   * scanner to read from a new input stream.
++   * Resets the scanner to read from a new input stream.
++   * Does not close the old reader.
 +   *
 +   * All internal variables are reset, the old input stream 
 +   * <b>cannot</b> be reused (internal buffer is discarded and lost).
-+   * Lexical state is set to <tt>YY_INITIAL</tt>.
++   * Lexical state is set to <tt>ZZ_INITIAL</tt>.
 +   *
 +   * @param reader   the new input stream 
 +   */
-+  final public void yyreset(java.io.Reader reader) throws java.io.IOException {
-+    yyclose();
-+    yy_reader = reader;
-+    yy_atBOL  = true;
-+    yy_atEOF  = false;
-+    yy_endRead = yy_startRead = 0;
-+    yy_currentPos = yy_markedPos = yy_pushbackPos = 0;
++  public final void yyreset(java.io.Reader reader) {
++    zzReader = reader;
++    zzAtBOL  = true;
++    zzAtEOF  = false;
++    zzEndRead = zzStartRead = 0;
++    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
 +    yyline = yychar = yycolumn = 0;
-+    yy_lexical_state = YYINITIAL;
++    zzLexicalState = YYINITIAL;
 +  }
 +
 +
 +  /**
 +   * Returns the current lexical state.
 +   */
-+  final public int yystate() {
-+    return yy_lexical_state;
++  public final int yystate() {
++    return zzLexicalState;
 +  }
 +
 +
@@ -1438,16 +1831,16 @@
 +   *
 +   * @param newState the new lexical state
 +   */
-+  final public void yybegin(int newState) {
-+    yy_lexical_state = newState;
++  public final void yybegin(int newState) {
++    zzLexicalState = newState;
 +  }
 +
 +
 +  /**
 +   * Returns the text matched by the current regular expression.
 +   */
-+  final public String yytext() {
-+    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
++  public final String yytext() {
++    return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
 +  }
 +
 +
@@ -1462,16 +1855,16 @@
 +   *
 +   * @return the character at position pos
 +   */
-+  final public char yycharat(int pos) {
-+    return yy_buffer[yy_startRead+pos];
++  public final char yycharat(int pos) {
++    return zzBuffer[zzStartRead+pos];
 +  }
 +
 +
 +  /**
 +   * Returns the length of the matched text region.
 +   */
-+  final public int yylength() {
-+    return yy_markedPos-yy_startRead;
++  public final int yylength() {
++    return zzMarkedPos-zzStartRead;
 +  }
 +
 +
@@ -1489,13 +1882,13 @@
 +   *
 +   * @param   errorCode  the code of the errormessage to display
 +   */
-+  private void yy_ScanError(int errorCode) {
++  private void zzScanError(int errorCode) {
 +    String message;
 +    try {
-+      message = YY_ERROR_MSG[errorCode];
++      message = ZZ_ERROR_MSG[errorCode];
 +    }
 +    catch (ArrayIndexOutOfBoundsException e) {
-+      message = YY_ERROR_MSG[YY_UNKNOWN_ERROR];
++      message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
 +    }
 +
 +    throw new Error(message);
@@ -1510,11 +1903,11 @@
 +   * @param number  the number of characters to be read again.
 +   *                This number must not be greater than yylength()!
 +   */
-+  private void yypushback(int number)  {
++  public void yypushback(int number)  {
 +    if ( number > yylength() )
-+      yy_ScanError(YY_PUSHBACK_2BIG);
++      zzScanError(ZZ_PUSHBACK_2BIG);
 +
-+    yy_markedPos -= number;
++    zzMarkedPos -= number;
 +  }
 +
 +
@@ -1522,9 +1915,9 @@
 +   * Contains user EOF-code, which will be executed exactly once,
 +   * when the end of file is reached
 +   */
-+  private void yy_do_eof() throws java.io.IOException {
-+    if (!yy_eof_done) {
-+      yy_eof_done = true;
++  private void zzDoEOF() throws java.io.IOException {
++    if (!zzEOFDone) {
++      zzEOFDone = true;
 +      yyclose();
 +    }
 +  }
@@ -1535,33 +1928,32 @@
 +   * the end of input is encountered or an I/O-Error occurs.
 +   *
 +   * @return      the next token
-+   * @exception   IOException  if any I/O-Error occurs
++   * @exception   java.io.IOException  if any I/O-Error occurs
 +   */
 +  public int yylex() throws java.io.IOException {
-+    int yy_input;
-+    int yy_action;
++    int zzInput;
++    int zzAction;
 +
 +    // cached fields:
-+    int yy_currentPos_l;
-+    int yy_startRead_l;
-+    int yy_markedPos_l;
-+    int yy_endRead_l = yy_endRead;
-+    char [] yy_buffer_l = yy_buffer;
-+    char [] yycmap_l = yycmap;
++    int zzCurrentPosL;
++    int zzMarkedPosL;
++    int zzEndReadL = zzEndRead;
++    char [] zzBufferL = zzBuffer;
++    char [] zzCMapL = ZZ_CMAP;
 +
-+    int [] yytrans_l = yytrans;
-+    int [] yy_rowMap_l = yy_rowMap;
-+    byte [] yy_attr_l = YY_ATTRIBUTE;
-+    int yy_pushbackPos_l = yy_pushbackPos = -1;
-+    boolean yy_was_pushback;
++    int [] zzTransL = ZZ_TRANS;
++    int [] zzRowMapL = ZZ_ROWMAP;
++    int [] zzAttrL = ZZ_ATTRIBUTE;
++    int zzPushbackPosL = zzPushbackPos = -1;
++    boolean zzWasPushback;
 +
 +    while (true) {
-+      yy_markedPos_l = yy_markedPos;
++      zzMarkedPosL = zzMarkedPos;
 +
-+      boolean yy_r = false;
-+      for (yy_currentPos_l = yy_startRead; yy_currentPos_l < yy_markedPos_l;
-+                                                             yy_currentPos_l++) {
-+        switch (yy_buffer_l[yy_currentPos_l]) {
++      boolean zzR = false;
++      for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL;
++                                                             zzCurrentPosL++) {
++        switch (zzBufferL[zzCurrentPosL]) {
 +        case '\u000B':
 +        case '\u000C':
 +        case '\u0085':
@@ -1569,463 +1961,502 @@
 +        case '\u2029':
 +          yyline++;
 +          yycolumn = 0;
-+          yy_r = false;
++          zzR = false;
 +          break;
 +        case '\r':
 +          yyline++;
 +          yycolumn = 0;
-+          yy_r = true;
++          zzR = true;
 +          break;
 +        case '\n':
-+          if (yy_r)
-+            yy_r = false;
++          if (zzR)
++            zzR = false;
 +          else {
 +            yyline++;
 +            yycolumn = 0;
 +          }
 +          break;
 +        default:
-+          yy_r = false;
++          zzR = false;
 +          yycolumn++;
 +        }
 +      }
 +
-+      if (yy_r) {
++      if (zzR) {
 +        // peek one character ahead if it is \n (if we have counted one line too much)
-+        boolean yy_peek;
-+        if (yy_markedPos_l < yy_endRead_l)
-+          yy_peek = yy_buffer_l[yy_markedPos_l] == '\n';
-+        else if (yy_atEOF)
-+          yy_peek = false;
++        boolean zzPeek;
++        if (zzMarkedPosL < zzEndReadL)
++          zzPeek = zzBufferL[zzMarkedPosL] == '\n';
++        else if (zzAtEOF)
++          zzPeek = false;
 +        else {
-+          boolean eof = yy_refill();
-+          yy_markedPos_l = yy_markedPos;
-+          yy_buffer_l = yy_buffer;
++          boolean eof = zzRefill();
++          zzEndReadL = zzEndRead;
++          zzMarkedPosL = zzMarkedPos;
++          zzBufferL = zzBuffer;
 +          if (eof) 
-+            yy_peek = false;
++            zzPeek = false;
 +          else 
-+            yy_peek = yy_buffer_l[yy_markedPos_l] == '\n';
++            zzPeek = zzBufferL[zzMarkedPosL] == '\n';
 +        }
-+        if (yy_peek) yyline--;
++        if (zzPeek) yyline--;
 +      }
-+      if (yy_markedPos_l > yy_startRead) {
-+        switch (yy_buffer_l[yy_markedPos_l-1]) {
++      if (zzMarkedPosL > zzStartRead) {
++        switch (zzBufferL[zzMarkedPosL-1]) {
 +        case '\n':
 +        case '\u000B':
 +        case '\u000C':
 +        case '\u0085':
 +        case '\u2028':
 +        case '\u2029':
-+          yy_atBOL = true;
++          zzAtBOL = true;
 +          break;
 +        case '\r': 
-+          if (yy_markedPos_l < yy_endRead_l)
-+            yy_atBOL = yy_buffer_l[yy_markedPos_l] != '\n';
-+          else if (yy_atEOF)
-+            yy_atBOL = false;
++          if (zzMarkedPosL < zzEndReadL)
++            zzAtBOL = zzBufferL[zzMarkedPosL] != '\n';
++          else if (zzAtEOF)
++            zzAtBOL = false;
 +          else {
-+            boolean eof = yy_refill();
-+            yy_markedPos_l = yy_markedPos;
-+            yy_buffer_l = yy_buffer;
++            boolean eof = zzRefill();
++            zzMarkedPosL = zzMarkedPos;
++            zzEndReadL = zzEndRead;
++            zzBufferL = zzBuffer;
 +            if (eof) 
-+              yy_atBOL = false;
++              zzAtBOL = false;
 +            else 
-+              yy_atBOL = yy_buffer_l[yy_markedPos_l] != '\n';
++              zzAtBOL = zzBufferL[zzMarkedPosL] != '\n';
 +          }
 +          break;
 +        default:
-+          yy_atBOL = false;
++          zzAtBOL = false;
 +        }
 +      }
-+      yy_action = -1;
++      zzAction = -1;
 +
-+      yy_startRead_l = yy_currentPos_l = yy_currentPos = 
-+                       yy_startRead = yy_markedPos_l;
-+
-+      if (yy_atBOL)
-+        yy_state = YY_LEXSTATE[yy_lexical_state+1];
++      zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
++  
++      if (zzAtBOL)
++        zzState = ZZ_LEXSTATE[zzLexicalState+1];
 +      else
-+        yy_state = YY_LEXSTATE[yy_lexical_state];
++        zzState = ZZ_LEXSTATE[zzLexicalState];
 +
-+      yy_was_pushback = false;
++      zzWasPushback = false;
 +
-+      yy_forAction: {
++      zzForAction: {
 +        while (true) {
-+
-+          if (yy_currentPos_l < yy_endRead_l)
-+            yy_input = yy_buffer_l[yy_currentPos_l++];
-+          else if (yy_atEOF) {
-+            yy_input = YYEOF;
-+            break yy_forAction;
++    
++          if (zzCurrentPosL < zzEndReadL)
++            zzInput = zzBufferL[zzCurrentPosL++];
++          else if (zzAtEOF) {
++            zzInput = YYEOF;
++            break zzForAction;
 +          }
 +          else {
 +            // store back cached positions
-+            yy_currentPos  = yy_currentPos_l;
-+            yy_markedPos   = yy_markedPos_l;
-+            yy_pushbackPos = yy_pushbackPos_l;
-+            boolean eof = yy_refill();
++            zzCurrentPos  = zzCurrentPosL;
++            zzMarkedPos   = zzMarkedPosL;
++            zzPushbackPos = zzPushbackPosL;
++            boolean eof = zzRefill();
 +            // get translated positions and possibly new buffer
-+            yy_currentPos_l  = yy_currentPos;
-+            yy_markedPos_l   = yy_markedPos;
-+            yy_buffer_l      = yy_buffer;
-+            yy_endRead_l     = yy_endRead;
-+            yy_pushbackPos_l = yy_pushbackPos;
++            zzCurrentPosL  = zzCurrentPos;
++            zzMarkedPosL   = zzMarkedPos;
++            zzBufferL      = zzBuffer;
++            zzEndReadL     = zzEndRead;
++            zzPushbackPosL = zzPushbackPos;
 +            if (eof) {
-+              yy_input = YYEOF;
-+              break yy_forAction;
++              zzInput = YYEOF;
++              break zzForAction;
 +            }
 +            else {
-+              yy_input = yy_buffer_l[yy_currentPos_l++];
++              zzInput = zzBufferL[zzCurrentPosL++];
 +            }
 +          }
-+          int yy_next = yytrans_l[ yy_rowMap_l[yy_state] + yycmap_l[yy_input] ];
-+          if (yy_next == -1) break yy_forAction;
-+          yy_state = yy_next;
++          int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
++          if (zzNext == -1) break zzForAction;
++          zzState = zzNext;
 +
-+          int yy_attributes = yy_attr_l[yy_state];
-+          if ( (yy_attributes & 2) == 2 )
-+            yy_pushbackPos_l = yy_currentPos_l;
++          int zzAttributes = zzAttrL[zzState];
++          if ( (zzAttributes & 2) == 2 )
++            zzPushbackPosL = zzCurrentPosL;
 +
-+          if ( (yy_attributes & 1) == 1 ) {
-+            yy_was_pushback = (yy_attributes & 4) == 4;
-+            yy_action = yy_state; 
-+            yy_markedPos_l = yy_currentPos_l; 
-+            if ( (yy_attributes & 8) == 8 ) break yy_forAction;
++          if ( (zzAttributes & 1) == 1 ) {
++            zzWasPushback = (zzAttributes & 4) == 4;
++            zzAction = zzState;
++            zzMarkedPosL = zzCurrentPosL;
++            if ( (zzAttributes & 8) == 8 ) break zzForAction;
 +          }
 +
 +        }
 +      }
 +
 +      // store back cached position
-+      yy_markedPos = yy_markedPos_l;
-+      if (yy_was_pushback)
-+        yy_markedPos = yy_pushbackPos_l;
++      zzMarkedPos = zzMarkedPosL;
++      if (zzWasPushback)
++        zzMarkedPos = zzPushbackPosL;
 +
-+      switch (yy_action) {
-+
-+        case 83: 
-+          {  pushState(JAVADOC); javaDocNewLine = true; return Parser.JAVADOCSTART;  }
-+        case 182: break;
-+        case 34: 
-+          { 
-+        braceDepth++;
-+        if (braceDepth == classDepth + 1) {
-+            pushState(CODEBLOCK);
-+        }
-+        else {
-+            return Parser.BRACEOPEN;
-+        }
-+     }
-+        case 183: break;
-+        case 180: 
-+          {  return Parser.SYNCHRONIZED;  }
-+        case 184: break;
-+        case 32: 
-+          {  return Parser.GREATERTHAN;  }
-+        case 185: break;
-+        case 28: 
-+          {  return Parser.SQUARECLOSE;  }
-+        case 186: break;
++      switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
++        case 51: 
++          { if (appendingToCodeBody) { codeBody.append("/**/"); }
++          }
++        case 72: break;
++        case 43: 
++          { /* ignore */
++          }
++        case 73: break;
++        case 64: 
++          { return Parser.ABSTRACT;
++          }
++        case 74: break;
 +        case 37: 
-+          {  pushState(STRING);  }
-+        case 187: break;
-+        case 174: 
-+          {  
-+        classDepth++;
-+        return Parser.INTERFACE; 
-+     }
-+        case 188: break;
-+        case 35: 
-+          {  
-+        braceDepth--;
-+        if (braceDepth == classDepth - 1) {
-+            classDepth--;
++          { if (appendingToCodeBody) { codeBody.append('"');    } popState();
++          }
++        case 75: break;
++        case 27: 
++          { nestingDepth--;
++        if (nestingDepth == classDepth) {
++            popState();
++            return Parser.PARENBLOCK;
 +        }
-+        return Parser.BRACECLOSE; 
-+     }
-+        case 189: break;
++          }
++        case 76: break;
++        case 67: 
++          { return Parser.PROTECTED;
++          }
++        case 77: break;
++        case 55: 
++          { return Parser.FINAL;
++          }
++        case 78: break;
 +        case 9: 
-+        case 10: 
++          { nestingDepth++;
++        if (enumMode) {
++          pushState(PARENBLOCK);
++        } else {
++          return Parser.PARENOPEN;
++        }
++          }
++        case 79: break;
 +        case 12: 
-+        case 42: 
-+        case 43: 
-+        case 44: 
-+        case 45: 
-+        case 52: 
-+        case 53: 
-+        case 55: 
-+          {   }
-+        case 190: break;
-+        case 39: 
-+          {  
-+        int token = Parser.JAVADOCTOKEN;
-+        if (javaDocNewLine && yycharat(0) == '@') {
-+                token = Parser.JAVADOCTAG;
++          { return Parser.GREATERTHAN;
++          }
++        case 80: break;
++        case 41: 
++          { return Parser.JAVADOCTOKEN;
++          }
++        case 81: break;
++        case 20: 
++          { if (appendingToCodeBody) { codeBody.append('\''); } pushState(CHAR);
++          }
++        case 82: break;
++        case 70: 
++          { return Parser.IMPLEMENTS;
++          }
++        case 83: break;
++        case 2: 
++          { return Parser.STAR;
++          }
++        case 84: break;
++        case 50: 
++          { codeBody.append("new");
++        if (nestingDepth==assignmentDepth) {
++            newMode=true;
 +        }
-+        javaDocNewLine = false;
-+        return token;
-+     }
-+        case 191: break;
-+        case 76: 
-+          {  popState(); return Parser.JAVADOCEND;  }
-+        case 192: break;
++          }
++        case 85: break;
 +        case 49: 
-+          {  
-+        if (braceDepth == classDepth) { 
++          { return Parser.DOTDOTDOT;
++          }
++        case 86: break;
++        case 56: 
++          { return Parser.PUBLIC;
++          }
++        case 87: break;
++        case 33: 
++          { codeBody.append(')');
++        nestingDepth--; 
++        if (nestingDepth < assignmentDepth) {
++            appendingToCodeBody = true; 
 +            popState(); 
-+            return Parser.COMMA; 
-+        } 
-+     }
-+        case 193: break;
-+        case 152: 
-+          {  return Parser.NATIVE;  }
-+        case 194: break;
-+        case 149: 
-+          {  return Parser.STATIC;  }
-+        case 195: break;
-+        case 147: 
-+          {  return Parser.THROWS;  }
-+        case 196: break;
-+        case 143: 
-+          {  return Parser.IMPORT;  }
-+        case 197: break;
-+        case 140: 
-+          {  return Parser.PUBLIC;  }
-+        case 198: break;
-+        case 15: 
-+          {  return Parser.COMMA;  }
-+        case 199: break;
-+        case 135: 
-+          {  return Parser.FINAL;  }
-+        case 200: break;
-+        case 177: 
-+          {  return Parser.IMPLEMENTS;  }
-+        case 201: break;
-+        case 175: 
-+          {  return Parser.TRANSIENT;  }
-+        case 202: break;
-+        case 172: 
-+          {  return Parser.PROTECTED;  }
-+        case 203: break;
-+        case 33: 
-+          {  return Parser.AMPERSAND;  }
-+        case 204: break;
-+        case 30: 
-+          {  return Parser.PARENCLOSE;  }
-+        case 205: break;
-+        case 29: 
-+          {  return Parser.PARENOPEN;  }
-+        case 206: break;
-+        case 0: 
-+        case 16: 
-+        case 17: 
-+        case 18: 
-+        case 19: 
-+        case 20: 
-+        case 21: 
-+        case 22: 
++            return Parser.PARENCLOSE; 
++        }
++          }
++        case 88: break;
++        case 36: 
++          { codeBody.append('}'); nestingDepth--;
++          }
++        case 89: break;
++        case 71: 
++          { return Parser.SYNCHRONIZED;
++          }
++        case 90: break;
++        case 68: 
++          { classDepth++;
++        return Parser.INTERFACE;
++          }
++        case 91: break;
++        case 66: 
++          { return Parser.STRICTFP;
++          }
++        case 92: break;
++        case 59: 
++          { return Parser.STATIC;
++          }
++        case 93: break;
++        case 34: 
++          { codeBody.append('<');
++        if (newMode) { 
++            nestingDepth++; 
++        }
++          }
++        case 94: break;
++        case 42: 
++          { popState(); return Parser.JAVADOCEND;
++          }
++        case 95: break;
 +        case 23: 
-+        case 24: 
-+        case 25: 
++          { codeBody.append(yytext());
++          }
++        case 96: break;
 +        case 26: 
-+        case 58: 
-+        case 59: 
-+        case 60: 
-+        case 61: 
++          { nestingDepth++;
++          }
++        case 97: break;
 +        case 62: 
++          { return Parser.PRIVATE;
++          }
++        case 98: break;
++        case 24: 
++          { codeBody.append('{'); nestingDepth++;
++          }
++        case 99: break;
++        case 13: 
++          { return Parser.AMPERSAND;
++          }
++        case 100: break;
++        case 18: 
++          { assignmentDepth = nestingDepth;
++        appendingToCodeBody = true;
++        pushState(ASSIGNMENT);
++          }
++        case 101: break;
 +        case 63: 
-+        case 64: 
-+        case 65: 
-+        case 66: 
-+        case 67: 
-+        case 68: 
-+        case 69: 
-+        case 70: 
-+        case 71: 
-+        case 72: 
-+        case 84: 
-+        case 85: 
-+        case 86: 
-+        case 87: 
-+        case 88: 
-+        case 89: 
-+        case 90: 
-+        case 91: 
-+        case 92: 
-+        case 93: 
-+        case 94: 
-+        case 95: 
-+        case 96: 
-+        case 97: 
-+        case 98: 
-+        case 99: 
-+        case 100: 
-+        case 101: 
-+        case 102: 
-+        case 103: 
-+        case 104: 
-+        case 105: 
-+        case 106: 
-+        case 107: 
-+        case 108: 
-+        case 109: 
-+        case 110: 
-+        case 111: 
-+        case 112: 
-+        case 113: 
-+        case 114: 
-+        case 115: 
-+        case 116: 
-+        case 117: 
-+        case 118: 
-+        case 119: 
-+        case 120: 
-+        case 121: 
-+        case 122: 
-+        case 123: 
-+        case 125: 
-+        case 126: 
-+        case 127: 
-+        case 128: 
-+        case 129: 
-+        case 130: 
-+        case 131: 
-+        case 132: 
-+        case 133: 
-+        case 134: 
-+        case 136: 
-+        case 137: 
-+        case 138: 
-+        case 139: 
-+        case 141: 
-+        case 142: 
-+        case 144: 
-+        case 145: 
-+        case 146: 
-+        case 148: 
-+        case 150: 
-+        case 151: 
-+        case 155: 
-+        case 156: 
-+        case 158: 
-+        case 159: 
-+        case 160: 
-+        case 161: 
-+        case 162: 
-+        case 163: 
-+        case 164: 
-+        case 166: 
-+        case 167: 
-+        case 168: 
-+        case 171: 
-+        case 173: 
-+        case 176: 
-+        case 178: 
-+        case 179: 
-+          {  return Parser.IDENTIFIER;  }
-+        case 207: break;
-+        case 11: 
-+          {  return Parser.STAR;  }
-+        case 208: break;
-+        case 13: 
-+          {  return Parser.SEMI;  }
-+        case 209: break;
++          { return Parser.EXTENDS;
++          }
++        case 102: break;
++        case 48: 
++          { pushState(JAVADOC); 
++        javaDocNewLine = true; 
++        return Parser.JAVADOCSTART;
++          }
++        case 103: break;
++        case 45: 
++          { if (appendingToCodeBody) { codeBody.append("\\\\"); }
++          }
++        case 104: break;
++        case 47: 
++          { if (appendingToCodeBody) { codeBody.append("*/"); } popState();
++          }
++        case 105: break;
++        case 7: 
++          { nestingDepth++; return Parser.SQUAREOPEN;
++          }
++        case 106: break;
++        case 44: 
++          { if (appendingToCodeBody) { codeBody.append("\\\""); }
++          }
++        case 107: break;
++        case 6: 
++          { return Parser.IDENTIFIER;
++          }
++        case 108: break;
++        case 58: 
++          { return Parser.THROWS;
++          }
++        case 109: break;
++        case 1: 
++          { if (appendingToCodeBody) { codeBody.append(yytext()); }
++          }
++        case 110: break;
 +        case 14: 
-+          {  return Parser.DOT;  }
-+        case 210: break;
-+        case 27: 
-+          {  return Parser.SQUAREOPEN;  }
-+        case 211: break;
-+        case 79: 
-+        case 80: 
-+          {  /* ignore */  }
-+        case 212: break;
-+        case 47: 
-+          { 
-+        braceDepth--;
-+        if (braceDepth == classDepth) {
++          { return Parser.QUERY;
++          }
++        case 111: break;
++        case 10: 
++          { nestingDepth--; return Parser.PARENCLOSE;
++          }
++        case 112: break;
++        case 39: 
++          { if (appendingToCodeBody) { codeBody.append("/*"); } pushState(MULTILINECOMMENT);
++          }
++        case 113: break;
++        case 32: 
++          { codeBody.append('('); nestingDepth++;
++          }
++        case 114: break;
++        case 60: 
++          { return Parser.NATIVE;
++          }
++        case 115: break;
++        case 40: 
++          { if (appendingToCodeBody) { codeBody.append("//"); } pushState(SINGLELINECOMMENT);
++          }
++        case 116: break;
++        case 25: 
++          { nestingDepth--;
++        if (nestingDepth == classDepth) {
 +            popState();
++            appendingToCodeBody = false;
 +            return Parser.CODEBLOCK;
++        } else {
++            codeBody.append('}');
 +        }
-+     }
-+        case 213: break;
-+        case 124: 
-+          { 
-+        classDepth++;
-+        return Parser.CLASS; 
-+     }
-+        case 214: break;
-+        case 40: 
-+        case 41: 
-+          {  javaDocNewLine = true;  }
-+        case 215: break;
-+        case 170: 
-+          {  return Parser.STRICTFP;  }
-+        case 216: break;
-+        case 169: 
-+          {  return Parser.VOLATILE;  }
-+        case 217: break;
-+        case 165: 
-+          {  return Parser.ABSTRACT;  }
-+        case 218: break;
-+        case 157: 
-+          {  return Parser.EXTENDS;  }
-+        case 219: break;
-+        case 154: 
-+          {  return Parser.PRIVATE;  }
-+        case 220: break;
-+        case 153: 
-+          {  return Parser.PACKAGE;  }
-+        case 221: break;
++          }
++        case 117: break;
++        case 22: 
++          { javaDocNewLine = true; return Parser.JAVADOCEOL;
++          }
++        case 118: break;
++        case 5: 
++          { return Parser.COMMA;
++          }
++        case 119: break;
++        case 52: 
++          { classDepth++;
++        enumMode = true;
++        return Parser.ENUM;
++          }
++        case 120: break;
++        case 61: 
++          { return Parser.PACKAGE;
++          }
++        case 121: break;
++        case 65: 
++          { return Parser.VOLATILE;
++          }
++        case 122: break;
++        case 15: 
++          { return Parser.AT;
++          }
++        case 123: break;
++        case 17: 
++          { nestingDepth--;
++        if (nestingDepth == classDepth - 1) {
++            classDepth--;
++        }
++        return Parser.BRACECLOSE;
++          }
++        case 124: break;
++        case 35: 
++          { codeBody.append('>');
++        if (newMode) {
++            nestingDepth--;
++        	if (nestingDepth==assignmentDepth) { 
++                newMode=false;
++            }
++        }
++          }
++        case 125: break;
 +        case 31: 
-+          {  return Parser.LESSTHAN;  }
-+        case 222: break;
-+        case 38: 
-+          {  pushState(CHAR);  }
-+        case 223: break;
-+        case 46: 
-+          {  braceDepth++;  }
-+        case 224: break;
-+        case 50: 
-+          {  braceDepth--;  }
-+        case 225: break;
-+        case 51: 
-+          {  popState();  }
-+        case 226: break;
++          { codeBody.append(']'); nestingDepth--;
++          }
++        case 126: break;
++        case 21: 
++          { int token = Parser.JAVADOCTOKEN;
++        if (javaDocNewLine && yycharat(0) == '@') {
++                token = Parser.JAVADOCTAG;
++        }
++        javaDocNewLine = false;
++        return token;
++          }
++        case 127: break;
++        case 8: 
++          { nestingDepth--; return Parser.SQUARECLOSE;
++          }
++        case 128: break;
++        case 57: 
++          { return Parser.IMPORT;
++          }
++        case 129: break;
 +        case 54: 
-+          {  popState();  }
-+        case 227: break;
-+        case 36: 
-+          {  pushState(ASSIGNMENT);  }
-+        case 228: break;
-+        case 48: 
-+          {  
-+        if (braceDepth == classDepth) { 
++          { return Parser.SUPER;
++          }
++        case 130: break;
++        case 28: 
++          { if (nestingDepth == assignmentDepth) {
++            appendingToCodeBody = true;
 +            popState(); 
 +            return Parser.SEMI; 
-+        } 
-+     }
-+        case 229: break;
-+        case 74: 
-+          { 
-+        return Parser.JAVADOCTOKEN;
-+     }
-+        case 230: break;
-+        case 57: 
-+          {  pushState(SINGLELINECOMMENT);  }
-+        case 231: break;
-+        case 56: 
-+        case 82: 
-+          {  pushState(MULTILINECOMMENT);  }
-+        case 232: break;
++        } else {
++            codeBody.append(';');
++        }
++          }
++        case 131: break;
++        case 30: 
++          { codeBody.append('['); nestingDepth++;
++          }
++        case 132: break;
++        case 16: 
++          { nestingDepth++;
++        if (nestingDepth == classDepth + 1) {
++            appendingToCodeBody = true;
++            pushState(CODEBLOCK);
++        }
++        else {
++            return Parser.BRACEOPEN;
++        }
++          }
++        case 133: break;
++        case 3: 
++          { enumMode = false; return Parser.SEMI;
++          }
++        case 134: break;
++        case 69: 
++          { return Parser.TRANSIENT;
++          }
++        case 135: break;
++        case 29: 
++          { if (nestingDepth == assignmentDepth) {
++            appendingToCodeBody = true;
++            popState(); 
++            return Parser.COMMA; 
++        } else {
++            codeBody.append(',');
++        }
++          }
++        case 136: break;
++        case 53: 
++          { classDepth++;
++        return Parser.CLASS;
++          }
++        case 137: break;
++        case 46: 
++          { if (appendingToCodeBody) { codeBody.append("\\'");  }
++          }
++        case 138: break;
++        case 38: 
++          { if (appendingToCodeBody) { codeBody.append(yytext()); } popState();
++          }
++        case 139: break;
++        case 4: 
++          { return Parser.DOT;
++          }
++        case 140: break;
++        case 11: 
++          { return Parser.LESSTHAN;
++          }
++        case 141: break;
++        case 19: 
++          { if (appendingToCodeBody) { codeBody.append('"');  } pushState(STRING);
++          }
++        case 142: break;
 +        default: 
-+          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-+            yy_atEOF = true;
-+            yy_do_eof();
++          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
++            zzAtEOF = true;
++            zzDoEOF();
 +              { return 0; }
 +          } 
 +          else {
-+            yy_ScanError(YY_NO_MATCH);
++            zzScanError(ZZ_NO_MATCH);
 +          }
 +      }
 +    }

Modified: trunk/qdox/debian/rules
===================================================================
--- trunk/qdox/debian/rules	2007-04-11 11:39:59 UTC (rev 3166)
+++ trunk/qdox/debian/rules	2007-04-11 14:25:49 UTC (rev 3167)
@@ -4,11 +4,10 @@
 include /usr/share/cdbs/1/rules/simple-patchsys.mk
 include /usr/share/cdbs/1/class/ant.mk
 
-JAVA_HOME_DIRS  := /usr/lib/kaffe
+JAVA_HOME_DIRS  := /usr/lib/jvm/java-gcj/
 
 ANT_HOME        := /usr/share/ant
-DEB_JARS        := /usr/share/ant/lib/ant-launcher.jar\
-				   /usr/share/ant/lib/ant-nodeps.jar \
+DEB_JARS        := /usr/share/ant/lib/ant-nodeps.jar \
 				   /usr/share/ant/lib/ant-junit.jar\
 				   junit.jar
 




More information about the pkg-java-commits mailing list