[jboss-svn-commits] JBL Code SVN: r12579 - in labs/jbossrules/trunk/drools-compiler/src/main: java/org/drools/rule/builder/dialect/java/parser and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 14 12:46:09 EDT 2007


Author: tirelli
Date: 2007-06-14 12:46:08 -0400 (Thu, 14 Jun 2007)
New Revision: 12579

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g
Removed:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/JavaParser.g
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzer.java
Log:
JBRULES-927: migrating java grammar to version 5

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzer.java	2007-06-14 14:10:42 UTC (rev 12578)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaExprAnalyzer.java	2007-06-14 16:46:08 UTC (rev 12579)
@@ -27,8 +27,8 @@
 import org.antlr.runtime.CommonTokenStream;
 import org.antlr.runtime.RecognitionException;
 import org.antlr.runtime.TokenStream;
-import org.drools.rule.builder.dialect.java.parser.JavaParserLexer;
-import org.drools.rule.builder.dialect.java.parser.JavaParserParser;
+import org.drools.rule.builder.dialect.java.parser.JavaLexer;
+import org.drools.rule.builder.dialect.java.parser.JavaParser;
 
 /**
  * Expression analyzer.
@@ -66,11 +66,11 @@
     public List[] analyzeExpression(final String expr,
                                     final Set[] availableIdentifiers) throws RecognitionException {
         final CharStream charStream = new ANTLRStringStream( expr );
-        final JavaParserLexer lexer = new JavaParserLexer( charStream );
+        final JavaLexer lexer = new JavaLexer( charStream );
         final TokenStream tokenStream = new CommonTokenStream( lexer );
-        final JavaParserParser parser = new JavaParserParser( tokenStream );
+        final JavaParser parser = new JavaParser( tokenStream );
 
-        parser.logicalOrExpression();
+        parser.conditionalOrExpression();
 
         return analyze( parser.getIdentifiers(),
                         availableIdentifiers );
@@ -79,11 +79,11 @@
     public List[] analyzeBlock(final String expr,
                                final Set[] availableIdentifiers) throws RecognitionException {
         final CharStream charStream = new ANTLRStringStream( "{" + expr + "}" );
-        final JavaParserLexer lexer = new JavaParserLexer( charStream );
+        final JavaLexer lexer = new JavaLexer( charStream );
         final TokenStream tokenStream = new CommonTokenStream( lexer );
-        final JavaParserParser parser = new JavaParserParser( tokenStream );
+        final JavaParser parser = new JavaParser( tokenStream );
 
-        parser.compoundStatement();
+        parser.block();
 
         return analyze( parser.getIdentifiers(),
                         availableIdentifiers );

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaLexer.java	2007-06-14 16:46:08 UTC (rev 12579)
@@ -0,0 +1,4577 @@
+// $ANTLR 3.0 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g 2007-06-14 12:26:45
+
+	package org.drools.rule.builder.dialect.java.parser;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class JavaLexer extends Lexer {
+    public static final int T29=29;
+    public static final int HexDigit=12;
+    public static final int T70=70;
+    public static final int T74=74;
+    public static final int T85=85;
+    public static final int T102=102;
+    public static final int Letter=19;
+    public static final int T103=103;
+    public static final int T32=32;
+    public static final int T81=81;
+    public static final int T41=41;
+    public static final int T24=24;
+    public static final int FloatTypeSuffix=15;
+    public static final int T113=113;
+    public static final int T62=62;
+    public static final int T109=109;
+    public static final int IntegerTypeSuffix=13;
+    public static final int T68=68;
+    public static final int T73=73;
+    public static final int T84=84;
+    public static final int T33=33;
+    public static final int Identifier=4;
+    public static final int T78=78;
+    public static final int WS=21;
+    public static final int T42=42;
+    public static final int T96=96;
+    public static final int T71=71;
+    public static final int LINE_COMMENT=23;
+    public static final int T72=72;
+    public static final int T94=94;
+    public static final int T76=76;
+    public static final int UnicodeEscape=17;
+    public static final int HexLiteral=9;
+    public static final int T75=75;
+    public static final int T89=89;
+    public static final int DecimalLiteral=11;
+    public static final int T67=67;
+    public static final int T31=31;
+    public static final int T60=60;
+    public static final int T82=82;
+    public static final int T100=100;
+    public static final int T49=49;
+    public static final int T30=30;
+    public static final int T79=79;
+    public static final int OctalLiteral=10;
+    public static final int T36=36;
+    public static final int T58=58;
+    public static final int T93=93;
+    public static final int T35=35;
+    public static final int T107=107;
+    public static final int T83=83;
+    public static final int T61=61;
+    public static final int T45=45;
+    public static final int T34=34;
+    public static final int T101=101;
+    public static final int T64=64;
+    public static final int T25=25;
+    public static final int T91=91;
+    public static final int T105=105;
+    public static final int T37=37;
+    public static final int T86=86;
+    public static final int EscapeSequence=16;
+    public static final int T26=26;
+    public static final int T51=51;
+    public static final int T111=111;
+    public static final int T46=46;
+    public static final int T77=77;
+    public static final int T38=38;
+    public static final int FloatingPointLiteral=6;
+    public static final int T106=106;
+    public static final int T112=112;
+    public static final int T69=69;
+    public static final int T39=39;
+    public static final int ENUM=5;
+    public static final int T44=44;
+    public static final int T55=55;
+    public static final int Exponent=14;
+    public static final int T95=95;
+    public static final int T50=50;
+    public static final int T110=110;
+    public static final int T108=108;
+    public static final int CharacterLiteral=7;
+    public static final int T92=92;
+    public static final int T43=43;
+    public static final int T28=28;
+    public static final int T40=40;
+    public static final int T66=66;
+    public static final int COMMENT=22;
+    public static final int T88=88;
+    public static final int StringLiteral=8;
+    public static final int T63=63;
+    public static final int T57=57;
+    public static final int T65=65;
+    public static final int T98=98;
+    public static final int T56=56;
+    public static final int T87=87;
+    public static final int T80=80;
+    public static final int JavaIDDigit=20;
+    public static final int T59=59;
+    public static final int T97=97;
+    public static final int T48=48;
+    public static final int T54=54;
+    public static final int EOF=-1;
+    public static final int T104=104;
+    public static final int T47=47;
+    public static final int Tokens=114;
+    public static final int T53=53;
+    public static final int OctalEscape=18;
+    public static final int T99=99;
+    public static final int T27=27;
+    public static final int T52=52;
+    public static final int T90=90;
+
+    	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
+    	protected boolean enumIsKeyword = true;
+
+    public JavaLexer() {;} 
+    public JavaLexer(CharStream input) {
+        super(input);
+    }
+    public String getGrammarFileName() { return "/home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g"; }
+
+    // $ANTLR start T24
+    public final void mT24() throws RecognitionException {
+        try {
+            int _type = T24;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:10:7: ( 'package' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:10:7: 'package'
+            {
+            match("package"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T24
+
+    // $ANTLR start T25
+    public final void mT25() throws RecognitionException {
+        try {
+            int _type = T25;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:11:7: ( ';' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:11:7: ';'
+            {
+            match(';'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T25
+
+    // $ANTLR start T26
+    public final void mT26() throws RecognitionException {
+        try {
+            int _type = T26;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:12:7: ( 'import' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:12:7: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T26
+
+    // $ANTLR start T27
+    public final void mT27() throws RecognitionException {
+        try {
+            int _type = T27;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:13:7: ( 'static' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:13:7: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T27
+
+    // $ANTLR start T28
+    public final void mT28() throws RecognitionException {
+        try {
+            int _type = T28;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:14:7: ( '.' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:14:7: '.'
+            {
+            match('.'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T28
+
+    // $ANTLR start T29
+    public final void mT29() throws RecognitionException {
+        try {
+            int _type = T29;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:15:7: ( '*' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:15:7: '*'
+            {
+            match('*'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T29
+
+    // $ANTLR start T30
+    public final void mT30() throws RecognitionException {
+        try {
+            int _type = T30;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:16:7: ( 'class' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:16:7: 'class'
+            {
+            match("class"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T30
+
+    // $ANTLR start T31
+    public final void mT31() throws RecognitionException {
+        try {
+            int _type = T31;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:17:7: ( 'extends' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:17:7: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T31
+
+    // $ANTLR start T32
+    public final void mT32() throws RecognitionException {
+        try {
+            int _type = T32;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:18:7: ( 'implements' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:18:7: 'implements'
+            {
+            match("implements"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T32
+
+    // $ANTLR start T33
+    public final void mT33() throws RecognitionException {
+        try {
+            int _type = T33;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:19:7: ( '<' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:19:7: '<'
+            {
+            match('<'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T33
+
+    // $ANTLR start T34
+    public final void mT34() throws RecognitionException {
+        try {
+            int _type = T34;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:20:7: ( ',' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:20:7: ','
+            {
+            match(','); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T34
+
+    // $ANTLR start T35
+    public final void mT35() throws RecognitionException {
+        try {
+            int _type = T35;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:21:7: ( '>' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:21:7: '>'
+            {
+            match('>'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T35
+
+    // $ANTLR start T36
+    public final void mT36() throws RecognitionException {
+        try {
+            int _type = T36;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:22:7: ( '&' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:22:7: '&'
+            {
+            match('&'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T36
+
+    // $ANTLR start T37
+    public final void mT37() throws RecognitionException {
+        try {
+            int _type = T37;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:23:7: ( '{' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:23:7: '{'
+            {
+            match('{'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T37
+
+    // $ANTLR start T38
+    public final void mT38() throws RecognitionException {
+        try {
+            int _type = T38;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:24:7: ( '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:24:7: '}'
+            {
+            match('}'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T38
+
+    // $ANTLR start T39
+    public final void mT39() throws RecognitionException {
+        try {
+            int _type = T39;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:25:7: ( 'interface' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:25:7: 'interface'
+            {
+            match("interface"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T39
+
+    // $ANTLR start T40
+    public final void mT40() throws RecognitionException {
+        try {
+            int _type = T40;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:26:7: ( 'void' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:26:7: 'void'
+            {
+            match("void"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T40
+
+    // $ANTLR start T41
+    public final void mT41() throws RecognitionException {
+        try {
+            int _type = T41;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:27:7: ( '[' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:27:7: '['
+            {
+            match('['); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T41
+
+    // $ANTLR start T42
+    public final void mT42() throws RecognitionException {
+        try {
+            int _type = T42;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:28:7: ( ']' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:28:7: ']'
+            {
+            match(']'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T42
+
+    // $ANTLR start T43
+    public final void mT43() throws RecognitionException {
+        try {
+            int _type = T43;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:29:7: ( 'throws' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:29:7: 'throws'
+            {
+            match("throws"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T43
+
+    // $ANTLR start T44
+    public final void mT44() throws RecognitionException {
+        try {
+            int _type = T44;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:30:7: ( '=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:30:7: '='
+            {
+            match('='); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T44
+
+    // $ANTLR start T45
+    public final void mT45() throws RecognitionException {
+        try {
+            int _type = T45;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:31:7: ( 'public' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:31:7: 'public'
+            {
+            match("public"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T45
+
+    // $ANTLR start T46
+    public final void mT46() throws RecognitionException {
+        try {
+            int _type = T46;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:32:7: ( 'protected' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:32:7: 'protected'
+            {
+            match("protected"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T46
+
+    // $ANTLR start T47
+    public final void mT47() throws RecognitionException {
+        try {
+            int _type = T47;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:33:7: ( 'private' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:33:7: 'private'
+            {
+            match("private"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T47
+
+    // $ANTLR start T48
+    public final void mT48() throws RecognitionException {
+        try {
+            int _type = T48;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:34:7: ( 'abstract' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:34:7: 'abstract'
+            {
+            match("abstract"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T48
+
+    // $ANTLR start T49
+    public final void mT49() throws RecognitionException {
+        try {
+            int _type = T49;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:35:7: ( 'final' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:35:7: 'final'
+            {
+            match("final"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T49
+
+    // $ANTLR start T50
+    public final void mT50() throws RecognitionException {
+        try {
+            int _type = T50;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:36:7: ( 'native' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:36:7: 'native'
+            {
+            match("native"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T50
+
+    // $ANTLR start T51
+    public final void mT51() throws RecognitionException {
+        try {
+            int _type = T51;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:37:7: ( 'synchronized' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:37:7: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T51
+
+    // $ANTLR start T52
+    public final void mT52() throws RecognitionException {
+        try {
+            int _type = T52;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:38:7: ( 'transient' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:38:7: 'transient'
+            {
+            match("transient"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T52
+
+    // $ANTLR start T53
+    public final void mT53() throws RecognitionException {
+        try {
+            int _type = T53;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:39:7: ( 'volatile' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:39:7: 'volatile'
+            {
+            match("volatile"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T53
+
+    // $ANTLR start T54
+    public final void mT54() throws RecognitionException {
+        try {
+            int _type = T54;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:40:7: ( 'strictfp' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:40:7: 'strictfp'
+            {
+            match("strictfp"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T54
+
+    // $ANTLR start T55
+    public final void mT55() throws RecognitionException {
+        try {
+            int _type = T55;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:41:7: ( 'boolean' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:41:7: 'boolean'
+            {
+            match("boolean"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T55
+
+    // $ANTLR start T56
+    public final void mT56() throws RecognitionException {
+        try {
+            int _type = T56;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:42:7: ( 'char' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:42:7: 'char'
+            {
+            match("char"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T56
+
+    // $ANTLR start T57
+    public final void mT57() throws RecognitionException {
+        try {
+            int _type = T57;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:43:7: ( 'byte' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:43:7: 'byte'
+            {
+            match("byte"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T57
+
+    // $ANTLR start T58
+    public final void mT58() throws RecognitionException {
+        try {
+            int _type = T58;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:44:7: ( 'short' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:44:7: 'short'
+            {
+            match("short"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T58
+
+    // $ANTLR start T59
+    public final void mT59() throws RecognitionException {
+        try {
+            int _type = T59;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:45:7: ( 'int' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:45:7: 'int'
+            {
+            match("int"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T59
+
+    // $ANTLR start T60
+    public final void mT60() throws RecognitionException {
+        try {
+            int _type = T60;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:46:7: ( 'long' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:46:7: 'long'
+            {
+            match("long"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T60
+
+    // $ANTLR start T61
+    public final void mT61() throws RecognitionException {
+        try {
+            int _type = T61;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:47:7: ( 'float' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:47:7: 'float'
+            {
+            match("float"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T61
+
+    // $ANTLR start T62
+    public final void mT62() throws RecognitionException {
+        try {
+            int _type = T62;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:48:7: ( 'double' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:48:7: 'double'
+            {
+            match("double"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T62
+
+    // $ANTLR start T63
+    public final void mT63() throws RecognitionException {
+        try {
+            int _type = T63;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:49:7: ( '?' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:49:7: '?'
+            {
+            match('?'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T63
+
+    // $ANTLR start T64
+    public final void mT64() throws RecognitionException {
+        try {
+            int _type = T64;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:50:7: ( 'super' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:50:7: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T64
+
+    // $ANTLR start T65
+    public final void mT65() throws RecognitionException {
+        try {
+            int _type = T65;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:51:7: ( '(' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:51:7: '('
+            {
+            match('('); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T65
+
+    // $ANTLR start T66
+    public final void mT66() throws RecognitionException {
+        try {
+            int _type = T66;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:52:7: ( ')' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:52:7: ')'
+            {
+            match(')'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T66
+
+    // $ANTLR start T67
+    public final void mT67() throws RecognitionException {
+        try {
+            int _type = T67;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:53:7: ( '...' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:53:7: '...'
+            {
+            match("..."); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T67
+
+    // $ANTLR start T68
+    public final void mT68() throws RecognitionException {
+        try {
+            int _type = T68;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:54:7: ( 'null' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:54:7: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T68
+
+    // $ANTLR start T69
+    public final void mT69() throws RecognitionException {
+        try {
+            int _type = T69;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:55:7: ( 'true' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:55:7: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T69
+
+    // $ANTLR start T70
+    public final void mT70() throws RecognitionException {
+        try {
+            int _type = T70;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:56:7: ( 'false' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:56:7: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T70
+
+    // $ANTLR start T71
+    public final void mT71() throws RecognitionException {
+        try {
+            int _type = T71;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:57:7: ( '@' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:57:7: '@'
+            {
+            match('@'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T71
+
+    // $ANTLR start T72
+    public final void mT72() throws RecognitionException {
+        try {
+            int _type = T72;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:58:7: ( 'default' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:58:7: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T72
+
+    // $ANTLR start T73
+    public final void mT73() throws RecognitionException {
+        try {
+            int _type = T73;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:59:7: ( 'assert' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:59:7: 'assert'
+            {
+            match("assert"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T73
+
+    // $ANTLR start T74
+    public final void mT74() throws RecognitionException {
+        try {
+            int _type = T74;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:60:7: ( ':' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:60:7: ':'
+            {
+            match(':'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T74
+
+    // $ANTLR start T75
+    public final void mT75() throws RecognitionException {
+        try {
+            int _type = T75;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:61:7: ( 'if' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:61:7: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T75
+
+    // $ANTLR start T76
+    public final void mT76() throws RecognitionException {
+        try {
+            int _type = T76;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:62:7: ( 'else' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:62:7: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T76
+
+    // $ANTLR start T77
+    public final void mT77() throws RecognitionException {
+        try {
+            int _type = T77;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:63:7: ( 'for' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:63:7: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T77
+
+    // $ANTLR start T78
+    public final void mT78() throws RecognitionException {
+        try {
+            int _type = T78;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:64:7: ( 'while' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:64:7: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T78
+
+    // $ANTLR start T79
+    public final void mT79() throws RecognitionException {
+        try {
+            int _type = T79;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:65:7: ( 'do' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:65:7: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T79
+
+    // $ANTLR start T80
+    public final void mT80() throws RecognitionException {
+        try {
+            int _type = T80;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:66:7: ( 'try' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:66:7: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T80
+
+    // $ANTLR start T81
+    public final void mT81() throws RecognitionException {
+        try {
+            int _type = T81;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:67:7: ( 'finally' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:67:7: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T81
+
+    // $ANTLR start T82
+    public final void mT82() throws RecognitionException {
+        try {
+            int _type = T82;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:68:7: ( 'switch' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:68:7: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T82
+
+    // $ANTLR start T83
+    public final void mT83() throws RecognitionException {
+        try {
+            int _type = T83;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:69:7: ( 'return' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:69:7: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T83
+
+    // $ANTLR start T84
+    public final void mT84() throws RecognitionException {
+        try {
+            int _type = T84;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:70:7: ( 'throw' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:70:7: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T84
+
+    // $ANTLR start T85
+    public final void mT85() throws RecognitionException {
+        try {
+            int _type = T85;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:71:7: ( 'break' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:71:7: 'break'
+            {
+            match("break"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T85
+
+    // $ANTLR start T86
+    public final void mT86() throws RecognitionException {
+        try {
+            int _type = T86;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:72:7: ( 'continue' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:72:7: 'continue'
+            {
+            match("continue"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T86
+
+    // $ANTLR start T87
+    public final void mT87() throws RecognitionException {
+        try {
+            int _type = T87;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:73:7: ( 'catch' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:73:7: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T87
+
+    // $ANTLR start T88
+    public final void mT88() throws RecognitionException {
+        try {
+            int _type = T88;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:74:7: ( 'case' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:74:7: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T88
+
+    // $ANTLR start T89
+    public final void mT89() throws RecognitionException {
+        try {
+            int _type = T89;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:75:7: ( '+=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:75:7: '+='
+            {
+            match("+="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T89
+
+    // $ANTLR start T90
+    public final void mT90() throws RecognitionException {
+        try {
+            int _type = T90;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:76:7: ( '-=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:76:7: '-='
+            {
+            match("-="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T90
+
+    // $ANTLR start T91
+    public final void mT91() throws RecognitionException {
+        try {
+            int _type = T91;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:77:7: ( '*=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:77:7: '*='
+            {
+            match("*="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T91
+
+    // $ANTLR start T92
+    public final void mT92() throws RecognitionException {
+        try {
+            int _type = T92;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:78:7: ( '/=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:78:7: '/='
+            {
+            match("/="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T92
+
+    // $ANTLR start T93
+    public final void mT93() throws RecognitionException {
+        try {
+            int _type = T93;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:79:7: ( '&=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:79:7: '&='
+            {
+            match("&="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T93
+
+    // $ANTLR start T94
+    public final void mT94() throws RecognitionException {
+        try {
+            int _type = T94;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:80:7: ( '|=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:80:7: '|='
+            {
+            match("|="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T94
+
+    // $ANTLR start T95
+    public final void mT95() throws RecognitionException {
+        try {
+            int _type = T95;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:81:7: ( '^=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:81:7: '^='
+            {
+            match("^="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T95
+
+    // $ANTLR start T96
+    public final void mT96() throws RecognitionException {
+        try {
+            int _type = T96;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:82:7: ( '%=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:82:7: '%='
+            {
+            match("%="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T96
+
+    // $ANTLR start T97
+    public final void mT97() throws RecognitionException {
+        try {
+            int _type = T97;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:83:7: ( '||' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:83:7: '||'
+            {
+            match("||"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T97
+
+    // $ANTLR start T98
+    public final void mT98() throws RecognitionException {
+        try {
+            int _type = T98;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:84:7: ( '&&' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:84:7: '&&'
+            {
+            match("&&"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T98
+
+    // $ANTLR start T99
+    public final void mT99() throws RecognitionException {
+        try {
+            int _type = T99;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:85:7: ( '|' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:85:7: '|'
+            {
+            match('|'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T99
+
+    // $ANTLR start T100
+    public final void mT100() throws RecognitionException {
+        try {
+            int _type = T100;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:86:8: ( '^' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:86:8: '^'
+            {
+            match('^'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T100
+
+    // $ANTLR start T101
+    public final void mT101() throws RecognitionException {
+        try {
+            int _type = T101;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:87:8: ( '==' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:87:8: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T101
+
+    // $ANTLR start T102
+    public final void mT102() throws RecognitionException {
+        try {
+            int _type = T102;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:88:8: ( '!=' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:88:8: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T102
+
+    // $ANTLR start T103
+    public final void mT103() throws RecognitionException {
+        try {
+            int _type = T103;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:89:8: ( 'instanceof' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:89:8: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T103
+
+    // $ANTLR start T104
+    public final void mT104() throws RecognitionException {
+        try {
+            int _type = T104;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:90:8: ( '+' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:90:8: '+'
+            {
+            match('+'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T104
+
+    // $ANTLR start T105
+    public final void mT105() throws RecognitionException {
+        try {
+            int _type = T105;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:91:8: ( '-' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:91:8: '-'
+            {
+            match('-'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T105
+
+    // $ANTLR start T106
+    public final void mT106() throws RecognitionException {
+        try {
+            int _type = T106;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:92:8: ( '/' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:92:8: '/'
+            {
+            match('/'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T106
+
+    // $ANTLR start T107
+    public final void mT107() throws RecognitionException {
+        try {
+            int _type = T107;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:93:8: ( '%' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:93:8: '%'
+            {
+            match('%'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T107
+
+    // $ANTLR start T108
+    public final void mT108() throws RecognitionException {
+        try {
+            int _type = T108;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:94:8: ( '++' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:94:8: '++'
+            {
+            match("++"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T108
+
+    // $ANTLR start T109
+    public final void mT109() throws RecognitionException {
+        try {
+            int _type = T109;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:95:8: ( '--' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:95:8: '--'
+            {
+            match("--"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T109
+
+    // $ANTLR start T110
+    public final void mT110() throws RecognitionException {
+        try {
+            int _type = T110;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:96:8: ( '~' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:96:8: '~'
+            {
+            match('~'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T110
+
+    // $ANTLR start T111
+    public final void mT111() throws RecognitionException {
+        try {
+            int _type = T111;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:97:8: ( '!' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:97:8: '!'
+            {
+            match('!'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T111
+
+    // $ANTLR start T112
+    public final void mT112() throws RecognitionException {
+        try {
+            int _type = T112;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:98:8: ( 'this' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:98:8: 'this'
+            {
+            match("this"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T112
+
+    // $ANTLR start T113
+    public final void mT113() throws RecognitionException {
+        try {
+            int _type = T113;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:99:8: ( 'new' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:99:8: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T113
+
+    // $ANTLR start HexLiteral
+    public final void mHexLiteral() throws RecognitionException {
+        try {
+            int _type = HexLiteral;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:877:14: ( '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:877:14: '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )?
+            {
+            match('0'); 
+            if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:877:28: ( HexDigit )+
+            int cnt1=0;
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='F')||(LA1_0>='a' && LA1_0<='f')) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:877:28: HexDigit
+            	    {
+            	    mHexDigit(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt1 >= 1 ) break loop1;
+                        EarlyExitException eee =
+                            new EarlyExitException(1, input);
+                        throw eee;
+                }
+                cnt1++;
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:877:38: ( IntegerTypeSuffix )?
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0=='L'||LA2_0=='l') ) {
+                alt2=1;
+            }
+            switch (alt2) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:877:38: IntegerTypeSuffix
+                    {
+                    mIntegerTypeSuffix(); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end HexLiteral
+
+    // $ANTLR start DecimalLiteral
+    public final void mDecimalLiteral() throws RecognitionException {
+        try {
+            int _type = DecimalLiteral;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:18: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:18: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )?
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0=='0') ) {
+                alt4=1;
+            }
+            else if ( ((LA4_0>='1' && LA4_0<='9')) ) {
+                alt4=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("879:18: ( '0' | '1' .. '9' ( '0' .. '9' )* )", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:19: '0'
+                    {
+                    match('0'); 
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:25: '1' .. '9' ( '0' .. '9' )*
+                    {
+                    matchRange('1','9'); 
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:34: ( '0' .. '9' )*
+                    loop3:
+                    do {
+                        int alt3=2;
+                        int LA3_0 = input.LA(1);
+
+                        if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+                            alt3=1;
+                        }
+
+
+                        switch (alt3) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:34: '0' .. '9'
+                    	    {
+                    	    matchRange('0','9'); 
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop3;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:45: ( IntegerTypeSuffix )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0=='L'||LA5_0=='l') ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:879:45: IntegerTypeSuffix
+                    {
+                    mIntegerTypeSuffix(); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end DecimalLiteral
+
+    // $ANTLR start OctalLiteral
+    public final void mOctalLiteral() throws RecognitionException {
+        try {
+            int _type = OctalLiteral;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:881:16: ( '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:881:16: '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )?
+            {
+            match('0'); 
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:881:20: ( '0' .. '7' )+
+            int cnt6=0;
+            loop6:
+            do {
+                int alt6=2;
+                int LA6_0 = input.LA(1);
+
+                if ( ((LA6_0>='0' && LA6_0<='7')) ) {
+                    alt6=1;
+                }
+
+
+                switch (alt6) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:881:21: '0' .. '7'
+            	    {
+            	    matchRange('0','7'); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt6 >= 1 ) break loop6;
+                        EarlyExitException eee =
+                            new EarlyExitException(6, input);
+                        throw eee;
+                }
+                cnt6++;
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:881:32: ( IntegerTypeSuffix )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0=='L'||LA7_0=='l') ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:881:32: IntegerTypeSuffix
+                    {
+                    mIntegerTypeSuffix(); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end OctalLiteral
+
+    // $ANTLR start HexDigit
+    public final void mHexDigit() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:884:12: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:884:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+            {
+            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end HexDigit
+
+    // $ANTLR start IntegerTypeSuffix
+    public final void mIntegerTypeSuffix() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:887:21: ( ( 'l' | 'L' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:887:21: ( 'l' | 'L' )
+            {
+            if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end IntegerTypeSuffix
+
+    // $ANTLR start FloatingPointLiteral
+    public final void mFloatingPointLiteral() throws RecognitionException {
+        try {
+            int _type = FloatingPointLiteral;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:9: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix )
+            int alt19=4;
+            alt19 = dfa19.predict(input);
+            switch (alt19) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )?
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:9: ( '0' .. '9' )+
+                    int cnt8=0;
+                    loop8:
+                    do {
+                        int alt8=2;
+                        int LA8_0 = input.LA(1);
+
+                        if ( ((LA8_0>='0' && LA8_0<='9')) ) {
+                            alt8=1;
+                        }
+
+
+                        switch (alt8) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:10: '0' .. '9'
+                    	    {
+                    	    matchRange('0','9'); 
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt8 >= 1 ) break loop8;
+                                EarlyExitException eee =
+                                    new EarlyExitException(8, input);
+                                throw eee;
+                        }
+                        cnt8++;
+                    } while (true);
+
+                    match('.'); 
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:25: ( '0' .. '9' )*
+                    loop9:
+                    do {
+                        int alt9=2;
+                        int LA9_0 = input.LA(1);
+
+                        if ( ((LA9_0>='0' && LA9_0<='9')) ) {
+                            alt9=1;
+                        }
+
+
+                        switch (alt9) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:26: '0' .. '9'
+                    	    {
+                    	    matchRange('0','9'); 
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop9;
+                        }
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:37: ( Exponent )?
+                    int alt10=2;
+                    int LA10_0 = input.LA(1);
+
+                    if ( (LA10_0=='E'||LA10_0=='e') ) {
+                        alt10=1;
+                    }
+                    switch (alt10) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:37: Exponent
+                            {
+                            mExponent(); 
+
+                            }
+                            break;
+
+                    }
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:47: ( FloatTypeSuffix )?
+                    int alt11=2;
+                    int LA11_0 = input.LA(1);
+
+                    if ( (LA11_0=='D'||LA11_0=='F'||LA11_0=='d'||LA11_0=='f') ) {
+                        alt11=1;
+                    }
+                    switch (alt11) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:890:47: FloatTypeSuffix
+                            {
+                            mFloatTypeSuffix(); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:891:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )?
+                    {
+                    match('.'); 
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:891:13: ( '0' .. '9' )+
+                    int cnt12=0;
+                    loop12:
+                    do {
+                        int alt12=2;
+                        int LA12_0 = input.LA(1);
+
+                        if ( ((LA12_0>='0' && LA12_0<='9')) ) {
+                            alt12=1;
+                        }
+
+
+                        switch (alt12) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:891:14: '0' .. '9'
+                    	    {
+                    	    matchRange('0','9'); 
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt12 >= 1 ) break loop12;
+                                EarlyExitException eee =
+                                    new EarlyExitException(12, input);
+                                throw eee;
+                        }
+                        cnt12++;
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:891:25: ( Exponent )?
+                    int alt13=2;
+                    int LA13_0 = input.LA(1);
+
+                    if ( (LA13_0=='E'||LA13_0=='e') ) {
+                        alt13=1;
+                    }
+                    switch (alt13) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:891:25: Exponent
+                            {
+                            mExponent(); 
+
+                            }
+                            break;
+
+                    }
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:891:35: ( FloatTypeSuffix )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
+
+                    if ( (LA14_0=='D'||LA14_0=='F'||LA14_0=='d'||LA14_0=='f') ) {
+                        alt14=1;
+                    }
+                    switch (alt14) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:891:35: FloatTypeSuffix
+                            {
+                            mFloatTypeSuffix(); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:892:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )?
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:892:9: ( '0' .. '9' )+
+                    int cnt15=0;
+                    loop15:
+                    do {
+                        int alt15=2;
+                        int LA15_0 = input.LA(1);
+
+                        if ( ((LA15_0>='0' && LA15_0<='9')) ) {
+                            alt15=1;
+                        }
+
+
+                        switch (alt15) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:892:10: '0' .. '9'
+                    	    {
+                    	    matchRange('0','9'); 
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt15 >= 1 ) break loop15;
+                                EarlyExitException eee =
+                                    new EarlyExitException(15, input);
+                                throw eee;
+                        }
+                        cnt15++;
+                    } while (true);
+
+                    mExponent(); 
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:892:30: ( FloatTypeSuffix )?
+                    int alt16=2;
+                    int LA16_0 = input.LA(1);
+
+                    if ( (LA16_0=='D'||LA16_0=='F'||LA16_0=='d'||LA16_0=='f') ) {
+                        alt16=1;
+                    }
+                    switch (alt16) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:892:30: FloatTypeSuffix
+                            {
+                            mFloatTypeSuffix(); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:893:9: ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:893:9: ( '0' .. '9' )+
+                    int cnt17=0;
+                    loop17:
+                    do {
+                        int alt17=2;
+                        int LA17_0 = input.LA(1);
+
+                        if ( ((LA17_0>='0' && LA17_0<='9')) ) {
+                            alt17=1;
+                        }
+
+
+                        switch (alt17) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:893:10: '0' .. '9'
+                    	    {
+                    	    matchRange('0','9'); 
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt17 >= 1 ) break loop17;
+                                EarlyExitException eee =
+                                    new EarlyExitException(17, input);
+                                throw eee;
+                        }
+                        cnt17++;
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:893:21: ( Exponent )?
+                    int alt18=2;
+                    int LA18_0 = input.LA(1);
+
+                    if ( (LA18_0=='E'||LA18_0=='e') ) {
+                        alt18=1;
+                    }
+                    switch (alt18) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:893:21: Exponent
+                            {
+                            mExponent(); 
+
+                            }
+                            break;
+
+                    }
+
+                    mFloatTypeSuffix(); 
+
+                    }
+                    break;
+
+            }
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end FloatingPointLiteral
+
+    // $ANTLR start Exponent
+    public final void mExponent() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:897:12: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:897:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
+            {
+            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:897:22: ( '+' | '-' )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0=='+'||LA20_0=='-') ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+                    {
+                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse =
+                            new MismatchedSetException(null,input);
+                        recover(mse);    throw mse;
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:897:33: ( '0' .. '9' )+
+            int cnt21=0;
+            loop21:
+            do {
+                int alt21=2;
+                int LA21_0 = input.LA(1);
+
+                if ( ((LA21_0>='0' && LA21_0<='9')) ) {
+                    alt21=1;
+                }
+
+
+                switch (alt21) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:897:34: '0' .. '9'
+            	    {
+            	    matchRange('0','9'); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt21 >= 1 ) break loop21;
+                        EarlyExitException eee =
+                            new EarlyExitException(21, input);
+                        throw eee;
+                }
+                cnt21++;
+            } while (true);
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end Exponent
+
+    // $ANTLR start FloatTypeSuffix
+    public final void mFloatTypeSuffix() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:900:19: ( ( 'f' | 'F' | 'd' | 'D' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:900:19: ( 'f' | 'F' | 'd' | 'D' )
+            {
+            if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='d'||input.LA(1)=='f' ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end FloatTypeSuffix
+
+    // $ANTLR start CharacterLiteral
+    public final void mCharacterLiteral() throws RecognitionException {
+        try {
+            int _type = CharacterLiteral;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:903:9: ( '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\'' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:903:9: '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) ) '\\''
+            {
+            match('\''); 
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:903:14: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0=='\\') ) {
+                alt22=1;
+            }
+            else if ( ((LA22_0>='\u0000' && LA22_0<='&')||(LA22_0>='(' && LA22_0<='[')||(LA22_0>=']' && LA22_0<='\uFFFE')) ) {
+                alt22=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("903:14: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )", 22, 0, input);
+
+                throw nvae;
+            }
+            switch (alt22) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:903:16: EscapeSequence
+                    {
+                    mEscapeSequence(); 
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:903:33: ~ ( '\\'' | '\\\\' )
+                    {
+                    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse =
+                            new MismatchedSetException(null,input);
+                        recover(mse);    throw mse;
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            match('\''); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end CharacterLiteral
+
+    // $ANTLR start StringLiteral
+    public final void mStringLiteral() throws RecognitionException {
+        try {
+            int _type = StringLiteral;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:907:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:907:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+            {
+            match('\"'); 
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:907:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+            loop23:
+            do {
+                int alt23=3;
+                int LA23_0 = input.LA(1);
+
+                if ( (LA23_0=='\\') ) {
+                    alt23=1;
+                }
+                else if ( ((LA23_0>='\u0000' && LA23_0<='!')||(LA23_0>='#' && LA23_0<='[')||(LA23_0>=']' && LA23_0<='\uFFFE')) ) {
+                    alt23=2;
+                }
+
+
+                switch (alt23) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:907:14: EscapeSequence
+            	    {
+            	    mEscapeSequence(); 
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:907:31: ~ ( '\\\\' | '\"' )
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recover(mse);    throw mse;
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop23;
+                }
+            } while (true);
+
+            match('\"'); 
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end StringLiteral
+
+    // $ANTLR start EscapeSequence
+    public final void mEscapeSequence() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:912:9: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
+            int alt24=3;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0=='\\') ) {
+                switch ( input.LA(2) ) {
+                case 'u':
+                    {
+                    alt24=2;
+                    }
+                    break;
+                case '\"':
+                case '\'':
+                case '\\':
+                case 'b':
+                case 'f':
+                case 'n':
+                case 'r':
+                case 't':
+                    {
+                    alt24=1;
+                    }
+                    break;
+                case '0':
+                case '1':
+                case '2':
+                case '3':
+                case '4':
+                case '5':
+                case '6':
+                case '7':
+                    {
+                    alt24=3;
+                    }
+                    break;
+                default:
+                    NoViableAltException nvae =
+                        new NoViableAltException("910:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 24, 1, input);
+
+                    throw nvae;
+                }
+
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("910:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 24, 0, input);
+
+                throw nvae;
+            }
+            switch (alt24) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:912:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
+                    {
+                    match('\\'); 
+                    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse =
+                            new MismatchedSetException(null,input);
+                        recover(mse);    throw mse;
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:913:9: UnicodeEscape
+                    {
+                    mUnicodeEscape(); 
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:914:9: OctalEscape
+                    {
+                    mOctalEscape(); 
+
+                    }
+                    break;
+
+            }
+        }
+        finally {
+        }
+    }
+    // $ANTLR end EscapeSequence
+
+    // $ANTLR start OctalEscape
+    public final void mOctalEscape() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            int alt25=3;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0=='\\') ) {
+                int LA25_1 = input.LA(2);
+
+                if ( ((LA25_1>='0' && LA25_1<='3')) ) {
+                    int LA25_2 = input.LA(3);
+
+                    if ( ((LA25_2>='0' && LA25_2<='7')) ) {
+                        int LA25_5 = input.LA(4);
+
+                        if ( ((LA25_5>='0' && LA25_5<='7')) ) {
+                            alt25=1;
+                        }
+                        else {
+                            alt25=2;}
+                    }
+                    else {
+                        alt25=3;}
+                }
+                else if ( ((LA25_1>='4' && LA25_1<='7')) ) {
+                    int LA25_3 = input.LA(3);
+
+                    if ( ((LA25_3>='0' && LA25_3<='7')) ) {
+                        alt25=2;
+                    }
+                    else {
+                        alt25=3;}
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("917:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 25, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("917:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 25, 0, input);
+
+                throw nvae;
+            }
+            switch (alt25) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    {
+                    match('\\'); 
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:14: ( '0' .. '3' )
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:15: '0' .. '3'
+                    {
+                    matchRange('0','3'); 
+
+                    }
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:25: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:26: '0' .. '7'
+                    {
+                    matchRange('0','7'); 
+
+                    }
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:36: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:919:37: '0' .. '7'
+                    {
+                    matchRange('0','7'); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:920:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    {
+                    match('\\'); 
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:920:14: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:920:15: '0' .. '7'
+                    {
+                    matchRange('0','7'); 
+
+                    }
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:920:25: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:920:26: '0' .. '7'
+                    {
+                    matchRange('0','7'); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:921:9: '\\\\' ( '0' .. '7' )
+                    {
+                    match('\\'); 
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:921:14: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:921:15: '0' .. '7'
+                    {
+                    matchRange('0','7'); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        finally {
+        }
+    }
+    // $ANTLR end OctalEscape
+
+    // $ANTLR start UnicodeEscape
+    public final void mUnicodeEscape() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:926:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:926:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            {
+            match('\\'); 
+            match('u'); 
+            mHexDigit(); 
+            mHexDigit(); 
+            mHexDigit(); 
+            mHexDigit(); 
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end UnicodeEscape
+
+    // $ANTLR start ENUM
+    public final void mENUM() throws RecognitionException {
+        try {
+            int _type = ENUM;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:929:7: ( 'enum' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:929:7: 'enum'
+            {
+            match("enum"); 
+
+            if ( !enumIsKeyword ) _type=Identifier;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end ENUM
+
+    // $ANTLR start Identifier
+    public final void mIdentifier() throws RecognitionException {
+        try {
+            int _type = Identifier;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:933:9: ( Letter ( Letter | JavaIDDigit )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:933:9: Letter ( Letter | JavaIDDigit )*
+            {
+            mLetter(); 
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:933:16: ( Letter | JavaIDDigit )*
+            loop26:
+            do {
+                int alt26=2;
+                int LA26_0 = input.LA(1);
+
+                if ( (LA26_0=='$'||(LA26_0>='0' && LA26_0<='9')||(LA26_0>='A' && LA26_0<='Z')||LA26_0=='_'||(LA26_0>='a' && LA26_0<='z')||(LA26_0>='\u00C0' && LA26_0<='\u00D6')||(LA26_0>='\u00D8' && LA26_0<='\u00F6')||(LA26_0>='\u00F8' && LA26_0<='\u1FFF')||(LA26_0>='\u3040' && LA26_0<='\u318F')||(LA26_0>='\u3300' && LA26_0<='\u337F')||(LA26_0>='\u3400' && LA26_0<='\u3D2D')||(LA26_0>='\u4E00' && LA26_0<='\u9FFF')||(LA26_0>='\uF900' && LA26_0<='\uFAFF')) ) {
+                    alt26=1;
+                }
+
+
+                switch (alt26) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+            	    {
+            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u1FFF')||(input.LA(1)>='\u3040' && input.LA(1)<='\u318F')||(input.LA(1)>='\u3300' && input.LA(1)<='\u337F')||(input.LA(1)>='\u3400' && input.LA(1)<='\u3D2D')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FFF')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFAFF') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recover(mse);    throw mse;
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop26;
+                }
+            } while (true);
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end Identifier
+
+    // $ANTLR start Letter
+    public final void mLetter() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:941:8: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+            {
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u1FFF')||(input.LA(1)>='\u3040' && input.LA(1)<='\u318F')||(input.LA(1)>='\u3300' && input.LA(1)<='\u337F')||(input.LA(1)>='\u3400' && input.LA(1)<='\u3D2D')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FFF')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFAFF') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end Letter
+
+    // $ANTLR start JavaIDDigit
+    public final void mJavaIDDigit() throws RecognitionException {
+        try {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:958:8: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' | '\\u06f0' .. '\\u06f9' | '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' | '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f' | '\\u0be7' .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' | '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' | '\\u0ed0' .. '\\u0ed9' | '\\u1040' .. '\\u1049' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+            {
+            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||(input.LA(1)>='\u06F0' && input.LA(1)<='\u06F9')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09EF')||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A6F')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end JavaIDDigit
+
+    // $ANTLR start WS
+    public final void mWS() throws RecognitionException {
+        try {
+            int _type = WS;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:975:8: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:975:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )
+            {
+            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+            channel=HIDDEN;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end WS
+
+    // $ANTLR start COMMENT
+    public final void mCOMMENT() throws RecognitionException {
+        try {
+            int _type = COMMENT;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:979:9: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:979:9: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:979:14: ( options {greedy=false; } : . )*
+            loop27:
+            do {
+                int alt27=2;
+                int LA27_0 = input.LA(1);
+
+                if ( (LA27_0=='*') ) {
+                    int LA27_1 = input.LA(2);
+
+                    if ( (LA27_1=='/') ) {
+                        alt27=2;
+                    }
+                    else if ( ((LA27_1>='\u0000' && LA27_1<='.')||(LA27_1>='0' && LA27_1<='\uFFFE')) ) {
+                        alt27=1;
+                    }
+
+
+                }
+                else if ( ((LA27_0>='\u0000' && LA27_0<=')')||(LA27_0>='+' && LA27_0<='\uFFFE')) ) {
+                    alt27=1;
+                }
+
+
+                switch (alt27) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:979:42: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop27;
+                }
+            } while (true);
+
+            match("*/"); 
+
+            channel=HIDDEN;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end COMMENT
+
+    // $ANTLR start LINE_COMMENT
+    public final void mLINE_COMMENT() throws RecognitionException {
+        try {
+            int _type = LINE_COMMENT;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:983:7: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:983:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
+            {
+            match("//"); 
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:983:12: (~ ( '\\n' | '\\r' ) )*
+            loop28:
+            do {
+                int alt28=2;
+                int LA28_0 = input.LA(1);
+
+                if ( ((LA28_0>='\u0000' && LA28_0<='\t')||(LA28_0>='\u000B' && LA28_0<='\f')||(LA28_0>='\u000E' && LA28_0<='\uFFFE')) ) {
+                    alt28=1;
+                }
+
+
+                switch (alt28) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:983:12: ~ ( '\\n' | '\\r' )
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFE') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recover(mse);    throw mse;
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop28;
+                }
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:983:26: ( '\\r' )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0=='\r') ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:983:26: '\\r'
+                    {
+                    match('\r'); 
+
+                    }
+                    break;
+
+            }
+
+            match('\n'); 
+            channel=HIDDEN;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end LINE_COMMENT
+
+    public void mTokens() throws RecognitionException {
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:10: ( T24 | T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | T41 | T42 | T43 | T44 | T45 | T46 | T47 | T48 | T49 | T50 | T51 | T52 | T53 | T54 | T55 | T56 | T57 | T58 | T59 | T60 | T61 | T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | T112 | T113 | HexLiteral | DecimalLiteral | OctalLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | ENUM | Identifier | WS | COMMENT | LINE_COMMENT )
+        int alt30=101;
+        alt30 = dfa30.predict(input);
+        switch (alt30) {
+            case 1 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:10: T24
+                {
+                mT24(); 
+
+                }
+                break;
+            case 2 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:14: T25
+                {
+                mT25(); 
+
+                }
+                break;
+            case 3 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:18: T26
+                {
+                mT26(); 
+
+                }
+                break;
+            case 4 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:22: T27
+                {
+                mT27(); 
+
+                }
+                break;
+            case 5 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:26: T28
+                {
+                mT28(); 
+
+                }
+                break;
+            case 6 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:30: T29
+                {
+                mT29(); 
+
+                }
+                break;
+            case 7 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:34: T30
+                {
+                mT30(); 
+
+                }
+                break;
+            case 8 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:38: T31
+                {
+                mT31(); 
+
+                }
+                break;
+            case 9 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:42: T32
+                {
+                mT32(); 
+
+                }
+                break;
+            case 10 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:46: T33
+                {
+                mT33(); 
+
+                }
+                break;
+            case 11 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:50: T34
+                {
+                mT34(); 
+
+                }
+                break;
+            case 12 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:54: T35
+                {
+                mT35(); 
+
+                }
+                break;
+            case 13 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:58: T36
+                {
+                mT36(); 
+
+                }
+                break;
+            case 14 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:62: T37
+                {
+                mT37(); 
+
+                }
+                break;
+            case 15 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:66: T38
+                {
+                mT38(); 
+
+                }
+                break;
+            case 16 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:70: T39
+                {
+                mT39(); 
+
+                }
+                break;
+            case 17 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:74: T40
+                {
+                mT40(); 
+
+                }
+                break;
+            case 18 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:78: T41
+                {
+                mT41(); 
+
+                }
+                break;
+            case 19 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:82: T42
+                {
+                mT42(); 
+
+                }
+                break;
+            case 20 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:86: T43
+                {
+                mT43(); 
+
+                }
+                break;
+            case 21 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:90: T44
+                {
+                mT44(); 
+
+                }
+                break;
+            case 22 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:94: T45
+                {
+                mT45(); 
+
+                }
+                break;
+            case 23 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:98: T46
+                {
+                mT46(); 
+
+                }
+                break;
+            case 24 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:102: T47
+                {
+                mT47(); 
+
+                }
+                break;
+            case 25 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:106: T48
+                {
+                mT48(); 
+
+                }
+                break;
+            case 26 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:110: T49
+                {
+                mT49(); 
+
+                }
+                break;
+            case 27 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:114: T50
+                {
+                mT50(); 
+
+                }
+                break;
+            case 28 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:118: T51
+                {
+                mT51(); 
+
+                }
+                break;
+            case 29 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:122: T52
+                {
+                mT52(); 
+
+                }
+                break;
+            case 30 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:126: T53
+                {
+                mT53(); 
+
+                }
+                break;
+            case 31 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:130: T54
+                {
+                mT54(); 
+
+                }
+                break;
+            case 32 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:134: T55
+                {
+                mT55(); 
+
+                }
+                break;
+            case 33 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:138: T56
+                {
+                mT56(); 
+
+                }
+                break;
+            case 34 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:142: T57
+                {
+                mT57(); 
+
+                }
+                break;
+            case 35 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:146: T58
+                {
+                mT58(); 
+
+                }
+                break;
+            case 36 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:150: T59
+                {
+                mT59(); 
+
+                }
+                break;
+            case 37 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:154: T60
+                {
+                mT60(); 
+
+                }
+                break;
+            case 38 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:158: T61
+                {
+                mT61(); 
+
+                }
+                break;
+            case 39 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:162: T62
+                {
+                mT62(); 
+
+                }
+                break;
+            case 40 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:166: T63
+                {
+                mT63(); 
+
+                }
+                break;
+            case 41 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:170: T64
+                {
+                mT64(); 
+
+                }
+                break;
+            case 42 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:174: T65
+                {
+                mT65(); 
+
+                }
+                break;
+            case 43 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:178: T66
+                {
+                mT66(); 
+
+                }
+                break;
+            case 44 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:182: T67
+                {
+                mT67(); 
+
+                }
+                break;
+            case 45 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:186: T68
+                {
+                mT68(); 
+
+                }
+                break;
+            case 46 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:190: T69
+                {
+                mT69(); 
+
+                }
+                break;
+            case 47 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:194: T70
+                {
+                mT70(); 
+
+                }
+                break;
+            case 48 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:198: T71
+                {
+                mT71(); 
+
+                }
+                break;
+            case 49 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:202: T72
+                {
+                mT72(); 
+
+                }
+                break;
+            case 50 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:206: T73
+                {
+                mT73(); 
+
+                }
+                break;
+            case 51 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:210: T74
+                {
+                mT74(); 
+
+                }
+                break;
+            case 52 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:214: T75
+                {
+                mT75(); 
+
+                }
+                break;
+            case 53 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:218: T76
+                {
+                mT76(); 
+
+                }
+                break;
+            case 54 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:222: T77
+                {
+                mT77(); 
+
+                }
+                break;
+            case 55 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:226: T78
+                {
+                mT78(); 
+
+                }
+                break;
+            case 56 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:230: T79
+                {
+                mT79(); 
+
+                }
+                break;
+            case 57 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:234: T80
+                {
+                mT80(); 
+
+                }
+                break;
+            case 58 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:238: T81
+                {
+                mT81(); 
+
+                }
+                break;
+            case 59 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:242: T82
+                {
+                mT82(); 
+
+                }
+                break;
+            case 60 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:246: T83
+                {
+                mT83(); 
+
+                }
+                break;
+            case 61 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:250: T84
+                {
+                mT84(); 
+
+                }
+                break;
+            case 62 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:254: T85
+                {
+                mT85(); 
+
+                }
+                break;
+            case 63 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:258: T86
+                {
+                mT86(); 
+
+                }
+                break;
+            case 64 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:262: T87
+                {
+                mT87(); 
+
+                }
+                break;
+            case 65 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:266: T88
+                {
+                mT88(); 
+
+                }
+                break;
+            case 66 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:270: T89
+                {
+                mT89(); 
+
+                }
+                break;
+            case 67 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:274: T90
+                {
+                mT90(); 
+
+                }
+                break;
+            case 68 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:278: T91
+                {
+                mT91(); 
+
+                }
+                break;
+            case 69 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:282: T92
+                {
+                mT92(); 
+
+                }
+                break;
+            case 70 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:286: T93
+                {
+                mT93(); 
+
+                }
+                break;
+            case 71 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:290: T94
+                {
+                mT94(); 
+
+                }
+                break;
+            case 72 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:294: T95
+                {
+                mT95(); 
+
+                }
+                break;
+            case 73 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:298: T96
+                {
+                mT96(); 
+
+                }
+                break;
+            case 74 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:302: T97
+                {
+                mT97(); 
+
+                }
+                break;
+            case 75 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:306: T98
+                {
+                mT98(); 
+
+                }
+                break;
+            case 76 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:310: T99
+                {
+                mT99(); 
+
+                }
+                break;
+            case 77 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:314: T100
+                {
+                mT100(); 
+
+                }
+                break;
+            case 78 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:319: T101
+                {
+                mT101(); 
+
+                }
+                break;
+            case 79 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:324: T102
+                {
+                mT102(); 
+
+                }
+                break;
+            case 80 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:329: T103
+                {
+                mT103(); 
+
+                }
+                break;
+            case 81 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:334: T104
+                {
+                mT104(); 
+
+                }
+                break;
+            case 82 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:339: T105
+                {
+                mT105(); 
+
+                }
+                break;
+            case 83 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:344: T106
+                {
+                mT106(); 
+
+                }
+                break;
+            case 84 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:349: T107
+                {
+                mT107(); 
+
+                }
+                break;
+            case 85 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:354: T108
+                {
+                mT108(); 
+
+                }
+                break;
+            case 86 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:359: T109
+                {
+                mT109(); 
+
+                }
+                break;
+            case 87 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:364: T110
+                {
+                mT110(); 
+
+                }
+                break;
+            case 88 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:369: T111
+                {
+                mT111(); 
+
+                }
+                break;
+            case 89 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:374: T112
+                {
+                mT112(); 
+
+                }
+                break;
+            case 90 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:379: T113
+                {
+                mT113(); 
+
+                }
+                break;
+            case 91 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:384: HexLiteral
+                {
+                mHexLiteral(); 
+
+                }
+                break;
+            case 92 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:395: DecimalLiteral
+                {
+                mDecimalLiteral(); 
+
+                }
+                break;
+            case 93 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:410: OctalLiteral
+                {
+                mOctalLiteral(); 
+
+                }
+                break;
+            case 94 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:423: FloatingPointLiteral
+                {
+                mFloatingPointLiteral(); 
+
+                }
+                break;
+            case 95 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:444: CharacterLiteral
+                {
+                mCharacterLiteral(); 
+
+                }
+                break;
+            case 96 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:461: StringLiteral
+                {
+                mStringLiteral(); 
+
+                }
+                break;
+            case 97 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:475: ENUM
+                {
+                mENUM(); 
+
+                }
+                break;
+            case 98 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:480: Identifier
+                {
+                mIdentifier(); 
+
+                }
+                break;
+            case 99 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:491: WS
+                {
+                mWS(); 
+
+                }
+                break;
+            case 100 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:494: COMMENT
+                {
+                mCOMMENT(); 
+
+                }
+                break;
+            case 101 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:1:502: LINE_COMMENT
+                {
+                mLINE_COMMENT(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA19 dfa19 = new DFA19(this);
+    protected DFA30 dfa30 = new DFA30(this);
+    static final String DFA19_eotS =
+        "\7\uffff\1\10\2\uffff";
+    static final String DFA19_eofS =
+        "\12\uffff";
+    static final String DFA19_minS =
+        "\2\56\1\uffff\1\53\2\uffff\2\60\2\uffff";
+    static final String DFA19_maxS =
+        "\1\71\1\146\1\uffff\1\71\2\uffff\1\71\1\146\2\uffff";
+    static final String DFA19_acceptS =
+        "\2\uffff\1\2\1\uffff\1\4\1\1\2\uffff\2\3";
+    static final String DFA19_specialS =
+        "\12\uffff}>";
+    static final String[] DFA19_transitionS = {
+            "\1\2\1\uffff\12\1",
+            "\1\5\1\uffff\12\1\12\uffff\1\4\1\3\1\4\35\uffff\1\4\1\3\1\4",
+            "",
+            "\1\6\1\uffff\1\6\2\uffff\12\7",
+            "",
+            "",
+            "\12\7",
+            "\12\7\12\uffff\1\11\1\uffff\1\11\35\uffff\1\11\1\uffff\1\11",
+            "",
+            ""
+    };
+
+    static final short[] DFA19_eot = DFA.unpackEncodedString(DFA19_eotS);
+    static final short[] DFA19_eof = DFA.unpackEncodedString(DFA19_eofS);
+    static final char[] DFA19_min = DFA.unpackEncodedStringToUnsignedChars(DFA19_minS);
+    static final char[] DFA19_max = DFA.unpackEncodedStringToUnsignedChars(DFA19_maxS);
+    static final short[] DFA19_accept = DFA.unpackEncodedString(DFA19_acceptS);
+    static final short[] DFA19_special = DFA.unpackEncodedString(DFA19_specialS);
+    static final short[][] DFA19_transition;
+
+    static {
+        int numStates = DFA19_transitionS.length;
+        DFA19_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA19_transition[i] = DFA.unpackEncodedString(DFA19_transitionS[i]);
+        }
+    }
+
+    class DFA19 extends DFA {
+
+        public DFA19(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 19;
+            this.eot = DFA19_eot;
+            this.eof = DFA19_eof;
+            this.min = DFA19_min;
+            this.max = DFA19_max;
+            this.accept = DFA19_accept;
+            this.special = DFA19_special;
+            this.transition = DFA19_transition;
+        }
+        public String getDescription() {
+            return "889:1: FloatingPointLiteral : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ ( Exponent )? FloatTypeSuffix );";
+        }
+    }
+    static final String DFA30_eotS =
+        "\1\uffff\1\55\1\uffff\2\55\1\73\1\76\2\55\3\uffff\1\110\2\uffff"+
+        "\1\55\2\uffff\1\55\1\115\6\55\5\uffff\2\55\1\141\1\144\1\150\1\153"+
+        "\1\155\1\157\1\161\1\uffff\2\164\4\uffff\3\55\1\172\7\55\5\uffff"+
+        "\7\55\3\uffff\3\55\2\uffff\16\55\1\u00a2\2\55\24\uffff\1\u00a5\1"+
+        "\uffff\1\164\4\55\1\uffff\1\55\1\u00ac\21\55\1\u00bf\11\55\1\u00c9"+
+        "\1\55\1\u00cb\7\55\1\uffff\2\55\1\uffff\6\55\1\uffff\10\55\1\u00e3"+
+        "\1\55\1\u00e5\2\55\1\u00e8\1\55\1\u00ea\1\55\1\u00ec\1\uffff\1\u00ed"+
+        "\2\55\1\u00f0\5\55\1\uffff\1\55\1\uffff\1\u00f7\1\55\1\u00f9\1\55"+
+        "\1\u00fb\20\55\1\u010c\1\u010d\1\uffff\1\u010e\1\uffff\1\u010f\1"+
+        "\55\1\uffff\1\55\1\uffff\1\55\2\uffff\1\55\1\u0115\1\uffff\2\55"+
+        "\1\u0118\1\u011a\1\u011b\1\55\1\uffff\1\55\1\uffff\1\u011e\1\uffff"+
+        "\2\55\1\u0121\2\55\1\u0124\4\55\1\u0129\2\55\1\u012c\1\u012d\1\55"+
+        "\4\uffff\4\55\1\u0133\1\uffff\1\55\1\u0135\1\uffff\1\55\2\uffff"+
+        "\1\u0137\1\55\1\uffff\1\55\1\u013a\1\uffff\1\u013b\1\u013c\1\uffff"+
+        "\1\u013d\3\55\1\uffff\2\55\2\uffff\2\55\1\u0145\2\55\1\uffff\1\55"+
+        "\1\uffff\1\u0149\1\uffff\1\u014a\1\u014b\4\uffff\5\55\1\u0151\1"+
+        "\u0152\1\uffff\1\u0153\1\55\1\u0155\3\uffff\1\u0156\1\55\1\u0158"+
+        "\2\55\3\uffff\1\u015b\2\uffff\1\u015c\1\uffff\1\u015d\1\55\3\uffff"+
+        "\1\55\1\u0160\1\uffff";
+    static final String DFA30_eofS =
+        "\u0161\uffff";
+    static final String DFA30_minS =
+        "\1\11\1\141\1\uffff\1\146\1\150\1\56\1\75\1\141\1\154\3\uffff\1"+
+        "\46\2\uffff\1\157\2\uffff\1\150\1\75\1\142\2\141\2\157\1\145\5\uffff"+
+        "\1\150\1\145\1\53\1\55\1\52\4\75\1\uffff\2\56\4\uffff\1\143\1\142"+
+        "\1\151\1\44\1\163\1\160\1\156\1\151\1\141\1\160\1\157\5\uffff\1"+
+        "\163\2\141\1\156\1\163\1\164\1\165\3\uffff\1\151\1\141\1\151\2\uffff"+
+        "\2\163\1\157\1\156\1\154\1\162\1\164\1\167\1\154\1\157\1\164\1\145"+
+        "\1\156\1\146\1\44\1\151\1\164\24\uffff\1\56\1\uffff\1\56\1\153\1"+
+        "\154\1\166\1\164\1\uffff\1\164\1\44\1\154\1\143\2\164\1\151\1\145"+
+        "\1\162\1\145\1\143\1\162\1\163\1\164\2\145\1\155\1\141\1\144\1\44"+
+        "\1\145\1\156\1\157\1\163\1\164\1\145\2\141\1\163\1\44\1\151\1\44"+
+        "\2\154\1\145\1\141\1\147\1\141\1\142\1\uffff\1\154\1\165\1\uffff"+
+        "\1\141\1\151\1\141\1\145\1\141\1\162\1\uffff\1\162\1\145\1\150\1"+
+        "\143\1\151\1\143\1\162\1\164\1\44\1\150\1\44\1\163\1\151\1\44\1"+
+        "\156\1\44\1\164\1\44\1\uffff\1\44\1\163\1\167\1\44\2\162\1\164\1"+
+        "\154\1\145\1\uffff\1\166\1\uffff\1\44\1\145\1\44\1\153\1\44\1\165"+
+        "\1\154\1\145\1\162\1\147\1\143\1\164\1\143\1\156\1\146\1\164\1\155"+
+        "\1\162\1\150\1\143\1\164\2\44\1\uffff\1\44\1\uffff\1\44\1\156\1"+
+        "\uffff\1\144\1\uffff\1\151\2\uffff\1\151\1\44\1\uffff\1\141\1\164"+
+        "\3\44\1\145\1\uffff\1\141\1\uffff\1\44\1\uffff\1\154\1\145\1\44"+
+        "\1\156\1\145\1\44\1\145\1\164\1\143\1\141\1\44\1\145\1\157\2\44"+
+        "\1\146\4\uffff\1\165\1\163\1\154\1\145\1\44\1\uffff\1\143\1\44\1"+
+        "\uffff\1\171\2\uffff\1\44\1\156\1\uffff\1\164\1\44\1\uffff\2\44"+
+        "\1\uffff\1\44\2\145\1\143\1\uffff\2\156\2\uffff\1\160\1\145\1\44"+
+        "\1\145\1\156\1\uffff\1\164\1\uffff\1\44\1\uffff\2\44\4\uffff\1\144"+
+        "\1\157\1\145\1\164\1\151\2\44\1\uffff\1\44\1\164\1\44\3\uffff\1"+
+        "\44\1\146\1\44\1\163\1\172\3\uffff\1\44\2\uffff\1\44\1\uffff\1\44"+
+        "\1\145\3\uffff\1\144\1\44\1\uffff";
+    static final String DFA30_maxS =
+        "\1\ufaff\1\165\1\uffff\1\156\1\171\1\71\1\75\1\157\1\170\3\uffff"+
+        "\1\75\2\uffff\1\157\2\uffff\1\162\1\75\1\163\1\157\1\165\1\171\2"+
+        "\157\5\uffff\1\150\1\145\3\75\1\174\3\75\1\uffff\1\170\1\146\4\uffff"+
+        "\1\143\1\142\1\157\1\ufaff\1\164\1\160\1\156\1\151\1\162\1\160\1"+
+        "\157\5\uffff\1\164\2\141\1\156\1\163\1\164\1\165\3\uffff\1\154\1"+
+        "\171\1\162\2\uffff\2\163\1\157\1\156\1\154\1\162\1\164\1\167\1\154"+
+        "\1\157\1\164\1\145\1\156\1\146\1\ufaff\1\151\1\164\24\uffff\1\146"+
+        "\1\uffff\1\146\1\153\1\154\1\166\1\164\1\uffff\1\164\1\ufaff\1\157"+
+        "\1\143\2\164\1\151\1\145\1\162\1\145\1\143\1\162\1\163\1\164\2\145"+
+        "\1\155\1\141\1\144\1\ufaff\1\145\1\156\1\157\1\163\1\164\1\145\2"+
+        "\141\1\163\1\ufaff\1\151\1\ufaff\2\154\1\145\1\141\1\147\1\141\1"+
+        "\142\1\uffff\1\154\1\165\1\uffff\1\141\1\151\1\141\1\145\1\141\1"+
+        "\162\1\uffff\1\162\1\145\1\150\1\143\1\151\1\143\1\162\1\164\1\ufaff"+
+        "\1\150\1\ufaff\1\163\1\151\1\ufaff\1\156\1\ufaff\1\164\1\ufaff\1"+
+        "\uffff\1\ufaff\1\163\1\167\1\ufaff\2\162\1\164\1\154\1\145\1\uffff"+
+        "\1\166\1\uffff\1\ufaff\1\145\1\ufaff\1\153\1\ufaff\1\165\1\154\1"+
+        "\145\1\162\1\147\1\143\1\164\1\143\1\156\1\146\1\164\1\155\1\162"+
+        "\1\150\1\143\1\164\2\ufaff\1\uffff\1\ufaff\1\uffff\1\ufaff\1\156"+
+        "\1\uffff\1\144\1\uffff\1\151\2\uffff\1\151\1\ufaff\1\uffff\1\141"+
+        "\1\164\3\ufaff\1\145\1\uffff\1\141\1\uffff\1\ufaff\1\uffff\1\154"+
+        "\1\145\1\ufaff\1\156\1\145\1\ufaff\1\145\1\164\1\143\1\141\1\ufaff"+
+        "\1\145\1\157\2\ufaff\1\146\4\uffff\1\165\1\163\1\154\1\145\1\ufaff"+
+        "\1\uffff\1\143\1\ufaff\1\uffff\1\171\2\uffff\1\ufaff\1\156\1\uffff"+
+        "\1\164\1\ufaff\1\uffff\2\ufaff\1\uffff\1\ufaff\2\145\1\143\1\uffff"+
+        "\2\156\2\uffff\1\160\1\145\1\ufaff\1\145\1\156\1\uffff\1\164\1\uffff"+
+        "\1\ufaff\1\uffff\2\ufaff\4\uffff\1\144\1\157\1\145\1\164\1\151\2"+
+        "\ufaff\1\uffff\1\ufaff\1\164\1\ufaff\3\uffff\1\ufaff\1\146\1\ufaff"+
+        "\1\163\1\172\3\uffff\1\ufaff\2\uffff\1\ufaff\1\uffff\1\ufaff\1\145"+
+        "\3\uffff\1\144\1\ufaff\1\uffff";
+    static final String DFA30_acceptS =
+        "\2\uffff\1\2\6\uffff\1\12\1\13\1\14\1\uffff\1\16\1\17\1\uffff\1"+
+        "\22\1\23\10\uffff\1\50\1\52\1\53\1\60\1\63\11\uffff\1\127\2\uffff"+
+        "\1\137\1\140\1\142\1\143\13\uffff\1\54\1\5\1\136\1\104\1\6\7\uffff"+
+        "\1\106\1\113\1\15\3\uffff\1\116\1\25\21\uffff\1\125\1\102\1\121"+
+        "\1\103\1\126\1\122\1\144\1\105\1\145\1\123\1\112\1\107\1\114\1\110"+
+        "\1\115\1\111\1\124\1\117\1\130\1\133\1\uffff\1\134\5\uffff\1\64"+
+        "\47\uffff\1\70\2\uffff\1\135\6\uffff\1\44\22\uffff\1\71\11\uffff"+
+        "\1\66\1\uffff\1\132\27\uffff\1\101\1\uffff\1\41\2\uffff\1\65\1\uffff"+
+        "\1\141\1\uffff\1\21\1\56\2\uffff\1\131\6\uffff\1\55\1\uffff\1\42"+
+        "\1\uffff\1\45\20\uffff\1\51\1\43\1\100\1\7\5\uffff\1\75\2\uffff"+
+        "\1\46\1\uffff\1\32\1\57\2\uffff\1\76\2\uffff\1\67\2\uffff\1\26\4"+
+        "\uffff\1\3\2\uffff\1\73\1\4\5\uffff\1\24\1\uffff\1\62\1\uffff\1"+
+        "\33\2\uffff\1\47\1\74\1\1\1\30\7\uffff\1\10\3\uffff\1\72\1\40\1"+
+        "\61\5\uffff\1\37\1\77\1\36\1\uffff\1\31\1\27\1\uffff\1\20\2\uffff"+
+        "\1\35\1\120\1\11\2\uffff\1\34";
+    static final String DFA30_specialS =
+        "\u0161\uffff}>";
+    static final String[] DFA30_transitionS = {
+            "\2\56\1\uffff\2\56\22\uffff\1\56\1\47\1\54\1\uffff\1\55\1\46"+
+            "\1\14\1\53\1\33\1\34\1\6\1\41\1\12\1\42\1\5\1\43\1\51\11\52"+
+            "\1\36\1\2\1\11\1\23\1\13\1\32\1\35\32\55\1\20\1\uffff\1\21\1"+
+            "\45\1\55\1\uffff\1\24\1\27\1\7\1\31\1\10\1\25\2\55\1\3\2\55"+
+            "\1\30\1\55\1\26\1\55\1\1\1\55\1\40\1\4\1\22\1\55\1\17\1\37\3"+
+            "\55\1\15\1\44\1\16\1\50\101\uffff\27\55\1\uffff\37\55\1\uffff"+
+            "\u1f08\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff"+
+            "\u092e\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55",
+            "\1\57\20\uffff\1\61\2\uffff\1\60",
+            "",
+            "\1\62\6\uffff\1\64\1\63",
+            "\1\71\13\uffff\1\67\1\70\1\uffff\1\66\1\uffff\1\65",
+            "\1\72\1\uffff\12\74",
+            "\1\75",
+            "\1\77\6\uffff\1\100\3\uffff\1\101\2\uffff\1\102",
+            "\1\103\1\uffff\1\105\11\uffff\1\104",
+            "",
+            "",
+            "",
+            "\1\107\26\uffff\1\106",
+            "",
+            "",
+            "\1\111",
+            "",
+            "",
+            "\1\113\11\uffff\1\112",
+            "\1\114",
+            "\1\116\20\uffff\1\117",
+            "\1\122\7\uffff\1\121\2\uffff\1\120\2\uffff\1\123",
+            "\1\124\3\uffff\1\125\17\uffff\1\126",
+            "\1\127\2\uffff\1\131\6\uffff\1\130",
+            "\1\132",
+            "\1\133\11\uffff\1\134",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\135",
+            "\1\136",
+            "\1\137\21\uffff\1\140",
+            "\1\143\17\uffff\1\142",
+            "\1\145\4\uffff\1\147\15\uffff\1\146",
+            "\1\152\76\uffff\1\151",
+            "\1\154",
+            "\1\156",
+            "\1\160",
+            "",
+            "\1\74\1\uffff\10\163\2\74\12\uffff\3\74\21\uffff\1\162\13\uffff"+
+            "\3\74\21\uffff\1\162",
+            "\1\74\1\uffff\12\165\12\uffff\3\74\35\uffff\3\74",
+            "",
+            "",
+            "",
+            "",
+            "\1\166",
+            "\1\167",
+            "\1\170\5\uffff\1\171",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\173\1\174",
+            "\1\175",
+            "\1\176",
+            "\1\177",
+            "\1\u0080\20\uffff\1\u0081",
+            "\1\u0082",
+            "\1\u0083",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0084\1\u0085",
+            "\1\u0086",
+            "\1\u0087",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\1\u008b",
+            "",
+            "",
+            "",
+            "\1\u008d\2\uffff\1\u008c",
+            "\1\u0090\23\uffff\1\u008f\3\uffff\1\u008e",
+            "\1\u0092\10\uffff\1\u0091",
+            "",
+            "",
+            "\1\u0093",
+            "\1\u0094",
+            "\1\u0095",
+            "\1\u0096",
+            "\1\u0097",
+            "\1\u0098",
+            "\1\u0099",
+            "\1\u009a",
+            "\1\u009b",
+            "\1\u009c",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
+            "\1\u00a0",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\24\55"+
+            "\1\u00a1\5\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55"+
+            "\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e"+
+            "\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00a3",
+            "\1\u00a4",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\74\1\uffff\10\163\2\74\12\uffff\3\74\35\uffff\3\74",
+            "",
+            "\1\74\1\uffff\12\165\12\uffff\3\74\35\uffff\3\74",
+            "\1\u00a6",
+            "\1\u00a7",
+            "\1\u00a8",
+            "\1\u00a9",
+            "",
+            "\1\u00aa",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\4\55"+
+            "\1\u00ab\25\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55"+
+            "\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e"+
+            "\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00ae\2\uffff\1\u00ad",
+            "\1\u00af",
+            "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\1\u00c8",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00ca",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00cc",
+            "\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
+            "\1\u00d2",
+            "",
+            "\1\u00d3",
+            "\1\u00d4",
+            "",
+            "\1\u00d5",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\u00da",
+            "",
+            "\1\u00db",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00e4",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00e9",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00eb",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\u00f5",
+            "",
+            "\1\u00f6",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00f8",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00fa",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0110",
+            "",
+            "\1\u0111",
+            "",
+            "\1\u0112",
+            "",
+            "",
+            "\1\u0113",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\22\55"+
+            "\1\u0114\7\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55"+
+            "\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e"+
+            "\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\13\55"+
+            "\1\u0119\16\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55"+
+            "\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e"+
+            "\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u011c",
+            "",
+            "\1\u011d",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\u011f",
+            "\1\u0120",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u012e",
+            "",
+            "",
+            "",
+            "",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\u0134",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\u0136",
+            "",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0138",
+            "",
+            "\1\u0139",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u013e",
+            "\1\u013f",
+            "\1\u0140",
+            "",
+            "\1\u0141",
+            "\1\u0142",
+            "",
+            "",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0146",
+            "\1\u0147",
+            "",
+            "\1\u0148",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "",
+            "",
+            "",
+            "\1\u014c",
+            "\1\u014d",
+            "\1\u014e",
+            "\1\u014f",
+            "\1\u0150",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0154",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0157",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u0159",
+            "\1\u015a",
+            "",
+            "",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            "\1\u015e",
+            "",
+            "",
+            "",
+            "\1\u015f",
+            "\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff\32\55"+
+            "\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff"+
+            "\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff"+
+            "\u5200\55\u5900\uffff\u0200\55",
+            ""
+    };
+
+    static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS);
+    static final short[] DFA30_eof = DFA.unpackEncodedString(DFA30_eofS);
+    static final char[] DFA30_min = DFA.unpackEncodedStringToUnsignedChars(DFA30_minS);
+    static final char[] DFA30_max = DFA.unpackEncodedStringToUnsignedChars(DFA30_maxS);
+    static final short[] DFA30_accept = DFA.unpackEncodedString(DFA30_acceptS);
+    static final short[] DFA30_special = DFA.unpackEncodedString(DFA30_specialS);
+    static final short[][] DFA30_transition;
+
+    static {
+        int numStates = DFA30_transitionS.length;
+        DFA30_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA30_transition[i] = DFA.unpackEncodedString(DFA30_transitionS[i]);
+        }
+    }
+
+    class DFA30 extends DFA {
+
+        public DFA30(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 30;
+            this.eot = DFA30_eot;
+            this.eof = DFA30_eof;
+            this.min = DFA30_min;
+            this.max = DFA30_max;
+            this.accept = DFA30_accept;
+            this.special = DFA30_special;
+            this.transition = DFA30_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T24 | T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | T41 | T42 | T43 | T44 | T45 | T46 | T47 | T48 | T49 | T50 | T51 | T52 | T53 | T54 | T55 | T56 | T57 | T58 | T59 | T60 | T61 | T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | T112 | T113 | HexLiteral | DecimalLiteral | OctalLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | ENUM | Identifier | WS | COMMENT | LINE_COMMENT );";
+        }
+    }
+ 
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParser.java	2007-06-14 16:46:08 UTC (rev 12579)
@@ -0,0 +1,15271 @@
+// $ANTLR 3.0 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g 2007-06-14 12:26:44
+
+	package org.drools.rule.builder.dialect.java.parser;
+	import java.util.Iterator;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+/** A Java 1.5 grammar for ANTLR v3 derived from the spec
+ *
+ *  This is a very close representation of the spec; the changes
+ *  are comestic (remove left recursion) and also fixes (the spec
+ *  isn't exactly perfect).  I have run this on the 1.4.2 source
+ *  and some nasty looking enums from 1.5, but have not really
+ *  tested for 1.5 compatibility.
+ *
+ *  I built this with: java -Xmx100M org.antlr.Tool java.g 
+ *  and got two errors that are ok (for now):
+ *  java.g:691:9: Decision can match input such as
+ *    "'0'..'9'{'E', 'e'}{'+', '-'}'0'..'9'{'D', 'F', 'd', 'f'}"
+ *    using multiple alternatives: 3, 4
+ *  As a result, alternative(s) 4 were disabled for that input
+ *  java.g:734:35: Decision can match input such as "{'$', 'A'..'Z',
+ *    '_', 'a'..'z', '\u00C0'..'\u00D6', '\u00D8'..'\u00F6',
+ *    '\u00F8'..'\u1FFF', '\u3040'..'\u318F', '\u3300'..'\u337F',
+ *    '\u3400'..'\u3D2D', '\u4E00'..'\u9FFF', '\uF900'..'\uFAFF'}"
+ *    using multiple alternatives: 1, 2
+ *  As a result, alternative(s) 2 were disabled for that input
+ *
+ *  You can turn enum on/off as a keyword :)
+ *
+ *  Version 1.0 -- initial release July 5, 2006 (requires 3.0b2 or higher)
+ *
+ *  Primary author: Terence Parr, July 2006
+ *
+ *  Version 1.0.1 -- corrections by Koen Vanderkimpen & Marko van Dooren,
+ *      October 25, 2006;
+ *      fixed normalInterfaceDeclaration: now uses typeParameters instead
+ *          of typeParameter (according to JLS, 3rd edition)
+ *      fixed castExpression: no longer allows expression next to type
+ *          (according to semantics in JLS, in contrast with syntax in JLS)
+ *
+ *  Version 1.0.2 -- Terence Parr, Nov 27, 2006
+ *      java spec I built this from had some bizarre for-loop control.
+ *          Looked weird and so I looked elsewhere...Yep, it's messed up.
+ *          simplified.
+ *
+ *  Version 1.0.3 -- Chris Hogue, Feb 26, 2007
+ *      Factored out an annotationName rule and used it in the annotation rule.
+ *          Not sure why, but typeName wasn't recognizing references to inner
+ *          annotations (e.g. @InterfaceName.InnerAnnotation())
+ *      Factored out the elementValue section of an annotation reference.  Created 
+ *          elementValuePair and elementValuePairs rules, then used them in the 
+ *          annotation rule.  Allows it to recognize annotation references with 
+ *          multiple, comma separated attributes.
+ *      Updated elementValueArrayInitializer so that it allows multiple elements.
+ *          (It was only allowing 0 or 1 element).
+ *      Updated localVariableDeclaration to allow annotations.  Interestingly the JLS
+ *          doesn't appear to indicate this is legal, but it does work as of at least
+ *          JDK 1.5.0_06.
+ *      Moved the Identifier portion of annotationTypeElementRest to annotationMethodRest.
+ *          Because annotationConstantRest already references variableDeclarator which 
+ *          has the Identifier portion in it, the parser would fail on constants in 
+ *          annotation definitions because it expected two identifiers.  
+ *      Added optional trailing ';' to the alternatives in annotationTypeElementRest.
+ *          Wouldn't handle an inner interface that has a trailing ';'.
+ *      Swapped the expression and type rule reference order in castExpression to 
+ *          make it check for genericized casts first.  It was failing to recognize a
+ *          statement like  "Class<Byte> TYPE = (Class<Byte>)...;" because it was seeing
+ *          'Class<Byte' in the cast expression as a less than expression, then failing 
+ *          on the '>'.
+ *      Changed createdName to use typeArguments instead of nonWildcardTypeArguments.
+ *          Again, JLS doesn't seem to allow this, but java.lang.Class has an example of
+ *          of this construct.
+ *      Changed the 'this' alternative in primary to allow 'identifierSuffix' rather than
+ *          just 'arguments'.  The case it couldn't handle was a call to an explicit
+ *          generic method invocation (e.g. this.<E>doSomething()).  Using identifierSuffix
+ *          may be overly aggressive--perhaps should create a more constrained thisSuffix rule?
+ * 		
+ *  Version 1.0.4 -- Hiroaki Nakamura, May 3, 2007
+ *
+ *	Fixed formalParameterDecls, localVariableDeclaration, forInit,
+ *	and forVarControl to use variableModifier* not 'final'? (annotation)?
+ */
+public class JavaParser extends Parser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "Identifier", "ENUM", "FloatingPointLiteral", "CharacterLiteral", "StringLiteral", "HexLiteral", "OctalLiteral", "DecimalLiteral", "HexDigit", "IntegerTypeSuffix", "Exponent", "FloatTypeSuffix", "EscapeSequence", "UnicodeEscape", "OctalEscape", "Letter", "JavaIDDigit", "WS", "COMMENT", "LINE_COMMENT", "'package'", "';'", "'import'", "'static'", "'.'", "'*'", "'class'", "'extends'", "'implements'", "'<'", "','", "'>'", "'&'", "'{'", "'}'", "'interface'", "'void'", "'['", "']'", "'throws'", "'='", "'public'", "'protected'", "'private'", "'abstract'", "'final'", "'native'", "'synchronized'", "'transient'", "'volatile'", "'strictfp'", "'boolean'", "'char'", "'byte'", "'short'", "'int'", "'long'", "'float'", "'double'", "'?'", "'super'", "'('", "')'", "'...'", "'null'", "'true'", "'false'", "'@'", "'default'", "'assert'", "':'", "'if'", "'else'", "'for'", "'while'", "'do'", "'try'", "'finally'", "'switch'", "'return'", "'throw'", "!
 'break'", "'continue'", "'catch'", "'case'", "'+='", "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'||'", "'&&'", "'|'", "'^'", "'=='", "'!='", "'instanceof'", "'+'", "'-'", "'/'", "'%'", "'++'", "'--'", "'~'", "'!'", "'this'", "'new'"
+    };
+    public static final int Exponent=14;
+    public static final int OctalLiteral=10;
+    public static final int IntegerTypeSuffix=13;
+    public static final int Identifier=4;
+    public static final int HexDigit=12;
+    public static final int WS=21;
+    public static final int CharacterLiteral=7;
+    public static final int COMMENT=22;
+    public static final int StringLiteral=8;
+    public static final int LINE_COMMENT=23;
+    public static final int JavaIDDigit=20;
+    public static final int Letter=19;
+    public static final int UnicodeEscape=17;
+    public static final int HexLiteral=9;
+    public static final int EscapeSequence=16;
+    public static final int EOF=-1;
+    public static final int DecimalLiteral=11;
+    public static final int OctalEscape=18;
+    public static final int FloatingPointLiteral=6;
+    public static final int FloatTypeSuffix=15;
+    public static final int ENUM=5;
+
+        public JavaParser(TokenStream input) {
+            super(input);
+            ruleMemo = new HashMap[403+1];
+         }
+        
+
+    public String[] getTokenNames() { return tokenNames; }
+    public String getGrammarFileName() { return "/home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g"; }
+
+
+    	private List identifiers = new ArrayList();
+    	public List getIdentifiers() { return identifiers; }
+    	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
+    	private List errors = new ArrayList();
+    	
+    	private String source = "unknown";
+    	
+    	public void setSource(String source) {
+    		this.source = source;
+    	}
+    	
+    	public String getSource() {
+    		return this.source;
+    	}
+    		
+    	public void reportError(RecognitionException ex) {
+    	        // if we've already reported an error and have not matched a token
+                    // yet successfully, don't report any errors.
+                    if ( errorRecovery ) {
+                            //System.err.print("[SPURIOUS] ");
+                            return;
+                    }
+                    errorRecovery = true;
+
+    		errors.add( ex ); 
+    	}
+         	
+         	/** return the raw RecognitionException errors */
+         	public List getErrors() {
+         		return errors;
+         	}
+         	
+         	/** Return a list of pretty strings summarising the errors */
+         	public List getErrorMessages() {
+         		List messages = new ArrayList();
+     		for ( Iterator errorIter = errors.iterator() ; errorIter.hasNext() ; ) {
+         	     		messages.add( createErrorMessage( (RecognitionException) errorIter.next() ) );
+         	     	}
+         	     	return messages;
+         	}
+         	
+         	/** return true if any parser errors were accumulated */
+         	public boolean hasErrors() {
+      		return ! errors.isEmpty();
+         	}
+         	
+         	/** This will take a RecognitionException, and create a sensible error message out of it */
+         	public String createErrorMessage(RecognitionException e)
+            {
+    		StringBuffer message = new StringBuffer();		
+                    message.append( source + ":"+e.line+":"+e.charPositionInLine+" ");
+                    if ( e instanceof MismatchedTokenException ) {
+                            MismatchedTokenException mte = (MismatchedTokenException)e;
+                            message.append("mismatched token: "+
+                                                               e.token+
+                                                               "; expecting type "+
+                                                               tokenNames[mte.expecting]);
+                    }
+                    else if ( e instanceof MismatchedTreeNodeException ) {
+                            MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e;
+                            message.append("mismatched tree node: "+
+                                                               mtne.token.getText()+
+                                                               "; expecting type "+
+                                                               tokenNames[mtne.expecting]);
+                    }
+                    else if ( e instanceof NoViableAltException ) {
+                            NoViableAltException nvae = (NoViableAltException)e;
+    			message.append( "Unexpected token '" + e.token.getText() + "'" );
+                            /*
+                            message.append("decision=<<"+nvae.grammarDecisionDescription+">>"+
+                                                               " state "+nvae.stateNumber+
+                                                               " (decision="+nvae.decisionNumber+
+                                                               ") no viable alt; token="+
+                                                               e.token);
+                                                               */
+                    }
+                    else if ( e instanceof EarlyExitException ) {
+                            EarlyExitException eee = (EarlyExitException)e;
+                            message.append("required (...)+ loop (decision="+
+                                                               eee.decisionNumber+
+                                                               ") did not match anything; token="+
+                                                               e.token);
+                    }
+                    else if ( e instanceof MismatchedSetException ) {
+                            MismatchedSetException mse = (MismatchedSetException)e;
+                            message.append("mismatched token '"+
+                                                               e.token+
+                                                               "' expecting set "+mse.expecting);
+                    }
+                    else if ( e instanceof MismatchedNotSetException ) {
+                            MismatchedNotSetException mse = (MismatchedNotSetException)e;
+                            message.append("mismatched token '"+
+                                                               e.token+
+                                                               "' expecting set "+mse.expecting);
+                    }
+                    else if ( e instanceof FailedPredicateException ) {
+                            FailedPredicateException fpe = (FailedPredicateException)e;
+                            message.append("rule "+fpe.ruleName+" failed predicate: {"+
+                                                               fpe.predicateText+"}?");
+    		}
+                   	return message.toString();
+            }   
+
+
+
+    // $ANTLR start compilationUnit
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:201:1: compilationUnit : ( annotations )? ( packageDeclaration )? ( importDeclaration )* ( typeDeclaration )* ;
+    public final void compilationUnit() throws RecognitionException {
+        int compilationUnit_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 1) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:202:4: ( ( annotations )? ( packageDeclaration )? ( importDeclaration )* ( typeDeclaration )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:202:4: ( annotations )? ( packageDeclaration )? ( importDeclaration )* ( typeDeclaration )*
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:202:4: ( annotations )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0==71) ) {
+                int LA1_1 = input.LA(2);
+
+                if ( (LA1_1==Identifier) ) {
+                    int LA1_21 = input.LA(3);
+
+                    if ( (synpred1()) ) {
+                        alt1=1;
+                    }
+                }
+            }
+            switch (alt1) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: annotations
+                    {
+                    pushFollow(FOLLOW_annotations_in_compilationUnit70);
+                    annotations();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:203:3: ( packageDeclaration )?
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0==24) ) {
+                alt2=1;
+            }
+            switch (alt2) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: packageDeclaration
+                    {
+                    pushFollow(FOLLOW_packageDeclaration_in_compilationUnit75);
+                    packageDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:204:9: ( importDeclaration )*
+            loop3:
+            do {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+
+                if ( (LA3_0==26) ) {
+                    alt3=1;
+                }
+
+
+                switch (alt3) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: importDeclaration
+            	    {
+            	    pushFollow(FOLLOW_importDeclaration_in_compilationUnit86);
+            	    importDeclaration();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop3;
+                }
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:205:9: ( typeDeclaration )*
+            loop4:
+            do {
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+
+                if ( (LA4_0==ENUM||LA4_0==25||LA4_0==27||LA4_0==30||LA4_0==39||(LA4_0>=45 && LA4_0<=54)||LA4_0==71) ) {
+                    alt4=1;
+                }
+
+
+                switch (alt4) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: typeDeclaration
+            	    {
+            	    pushFollow(FOLLOW_typeDeclaration_in_compilationUnit97);
+            	    typeDeclaration();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop4;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 1, compilationUnit_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end compilationUnit
+
+
+    // $ANTLR start packageDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:208:1: packageDeclaration : 'package' qualifiedName ';' ;
+    public final void packageDeclaration() throws RecognitionException {
+        int packageDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 2) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:209:4: ( 'package' qualifiedName ';' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:209:4: 'package' qualifiedName ';'
+            {
+            match(input,24,FOLLOW_24_in_packageDeclaration109); if (failed) return ;
+            pushFollow(FOLLOW_qualifiedName_in_packageDeclaration111);
+            qualifiedName();
+            _fsp--;
+            if (failed) return ;
+            match(input,25,FOLLOW_25_in_packageDeclaration113); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 2, packageDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end packageDeclaration
+
+
+    // $ANTLR start importDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:212:1: importDeclaration : 'import' ( 'static' )? Identifier ( '.' Identifier )* ( '.' '*' )? ';' ;
+    public final void importDeclaration() throws RecognitionException {
+        int importDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 3) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:213:4: ( 'import' ( 'static' )? Identifier ( '.' Identifier )* ( '.' '*' )? ';' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:213:4: 'import' ( 'static' )? Identifier ( '.' Identifier )* ( '.' '*' )? ';'
+            {
+            match(input,26,FOLLOW_26_in_importDeclaration125); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:213:13: ( 'static' )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==27) ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: 'static'
+                    {
+                    match(input,27,FOLLOW_27_in_importDeclaration127); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,Identifier,FOLLOW_Identifier_in_importDeclaration130); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:213:34: ( '.' Identifier )*
+            loop6:
+            do {
+                int alt6=2;
+                int LA6_0 = input.LA(1);
+
+                if ( (LA6_0==28) ) {
+                    int LA6_1 = input.LA(2);
+
+                    if ( (LA6_1==Identifier) ) {
+                        alt6=1;
+                    }
+
+
+                }
+
+
+                switch (alt6) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:213:35: '.' Identifier
+            	    {
+            	    match(input,28,FOLLOW_28_in_importDeclaration133); if (failed) return ;
+            	    match(input,Identifier,FOLLOW_Identifier_in_importDeclaration135); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop6;
+                }
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:213:52: ( '.' '*' )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==28) ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:213:53: '.' '*'
+                    {
+                    match(input,28,FOLLOW_28_in_importDeclaration140); if (failed) return ;
+                    match(input,29,FOLLOW_29_in_importDeclaration142); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,25,FOLLOW_25_in_importDeclaration146); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 3, importDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end importDeclaration
+
+
+    // $ANTLR start typeDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:216:1: typeDeclaration : ( classOrInterfaceDeclaration | ';' );
+    public final void typeDeclaration() throws RecognitionException {
+        int typeDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 4) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:217:4: ( classOrInterfaceDeclaration | ';' )
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==ENUM||LA8_0==27||LA8_0==30||LA8_0==39||(LA8_0>=45 && LA8_0<=54)||LA8_0==71) ) {
+                alt8=1;
+            }
+            else if ( (LA8_0==25) ) {
+                alt8=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("216:1: typeDeclaration : ( classOrInterfaceDeclaration | ';' );", 8, 0, input);
+
+                throw nvae;
+            }
+            switch (alt8) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:217:4: classOrInterfaceDeclaration
+                    {
+                    pushFollow(FOLLOW_classOrInterfaceDeclaration_in_typeDeclaration158);
+                    classOrInterfaceDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:218:9: ';'
+                    {
+                    match(input,25,FOLLOW_25_in_typeDeclaration168); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 4, typeDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end typeDeclaration
+
+
+    // $ANTLR start classOrInterfaceDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:221:1: classOrInterfaceDeclaration : ( modifier )* ( classDeclaration | interfaceDeclaration ) ;
+    public final void classOrInterfaceDeclaration() throws RecognitionException {
+        int classOrInterfaceDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 5) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:222:4: ( ( modifier )* ( classDeclaration | interfaceDeclaration ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:222:4: ( modifier )* ( classDeclaration | interfaceDeclaration )
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:222:4: ( modifier )*
+            loop9:
+            do {
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+
+                if ( (LA9_0==71) ) {
+                    int LA9_4 = input.LA(2);
+
+                    if ( (LA9_4==Identifier) ) {
+                        alt9=1;
+                    }
+
+
+                }
+                else if ( (LA9_0==27||(LA9_0>=45 && LA9_0<=54)) ) {
+                    alt9=1;
+                }
+
+
+                switch (alt9) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: modifier
+            	    {
+            	    pushFollow(FOLLOW_modifier_in_classOrInterfaceDeclaration180);
+            	    modifier();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop9;
+                }
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:222:14: ( classDeclaration | interfaceDeclaration )
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==ENUM||LA10_0==30) ) {
+                alt10=1;
+            }
+            else if ( (LA10_0==39||LA10_0==71) ) {
+                alt10=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("222:14: ( classDeclaration | interfaceDeclaration )", 10, 0, input);
+
+                throw nvae;
+            }
+            switch (alt10) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:222:15: classDeclaration
+                    {
+                    pushFollow(FOLLOW_classDeclaration_in_classOrInterfaceDeclaration184);
+                    classDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:222:34: interfaceDeclaration
+                    {
+                    pushFollow(FOLLOW_interfaceDeclaration_in_classOrInterfaceDeclaration188);
+                    interfaceDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 5, classOrInterfaceDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end classOrInterfaceDeclaration
+
+
+    // $ANTLR start classDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:225:1: classDeclaration : ( normalClassDeclaration | enumDeclaration );
+    public final void classDeclaration() throws RecognitionException {
+        int classDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 6) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:226:4: ( normalClassDeclaration | enumDeclaration )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==30) ) {
+                alt11=1;
+            }
+            else if ( (LA11_0==ENUM) ) {
+                alt11=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("225:1: classDeclaration : ( normalClassDeclaration | enumDeclaration );", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:226:4: normalClassDeclaration
+                    {
+                    pushFollow(FOLLOW_normalClassDeclaration_in_classDeclaration201);
+                    normalClassDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:227:9: enumDeclaration
+                    {
+                    pushFollow(FOLLOW_enumDeclaration_in_classDeclaration211);
+                    enumDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 6, classDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end classDeclaration
+
+
+    // $ANTLR start normalClassDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:230:1: normalClassDeclaration : 'class' Identifier ( typeParameters )? ( 'extends' type )? ( 'implements' typeList )? classBody ;
+    public final void normalClassDeclaration() throws RecognitionException {
+        int normalClassDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 7) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:231:4: ( 'class' Identifier ( typeParameters )? ( 'extends' type )? ( 'implements' typeList )? classBody )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:231:4: 'class' Identifier ( typeParameters )? ( 'extends' type )? ( 'implements' typeList )? classBody
+            {
+            match(input,30,FOLLOW_30_in_normalClassDeclaration223); if (failed) return ;
+            match(input,Identifier,FOLLOW_Identifier_in_normalClassDeclaration225); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:231:23: ( typeParameters )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==33) ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:231:24: typeParameters
+                    {
+                    pushFollow(FOLLOW_typeParameters_in_normalClassDeclaration228);
+                    typeParameters();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:232:9: ( 'extends' type )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==31) ) {
+                alt13=1;
+            }
+            switch (alt13) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:232:10: 'extends' type
+                    {
+                    match(input,31,FOLLOW_31_in_normalClassDeclaration241); if (failed) return ;
+                    pushFollow(FOLLOW_type_in_normalClassDeclaration243);
+                    type();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:233:9: ( 'implements' typeList )?
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==32) ) {
+                alt14=1;
+            }
+            switch (alt14) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:233:10: 'implements' typeList
+                    {
+                    match(input,32,FOLLOW_32_in_normalClassDeclaration256); if (failed) return ;
+                    pushFollow(FOLLOW_typeList_in_normalClassDeclaration258);
+                    typeList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            pushFollow(FOLLOW_classBody_in_normalClassDeclaration270);
+            classBody();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 7, normalClassDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end normalClassDeclaration
+
+
+    // $ANTLR start typeParameters
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:237:1: typeParameters : '<' typeParameter ( ',' typeParameter )* '>' ;
+    public final void typeParameters() throws RecognitionException {
+        int typeParameters_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 8) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:238:4: ( '<' typeParameter ( ',' typeParameter )* '>' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:238:4: '<' typeParameter ( ',' typeParameter )* '>'
+            {
+            match(input,33,FOLLOW_33_in_typeParameters282); if (failed) return ;
+            pushFollow(FOLLOW_typeParameter_in_typeParameters284);
+            typeParameter();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:238:22: ( ',' typeParameter )*
+            loop15:
+            do {
+                int alt15=2;
+                int LA15_0 = input.LA(1);
+
+                if ( (LA15_0==34) ) {
+                    alt15=1;
+                }
+
+
+                switch (alt15) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:238:23: ',' typeParameter
+            	    {
+            	    match(input,34,FOLLOW_34_in_typeParameters287); if (failed) return ;
+            	    pushFollow(FOLLOW_typeParameter_in_typeParameters289);
+            	    typeParameter();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop15;
+                }
+            } while (true);
+
+            match(input,35,FOLLOW_35_in_typeParameters293); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 8, typeParameters_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end typeParameters
+
+
+    // $ANTLR start typeParameter
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:241:1: typeParameter : Identifier ( 'extends' bound )? ;
+    public final void typeParameter() throws RecognitionException {
+        int typeParameter_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 9) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:242:4: ( Identifier ( 'extends' bound )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:242:4: Identifier ( 'extends' bound )?
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_typeParameter304); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:242:15: ( 'extends' bound )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==31) ) {
+                alt16=1;
+            }
+            switch (alt16) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:242:16: 'extends' bound
+                    {
+                    match(input,31,FOLLOW_31_in_typeParameter307); if (failed) return ;
+                    pushFollow(FOLLOW_bound_in_typeParameter309);
+                    bound();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 9, typeParameter_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end typeParameter
+
+
+    // $ANTLR start bound
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:245:1: bound : type ( '&' type )* ;
+    public final void bound() throws RecognitionException {
+        int bound_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 10) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:246:4: ( type ( '&' type )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:246:4: type ( '&' type )*
+            {
+            pushFollow(FOLLOW_type_in_bound324);
+            type();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:246:9: ( '&' type )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( (LA17_0==36) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:246:10: '&' type
+            	    {
+            	    match(input,36,FOLLOW_36_in_bound327); if (failed) return ;
+            	    pushFollow(FOLLOW_type_in_bound329);
+            	    type();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop17;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 10, bound_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end bound
+
+
+    // $ANTLR start enumDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:249:1: enumDeclaration : ENUM Identifier ( 'implements' typeList )? enumBody ;
+    public final void enumDeclaration() throws RecognitionException {
+        int enumDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 11) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:250:4: ( ENUM Identifier ( 'implements' typeList )? enumBody )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:250:4: ENUM Identifier ( 'implements' typeList )? enumBody
+            {
+            match(input,ENUM,FOLLOW_ENUM_in_enumDeclaration342); if (failed) return ;
+            match(input,Identifier,FOLLOW_Identifier_in_enumDeclaration344); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:250:20: ( 'implements' typeList )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==32) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:250:21: 'implements' typeList
+                    {
+                    match(input,32,FOLLOW_32_in_enumDeclaration347); if (failed) return ;
+                    pushFollow(FOLLOW_typeList_in_enumDeclaration349);
+                    typeList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            pushFollow(FOLLOW_enumBody_in_enumDeclaration353);
+            enumBody();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 11, enumDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end enumDeclaration
+
+
+    // $ANTLR start enumBody
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:253:1: enumBody : '{' ( enumConstants )? ( ',' )? ( enumBodyDeclarations )? '}' ;
+    public final void enumBody() throws RecognitionException {
+        int enumBody_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 12) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:254:4: ( '{' ( enumConstants )? ( ',' )? ( enumBodyDeclarations )? '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:254:4: '{' ( enumConstants )? ( ',' )? ( enumBodyDeclarations )? '}'
+            {
+            match(input,37,FOLLOW_37_in_enumBody365); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:254:8: ( enumConstants )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==Identifier||LA19_0==71) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: enumConstants
+                    {
+                    pushFollow(FOLLOW_enumConstants_in_enumBody367);
+                    enumConstants();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:254:23: ( ',' )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==34) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ','
+                    {
+                    match(input,34,FOLLOW_34_in_enumBody370); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:254:28: ( enumBodyDeclarations )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==25) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: enumBodyDeclarations
+                    {
+                    pushFollow(FOLLOW_enumBodyDeclarations_in_enumBody373);
+                    enumBodyDeclarations();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,38,FOLLOW_38_in_enumBody376); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 12, enumBody_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end enumBody
+
+
+    // $ANTLR start enumConstants
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:257:1: enumConstants : enumConstant ( ',' enumConstant )* ;
+    public final void enumConstants() throws RecognitionException {
+        int enumConstants_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 13) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:258:4: ( enumConstant ( ',' enumConstant )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:258:4: enumConstant ( ',' enumConstant )*
+            {
+            pushFollow(FOLLOW_enumConstant_in_enumConstants387);
+            enumConstant();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:258:17: ( ',' enumConstant )*
+            loop22:
+            do {
+                int alt22=2;
+                int LA22_0 = input.LA(1);
+
+                if ( (LA22_0==34) ) {
+                    int LA22_1 = input.LA(2);
+
+                    if ( (LA22_1==Identifier||LA22_1==71) ) {
+                        alt22=1;
+                    }
+
+
+                }
+
+
+                switch (alt22) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:258:18: ',' enumConstant
+            	    {
+            	    match(input,34,FOLLOW_34_in_enumConstants390); if (failed) return ;
+            	    pushFollow(FOLLOW_enumConstant_in_enumConstants392);
+            	    enumConstant();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop22;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 13, enumConstants_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end enumConstants
+
+
+    // $ANTLR start enumConstant
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:261:1: enumConstant : ( annotations )? Identifier ( arguments )? ( classBody )? ;
+    public final void enumConstant() throws RecognitionException {
+        int enumConstant_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 14) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:262:4: ( ( annotations )? Identifier ( arguments )? ( classBody )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:262:4: ( annotations )? Identifier ( arguments )? ( classBody )?
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:262:4: ( annotations )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==71) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: annotations
+                    {
+                    pushFollow(FOLLOW_annotations_in_enumConstant406);
+                    annotations();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,Identifier,FOLLOW_Identifier_in_enumConstant409); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:262:28: ( arguments )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==65) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:262:29: arguments
+                    {
+                    pushFollow(FOLLOW_arguments_in_enumConstant412);
+                    arguments();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:262:41: ( classBody )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==37) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:262:42: classBody
+                    {
+                    pushFollow(FOLLOW_classBody_in_enumConstant417);
+                    classBody();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 14, enumConstant_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end enumConstant
+
+
+    // $ANTLR start enumBodyDeclarations
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:265:1: enumBodyDeclarations : ';' ( classBodyDeclaration )* ;
+    public final void enumBodyDeclarations() throws RecognitionException {
+        int enumBodyDeclarations_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 15) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:266:4: ( ';' ( classBodyDeclaration )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:266:4: ';' ( classBodyDeclaration )*
+            {
+            match(input,25,FOLLOW_25_in_enumBodyDeclarations431); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:266:8: ( classBodyDeclaration )*
+            loop26:
+            do {
+                int alt26=2;
+                int LA26_0 = input.LA(1);
+
+                if ( ((LA26_0>=Identifier && LA26_0<=ENUM)||LA26_0==25||LA26_0==27||LA26_0==30||LA26_0==33||LA26_0==37||(LA26_0>=39 && LA26_0<=40)||(LA26_0>=45 && LA26_0<=62)||LA26_0==71) ) {
+                    alt26=1;
+                }
+
+
+                switch (alt26) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:266:9: classBodyDeclaration
+            	    {
+            	    pushFollow(FOLLOW_classBodyDeclaration_in_enumBodyDeclarations434);
+            	    classBodyDeclaration();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop26;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 15, enumBodyDeclarations_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end enumBodyDeclarations
+
+
+    // $ANTLR start interfaceDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:269:1: interfaceDeclaration : ( normalInterfaceDeclaration | annotationTypeDeclaration );
+    public final void interfaceDeclaration() throws RecognitionException {
+        int interfaceDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 16) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:270:4: ( normalInterfaceDeclaration | annotationTypeDeclaration )
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==39) ) {
+                alt27=1;
+            }
+            else if ( (LA27_0==71) ) {
+                alt27=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("269:1: interfaceDeclaration : ( normalInterfaceDeclaration | annotationTypeDeclaration );", 27, 0, input);
+
+                throw nvae;
+            }
+            switch (alt27) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:270:4: normalInterfaceDeclaration
+                    {
+                    pushFollow(FOLLOW_normalInterfaceDeclaration_in_interfaceDeclaration448);
+                    normalInterfaceDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:271:5: annotationTypeDeclaration
+                    {
+                    pushFollow(FOLLOW_annotationTypeDeclaration_in_interfaceDeclaration454);
+                    annotationTypeDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 16, interfaceDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceDeclaration
+
+
+    // $ANTLR start normalInterfaceDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:274:1: normalInterfaceDeclaration : 'interface' Identifier ( typeParameters )? ( 'extends' typeList )? interfaceBody ;
+    public final void normalInterfaceDeclaration() throws RecognitionException {
+        int normalInterfaceDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 17) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:275:4: ( 'interface' Identifier ( typeParameters )? ( 'extends' typeList )? interfaceBody )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:275:4: 'interface' Identifier ( typeParameters )? ( 'extends' typeList )? interfaceBody
+            {
+            match(input,39,FOLLOW_39_in_normalInterfaceDeclaration466); if (failed) return ;
+            match(input,Identifier,FOLLOW_Identifier_in_normalInterfaceDeclaration468); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:275:27: ( typeParameters )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==33) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: typeParameters
+                    {
+                    pushFollow(FOLLOW_typeParameters_in_normalInterfaceDeclaration470);
+                    typeParameters();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:275:43: ( 'extends' typeList )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==31) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:275:44: 'extends' typeList
+                    {
+                    match(input,31,FOLLOW_31_in_normalInterfaceDeclaration474); if (failed) return ;
+                    pushFollow(FOLLOW_typeList_in_normalInterfaceDeclaration476);
+                    typeList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            pushFollow(FOLLOW_interfaceBody_in_normalInterfaceDeclaration480);
+            interfaceBody();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 17, normalInterfaceDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end normalInterfaceDeclaration
+
+
+    // $ANTLR start typeList
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:278:1: typeList : type ( ',' type )* ;
+    public final void typeList() throws RecognitionException {
+        int typeList_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 18) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:279:4: ( type ( ',' type )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:279:4: type ( ',' type )*
+            {
+            pushFollow(FOLLOW_type_in_typeList492);
+            type();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:279:9: ( ',' type )*
+            loop30:
+            do {
+                int alt30=2;
+                int LA30_0 = input.LA(1);
+
+                if ( (LA30_0==34) ) {
+                    alt30=1;
+                }
+
+
+                switch (alt30) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:279:10: ',' type
+            	    {
+            	    match(input,34,FOLLOW_34_in_typeList495); if (failed) return ;
+            	    pushFollow(FOLLOW_type_in_typeList497);
+            	    type();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop30;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 18, typeList_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end typeList
+
+
+    // $ANTLR start classBody
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:282:1: classBody : '{' ( classBodyDeclaration )* '}' ;
+    public final void classBody() throws RecognitionException {
+        int classBody_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 19) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:283:4: ( '{' ( classBodyDeclaration )* '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:283:4: '{' ( classBodyDeclaration )* '}'
+            {
+            match(input,37,FOLLOW_37_in_classBody511); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:283:8: ( classBodyDeclaration )*
+            loop31:
+            do {
+                int alt31=2;
+                int LA31_0 = input.LA(1);
+
+                if ( ((LA31_0>=Identifier && LA31_0<=ENUM)||LA31_0==25||LA31_0==27||LA31_0==30||LA31_0==33||LA31_0==37||(LA31_0>=39 && LA31_0<=40)||(LA31_0>=45 && LA31_0<=62)||LA31_0==71) ) {
+                    alt31=1;
+                }
+
+
+                switch (alt31) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: classBodyDeclaration
+            	    {
+            	    pushFollow(FOLLOW_classBodyDeclaration_in_classBody513);
+            	    classBodyDeclaration();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop31;
+                }
+            } while (true);
+
+            match(input,38,FOLLOW_38_in_classBody516); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 19, classBody_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end classBody
+
+
+    // $ANTLR start interfaceBody
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:286:1: interfaceBody : '{' ( interfaceBodyDeclaration )* '}' ;
+    public final void interfaceBody() throws RecognitionException {
+        int interfaceBody_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 20) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:287:4: ( '{' ( interfaceBodyDeclaration )* '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:287:4: '{' ( interfaceBodyDeclaration )* '}'
+            {
+            match(input,37,FOLLOW_37_in_interfaceBody528); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:287:8: ( interfaceBodyDeclaration )*
+            loop32:
+            do {
+                int alt32=2;
+                int LA32_0 = input.LA(1);
+
+                if ( ((LA32_0>=Identifier && LA32_0<=ENUM)||LA32_0==25||LA32_0==27||LA32_0==30||LA32_0==33||(LA32_0>=39 && LA32_0<=40)||(LA32_0>=45 && LA32_0<=62)||LA32_0==71) ) {
+                    alt32=1;
+                }
+
+
+                switch (alt32) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: interfaceBodyDeclaration
+            	    {
+            	    pushFollow(FOLLOW_interfaceBodyDeclaration_in_interfaceBody530);
+            	    interfaceBodyDeclaration();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop32;
+                }
+            } while (true);
+
+            match(input,38,FOLLOW_38_in_interfaceBody533); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 20, interfaceBody_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceBody
+
+
+    // $ANTLR start classBodyDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:290:1: classBodyDeclaration : ( ';' | ( 'static' )? block | ( modifier )* memberDecl );
+    public final void classBodyDeclaration() throws RecognitionException {
+        int classBodyDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 21) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:291:4: ( ';' | ( 'static' )? block | ( modifier )* memberDecl )
+            int alt35=3;
+            switch ( input.LA(1) ) {
+            case 25:
+                {
+                alt35=1;
+                }
+                break;
+            case 27:
+                {
+                int LA35_2 = input.LA(2);
+
+                if ( (LA35_2==37) ) {
+                    alt35=2;
+                }
+                else if ( ((LA35_2>=Identifier && LA35_2<=ENUM)||LA35_2==27||LA35_2==30||LA35_2==33||(LA35_2>=39 && LA35_2<=40)||(LA35_2>=45 && LA35_2<=62)||LA35_2==71) ) {
+                    alt35=3;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("290:1: classBodyDeclaration : ( ';' | ( 'static' )? block | ( modifier )* memberDecl );", 35, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 37:
+                {
+                alt35=2;
+                }
+                break;
+            case Identifier:
+            case ENUM:
+            case 30:
+            case 33:
+            case 39:
+            case 40:
+            case 45:
+            case 46:
+            case 47:
+            case 48:
+            case 49:
+            case 50:
+            case 51:
+            case 52:
+            case 53:
+            case 54:
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+            case 71:
+                {
+                alt35=3;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("290:1: classBodyDeclaration : ( ';' | ( 'static' )? block | ( modifier )* memberDecl );", 35, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt35) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:291:4: ';'
+                    {
+                    match(input,25,FOLLOW_25_in_classBodyDeclaration544); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:292:4: ( 'static' )? block
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:292:4: ( 'static' )?
+                    int alt33=2;
+                    int LA33_0 = input.LA(1);
+
+                    if ( (LA33_0==27) ) {
+                        alt33=1;
+                    }
+                    switch (alt33) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: 'static'
+                            {
+                            match(input,27,FOLLOW_27_in_classBodyDeclaration549); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    pushFollow(FOLLOW_block_in_classBodyDeclaration552);
+                    block();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:293:4: ( modifier )* memberDecl
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:293:4: ( modifier )*
+                    loop34:
+                    do {
+                        int alt34=2;
+                        int LA34_0 = input.LA(1);
+
+                        if ( (LA34_0==71) ) {
+                            int LA34_6 = input.LA(2);
+
+                            if ( (LA34_6==Identifier) ) {
+                                alt34=1;
+                            }
+
+
+                        }
+                        else if ( (LA34_0==27||(LA34_0>=45 && LA34_0<=54)) ) {
+                            alt34=1;
+                        }
+
+
+                        switch (alt34) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: modifier
+                    	    {
+                    	    pushFollow(FOLLOW_modifier_in_classBodyDeclaration557);
+                    	    modifier();
+                    	    _fsp--;
+                    	    if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop34;
+                        }
+                    } while (true);
+
+                    pushFollow(FOLLOW_memberDecl_in_classBodyDeclaration560);
+                    memberDecl();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 21, classBodyDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end classBodyDeclaration
+
+
+    // $ANTLR start memberDecl
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );
+    public final void memberDecl() throws RecognitionException {
+        int memberDecl_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 22) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:297:4: ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration )
+            int alt36=7;
+            switch ( input.LA(1) ) {
+            case 33:
+                {
+                alt36=1;
+                }
+                break;
+            case Identifier:
+                {
+                switch ( input.LA(2) ) {
+                case 65:
+                    {
+                    alt36=5;
+                    }
+                    break;
+                case 33:
+                    {
+                    int LA36_10 = input.LA(3);
+
+                    if ( (synpred38()) ) {
+                        alt36=2;
+                    }
+                    else if ( (synpred39()) ) {
+                        alt36=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 10, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 28:
+                    {
+                    int LA36_11 = input.LA(3);
+
+                    if ( (synpred38()) ) {
+                        alt36=2;
+                    }
+                    else if ( (synpred39()) ) {
+                        alt36=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 11, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 41:
+                    {
+                    int LA36_12 = input.LA(3);
+
+                    if ( (synpred38()) ) {
+                        alt36=2;
+                    }
+                    else if ( (synpred39()) ) {
+                        alt36=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 12, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                    {
+                    int LA36_13 = input.LA(3);
+
+                    if ( (synpred38()) ) {
+                        alt36=2;
+                    }
+                    else if ( (synpred39()) ) {
+                        alt36=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 13, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 2, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+                {
+                int LA36_3 = input.LA(2);
+
+                if ( (LA36_3==41) ) {
+                    int LA36_14 = input.LA(3);
+
+                    if ( (synpred38()) ) {
+                        alt36=2;
+                    }
+                    else if ( (synpred39()) ) {
+                        alt36=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 14, input);
+
+                        throw nvae;
+                    }
+                }
+                else if ( (LA36_3==Identifier) ) {
+                    int LA36_15 = input.LA(3);
+
+                    if ( (synpred38()) ) {
+                        alt36=2;
+                    }
+                    else if ( (synpred39()) ) {
+                        alt36=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 15, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 40:
+                {
+                alt36=4;
+                }
+                break;
+            case 39:
+            case 71:
+                {
+                alt36=6;
+                }
+                break;
+            case ENUM:
+            case 30:
+                {
+                alt36=7;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("296:1: memberDecl : ( genericMethodOrConstructorDecl | methodDeclaration | fieldDeclaration | 'void' Identifier voidMethodDeclaratorRest | Identifier constructorDeclaratorRest | interfaceDeclaration | classDeclaration );", 36, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt36) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:297:4: genericMethodOrConstructorDecl
+                    {
+                    pushFollow(FOLLOW_genericMethodOrConstructorDecl_in_memberDecl572);
+                    genericMethodOrConstructorDecl();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:298:4: methodDeclaration
+                    {
+                    pushFollow(FOLLOW_methodDeclaration_in_memberDecl577);
+                    methodDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:299:4: fieldDeclaration
+                    {
+                    pushFollow(FOLLOW_fieldDeclaration_in_memberDecl582);
+                    fieldDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:300:4: 'void' Identifier voidMethodDeclaratorRest
+                    {
+                    match(input,40,FOLLOW_40_in_memberDecl587); if (failed) return ;
+                    match(input,Identifier,FOLLOW_Identifier_in_memberDecl589); if (failed) return ;
+                    pushFollow(FOLLOW_voidMethodDeclaratorRest_in_memberDecl591);
+                    voidMethodDeclaratorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:301:4: Identifier constructorDeclaratorRest
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_memberDecl596); if (failed) return ;
+                    pushFollow(FOLLOW_constructorDeclaratorRest_in_memberDecl598);
+                    constructorDeclaratorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:302:4: interfaceDeclaration
+                    {
+                    pushFollow(FOLLOW_interfaceDeclaration_in_memberDecl603);
+                    interfaceDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 7 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:303:4: classDeclaration
+                    {
+                    pushFollow(FOLLOW_classDeclaration_in_memberDecl608);
+                    classDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 22, memberDecl_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end memberDecl
+
+
+    // $ANTLR start genericMethodOrConstructorDecl
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:306:1: genericMethodOrConstructorDecl : typeParameters genericMethodOrConstructorRest ;
+    public final void genericMethodOrConstructorDecl() throws RecognitionException {
+        int genericMethodOrConstructorDecl_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 23) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:307:4: ( typeParameters genericMethodOrConstructorRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:307:4: typeParameters genericMethodOrConstructorRest
+            {
+            pushFollow(FOLLOW_typeParameters_in_genericMethodOrConstructorDecl620);
+            typeParameters();
+            _fsp--;
+            if (failed) return ;
+            pushFollow(FOLLOW_genericMethodOrConstructorRest_in_genericMethodOrConstructorDecl622);
+            genericMethodOrConstructorRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 23, genericMethodOrConstructorDecl_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end genericMethodOrConstructorDecl
+
+
+    // $ANTLR start genericMethodOrConstructorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:310:1: genericMethodOrConstructorRest : ( ( type | 'void' ) Identifier methodDeclaratorRest | Identifier constructorDeclaratorRest );
+    public final void genericMethodOrConstructorRest() throws RecognitionException {
+        int genericMethodOrConstructorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 24) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:311:4: ( ( type | 'void' ) Identifier methodDeclaratorRest | Identifier constructorDeclaratorRest )
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==Identifier) ) {
+                int LA38_1 = input.LA(2);
+
+                if ( (LA38_1==65) ) {
+                    alt38=2;
+                }
+                else if ( (LA38_1==Identifier||LA38_1==28||LA38_1==33||LA38_1==41) ) {
+                    alt38=1;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("310:1: genericMethodOrConstructorRest : ( ( type | 'void' ) Identifier methodDeclaratorRest | Identifier constructorDeclaratorRest );", 38, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else if ( (LA38_0==40||(LA38_0>=55 && LA38_0<=62)) ) {
+                alt38=1;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("310:1: genericMethodOrConstructorRest : ( ( type | 'void' ) Identifier methodDeclaratorRest | Identifier constructorDeclaratorRest );", 38, 0, input);
+
+                throw nvae;
+            }
+            switch (alt38) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:311:4: ( type | 'void' ) Identifier methodDeclaratorRest
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:311:4: ( type | 'void' )
+                    int alt37=2;
+                    int LA37_0 = input.LA(1);
+
+                    if ( (LA37_0==Identifier||(LA37_0>=55 && LA37_0<=62)) ) {
+                        alt37=1;
+                    }
+                    else if ( (LA37_0==40) ) {
+                        alt37=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("311:4: ( type | 'void' )", 37, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt37) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:311:5: type
+                            {
+                            pushFollow(FOLLOW_type_in_genericMethodOrConstructorRest635);
+                            type();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+                        case 2 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:311:12: 'void'
+                            {
+                            match(input,40,FOLLOW_40_in_genericMethodOrConstructorRest639); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,Identifier,FOLLOW_Identifier_in_genericMethodOrConstructorRest642); if (failed) return ;
+                    pushFollow(FOLLOW_methodDeclaratorRest_in_genericMethodOrConstructorRest644);
+                    methodDeclaratorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:312:4: Identifier constructorDeclaratorRest
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_genericMethodOrConstructorRest649); if (failed) return ;
+                    pushFollow(FOLLOW_constructorDeclaratorRest_in_genericMethodOrConstructorRest651);
+                    constructorDeclaratorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 24, genericMethodOrConstructorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end genericMethodOrConstructorRest
+
+
+    // $ANTLR start methodDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:315:1: methodDeclaration : type Identifier methodDeclaratorRest ;
+    public final void methodDeclaration() throws RecognitionException {
+        int methodDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 25) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:316:4: ( type Identifier methodDeclaratorRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:316:4: type Identifier methodDeclaratorRest
+            {
+            pushFollow(FOLLOW_type_in_methodDeclaration662);
+            type();
+            _fsp--;
+            if (failed) return ;
+            match(input,Identifier,FOLLOW_Identifier_in_methodDeclaration664); if (failed) return ;
+            pushFollow(FOLLOW_methodDeclaratorRest_in_methodDeclaration666);
+            methodDeclaratorRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 25, methodDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end methodDeclaration
+
+
+    // $ANTLR start fieldDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:319:1: fieldDeclaration : type variableDeclarators ';' ;
+    public final void fieldDeclaration() throws RecognitionException {
+        int fieldDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 26) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:320:4: ( type variableDeclarators ';' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:320:4: type variableDeclarators ';'
+            {
+            pushFollow(FOLLOW_type_in_fieldDeclaration677);
+            type();
+            _fsp--;
+            if (failed) return ;
+            pushFollow(FOLLOW_variableDeclarators_in_fieldDeclaration679);
+            variableDeclarators();
+            _fsp--;
+            if (failed) return ;
+            match(input,25,FOLLOW_25_in_fieldDeclaration681); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 26, fieldDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end fieldDeclaration
+
+
+    // $ANTLR start interfaceBodyDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:323:1: interfaceBodyDeclaration : ( ( modifier )* interfaceMemberDecl | ';' );
+    public final void interfaceBodyDeclaration() throws RecognitionException {
+        int interfaceBodyDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 27) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:324:4: ( ( modifier )* interfaceMemberDecl | ';' )
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( ((LA40_0>=Identifier && LA40_0<=ENUM)||LA40_0==27||LA40_0==30||LA40_0==33||(LA40_0>=39 && LA40_0<=40)||(LA40_0>=45 && LA40_0<=62)||LA40_0==71) ) {
+                alt40=1;
+            }
+            else if ( (LA40_0==25) ) {
+                alt40=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("323:1: interfaceBodyDeclaration : ( ( modifier )* interfaceMemberDecl | ';' );", 40, 0, input);
+
+                throw nvae;
+            }
+            switch (alt40) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:324:4: ( modifier )* interfaceMemberDecl
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:324:4: ( modifier )*
+                    loop39:
+                    do {
+                        int alt39=2;
+                        int LA39_0 = input.LA(1);
+
+                        if ( (LA39_0==71) ) {
+                            int LA39_6 = input.LA(2);
+
+                            if ( (LA39_6==Identifier) ) {
+                                alt39=1;
+                            }
+
+
+                        }
+                        else if ( (LA39_0==27||(LA39_0>=45 && LA39_0<=54)) ) {
+                            alt39=1;
+                        }
+
+
+                        switch (alt39) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: modifier
+                    	    {
+                    	    pushFollow(FOLLOW_modifier_in_interfaceBodyDeclaration694);
+                    	    modifier();
+                    	    _fsp--;
+                    	    if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop39;
+                        }
+                    } while (true);
+
+                    pushFollow(FOLLOW_interfaceMemberDecl_in_interfaceBodyDeclaration697);
+                    interfaceMemberDecl();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:325:6: ';'
+                    {
+                    match(input,25,FOLLOW_25_in_interfaceBodyDeclaration704); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 27, interfaceBodyDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceBodyDeclaration
+
+
+    // $ANTLR start interfaceMemberDecl
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:328:1: interfaceMemberDecl : ( interfaceMethodOrFieldDecl | interfaceGenericMethodDecl | 'void' Identifier voidInterfaceMethodDeclaratorRest | interfaceDeclaration | classDeclaration );
+    public final void interfaceMemberDecl() throws RecognitionException {
+        int interfaceMemberDecl_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 28) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:329:4: ( interfaceMethodOrFieldDecl | interfaceGenericMethodDecl | 'void' Identifier voidInterfaceMethodDeclaratorRest | interfaceDeclaration | classDeclaration )
+            int alt41=5;
+            switch ( input.LA(1) ) {
+            case Identifier:
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+                {
+                alt41=1;
+                }
+                break;
+            case 33:
+                {
+                alt41=2;
+                }
+                break;
+            case 40:
+                {
+                alt41=3;
+                }
+                break;
+            case 39:
+            case 71:
+                {
+                alt41=4;
+                }
+                break;
+            case ENUM:
+            case 30:
+                {
+                alt41=5;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("328:1: interfaceMemberDecl : ( interfaceMethodOrFieldDecl | interfaceGenericMethodDecl | 'void' Identifier voidInterfaceMethodDeclaratorRest | interfaceDeclaration | classDeclaration );", 41, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt41) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:329:4: interfaceMethodOrFieldDecl
+                    {
+                    pushFollow(FOLLOW_interfaceMethodOrFieldDecl_in_interfaceMemberDecl715);
+                    interfaceMethodOrFieldDecl();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:330:6: interfaceGenericMethodDecl
+                    {
+                    pushFollow(FOLLOW_interfaceGenericMethodDecl_in_interfaceMemberDecl722);
+                    interfaceGenericMethodDecl();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:331:9: 'void' Identifier voidInterfaceMethodDeclaratorRest
+                    {
+                    match(input,40,FOLLOW_40_in_interfaceMemberDecl732); if (failed) return ;
+                    match(input,Identifier,FOLLOW_Identifier_in_interfaceMemberDecl734); if (failed) return ;
+                    pushFollow(FOLLOW_voidInterfaceMethodDeclaratorRest_in_interfaceMemberDecl736);
+                    voidInterfaceMethodDeclaratorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:332:9: interfaceDeclaration
+                    {
+                    pushFollow(FOLLOW_interfaceDeclaration_in_interfaceMemberDecl746);
+                    interfaceDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:333:9: classDeclaration
+                    {
+                    pushFollow(FOLLOW_classDeclaration_in_interfaceMemberDecl756);
+                    classDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 28, interfaceMemberDecl_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceMemberDecl
+
+
+    // $ANTLR start interfaceMethodOrFieldDecl
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:336:1: interfaceMethodOrFieldDecl : type Identifier interfaceMethodOrFieldRest ;
+    public final void interfaceMethodOrFieldDecl() throws RecognitionException {
+        int interfaceMethodOrFieldDecl_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 29) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:337:4: ( type Identifier interfaceMethodOrFieldRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:337:4: type Identifier interfaceMethodOrFieldRest
+            {
+            pushFollow(FOLLOW_type_in_interfaceMethodOrFieldDecl768);
+            type();
+            _fsp--;
+            if (failed) return ;
+            match(input,Identifier,FOLLOW_Identifier_in_interfaceMethodOrFieldDecl770); if (failed) return ;
+            pushFollow(FOLLOW_interfaceMethodOrFieldRest_in_interfaceMethodOrFieldDecl772);
+            interfaceMethodOrFieldRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 29, interfaceMethodOrFieldDecl_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceMethodOrFieldDecl
+
+
+    // $ANTLR start interfaceMethodOrFieldRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:340:1: interfaceMethodOrFieldRest : ( constantDeclaratorsRest ';' | interfaceMethodDeclaratorRest );
+    public final void interfaceMethodOrFieldRest() throws RecognitionException {
+        int interfaceMethodOrFieldRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 30) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:341:4: ( constantDeclaratorsRest ';' | interfaceMethodDeclaratorRest )
+            int alt42=2;
+            int LA42_0 = input.LA(1);
+
+            if ( (LA42_0==41||LA42_0==44) ) {
+                alt42=1;
+            }
+            else if ( (LA42_0==65) ) {
+                alt42=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("340:1: interfaceMethodOrFieldRest : ( constantDeclaratorsRest ';' | interfaceMethodDeclaratorRest );", 42, 0, input);
+
+                throw nvae;
+            }
+            switch (alt42) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:341:4: constantDeclaratorsRest ';'
+                    {
+                    pushFollow(FOLLOW_constantDeclaratorsRest_in_interfaceMethodOrFieldRest784);
+                    constantDeclaratorsRest();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,25,FOLLOW_25_in_interfaceMethodOrFieldRest786); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:342:4: interfaceMethodDeclaratorRest
+                    {
+                    pushFollow(FOLLOW_interfaceMethodDeclaratorRest_in_interfaceMethodOrFieldRest791);
+                    interfaceMethodDeclaratorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 30, interfaceMethodOrFieldRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceMethodOrFieldRest
+
+
+    // $ANTLR start methodDeclaratorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:345:1: methodDeclaratorRest : formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ( methodBody | ';' ) ;
+    public final void methodDeclaratorRest() throws RecognitionException {
+        int methodDeclaratorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 31) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:346:4: ( formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ( methodBody | ';' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:346:4: formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ( methodBody | ';' )
+            {
+            pushFollow(FOLLOW_formalParameters_in_methodDeclaratorRest803);
+            formalParameters();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:346:21: ( '[' ']' )*
+            loop43:
+            do {
+                int alt43=2;
+                int LA43_0 = input.LA(1);
+
+                if ( (LA43_0==41) ) {
+                    alt43=1;
+                }
+
+
+                switch (alt43) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:346:22: '[' ']'
+            	    {
+            	    match(input,41,FOLLOW_41_in_methodDeclaratorRest806); if (failed) return ;
+            	    match(input,42,FOLLOW_42_in_methodDeclaratorRest808); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop43;
+                }
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:347:9: ( 'throws' qualifiedNameList )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( (LA44_0==43) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:347:10: 'throws' qualifiedNameList
+                    {
+                    match(input,43,FOLLOW_43_in_methodDeclaratorRest821); if (failed) return ;
+                    pushFollow(FOLLOW_qualifiedNameList_in_methodDeclaratorRest823);
+                    qualifiedNameList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:348:9: ( methodBody | ';' )
+            int alt45=2;
+            int LA45_0 = input.LA(1);
+
+            if ( (LA45_0==37) ) {
+                alt45=1;
+            }
+            else if ( (LA45_0==25) ) {
+                alt45=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("348:9: ( methodBody | ';' )", 45, 0, input);
+
+                throw nvae;
+            }
+            switch (alt45) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:348:13: methodBody
+                    {
+                    pushFollow(FOLLOW_methodBody_in_methodDeclaratorRest839);
+                    methodBody();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:349:13: ';'
+                    {
+                    match(input,25,FOLLOW_25_in_methodDeclaratorRest853); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 31, methodDeclaratorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end methodDeclaratorRest
+
+
+    // $ANTLR start voidMethodDeclaratorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:353:1: voidMethodDeclaratorRest : formalParameters ( 'throws' qualifiedNameList )? ( methodBody | ';' ) ;
+    public final void voidMethodDeclaratorRest() throws RecognitionException {
+        int voidMethodDeclaratorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 32) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:354:4: ( formalParameters ( 'throws' qualifiedNameList )? ( methodBody | ';' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:354:4: formalParameters ( 'throws' qualifiedNameList )? ( methodBody | ';' )
+            {
+            pushFollow(FOLLOW_formalParameters_in_voidMethodDeclaratorRest875);
+            formalParameters();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:354:21: ( 'throws' qualifiedNameList )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==43) ) {
+                alt46=1;
+            }
+            switch (alt46) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:354:22: 'throws' qualifiedNameList
+                    {
+                    match(input,43,FOLLOW_43_in_voidMethodDeclaratorRest878); if (failed) return ;
+                    pushFollow(FOLLOW_qualifiedNameList_in_voidMethodDeclaratorRest880);
+                    qualifiedNameList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:355:9: ( methodBody | ';' )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( (LA47_0==37) ) {
+                alt47=1;
+            }
+            else if ( (LA47_0==25) ) {
+                alt47=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("355:9: ( methodBody | ';' )", 47, 0, input);
+
+                throw nvae;
+            }
+            switch (alt47) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:355:13: methodBody
+                    {
+                    pushFollow(FOLLOW_methodBody_in_voidMethodDeclaratorRest896);
+                    methodBody();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:356:13: ';'
+                    {
+                    match(input,25,FOLLOW_25_in_voidMethodDeclaratorRest910); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 32, voidMethodDeclaratorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end voidMethodDeclaratorRest
+
+
+    // $ANTLR start interfaceMethodDeclaratorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:360:1: interfaceMethodDeclaratorRest : formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ';' ;
+    public final void interfaceMethodDeclaratorRest() throws RecognitionException {
+        int interfaceMethodDeclaratorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 33) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:361:4: ( formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ';' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:361:4: formalParameters ( '[' ']' )* ( 'throws' qualifiedNameList )? ';'
+            {
+            pushFollow(FOLLOW_formalParameters_in_interfaceMethodDeclaratorRest932);
+            formalParameters();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:361:21: ( '[' ']' )*
+            loop48:
+            do {
+                int alt48=2;
+                int LA48_0 = input.LA(1);
+
+                if ( (LA48_0==41) ) {
+                    alt48=1;
+                }
+
+
+                switch (alt48) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:361:22: '[' ']'
+            	    {
+            	    match(input,41,FOLLOW_41_in_interfaceMethodDeclaratorRest935); if (failed) return ;
+            	    match(input,42,FOLLOW_42_in_interfaceMethodDeclaratorRest937); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop48;
+                }
+            } while (true);
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:361:32: ( 'throws' qualifiedNameList )?
+            int alt49=2;
+            int LA49_0 = input.LA(1);
+
+            if ( (LA49_0==43) ) {
+                alt49=1;
+            }
+            switch (alt49) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:361:33: 'throws' qualifiedNameList
+                    {
+                    match(input,43,FOLLOW_43_in_interfaceMethodDeclaratorRest942); if (failed) return ;
+                    pushFollow(FOLLOW_qualifiedNameList_in_interfaceMethodDeclaratorRest944);
+                    qualifiedNameList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,25,FOLLOW_25_in_interfaceMethodDeclaratorRest948); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 33, interfaceMethodDeclaratorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceMethodDeclaratorRest
+
+
+    // $ANTLR start interfaceGenericMethodDecl
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:364:1: interfaceGenericMethodDecl : typeParameters ( type | 'void' ) Identifier interfaceMethodDeclaratorRest ;
+    public final void interfaceGenericMethodDecl() throws RecognitionException {
+        int interfaceGenericMethodDecl_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 34) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:365:4: ( typeParameters ( type | 'void' ) Identifier interfaceMethodDeclaratorRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:365:4: typeParameters ( type | 'void' ) Identifier interfaceMethodDeclaratorRest
+            {
+            pushFollow(FOLLOW_typeParameters_in_interfaceGenericMethodDecl960);
+            typeParameters();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:365:19: ( type | 'void' )
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==Identifier||(LA50_0>=55 && LA50_0<=62)) ) {
+                alt50=1;
+            }
+            else if ( (LA50_0==40) ) {
+                alt50=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("365:19: ( type | 'void' )", 50, 0, input);
+
+                throw nvae;
+            }
+            switch (alt50) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:365:20: type
+                    {
+                    pushFollow(FOLLOW_type_in_interfaceGenericMethodDecl963);
+                    type();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:365:27: 'void'
+                    {
+                    match(input,40,FOLLOW_40_in_interfaceGenericMethodDecl967); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,Identifier,FOLLOW_Identifier_in_interfaceGenericMethodDecl970); if (failed) return ;
+            pushFollow(FOLLOW_interfaceMethodDeclaratorRest_in_interfaceGenericMethodDecl980);
+            interfaceMethodDeclaratorRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 34, interfaceGenericMethodDecl_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end interfaceGenericMethodDecl
+
+
+    // $ANTLR start voidInterfaceMethodDeclaratorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:369:1: voidInterfaceMethodDeclaratorRest : formalParameters ( 'throws' qualifiedNameList )? ';' ;
+    public final void voidInterfaceMethodDeclaratorRest() throws RecognitionException {
+        int voidInterfaceMethodDeclaratorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 35) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:370:4: ( formalParameters ( 'throws' qualifiedNameList )? ';' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:370:4: formalParameters ( 'throws' qualifiedNameList )? ';'
+            {
+            pushFollow(FOLLOW_formalParameters_in_voidInterfaceMethodDeclaratorRest992);
+            formalParameters();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:370:21: ( 'throws' qualifiedNameList )?
+            int alt51=2;
+            int LA51_0 = input.LA(1);
+
+            if ( (LA51_0==43) ) {
+                alt51=1;
+            }
+            switch (alt51) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:370:22: 'throws' qualifiedNameList
+                    {
+                    match(input,43,FOLLOW_43_in_voidInterfaceMethodDeclaratorRest995); if (failed) return ;
+                    pushFollow(FOLLOW_qualifiedNameList_in_voidInterfaceMethodDeclaratorRest997);
+                    qualifiedNameList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,25,FOLLOW_25_in_voidInterfaceMethodDeclaratorRest1001); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 35, voidInterfaceMethodDeclaratorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end voidInterfaceMethodDeclaratorRest
+
+
+    // $ANTLR start constructorDeclaratorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:373:1: constructorDeclaratorRest : formalParameters ( 'throws' qualifiedNameList )? methodBody ;
+    public final void constructorDeclaratorRest() throws RecognitionException {
+        int constructorDeclaratorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 36) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:374:4: ( formalParameters ( 'throws' qualifiedNameList )? methodBody )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:374:4: formalParameters ( 'throws' qualifiedNameList )? methodBody
+            {
+            pushFollow(FOLLOW_formalParameters_in_constructorDeclaratorRest1013);
+            formalParameters();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:374:21: ( 'throws' qualifiedNameList )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
+
+            if ( (LA52_0==43) ) {
+                alt52=1;
+            }
+            switch (alt52) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:374:22: 'throws' qualifiedNameList
+                    {
+                    match(input,43,FOLLOW_43_in_constructorDeclaratorRest1016); if (failed) return ;
+                    pushFollow(FOLLOW_qualifiedNameList_in_constructorDeclaratorRest1018);
+                    qualifiedNameList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            pushFollow(FOLLOW_methodBody_in_constructorDeclaratorRest1022);
+            methodBody();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 36, constructorDeclaratorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end constructorDeclaratorRest
+
+
+    // $ANTLR start constantDeclarator
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:377:1: constantDeclarator : Identifier constantDeclaratorRest ;
+    public final void constantDeclarator() throws RecognitionException {
+        int constantDeclarator_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 37) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:378:4: ( Identifier constantDeclaratorRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:378:4: Identifier constantDeclaratorRest
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_constantDeclarator1033); if (failed) return ;
+            pushFollow(FOLLOW_constantDeclaratorRest_in_constantDeclarator1035);
+            constantDeclaratorRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 37, constantDeclarator_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end constantDeclarator
+
+
+    // $ANTLR start variableDeclarators
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:381:1: variableDeclarators : variableDeclarator ( ',' variableDeclarator )* ;
+    public final void variableDeclarators() throws RecognitionException {
+        int variableDeclarators_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 38) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:382:4: ( variableDeclarator ( ',' variableDeclarator )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:382:4: variableDeclarator ( ',' variableDeclarator )*
+            {
+            pushFollow(FOLLOW_variableDeclarator_in_variableDeclarators1047);
+            variableDeclarator();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:382:23: ( ',' variableDeclarator )*
+            loop53:
+            do {
+                int alt53=2;
+                int LA53_0 = input.LA(1);
+
+                if ( (LA53_0==34) ) {
+                    alt53=1;
+                }
+
+
+                switch (alt53) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:382:24: ',' variableDeclarator
+            	    {
+            	    match(input,34,FOLLOW_34_in_variableDeclarators1050); if (failed) return ;
+            	    pushFollow(FOLLOW_variableDeclarator_in_variableDeclarators1052);
+            	    variableDeclarator();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop53;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 38, variableDeclarators_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end variableDeclarators
+
+
+    // $ANTLR start variableDeclarator
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:385:1: variableDeclarator : Identifier variableDeclaratorRest ;
+    public final void variableDeclarator() throws RecognitionException {
+        int variableDeclarator_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 39) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:386:4: ( Identifier variableDeclaratorRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:386:4: Identifier variableDeclaratorRest
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_variableDeclarator1065); if (failed) return ;
+            pushFollow(FOLLOW_variableDeclaratorRest_in_variableDeclarator1067);
+            variableDeclaratorRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 39, variableDeclarator_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end variableDeclarator
+
+
+    // $ANTLR start variableDeclaratorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:389:1: variableDeclaratorRest : ( ( '[' ']' )+ ( '=' variableInitializer )? | '=' variableInitializer | );
+    public final void variableDeclaratorRest() throws RecognitionException {
+        int variableDeclaratorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 40) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:390:4: ( ( '[' ']' )+ ( '=' variableInitializer )? | '=' variableInitializer | )
+            int alt56=3;
+            switch ( input.LA(1) ) {
+            case 41:
+                {
+                alt56=1;
+                }
+                break;
+            case 44:
+                {
+                alt56=2;
+                }
+                break;
+            case EOF:
+            case 25:
+            case 34:
+                {
+                alt56=3;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("389:1: variableDeclaratorRest : ( ( '[' ']' )+ ( '=' variableInitializer )? | '=' variableInitializer | );", 56, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt56) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:390:4: ( '[' ']' )+ ( '=' variableInitializer )?
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:390:4: ( '[' ']' )+
+                    int cnt54=0;
+                    loop54:
+                    do {
+                        int alt54=2;
+                        int LA54_0 = input.LA(1);
+
+                        if ( (LA54_0==41) ) {
+                            alt54=1;
+                        }
+
+
+                        switch (alt54) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:390:5: '[' ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_variableDeclaratorRest1080); if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_variableDeclaratorRest1082); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt54 >= 1 ) break loop54;
+                    	    if (backtracking>0) {failed=true; return ;}
+                                EarlyExitException eee =
+                                    new EarlyExitException(54, input);
+                                throw eee;
+                        }
+                        cnt54++;
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:390:15: ( '=' variableInitializer )?
+                    int alt55=2;
+                    int LA55_0 = input.LA(1);
+
+                    if ( (LA55_0==44) ) {
+                        alt55=1;
+                    }
+                    switch (alt55) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:390:16: '=' variableInitializer
+                            {
+                            match(input,44,FOLLOW_44_in_variableDeclaratorRest1087); if (failed) return ;
+                            pushFollow(FOLLOW_variableInitializer_in_variableDeclaratorRest1089);
+                            variableInitializer();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:391:4: '=' variableInitializer
+                    {
+                    match(input,44,FOLLOW_44_in_variableDeclaratorRest1096); if (failed) return ;
+                    pushFollow(FOLLOW_variableInitializer_in_variableDeclaratorRest1098);
+                    variableInitializer();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:393:2: 
+                    {
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 40, variableDeclaratorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end variableDeclaratorRest
+
+
+    // $ANTLR start constantDeclaratorsRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:395:1: constantDeclaratorsRest : constantDeclaratorRest ( ',' constantDeclarator )* ;
+    public final void constantDeclaratorsRest() throws RecognitionException {
+        int constantDeclaratorsRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 41) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:396:9: ( constantDeclaratorRest ( ',' constantDeclarator )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:396:9: constantDeclaratorRest ( ',' constantDeclarator )*
+            {
+            pushFollow(FOLLOW_constantDeclaratorRest_in_constantDeclaratorsRest1118);
+            constantDeclaratorRest();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:396:32: ( ',' constantDeclarator )*
+            loop57:
+            do {
+                int alt57=2;
+                int LA57_0 = input.LA(1);
+
+                if ( (LA57_0==34) ) {
+                    alt57=1;
+                }
+
+
+                switch (alt57) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:396:33: ',' constantDeclarator
+            	    {
+            	    match(input,34,FOLLOW_34_in_constantDeclaratorsRest1121); if (failed) return ;
+            	    pushFollow(FOLLOW_constantDeclarator_in_constantDeclaratorsRest1123);
+            	    constantDeclarator();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop57;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 41, constantDeclaratorsRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end constantDeclaratorsRest
+
+
+    // $ANTLR start constantDeclaratorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:399:1: constantDeclaratorRest : ( '[' ']' )* '=' variableInitializer ;
+    public final void constantDeclaratorRest() throws RecognitionException {
+        int constantDeclaratorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 42) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:400:4: ( ( '[' ']' )* '=' variableInitializer )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:400:4: ( '[' ']' )* '=' variableInitializer
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:400:4: ( '[' ']' )*
+            loop58:
+            do {
+                int alt58=2;
+                int LA58_0 = input.LA(1);
+
+                if ( (LA58_0==41) ) {
+                    alt58=1;
+                }
+
+
+                switch (alt58) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:400:5: '[' ']'
+            	    {
+            	    match(input,41,FOLLOW_41_in_constantDeclaratorRest1140); if (failed) return ;
+            	    match(input,42,FOLLOW_42_in_constantDeclaratorRest1142); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop58;
+                }
+            } while (true);
+
+            match(input,44,FOLLOW_44_in_constantDeclaratorRest1146); if (failed) return ;
+            pushFollow(FOLLOW_variableInitializer_in_constantDeclaratorRest1148);
+            variableInitializer();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 42, constantDeclaratorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end constantDeclaratorRest
+
+
+    // $ANTLR start variableDeclaratorId
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:403:1: variableDeclaratorId : Identifier ( '[' ']' )* ;
+    public final void variableDeclaratorId() throws RecognitionException {
+        int variableDeclaratorId_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 43) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:404:4: ( Identifier ( '[' ']' )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:404:4: Identifier ( '[' ']' )*
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_variableDeclaratorId1160); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:404:15: ( '[' ']' )*
+            loop59:
+            do {
+                int alt59=2;
+                int LA59_0 = input.LA(1);
+
+                if ( (LA59_0==41) ) {
+                    alt59=1;
+                }
+
+
+                switch (alt59) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:404:16: '[' ']'
+            	    {
+            	    match(input,41,FOLLOW_41_in_variableDeclaratorId1163); if (failed) return ;
+            	    match(input,42,FOLLOW_42_in_variableDeclaratorId1165); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop59;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 43, variableDeclaratorId_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end variableDeclaratorId
+
+
+    // $ANTLR start variableInitializer
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:407:1: variableInitializer : ( arrayInitializer | expression );
+    public final void variableInitializer() throws RecognitionException {
+        int variableInitializer_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 44) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:408:4: ( arrayInitializer | expression )
+            int alt60=2;
+            int LA60_0 = input.LA(1);
+
+            if ( (LA60_0==37) ) {
+                alt60=1;
+            }
+            else if ( (LA60_0==Identifier||(LA60_0>=FloatingPointLiteral && LA60_0<=DecimalLiteral)||LA60_0==33||LA60_0==40||(LA60_0>=55 && LA60_0<=62)||(LA60_0>=64 && LA60_0<=65)||(LA60_0>=68 && LA60_0<=70)||(LA60_0>=104 && LA60_0<=105)||(LA60_0>=108 && LA60_0<=113)) ) {
+                alt60=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("407:1: variableInitializer : ( arrayInitializer | expression );", 60, 0, input);
+
+                throw nvae;
+            }
+            switch (alt60) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:408:4: arrayInitializer
+                    {
+                    pushFollow(FOLLOW_arrayInitializer_in_variableInitializer1178);
+                    arrayInitializer();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:409:9: expression
+                    {
+                    pushFollow(FOLLOW_expression_in_variableInitializer1188);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 44, variableInitializer_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end variableInitializer
+
+
+    // $ANTLR start arrayInitializer
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:412:1: arrayInitializer : '{' ( variableInitializer ( ',' variableInitializer )* ( ',' )? )? '}' ;
+    public final void arrayInitializer() throws RecognitionException {
+        int arrayInitializer_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 45) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:4: ( '{' ( variableInitializer ( ',' variableInitializer )* ( ',' )? )? '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:4: '{' ( variableInitializer ( ',' variableInitializer )* ( ',' )? )? '}'
+            {
+            match(input,37,FOLLOW_37_in_arrayInitializer1200); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:8: ( variableInitializer ( ',' variableInitializer )* ( ',' )? )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
+
+            if ( (LA63_0==Identifier||(LA63_0>=FloatingPointLiteral && LA63_0<=DecimalLiteral)||LA63_0==33||LA63_0==37||LA63_0==40||(LA63_0>=55 && LA63_0<=62)||(LA63_0>=64 && LA63_0<=65)||(LA63_0>=68 && LA63_0<=70)||(LA63_0>=104 && LA63_0<=105)||(LA63_0>=108 && LA63_0<=113)) ) {
+                alt63=1;
+            }
+            switch (alt63) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:9: variableInitializer ( ',' variableInitializer )* ( ',' )?
+                    {
+                    pushFollow(FOLLOW_variableInitializer_in_arrayInitializer1203);
+                    variableInitializer();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:29: ( ',' variableInitializer )*
+                    loop61:
+                    do {
+                        int alt61=2;
+                        int LA61_0 = input.LA(1);
+
+                        if ( (LA61_0==34) ) {
+                            int LA61_1 = input.LA(2);
+
+                            if ( (LA61_1==Identifier||(LA61_1>=FloatingPointLiteral && LA61_1<=DecimalLiteral)||LA61_1==33||LA61_1==37||LA61_1==40||(LA61_1>=55 && LA61_1<=62)||(LA61_1>=64 && LA61_1<=65)||(LA61_1>=68 && LA61_1<=70)||(LA61_1>=104 && LA61_1<=105)||(LA61_1>=108 && LA61_1<=113)) ) {
+                                alt61=1;
+                            }
+
+
+                        }
+
+
+                        switch (alt61) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:30: ',' variableInitializer
+                    	    {
+                    	    match(input,34,FOLLOW_34_in_arrayInitializer1206); if (failed) return ;
+                    	    pushFollow(FOLLOW_variableInitializer_in_arrayInitializer1208);
+                    	    variableInitializer();
+                    	    _fsp--;
+                    	    if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop61;
+                        }
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:56: ( ',' )?
+                    int alt62=2;
+                    int LA62_0 = input.LA(1);
+
+                    if ( (LA62_0==34) ) {
+                        alt62=1;
+                    }
+                    switch (alt62) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:413:57: ','
+                            {
+                            match(input,34,FOLLOW_34_in_arrayInitializer1213); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            match(input,38,FOLLOW_38_in_arrayInitializer1220); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 45, arrayInitializer_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end arrayInitializer
+
+
+    // $ANTLR start modifier
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:416:1: modifier : ( annotation | 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' );
+    public final void modifier() throws RecognitionException {
+        int modifier_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 46) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:417:9: ( annotation | 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' )
+            int alt64=12;
+            switch ( input.LA(1) ) {
+            case 71:
+                {
+                alt64=1;
+                }
+                break;
+            case 45:
+                {
+                alt64=2;
+                }
+                break;
+            case 46:
+                {
+                alt64=3;
+                }
+                break;
+            case 47:
+                {
+                alt64=4;
+                }
+                break;
+            case 27:
+                {
+                alt64=5;
+                }
+                break;
+            case 48:
+                {
+                alt64=6;
+                }
+                break;
+            case 49:
+                {
+                alt64=7;
+                }
+                break;
+            case 50:
+                {
+                alt64=8;
+                }
+                break;
+            case 51:
+                {
+                alt64=9;
+                }
+                break;
+            case 52:
+                {
+                alt64=10;
+                }
+                break;
+            case 53:
+                {
+                alt64=11;
+                }
+                break;
+            case 54:
+                {
+                alt64=12;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("416:1: modifier : ( annotation | 'public' | 'protected' | 'private' | 'static' | 'abstract' | 'final' | 'native' | 'synchronized' | 'transient' | 'volatile' | 'strictfp' );", 64, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt64) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:417:9: annotation
+                    {
+                    pushFollow(FOLLOW_annotation_in_modifier1236);
+                    annotation();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:418:9: 'public'
+                    {
+                    match(input,45,FOLLOW_45_in_modifier1246); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:419:9: 'protected'
+                    {
+                    match(input,46,FOLLOW_46_in_modifier1256); if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:420:9: 'private'
+                    {
+                    match(input,47,FOLLOW_47_in_modifier1266); if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:421:9: 'static'
+                    {
+                    match(input,27,FOLLOW_27_in_modifier1276); if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:422:9: 'abstract'
+                    {
+                    match(input,48,FOLLOW_48_in_modifier1286); if (failed) return ;
+
+                    }
+                    break;
+                case 7 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:423:9: 'final'
+                    {
+                    match(input,49,FOLLOW_49_in_modifier1296); if (failed) return ;
+
+                    }
+                    break;
+                case 8 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:424:9: 'native'
+                    {
+                    match(input,50,FOLLOW_50_in_modifier1306); if (failed) return ;
+
+                    }
+                    break;
+                case 9 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:425:9: 'synchronized'
+                    {
+                    match(input,51,FOLLOW_51_in_modifier1316); if (failed) return ;
+
+                    }
+                    break;
+                case 10 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:426:9: 'transient'
+                    {
+                    match(input,52,FOLLOW_52_in_modifier1326); if (failed) return ;
+
+                    }
+                    break;
+                case 11 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:427:9: 'volatile'
+                    {
+                    match(input,53,FOLLOW_53_in_modifier1336); if (failed) return ;
+
+                    }
+                    break;
+                case 12 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:428:9: 'strictfp'
+                    {
+                    match(input,54,FOLLOW_54_in_modifier1346); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 46, modifier_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end modifier
+
+
+    // $ANTLR start packageOrTypeName
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:431:1: packageOrTypeName : Identifier ( '.' Identifier )* ;
+    public final void packageOrTypeName() throws RecognitionException {
+        int packageOrTypeName_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 47) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:432:4: ( Identifier ( '.' Identifier )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:432:4: Identifier ( '.' Identifier )*
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_packageOrTypeName1360); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:432:15: ( '.' Identifier )*
+            loop65:
+            do {
+                int alt65=2;
+                int LA65_0 = input.LA(1);
+
+                if ( (LA65_0==28) ) {
+                    int LA65_1 = input.LA(2);
+
+                    if ( (LA65_1==Identifier) ) {
+                        int LA65_2 = input.LA(3);
+
+                        if ( (synpred85()) ) {
+                            alt65=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt65) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:432:16: '.' Identifier
+            	    {
+            	    match(input,28,FOLLOW_28_in_packageOrTypeName1363); if (failed) return ;
+            	    match(input,Identifier,FOLLOW_Identifier_in_packageOrTypeName1365); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop65;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 47, packageOrTypeName_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end packageOrTypeName
+
+
+    // $ANTLR start enumConstantName
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:435:1: enumConstantName : Identifier ;
+    public final void enumConstantName() throws RecognitionException {
+        int enumConstantName_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 48) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:436:9: ( Identifier )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:436:9: Identifier
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_enumConstantName1383); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 48, enumConstantName_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end enumConstantName
+
+
+    // $ANTLR start typeName
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:439:1: typeName : ( Identifier | packageOrTypeName '.' Identifier );
+    public final void typeName() throws RecognitionException {
+        int typeName_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 49) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:440:6: ( Identifier | packageOrTypeName '.' Identifier )
+            int alt66=2;
+            int LA66_0 = input.LA(1);
+
+            if ( (LA66_0==Identifier) ) {
+                int LA66_1 = input.LA(2);
+
+                if ( (LA66_1==EOF) ) {
+                    alt66=1;
+                }
+                else if ( (LA66_1==28) ) {
+                    alt66=2;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("439:1: typeName : ( Identifier | packageOrTypeName '.' Identifier );", 66, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("439:1: typeName : ( Identifier | packageOrTypeName '.' Identifier );", 66, 0, input);
+
+                throw nvae;
+            }
+            switch (alt66) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:440:6: Identifier
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_typeName1399); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:441:9: packageOrTypeName '.' Identifier
+                    {
+                    pushFollow(FOLLOW_packageOrTypeName_in_typeName1409);
+                    packageOrTypeName();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,28,FOLLOW_28_in_typeName1411); if (failed) return ;
+                    match(input,Identifier,FOLLOW_Identifier_in_typeName1413); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 49, typeName_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end typeName
+
+
+    // $ANTLR start type
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:444:1: type : ( Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* ( '[' ']' )* | primitiveType ( '[' ']' )* );
+    public final void type() throws RecognitionException {
+        int type_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 50) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:4: ( Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* ( '[' ']' )* | primitiveType ( '[' ']' )* )
+            int alt72=2;
+            int LA72_0 = input.LA(1);
+
+            if ( (LA72_0==Identifier) ) {
+                alt72=1;
+            }
+            else if ( ((LA72_0>=55 && LA72_0<=62)) ) {
+                alt72=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("444:1: type : ( Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* ( '[' ']' )* | primitiveType ( '[' ']' )* );", 72, 0, input);
+
+                throw nvae;
+            }
+            switch (alt72) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:4: Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* ( '[' ']' )*
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_type1424); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:15: ( typeArguments )?
+                    int alt67=2;
+                    int LA67_0 = input.LA(1);
+
+                    if ( (LA67_0==33) ) {
+                        int LA67_1 = input.LA(2);
+
+                        if ( (LA67_1==Identifier||(LA67_1>=55 && LA67_1<=63)) ) {
+                            alt67=1;
+                        }
+                    }
+                    switch (alt67) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:16: typeArguments
+                            {
+                            pushFollow(FOLLOW_typeArguments_in_type1427);
+                            typeArguments();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:32: ( '.' Identifier ( typeArguments )? )*
+                    loop69:
+                    do {
+                        int alt69=2;
+                        int LA69_0 = input.LA(1);
+
+                        if ( (LA69_0==28) ) {
+                            alt69=1;
+                        }
+
+
+                        switch (alt69) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:33: '.' Identifier ( typeArguments )?
+                    	    {
+                    	    match(input,28,FOLLOW_28_in_type1432); if (failed) return ;
+                    	    match(input,Identifier,FOLLOW_Identifier_in_type1434); if (failed) return ;
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:48: ( typeArguments )?
+                    	    int alt68=2;
+                    	    int LA68_0 = input.LA(1);
+
+                    	    if ( (LA68_0==33) ) {
+                    	        int LA68_1 = input.LA(2);
+
+                    	        if ( (LA68_1==Identifier||(LA68_1>=55 && LA68_1<=63)) ) {
+                    	            alt68=1;
+                    	        }
+                    	    }
+                    	    switch (alt68) {
+                    	        case 1 :
+                    	            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:49: typeArguments
+                    	            {
+                    	            pushFollow(FOLLOW_typeArguments_in_type1437);
+                    	            typeArguments();
+                    	            _fsp--;
+                    	            if (failed) return ;
+
+                    	            }
+                    	            break;
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop69;
+                        }
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:68: ( '[' ']' )*
+                    loop70:
+                    do {
+                        int alt70=2;
+                        int LA70_0 = input.LA(1);
+
+                        if ( (LA70_0==41) ) {
+                            alt70=1;
+                        }
+
+
+                        switch (alt70) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:445:69: '[' ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_type1445); if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_type1447); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop70;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:446:4: primitiveType ( '[' ']' )*
+                    {
+                    pushFollow(FOLLOW_primitiveType_in_type1454);
+                    primitiveType();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:446:18: ( '[' ']' )*
+                    loop71:
+                    do {
+                        int alt71=2;
+                        int LA71_0 = input.LA(1);
+
+                        if ( (LA71_0==41) ) {
+                            alt71=1;
+                        }
+
+
+                        switch (alt71) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:446:19: '[' ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_type1457); if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_type1459); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop71;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 50, type_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end type
+
+
+    // $ANTLR start primitiveType
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:449:1: primitiveType : ( 'boolean' | 'char' | 'byte' | 'short' | 'int' | 'long' | 'float' | 'double' );
+    public final void primitiveType() throws RecognitionException {
+        int primitiveType_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 51) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:450:9: ( 'boolean' | 'char' | 'byte' | 'short' | 'int' | 'long' | 'float' | 'double' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+            {
+            if ( (input.LA(1)>=55 && input.LA(1)<=62) ) {
+                input.consume();
+                errorRecovery=false;failed=false;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_primitiveType0);    throw mse;
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 51, primitiveType_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end primitiveType
+
+
+    // $ANTLR start variableModifier
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:460:1: variableModifier : ( 'final' | annotation );
+    public final void variableModifier() throws RecognitionException {
+        int variableModifier_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 52) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:461:4: ( 'final' | annotation )
+            int alt73=2;
+            int LA73_0 = input.LA(1);
+
+            if ( (LA73_0==49) ) {
+                alt73=1;
+            }
+            else if ( (LA73_0==71) ) {
+                alt73=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("460:1: variableModifier : ( 'final' | annotation );", 73, 0, input);
+
+                throw nvae;
+            }
+            switch (alt73) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:461:4: 'final'
+                    {
+                    match(input,49,FOLLOW_49_in_variableModifier1547); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:462:9: annotation
+                    {
+                    pushFollow(FOLLOW_annotation_in_variableModifier1557);
+                    annotation();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 52, variableModifier_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end variableModifier
+
+
+    // $ANTLR start typeArguments
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:465:1: typeArguments : '<' typeArgument ( ',' typeArgument )* '>' ;
+    public final void typeArguments() throws RecognitionException {
+        int typeArguments_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 53) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:466:4: ( '<' typeArgument ( ',' typeArgument )* '>' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:466:4: '<' typeArgument ( ',' typeArgument )* '>'
+            {
+            match(input,33,FOLLOW_33_in_typeArguments1568); if (failed) return ;
+            pushFollow(FOLLOW_typeArgument_in_typeArguments1570);
+            typeArgument();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:466:21: ( ',' typeArgument )*
+            loop74:
+            do {
+                int alt74=2;
+                int LA74_0 = input.LA(1);
+
+                if ( (LA74_0==34) ) {
+                    alt74=1;
+                }
+
+
+                switch (alt74) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:466:22: ',' typeArgument
+            	    {
+            	    match(input,34,FOLLOW_34_in_typeArguments1573); if (failed) return ;
+            	    pushFollow(FOLLOW_typeArgument_in_typeArguments1575);
+            	    typeArgument();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop74;
+                }
+            } while (true);
+
+            match(input,35,FOLLOW_35_in_typeArguments1579); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 53, typeArguments_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end typeArguments
+
+
+    // $ANTLR start typeArgument
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:469:1: typeArgument : ( type | '?' ( ( 'extends' | 'super' ) type )? );
+    public final void typeArgument() throws RecognitionException {
+        int typeArgument_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 54) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:470:4: ( type | '?' ( ( 'extends' | 'super' ) type )? )
+            int alt76=2;
+            int LA76_0 = input.LA(1);
+
+            if ( (LA76_0==Identifier||(LA76_0>=55 && LA76_0<=62)) ) {
+                alt76=1;
+            }
+            else if ( (LA76_0==63) ) {
+                alt76=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("469:1: typeArgument : ( type | '?' ( ( 'extends' | 'super' ) type )? );", 76, 0, input);
+
+                throw nvae;
+            }
+            switch (alt76) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:470:4: type
+                    {
+                    pushFollow(FOLLOW_type_in_typeArgument1591);
+                    type();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:471:4: '?' ( ( 'extends' | 'super' ) type )?
+                    {
+                    match(input,63,FOLLOW_63_in_typeArgument1596); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:471:8: ( ( 'extends' | 'super' ) type )?
+                    int alt75=2;
+                    int LA75_0 = input.LA(1);
+
+                    if ( (LA75_0==31||LA75_0==64) ) {
+                        alt75=1;
+                    }
+                    switch (alt75) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:471:9: ( 'extends' | 'super' ) type
+                            {
+                            if ( input.LA(1)==31||input.LA(1)==64 ) {
+                                input.consume();
+                                errorRecovery=false;failed=false;
+                            }
+                            else {
+                                if (backtracking>0) {failed=true; return ;}
+                                MismatchedSetException mse =
+                                    new MismatchedSetException(null,input);
+                                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_typeArgument1599);    throw mse;
+                            }
+
+                            pushFollow(FOLLOW_type_in_typeArgument1607);
+                            type();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 54, typeArgument_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end typeArgument
+
+
+    // $ANTLR start qualifiedNameList
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:474:1: qualifiedNameList : qualifiedName ( ',' qualifiedName )* ;
+    public final void qualifiedNameList() throws RecognitionException {
+        int qualifiedNameList_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 55) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:475:4: ( qualifiedName ( ',' qualifiedName )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:475:4: qualifiedName ( ',' qualifiedName )*
+            {
+            pushFollow(FOLLOW_qualifiedName_in_qualifiedNameList1621);
+            qualifiedName();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:475:18: ( ',' qualifiedName )*
+            loop77:
+            do {
+                int alt77=2;
+                int LA77_0 = input.LA(1);
+
+                if ( (LA77_0==34) ) {
+                    alt77=1;
+                }
+
+
+                switch (alt77) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:475:19: ',' qualifiedName
+            	    {
+            	    match(input,34,FOLLOW_34_in_qualifiedNameList1624); if (failed) return ;
+            	    pushFollow(FOLLOW_qualifiedName_in_qualifiedNameList1626);
+            	    qualifiedName();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop77;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 55, qualifiedNameList_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end qualifiedNameList
+
+
+    // $ANTLR start formalParameters
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:478:1: formalParameters : '(' ( formalParameterDecls )? ')' ;
+    public final void formalParameters() throws RecognitionException {
+        int formalParameters_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 56) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:479:4: ( '(' ( formalParameterDecls )? ')' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:479:4: '(' ( formalParameterDecls )? ')'
+            {
+            match(input,65,FOLLOW_65_in_formalParameters1640); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:479:8: ( formalParameterDecls )?
+            int alt78=2;
+            int LA78_0 = input.LA(1);
+
+            if ( (LA78_0==Identifier||LA78_0==49||(LA78_0>=55 && LA78_0<=62)||LA78_0==71) ) {
+                alt78=1;
+            }
+            switch (alt78) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: formalParameterDecls
+                    {
+                    pushFollow(FOLLOW_formalParameterDecls_in_formalParameters1642);
+                    formalParameterDecls();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,66,FOLLOW_66_in_formalParameters1645); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 56, formalParameters_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end formalParameters
+
+
+    // $ANTLR start formalParameterDecls
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:482:1: formalParameterDecls : ( variableModifier )* type ( formalParameterDeclsRest )? ;
+    public final void formalParameterDecls() throws RecognitionException {
+        int formalParameterDecls_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 57) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:483:4: ( ( variableModifier )* type ( formalParameterDeclsRest )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:483:4: ( variableModifier )* type ( formalParameterDeclsRest )?
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:483:4: ( variableModifier )*
+            loop79:
+            do {
+                int alt79=2;
+                int LA79_0 = input.LA(1);
+
+                if ( (LA79_0==49||LA79_0==71) ) {
+                    alt79=1;
+                }
+
+
+                switch (alt79) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: variableModifier
+            	    {
+            	    pushFollow(FOLLOW_variableModifier_in_formalParameterDecls1657);
+            	    variableModifier();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop79;
+                }
+            } while (true);
+
+            pushFollow(FOLLOW_type_in_formalParameterDecls1660);
+            type();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:483:27: ( formalParameterDeclsRest )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
+
+            if ( (LA80_0==Identifier||LA80_0==67) ) {
+                alt80=1;
+            }
+            switch (alt80) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: formalParameterDeclsRest
+                    {
+                    pushFollow(FOLLOW_formalParameterDeclsRest_in_formalParameterDecls1662);
+                    formalParameterDeclsRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 57, formalParameterDecls_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end formalParameterDecls
+
+
+    // $ANTLR start formalParameterDeclsRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:486:1: formalParameterDeclsRest : ( variableDeclaratorId ( ',' formalParameterDecls )? | '...' variableDeclaratorId );
+    public final void formalParameterDeclsRest() throws RecognitionException {
+        int formalParameterDeclsRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 58) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:487:4: ( variableDeclaratorId ( ',' formalParameterDecls )? | '...' variableDeclaratorId )
+            int alt82=2;
+            int LA82_0 = input.LA(1);
+
+            if ( (LA82_0==Identifier) ) {
+                alt82=1;
+            }
+            else if ( (LA82_0==67) ) {
+                alt82=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("486:1: formalParameterDeclsRest : ( variableDeclaratorId ( ',' formalParameterDecls )? | '...' variableDeclaratorId );", 82, 0, input);
+
+                throw nvae;
+            }
+            switch (alt82) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:487:4: variableDeclaratorId ( ',' formalParameterDecls )?
+                    {
+                    pushFollow(FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest1675);
+                    variableDeclaratorId();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:487:25: ( ',' formalParameterDecls )?
+                    int alt81=2;
+                    int LA81_0 = input.LA(1);
+
+                    if ( (LA81_0==34) ) {
+                        alt81=1;
+                    }
+                    switch (alt81) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:487:26: ',' formalParameterDecls
+                            {
+                            match(input,34,FOLLOW_34_in_formalParameterDeclsRest1678); if (failed) return ;
+                            pushFollow(FOLLOW_formalParameterDecls_in_formalParameterDeclsRest1680);
+                            formalParameterDecls();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:488:6: '...' variableDeclaratorId
+                    {
+                    match(input,67,FOLLOW_67_in_formalParameterDeclsRest1689); if (failed) return ;
+                    pushFollow(FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest1691);
+                    variableDeclaratorId();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 58, formalParameterDeclsRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end formalParameterDeclsRest
+
+
+    // $ANTLR start methodBody
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:491:1: methodBody : block ;
+    public final void methodBody() throws RecognitionException {
+        int methodBody_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 59) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:492:4: ( block )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:492:4: block
+            {
+            pushFollow(FOLLOW_block_in_methodBody1703);
+            block();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 59, methodBody_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end methodBody
+
+
+    // $ANTLR start qualifiedName
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:495:1: qualifiedName : Identifier ( '.' Identifier )* ;
+    public final void qualifiedName() throws RecognitionException {
+        int qualifiedName_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 60) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:496:4: ( Identifier ( '.' Identifier )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:496:4: Identifier ( '.' Identifier )*
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_qualifiedName1714); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:496:15: ( '.' Identifier )*
+            loop83:
+            do {
+                int alt83=2;
+                int LA83_0 = input.LA(1);
+
+                if ( (LA83_0==28) ) {
+                    alt83=1;
+                }
+
+
+                switch (alt83) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:496:16: '.' Identifier
+            	    {
+            	    match(input,28,FOLLOW_28_in_qualifiedName1717); if (failed) return ;
+            	    match(input,Identifier,FOLLOW_Identifier_in_qualifiedName1719); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop83;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 60, qualifiedName_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end qualifiedName
+
+
+    // $ANTLR start literal
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:499:1: literal : ( integerLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | booleanLiteral | 'null' );
+    public final void literal() throws RecognitionException {
+        int literal_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 61) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:500:6: ( integerLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | booleanLiteral | 'null' )
+            int alt84=6;
+            switch ( input.LA(1) ) {
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+                {
+                alt84=1;
+                }
+                break;
+            case FloatingPointLiteral:
+                {
+                alt84=2;
+                }
+                break;
+            case CharacterLiteral:
+                {
+                alt84=3;
+                }
+                break;
+            case StringLiteral:
+                {
+                alt84=4;
+                }
+                break;
+            case 69:
+            case 70:
+                {
+                alt84=5;
+                }
+                break;
+            case 68:
+                {
+                alt84=6;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("499:1: literal : ( integerLiteral | FloatingPointLiteral | CharacterLiteral | StringLiteral | booleanLiteral | 'null' );", 84, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt84) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:500:6: integerLiteral
+                    {
+                    pushFollow(FOLLOW_integerLiteral_in_literal1736);
+                    integerLiteral();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:501:9: FloatingPointLiteral
+                    {
+                    match(input,FloatingPointLiteral,FOLLOW_FloatingPointLiteral_in_literal1746); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:502:9: CharacterLiteral
+                    {
+                    match(input,CharacterLiteral,FOLLOW_CharacterLiteral_in_literal1756); if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:503:9: StringLiteral
+                    {
+                    match(input,StringLiteral,FOLLOW_StringLiteral_in_literal1766); if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:504:9: booleanLiteral
+                    {
+                    pushFollow(FOLLOW_booleanLiteral_in_literal1776);
+                    booleanLiteral();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:505:9: 'null'
+                    {
+                    match(input,68,FOLLOW_68_in_literal1786); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 61, literal_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end literal
+
+
+    // $ANTLR start integerLiteral
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:508:1: integerLiteral : ( HexLiteral | OctalLiteral | DecimalLiteral );
+    public final void integerLiteral() throws RecognitionException {
+        int integerLiteral_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 62) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:509:9: ( HexLiteral | OctalLiteral | DecimalLiteral )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+            {
+            if ( (input.LA(1)>=HexLiteral && input.LA(1)<=DecimalLiteral) ) {
+                input.consume();
+                errorRecovery=false;failed=false;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_integerLiteral0);    throw mse;
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 62, integerLiteral_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end integerLiteral
+
+
+    // $ANTLR start booleanLiteral
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:514:1: booleanLiteral : ( 'true' | 'false' );
+    public final void booleanLiteral() throws RecognitionException {
+        int booleanLiteral_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 63) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:515:9: ( 'true' | 'false' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+            {
+            if ( (input.LA(1)>=69 && input.LA(1)<=70) ) {
+                input.consume();
+                errorRecovery=false;failed=false;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_booleanLiteral0);    throw mse;
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 63, booleanLiteral_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end booleanLiteral
+
+
+    // $ANTLR start annotations
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:521:1: annotations : ( annotation )+ ;
+    public final void annotations() throws RecognitionException {
+        int annotations_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 64) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:522:4: ( ( annotation )+ )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:522:4: ( annotation )+
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:522:4: ( annotation )+
+            int cnt85=0;
+            loop85:
+            do {
+                int alt85=2;
+                int LA85_0 = input.LA(1);
+
+                if ( (LA85_0==71) ) {
+                    int LA85_3 = input.LA(2);
+
+                    if ( (LA85_3==Identifier) ) {
+                        int LA85_22 = input.LA(3);
+
+                        if ( (synpred120()) ) {
+                            alt85=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt85) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: annotation
+            	    {
+            	    pushFollow(FOLLOW_annotation_in_annotations1867);
+            	    annotation();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt85 >= 1 ) break loop85;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(85, input);
+                        throw eee;
+                }
+                cnt85++;
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 64, annotations_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotations
+
+
+    // $ANTLR start annotation
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:525:1: annotation : '@' annotationName ( '(' ( elementValuePairs )? ')' )? ;
+    public final void annotation() throws RecognitionException {
+        int annotation_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 65) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:526:4: ( '@' annotationName ( '(' ( elementValuePairs )? ')' )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:526:4: '@' annotationName ( '(' ( elementValuePairs )? ')' )?
+            {
+            match(input,71,FOLLOW_71_in_annotation1879); if (failed) return ;
+            pushFollow(FOLLOW_annotationName_in_annotation1881);
+            annotationName();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:526:23: ( '(' ( elementValuePairs )? ')' )?
+            int alt87=2;
+            int LA87_0 = input.LA(1);
+
+            if ( (LA87_0==65) ) {
+                alt87=1;
+            }
+            switch (alt87) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:526:24: '(' ( elementValuePairs )? ')'
+                    {
+                    match(input,65,FOLLOW_65_in_annotation1884); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:526:28: ( elementValuePairs )?
+                    int alt86=2;
+                    int LA86_0 = input.LA(1);
+
+                    if ( (LA86_0==Identifier||(LA86_0>=FloatingPointLiteral && LA86_0<=DecimalLiteral)||LA86_0==33||LA86_0==37||LA86_0==40||(LA86_0>=55 && LA86_0<=62)||(LA86_0>=64 && LA86_0<=65)||(LA86_0>=68 && LA86_0<=71)||(LA86_0>=104 && LA86_0<=105)||(LA86_0>=108 && LA86_0<=113)) ) {
+                        alt86=1;
+                    }
+                    switch (alt86) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: elementValuePairs
+                            {
+                            pushFollow(FOLLOW_elementValuePairs_in_annotation1886);
+                            elementValuePairs();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,66,FOLLOW_66_in_annotation1889); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 65, annotation_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotation
+
+
+    // $ANTLR start annotationName
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:529:1: annotationName : Identifier ( '.' Identifier )* ;
+    public final void annotationName() throws RecognitionException {
+        int annotationName_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 66) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:530:4: ( Identifier ( '.' Identifier )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:530:4: Identifier ( '.' Identifier )*
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_annotationName1903); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:530:15: ( '.' Identifier )*
+            loop88:
+            do {
+                int alt88=2;
+                int LA88_0 = input.LA(1);
+
+                if ( (LA88_0==28) ) {
+                    alt88=1;
+                }
+
+
+                switch (alt88) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:530:16: '.' Identifier
+            	    {
+            	    match(input,28,FOLLOW_28_in_annotationName1906); if (failed) return ;
+            	    match(input,Identifier,FOLLOW_Identifier_in_annotationName1908); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop88;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 66, annotationName_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationName
+
+
+    // $ANTLR start elementValuePairs
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:533:1: elementValuePairs : elementValuePair ( ',' elementValuePair )* ;
+    public final void elementValuePairs() throws RecognitionException {
+        int elementValuePairs_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 67) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:534:4: ( elementValuePair ( ',' elementValuePair )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:534:4: elementValuePair ( ',' elementValuePair )*
+            {
+            pushFollow(FOLLOW_elementValuePair_in_elementValuePairs1922);
+            elementValuePair();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:534:21: ( ',' elementValuePair )*
+            loop89:
+            do {
+                int alt89=2;
+                int LA89_0 = input.LA(1);
+
+                if ( (LA89_0==34) ) {
+                    alt89=1;
+                }
+
+
+                switch (alt89) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:534:22: ',' elementValuePair
+            	    {
+            	    match(input,34,FOLLOW_34_in_elementValuePairs1925); if (failed) return ;
+            	    pushFollow(FOLLOW_elementValuePair_in_elementValuePairs1927);
+            	    elementValuePair();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop89;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 67, elementValuePairs_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end elementValuePairs
+
+
+    // $ANTLR start elementValuePair
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:537:1: elementValuePair : ( Identifier '=' )? elementValue ;
+    public final void elementValuePair() throws RecognitionException {
+        int elementValuePair_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 68) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:538:4: ( ( Identifier '=' )? elementValue )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:538:4: ( Identifier '=' )? elementValue
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:538:4: ( Identifier '=' )?
+            int alt90=2;
+            int LA90_0 = input.LA(1);
+
+            if ( (LA90_0==Identifier) ) {
+                int LA90_1 = input.LA(2);
+
+                if ( (LA90_1==44) ) {
+                    alt90=1;
+                }
+            }
+            switch (alt90) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:538:5: Identifier '='
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_elementValuePair1942); if (failed) return ;
+                    match(input,44,FOLLOW_44_in_elementValuePair1944); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            pushFollow(FOLLOW_elementValue_in_elementValuePair1948);
+            elementValue();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 68, elementValuePair_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end elementValuePair
+
+
+    // $ANTLR start elementValue
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:541:1: elementValue : ( conditionalExpression | annotation | elementValueArrayInitializer );
+    public final void elementValue() throws RecognitionException {
+        int elementValue_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 69) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:542:4: ( conditionalExpression | annotation | elementValueArrayInitializer )
+            int alt91=3;
+            switch ( input.LA(1) ) {
+            case Identifier:
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 33:
+            case 40:
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+            case 64:
+            case 65:
+            case 68:
+            case 69:
+            case 70:
+            case 104:
+            case 105:
+            case 108:
+            case 109:
+            case 110:
+            case 111:
+            case 112:
+            case 113:
+                {
+                alt91=1;
+                }
+                break;
+            case 71:
+                {
+                alt91=2;
+                }
+                break;
+            case 37:
+                {
+                alt91=3;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("541:1: elementValue : ( conditionalExpression | annotation | elementValueArrayInitializer );", 91, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt91) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:542:4: conditionalExpression
+                    {
+                    pushFollow(FOLLOW_conditionalExpression_in_elementValue1960);
+                    conditionalExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:543:6: annotation
+                    {
+                    pushFollow(FOLLOW_annotation_in_elementValue1967);
+                    annotation();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:544:6: elementValueArrayInitializer
+                    {
+                    pushFollow(FOLLOW_elementValueArrayInitializer_in_elementValue1974);
+                    elementValueArrayInitializer();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 69, elementValue_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end elementValue
+
+
+    // $ANTLR start elementValueArrayInitializer
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:547:1: elementValueArrayInitializer : '{' ( elementValue ( ',' elementValue )* )? '}' ;
+    public final void elementValueArrayInitializer() throws RecognitionException {
+        int elementValueArrayInitializer_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 70) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:548:4: ( '{' ( elementValue ( ',' elementValue )* )? '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:548:4: '{' ( elementValue ( ',' elementValue )* )? '}'
+            {
+            match(input,37,FOLLOW_37_in_elementValueArrayInitializer1986); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:548:8: ( elementValue ( ',' elementValue )* )?
+            int alt93=2;
+            int LA93_0 = input.LA(1);
+
+            if ( (LA93_0==Identifier||(LA93_0>=FloatingPointLiteral && LA93_0<=DecimalLiteral)||LA93_0==33||LA93_0==37||LA93_0==40||(LA93_0>=55 && LA93_0<=62)||(LA93_0>=64 && LA93_0<=65)||(LA93_0>=68 && LA93_0<=71)||(LA93_0>=104 && LA93_0<=105)||(LA93_0>=108 && LA93_0<=113)) ) {
+                alt93=1;
+            }
+            switch (alt93) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:548:9: elementValue ( ',' elementValue )*
+                    {
+                    pushFollow(FOLLOW_elementValue_in_elementValueArrayInitializer1989);
+                    elementValue();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:548:22: ( ',' elementValue )*
+                    loop92:
+                    do {
+                        int alt92=2;
+                        int LA92_0 = input.LA(1);
+
+                        if ( (LA92_0==34) ) {
+                            alt92=1;
+                        }
+
+
+                        switch (alt92) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:548:23: ',' elementValue
+                    	    {
+                    	    match(input,34,FOLLOW_34_in_elementValueArrayInitializer1992); if (failed) return ;
+                    	    pushFollow(FOLLOW_elementValue_in_elementValueArrayInitializer1994);
+                    	    elementValue();
+                    	    _fsp--;
+                    	    if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop92;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            match(input,38,FOLLOW_38_in_elementValueArrayInitializer2001); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 70, elementValueArrayInitializer_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end elementValueArrayInitializer
+
+
+    // $ANTLR start annotationTypeDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:551:1: annotationTypeDeclaration : '@' 'interface' Identifier annotationTypeBody ;
+    public final void annotationTypeDeclaration() throws RecognitionException {
+        int annotationTypeDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 71) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:552:4: ( '@' 'interface' Identifier annotationTypeBody )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:552:4: '@' 'interface' Identifier annotationTypeBody
+            {
+            match(input,71,FOLLOW_71_in_annotationTypeDeclaration2013); if (failed) return ;
+            match(input,39,FOLLOW_39_in_annotationTypeDeclaration2015); if (failed) return ;
+            match(input,Identifier,FOLLOW_Identifier_in_annotationTypeDeclaration2017); if (failed) return ;
+            pushFollow(FOLLOW_annotationTypeBody_in_annotationTypeDeclaration2019);
+            annotationTypeBody();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 71, annotationTypeDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationTypeDeclaration
+
+
+    // $ANTLR start annotationTypeBody
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:555:1: annotationTypeBody : '{' ( annotationTypeElementDeclarations )? '}' ;
+    public final void annotationTypeBody() throws RecognitionException {
+        int annotationTypeBody_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 72) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:556:4: ( '{' ( annotationTypeElementDeclarations )? '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:556:4: '{' ( annotationTypeElementDeclarations )? '}'
+            {
+            match(input,37,FOLLOW_37_in_annotationTypeBody2031); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:556:8: ( annotationTypeElementDeclarations )?
+            int alt94=2;
+            int LA94_0 = input.LA(1);
+
+            if ( ((LA94_0>=Identifier && LA94_0<=ENUM)||LA94_0==27||LA94_0==30||LA94_0==39||(LA94_0>=45 && LA94_0<=62)||LA94_0==71) ) {
+                alt94=1;
+            }
+            switch (alt94) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:556:9: annotationTypeElementDeclarations
+                    {
+                    pushFollow(FOLLOW_annotationTypeElementDeclarations_in_annotationTypeBody2034);
+                    annotationTypeElementDeclarations();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,38,FOLLOW_38_in_annotationTypeBody2038); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 72, annotationTypeBody_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationTypeBody
+
+
+    // $ANTLR start annotationTypeElementDeclarations
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:559:1: annotationTypeElementDeclarations : ( annotationTypeElementDeclaration ) ( annotationTypeElementDeclaration )* ;
+    public final void annotationTypeElementDeclarations() throws RecognitionException {
+        int annotationTypeElementDeclarations_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 73) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:560:4: ( ( annotationTypeElementDeclaration ) ( annotationTypeElementDeclaration )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:560:4: ( annotationTypeElementDeclaration ) ( annotationTypeElementDeclaration )*
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:560:4: ( annotationTypeElementDeclaration )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:560:5: annotationTypeElementDeclaration
+            {
+            pushFollow(FOLLOW_annotationTypeElementDeclaration_in_annotationTypeElementDeclarations2051);
+            annotationTypeElementDeclaration();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:560:39: ( annotationTypeElementDeclaration )*
+            loop95:
+            do {
+                int alt95=2;
+                int LA95_0 = input.LA(1);
+
+                if ( ((LA95_0>=Identifier && LA95_0<=ENUM)||LA95_0==27||LA95_0==30||LA95_0==39||(LA95_0>=45 && LA95_0<=62)||LA95_0==71) ) {
+                    alt95=1;
+                }
+
+
+                switch (alt95) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:560:40: annotationTypeElementDeclaration
+            	    {
+            	    pushFollow(FOLLOW_annotationTypeElementDeclaration_in_annotationTypeElementDeclarations2055);
+            	    annotationTypeElementDeclaration();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop95;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 73, annotationTypeElementDeclarations_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationTypeElementDeclarations
+
+
+    // $ANTLR start annotationTypeElementDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:563:1: annotationTypeElementDeclaration : ( modifier )* annotationTypeElementRest ;
+    public final void annotationTypeElementDeclaration() throws RecognitionException {
+        int annotationTypeElementDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 74) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:564:4: ( ( modifier )* annotationTypeElementRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:564:4: ( modifier )* annotationTypeElementRest
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:564:4: ( modifier )*
+            loop96:
+            do {
+                int alt96=2;
+                int LA96_0 = input.LA(1);
+
+                if ( (LA96_0==71) ) {
+                    int LA96_6 = input.LA(2);
+
+                    if ( (LA96_6==Identifier) ) {
+                        alt96=1;
+                    }
+
+
+                }
+                else if ( (LA96_0==27||(LA96_0>=45 && LA96_0<=54)) ) {
+                    alt96=1;
+                }
+
+
+                switch (alt96) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:564:5: modifier
+            	    {
+            	    pushFollow(FOLLOW_modifier_in_annotationTypeElementDeclaration2070);
+            	    modifier();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop96;
+                }
+            } while (true);
+
+            pushFollow(FOLLOW_annotationTypeElementRest_in_annotationTypeElementDeclaration2074);
+            annotationTypeElementRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 74, annotationTypeElementDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationTypeElementDeclaration
+
+
+    // $ANTLR start annotationTypeElementRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:567:1: annotationTypeElementRest : ( type annotationMethodOrConstantRest ';' | classDeclaration ( ';' )? | interfaceDeclaration ( ';' )? | enumDeclaration ( ';' )? | annotationTypeDeclaration ( ';' )? );
+    public final void annotationTypeElementRest() throws RecognitionException {
+        int annotationTypeElementRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 75) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:568:4: ( type annotationMethodOrConstantRest ';' | classDeclaration ( ';' )? | interfaceDeclaration ( ';' )? | enumDeclaration ( ';' )? | annotationTypeDeclaration ( ';' )? )
+            int alt101=5;
+            switch ( input.LA(1) ) {
+            case Identifier:
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+                {
+                alt101=1;
+                }
+                break;
+            case 30:
+                {
+                alt101=2;
+                }
+                break;
+            case ENUM:
+                {
+                int LA101_4 = input.LA(2);
+
+                if ( (LA101_4==Identifier) ) {
+                    int LA101_7 = input.LA(3);
+
+                    if ( (synpred135()) ) {
+                        alt101=2;
+                    }
+                    else if ( (synpred139()) ) {
+                        alt101=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("567:1: annotationTypeElementRest : ( type annotationMethodOrConstantRest ';' | classDeclaration ( ';' )? | interfaceDeclaration ( ';' )? | enumDeclaration ( ';' )? | annotationTypeDeclaration ( ';' )? );", 101, 7, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("567:1: annotationTypeElementRest : ( type annotationMethodOrConstantRest ';' | classDeclaration ( ';' )? | interfaceDeclaration ( ';' )? | enumDeclaration ( ';' )? | annotationTypeDeclaration ( ';' )? );", 101, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 39:
+                {
+                alt101=3;
+                }
+                break;
+            case 71:
+                {
+                int LA101_6 = input.LA(2);
+
+                if ( (LA101_6==39) ) {
+                    int LA101_8 = input.LA(3);
+
+                    if ( (synpred137()) ) {
+                        alt101=3;
+                    }
+                    else if ( (true) ) {
+                        alt101=5;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("567:1: annotationTypeElementRest : ( type annotationMethodOrConstantRest ';' | classDeclaration ( ';' )? | interfaceDeclaration ( ';' )? | enumDeclaration ( ';' )? | annotationTypeDeclaration ( ';' )? );", 101, 8, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("567:1: annotationTypeElementRest : ( type annotationMethodOrConstantRest ';' | classDeclaration ( ';' )? | interfaceDeclaration ( ';' )? | enumDeclaration ( ';' )? | annotationTypeDeclaration ( ';' )? );", 101, 6, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("567:1: annotationTypeElementRest : ( type annotationMethodOrConstantRest ';' | classDeclaration ( ';' )? | interfaceDeclaration ( ';' )? | enumDeclaration ( ';' )? | annotationTypeDeclaration ( ';' )? );", 101, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt101) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:568:4: type annotationMethodOrConstantRest ';'
+                    {
+                    pushFollow(FOLLOW_type_in_annotationTypeElementRest2086);
+                    type();
+                    _fsp--;
+                    if (failed) return ;
+                    pushFollow(FOLLOW_annotationMethodOrConstantRest_in_annotationTypeElementRest2088);
+                    annotationMethodOrConstantRest();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,25,FOLLOW_25_in_annotationTypeElementRest2090); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:569:6: classDeclaration ( ';' )?
+                    {
+                    pushFollow(FOLLOW_classDeclaration_in_annotationTypeElementRest2097);
+                    classDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:569:23: ( ';' )?
+                    int alt97=2;
+                    int LA97_0 = input.LA(1);
+
+                    if ( (LA97_0==25) ) {
+                        alt97=1;
+                    }
+                    switch (alt97) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ';'
+                            {
+                            match(input,25,FOLLOW_25_in_annotationTypeElementRest2099); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:570:6: interfaceDeclaration ( ';' )?
+                    {
+                    pushFollow(FOLLOW_interfaceDeclaration_in_annotationTypeElementRest2107);
+                    interfaceDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:570:27: ( ';' )?
+                    int alt98=2;
+                    int LA98_0 = input.LA(1);
+
+                    if ( (LA98_0==25) ) {
+                        alt98=1;
+                    }
+                    switch (alt98) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ';'
+                            {
+                            match(input,25,FOLLOW_25_in_annotationTypeElementRest2109); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:571:6: enumDeclaration ( ';' )?
+                    {
+                    pushFollow(FOLLOW_enumDeclaration_in_annotationTypeElementRest2117);
+                    enumDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:571:22: ( ';' )?
+                    int alt99=2;
+                    int LA99_0 = input.LA(1);
+
+                    if ( (LA99_0==25) ) {
+                        alt99=1;
+                    }
+                    switch (alt99) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ';'
+                            {
+                            match(input,25,FOLLOW_25_in_annotationTypeElementRest2119); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:572:6: annotationTypeDeclaration ( ';' )?
+                    {
+                    pushFollow(FOLLOW_annotationTypeDeclaration_in_annotationTypeElementRest2127);
+                    annotationTypeDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:572:32: ( ';' )?
+                    int alt100=2;
+                    int LA100_0 = input.LA(1);
+
+                    if ( (LA100_0==25) ) {
+                        alt100=1;
+                    }
+                    switch (alt100) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ';'
+                            {
+                            match(input,25,FOLLOW_25_in_annotationTypeElementRest2129); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 75, annotationTypeElementRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationTypeElementRest
+
+
+    // $ANTLR start annotationMethodOrConstantRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:575:1: annotationMethodOrConstantRest : ( annotationMethodRest | annotationConstantRest );
+    public final void annotationMethodOrConstantRest() throws RecognitionException {
+        int annotationMethodOrConstantRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 76) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:576:4: ( annotationMethodRest | annotationConstantRest )
+            int alt102=2;
+            int LA102_0 = input.LA(1);
+
+            if ( (LA102_0==Identifier) ) {
+                int LA102_1 = input.LA(2);
+
+                if ( (LA102_1==65) ) {
+                    alt102=1;
+                }
+                else if ( (LA102_1==25||LA102_1==34||LA102_1==41||LA102_1==44) ) {
+                    alt102=2;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("575:1: annotationMethodOrConstantRest : ( annotationMethodRest | annotationConstantRest );", 102, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("575:1: annotationMethodOrConstantRest : ( annotationMethodRest | annotationConstantRest );", 102, 0, input);
+
+                throw nvae;
+            }
+            switch (alt102) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:576:4: annotationMethodRest
+                    {
+                    pushFollow(FOLLOW_annotationMethodRest_in_annotationMethodOrConstantRest2142);
+                    annotationMethodRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:577:6: annotationConstantRest
+                    {
+                    pushFollow(FOLLOW_annotationConstantRest_in_annotationMethodOrConstantRest2149);
+                    annotationConstantRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 76, annotationMethodOrConstantRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationMethodOrConstantRest
+
+
+    // $ANTLR start annotationMethodRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:580:1: annotationMethodRest : Identifier '(' ')' ( defaultValue )? ;
+    public final void annotationMethodRest() throws RecognitionException {
+        int annotationMethodRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 77) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:581:5: ( Identifier '(' ')' ( defaultValue )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:581:5: Identifier '(' ')' ( defaultValue )?
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_annotationMethodRest2162); if (failed) return ;
+            match(input,65,FOLLOW_65_in_annotationMethodRest2164); if (failed) return ;
+            match(input,66,FOLLOW_66_in_annotationMethodRest2166); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:581:24: ( defaultValue )?
+            int alt103=2;
+            int LA103_0 = input.LA(1);
+
+            if ( (LA103_0==72) ) {
+                alt103=1;
+            }
+            switch (alt103) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:581:25: defaultValue
+                    {
+                    pushFollow(FOLLOW_defaultValue_in_annotationMethodRest2169);
+                    defaultValue();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 77, annotationMethodRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationMethodRest
+
+
+    // $ANTLR start annotationConstantRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:584:1: annotationConstantRest : variableDeclarators ;
+    public final void annotationConstantRest() throws RecognitionException {
+        int annotationConstantRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 78) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:585:5: ( variableDeclarators )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:585:5: variableDeclarators
+            {
+            pushFollow(FOLLOW_variableDeclarators_in_annotationConstantRest2186);
+            variableDeclarators();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 78, annotationConstantRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end annotationConstantRest
+
+
+    // $ANTLR start defaultValue
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:588:1: defaultValue : 'default' elementValue ;
+    public final void defaultValue() throws RecognitionException {
+        int defaultValue_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 79) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:589:5: ( 'default' elementValue )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:589:5: 'default' elementValue
+            {
+            match(input,72,FOLLOW_72_in_defaultValue2201); if (failed) return ;
+            pushFollow(FOLLOW_elementValue_in_defaultValue2203);
+            elementValue();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 79, defaultValue_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end defaultValue
+
+
+    // $ANTLR start block
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:594:1: block : '{' ( blockStatement )* '}' ;
+    public final void block() throws RecognitionException {
+        int block_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 80) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:595:4: ( '{' ( blockStatement )* '}' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:595:4: '{' ( blockStatement )* '}'
+            {
+            match(input,37,FOLLOW_37_in_block2217); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:595:8: ( blockStatement )*
+            loop104:
+            do {
+                int alt104=2;
+                int LA104_0 = input.LA(1);
+
+                if ( ((LA104_0>=Identifier && LA104_0<=DecimalLiteral)||LA104_0==25||LA104_0==27||LA104_0==30||LA104_0==33||LA104_0==37||(LA104_0>=39 && LA104_0<=40)||(LA104_0>=45 && LA104_0<=62)||(LA104_0>=64 && LA104_0<=65)||(LA104_0>=68 && LA104_0<=71)||LA104_0==73||LA104_0==75||(LA104_0>=77 && LA104_0<=80)||(LA104_0>=82 && LA104_0<=86)||(LA104_0>=104 && LA104_0<=105)||(LA104_0>=108 && LA104_0<=113)) ) {
+                    alt104=1;
+                }
+
+
+                switch (alt104) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: blockStatement
+            	    {
+            	    pushFollow(FOLLOW_blockStatement_in_block2219);
+            	    blockStatement();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop104;
+                }
+            } while (true);
+
+            match(input,38,FOLLOW_38_in_block2222); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 80, block_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end block
+
+
+    // $ANTLR start blockStatement
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );
+    public final void blockStatement() throws RecognitionException {
+        int blockStatement_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 81) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:599:4: ( localVariableDeclaration | classOrInterfaceDeclaration | statement )
+            int alt105=3;
+            switch ( input.LA(1) ) {
+            case 49:
+                {
+                switch ( input.LA(2) ) {
+                case ENUM:
+                case 27:
+                case 30:
+                case 39:
+                case 45:
+                case 46:
+                case 47:
+                case 48:
+                case 50:
+                case 51:
+                case 52:
+                case 53:
+                case 54:
+                    {
+                    alt105=2;
+                    }
+                    break;
+                case 71:
+                    {
+                    int LA105_52 = input.LA(3);
+
+                    if ( (synpred144()) ) {
+                        alt105=1;
+                    }
+                    else if ( (synpred145()) ) {
+                        alt105=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 52, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 49:
+                    {
+                    int LA105_58 = input.LA(3);
+
+                    if ( (synpred144()) ) {
+                        alt105=1;
+                    }
+                    else if ( (synpred145()) ) {
+                        alt105=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 58, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                case 55:
+                case 56:
+                case 57:
+                case 58:
+                case 59:
+                case 60:
+                case 61:
+                case 62:
+                    {
+                    alt105=1;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 1, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case 71:
+                {
+                int LA105_2 = input.LA(2);
+
+                if ( (LA105_2==39) ) {
+                    alt105=2;
+                }
+                else if ( (LA105_2==Identifier) ) {
+                    int LA105_67 = input.LA(3);
+
+                    if ( (synpred144()) ) {
+                        alt105=1;
+                    }
+                    else if ( (synpred145()) ) {
+                        alt105=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 67, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case Identifier:
+                {
+                switch ( input.LA(2) ) {
+                case 25:
+                case 29:
+                case 35:
+                case 36:
+                case 44:
+                case 63:
+                case 65:
+                case 74:
+                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:
+                    {
+                    alt105=3;
+                    }
+                    break;
+                case 28:
+                    {
+                    int LA105_69 = input.LA(3);
+
+                    if ( (synpred144()) ) {
+                        alt105=1;
+                    }
+                    else if ( (true) ) {
+                        alt105=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 69, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 41:
+                    {
+                    int LA105_70 = input.LA(3);
+
+                    if ( (synpred144()) ) {
+                        alt105=1;
+                    }
+                    else if ( (true) ) {
+                        alt105=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 70, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 33:
+                    {
+                    int LA105_75 = input.LA(3);
+
+                    if ( (synpred144()) ) {
+                        alt105=1;
+                    }
+                    else if ( (true) ) {
+                        alt105=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 75, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                    {
+                    alt105=1;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 3, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+                {
+                switch ( input.LA(2) ) {
+                case 41:
+                    {
+                    int LA105_96 = input.LA(3);
+
+                    if ( (synpred144()) ) {
+                        alt105=1;
+                    }
+                    else if ( (true) ) {
+                        alt105=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 96, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 28:
+                    {
+                    alt105=3;
+                    }
+                    break;
+                case Identifier:
+                    {
+                    alt105=1;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 4, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case ENUM:
+            case 27:
+            case 30:
+            case 39:
+            case 45:
+            case 46:
+            case 47:
+            case 48:
+            case 50:
+            case 52:
+            case 53:
+            case 54:
+                {
+                alt105=2;
+                }
+                break;
+            case 51:
+                {
+                int LA105_11 = input.LA(2);
+
+                if ( (LA105_11==ENUM||LA105_11==27||LA105_11==30||LA105_11==39||(LA105_11>=45 && LA105_11<=54)||LA105_11==71) ) {
+                    alt105=2;
+                }
+                else if ( (LA105_11==65) ) {
+                    alt105=3;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 11, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 25:
+            case 33:
+            case 37:
+            case 40:
+            case 64:
+            case 65:
+            case 68:
+            case 69:
+            case 70:
+            case 73:
+            case 75:
+            case 77:
+            case 78:
+            case 79:
+            case 80:
+            case 82:
+            case 83:
+            case 84:
+            case 85:
+            case 86:
+            case 104:
+            case 105:
+            case 108:
+            case 109:
+            case 110:
+            case 111:
+            case 112:
+            case 113:
+                {
+                alt105=3;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("598:1: blockStatement : ( localVariableDeclaration | classOrInterfaceDeclaration | statement );", 105, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt105) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:599:4: localVariableDeclaration
+                    {
+                    pushFollow(FOLLOW_localVariableDeclaration_in_blockStatement2234);
+                    localVariableDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:600:4: classOrInterfaceDeclaration
+                    {
+                    pushFollow(FOLLOW_classOrInterfaceDeclaration_in_blockStatement2239);
+                    classOrInterfaceDeclaration();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:601:8: statement
+                    {
+                    pushFollow(FOLLOW_statement_in_blockStatement2248);
+                    statement();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 81, blockStatement_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end blockStatement
+
+
+    // $ANTLR start localVariableDeclaration
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:604:1: localVariableDeclaration : ( variableModifier )* type variableDeclarators ';' ;
+    public final void localVariableDeclaration() throws RecognitionException {
+        int localVariableDeclaration_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 82) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:605:4: ( ( variableModifier )* type variableDeclarators ';' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:605:4: ( variableModifier )* type variableDeclarators ';'
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:605:4: ( variableModifier )*
+            loop106:
+            do {
+                int alt106=2;
+                int LA106_0 = input.LA(1);
+
+                if ( (LA106_0==49||LA106_0==71) ) {
+                    alt106=1;
+                }
+
+
+                switch (alt106) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: variableModifier
+            	    {
+            	    pushFollow(FOLLOW_variableModifier_in_localVariableDeclaration2260);
+            	    variableModifier();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop106;
+                }
+            } while (true);
+
+            pushFollow(FOLLOW_type_in_localVariableDeclaration2263);
+            type();
+            _fsp--;
+            if (failed) return ;
+            pushFollow(FOLLOW_variableDeclarators_in_localVariableDeclaration2265);
+            variableDeclarators();
+            _fsp--;
+            if (failed) return ;
+            match(input,25,FOLLOW_25_in_localVariableDeclaration2267); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 82, localVariableDeclaration_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end localVariableDeclaration
+
+
+    // $ANTLR start statement
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:608:1: statement : ( block | 'assert' expression ( ':' expression )? ';' | 'if' parExpression statement ( options {k=1; } : 'else' statement )? | 'for' '(' forControl ')' statement | 'while' parExpression statement | 'do' statement 'while' parExpression ';' | 'try' block ( catches 'finally' block | catches | 'finally' block ) | 'switch' parExpression '{' switchBlockStatementGroups '}' | 'synchronized' parExpression block | 'return' ( expression )? ';' | 'throw' expression ';' | 'break' ( Identifier )? ';' | 'continue' ( Identifier )? ';' | ';' | statementExpression ';' | Identifier ':' statement );
+    public final void statement() throws RecognitionException {
+        int statement_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 83) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:609:4: ( block | 'assert' expression ( ':' expression )? ';' | 'if' parExpression statement ( options {k=1; } : 'else' statement )? | 'for' '(' forControl ')' statement | 'while' parExpression statement | 'do' statement 'while' parExpression ';' | 'try' block ( catches 'finally' block | catches | 'finally' block ) | 'switch' parExpression '{' switchBlockStatementGroups '}' | 'synchronized' parExpression block | 'return' ( expression )? ';' | 'throw' expression ';' | 'break' ( Identifier )? ';' | 'continue' ( Identifier )? ';' | ';' | statementExpression ';' | Identifier ':' statement )
+            int alt113=16;
+            switch ( input.LA(1) ) {
+            case 37:
+                {
+                alt113=1;
+                }
+                break;
+            case 73:
+                {
+                alt113=2;
+                }
+                break;
+            case 75:
+                {
+                alt113=3;
+                }
+                break;
+            case 77:
+                {
+                alt113=4;
+                }
+                break;
+            case 78:
+                {
+                alt113=5;
+                }
+                break;
+            case 79:
+                {
+                alt113=6;
+                }
+                break;
+            case 80:
+                {
+                alt113=7;
+                }
+                break;
+            case 82:
+                {
+                alt113=8;
+                }
+                break;
+            case 51:
+                {
+                alt113=9;
+                }
+                break;
+            case 83:
+                {
+                alt113=10;
+                }
+                break;
+            case 84:
+                {
+                alt113=11;
+                }
+                break;
+            case 85:
+                {
+                alt113=12;
+                }
+                break;
+            case 86:
+                {
+                alt113=13;
+                }
+                break;
+            case 25:
+                {
+                alt113=14;
+                }
+                break;
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 33:
+            case 40:
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+            case 64:
+            case 65:
+            case 68:
+            case 69:
+            case 70:
+            case 104:
+            case 105:
+            case 108:
+            case 109:
+            case 110:
+            case 111:
+            case 112:
+            case 113:
+                {
+                alt113=15;
+                }
+                break;
+            case Identifier:
+                {
+                int LA113_32 = input.LA(2);
+
+                if ( (LA113_32==74) ) {
+                    alt113=16;
+                }
+                else if ( (LA113_32==25||(LA113_32>=28 && LA113_32<=29)||LA113_32==33||(LA113_32>=35 && LA113_32<=36)||LA113_32==41||LA113_32==44||LA113_32==63||LA113_32==65||(LA113_32>=89 && LA113_32<=109)) ) {
+                    alt113=15;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("608:1: statement : ( block | 'assert' expression ( ':' expression )? ';' | 'if' parExpression statement ( options {k=1; } : 'else' statement )? | 'for' '(' forControl ')' statement | 'while' parExpression statement | 'do' statement 'while' parExpression ';' | 'try' block ( catches 'finally' block | catches | 'finally' block ) | 'switch' parExpression '{' switchBlockStatementGroups '}' | 'synchronized' parExpression block | 'return' ( expression )? ';' | 'throw' expression ';' | 'break' ( Identifier )? ';' | 'continue' ( Identifier )? ';' | ';' | statementExpression ';' | Identifier ':' statement );", 113, 32, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("608:1: statement : ( block | 'assert' expression ( ':' expression )? ';' | 'if' parExpression statement ( options {k=1; } : 'else' statement )? | 'for' '(' forControl ')' statement | 'while' parExpression statement | 'do' statement 'while' parExpression ';' | 'try' block ( catches 'finally' block | catches | 'finally' block ) | 'switch' parExpression '{' switchBlockStatementGroups '}' | 'synchronized' parExpression block | 'return' ( expression )? ';' | 'throw' expression ';' | 'break' ( Identifier )? ';' | 'continue' ( Identifier )? ';' | ';' | statementExpression ';' | Identifier ':' statement );", 113, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt113) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:609:4: block
+                    {
+                    pushFollow(FOLLOW_block_in_statement2279);
+                    block();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:610:7: 'assert' expression ( ':' expression )? ';'
+                    {
+                    match(input,73,FOLLOW_73_in_statement2287); if (failed) return ;
+                    pushFollow(FOLLOW_expression_in_statement2289);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:610:27: ( ':' expression )?
+                    int alt107=2;
+                    int LA107_0 = input.LA(1);
+
+                    if ( (LA107_0==74) ) {
+                        alt107=1;
+                    }
+                    switch (alt107) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:610:28: ':' expression
+                            {
+                            match(input,74,FOLLOW_74_in_statement2292); if (failed) return ;
+                            pushFollow(FOLLOW_expression_in_statement2294);
+                            expression();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,25,FOLLOW_25_in_statement2298); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:611:7: 'if' parExpression statement ( options {k=1; } : 'else' statement )?
+                    {
+                    match(input,75,FOLLOW_75_in_statement2306); if (failed) return ;
+                    pushFollow(FOLLOW_parExpression_in_statement2308);
+                    parExpression();
+                    _fsp--;
+                    if (failed) return ;
+                    pushFollow(FOLLOW_statement_in_statement2310);
+                    statement();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:611:36: ( options {k=1; } : 'else' statement )?
+                    int alt108=2;
+                    int LA108_0 = input.LA(1);
+
+                    if ( (LA108_0==76) ) {
+                        int LA108_1 = input.LA(2);
+
+                        if ( (synpred150()) ) {
+                            alt108=1;
+                        }
+                    }
+                    switch (alt108) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:611:52: 'else' statement
+                            {
+                            match(input,76,FOLLOW_76_in_statement2320); if (failed) return ;
+                            pushFollow(FOLLOW_statement_in_statement2322);
+                            statement();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:612:7: 'for' '(' forControl ')' statement
+                    {
+                    match(input,77,FOLLOW_77_in_statement2332); if (failed) return ;
+                    match(input,65,FOLLOW_65_in_statement2334); if (failed) return ;
+                    pushFollow(FOLLOW_forControl_in_statement2336);
+                    forControl();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,66,FOLLOW_66_in_statement2338); if (failed) return ;
+                    pushFollow(FOLLOW_statement_in_statement2340);
+                    statement();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:613:7: 'while' parExpression statement
+                    {
+                    match(input,78,FOLLOW_78_in_statement2348); if (failed) return ;
+                    pushFollow(FOLLOW_parExpression_in_statement2350);
+                    parExpression();
+                    _fsp--;
+                    if (failed) return ;
+                    pushFollow(FOLLOW_statement_in_statement2352);
+                    statement();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:614:7: 'do' statement 'while' parExpression ';'
+                    {
+                    match(input,79,FOLLOW_79_in_statement2360); if (failed) return ;
+                    pushFollow(FOLLOW_statement_in_statement2362);
+                    statement();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,78,FOLLOW_78_in_statement2364); if (failed) return ;
+                    pushFollow(FOLLOW_parExpression_in_statement2366);
+                    parExpression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,25,FOLLOW_25_in_statement2368); if (failed) return ;
+
+                    }
+                    break;
+                case 7 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:615:7: 'try' block ( catches 'finally' block | catches | 'finally' block )
+                    {
+                    match(input,80,FOLLOW_80_in_statement2376); if (failed) return ;
+                    pushFollow(FOLLOW_block_in_statement2378);
+                    block();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:616:7: ( catches 'finally' block | catches | 'finally' block )
+                    int alt109=3;
+                    int LA109_0 = input.LA(1);
+
+                    if ( (LA109_0==87) ) {
+                        int LA109_1 = input.LA(2);
+
+                        if ( (LA109_1==65) ) {
+                            int LA109_3 = input.LA(3);
+
+                            if ( (synpred155()) ) {
+                                alt109=1;
+                            }
+                            else if ( (synpred156()) ) {
+                                alt109=2;
+                            }
+                            else {
+                                if (backtracking>0) {failed=true; return ;}
+                                NoViableAltException nvae =
+                                    new NoViableAltException("616:7: ( catches 'finally' block | catches | 'finally' block )", 109, 3, input);
+
+                                throw nvae;
+                            }
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("616:7: ( catches 'finally' block | catches | 'finally' block )", 109, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else if ( (LA109_0==81) ) {
+                        alt109=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("616:7: ( catches 'finally' block | catches | 'finally' block )", 109, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt109) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:616:9: catches 'finally' block
+                            {
+                            pushFollow(FOLLOW_catches_in_statement2388);
+                            catches();
+                            _fsp--;
+                            if (failed) return ;
+                            match(input,81,FOLLOW_81_in_statement2390); if (failed) return ;
+                            pushFollow(FOLLOW_block_in_statement2392);
+                            block();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+                        case 2 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:617:9: catches
+                            {
+                            pushFollow(FOLLOW_catches_in_statement2402);
+                            catches();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+                        case 3 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:618:9: 'finally' block
+                            {
+                            match(input,81,FOLLOW_81_in_statement2412); if (failed) return ;
+                            pushFollow(FOLLOW_block_in_statement2414);
+                            block();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:620:7: 'switch' parExpression '{' switchBlockStatementGroups '}'
+                    {
+                    match(input,82,FOLLOW_82_in_statement2430); if (failed) return ;
+                    pushFollow(FOLLOW_parExpression_in_statement2432);
+                    parExpression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,37,FOLLOW_37_in_statement2434); if (failed) return ;
+                    pushFollow(FOLLOW_switchBlockStatementGroups_in_statement2436);
+                    switchBlockStatementGroups();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,38,FOLLOW_38_in_statement2438); if (failed) return ;
+
+                    }
+                    break;
+                case 9 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:621:7: 'synchronized' parExpression block
+                    {
+                    match(input,51,FOLLOW_51_in_statement2446); if (failed) return ;
+                    pushFollow(FOLLOW_parExpression_in_statement2448);
+                    parExpression();
+                    _fsp--;
+                    if (failed) return ;
+                    pushFollow(FOLLOW_block_in_statement2450);
+                    block();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 10 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:622:7: 'return' ( expression )? ';'
+                    {
+                    match(input,83,FOLLOW_83_in_statement2458); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:622:16: ( expression )?
+                    int alt110=2;
+                    int LA110_0 = input.LA(1);
+
+                    if ( (LA110_0==Identifier||(LA110_0>=FloatingPointLiteral && LA110_0<=DecimalLiteral)||LA110_0==33||LA110_0==40||(LA110_0>=55 && LA110_0<=62)||(LA110_0>=64 && LA110_0<=65)||(LA110_0>=68 && LA110_0<=70)||(LA110_0>=104 && LA110_0<=105)||(LA110_0>=108 && LA110_0<=113)) ) {
+                        alt110=1;
+                    }
+                    switch (alt110) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: expression
+                            {
+                            pushFollow(FOLLOW_expression_in_statement2460);
+                            expression();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,25,FOLLOW_25_in_statement2463); if (failed) return ;
+
+                    }
+                    break;
+                case 11 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:623:7: 'throw' expression ';'
+                    {
+                    match(input,84,FOLLOW_84_in_statement2471); if (failed) return ;
+                    pushFollow(FOLLOW_expression_in_statement2473);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,25,FOLLOW_25_in_statement2475); if (failed) return ;
+
+                    }
+                    break;
+                case 12 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:624:7: 'break' ( Identifier )? ';'
+                    {
+                    match(input,85,FOLLOW_85_in_statement2483); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:624:15: ( Identifier )?
+                    int alt111=2;
+                    int LA111_0 = input.LA(1);
+
+                    if ( (LA111_0==Identifier) ) {
+                        alt111=1;
+                    }
+                    switch (alt111) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: Identifier
+                            {
+                            match(input,Identifier,FOLLOW_Identifier_in_statement2485); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,25,FOLLOW_25_in_statement2488); if (failed) return ;
+
+                    }
+                    break;
+                case 13 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:625:7: 'continue' ( Identifier )? ';'
+                    {
+                    match(input,86,FOLLOW_86_in_statement2496); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:625:18: ( Identifier )?
+                    int alt112=2;
+                    int LA112_0 = input.LA(1);
+
+                    if ( (LA112_0==Identifier) ) {
+                        alt112=1;
+                    }
+                    switch (alt112) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: Identifier
+                            {
+                            match(input,Identifier,FOLLOW_Identifier_in_statement2498); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,25,FOLLOW_25_in_statement2501); if (failed) return ;
+
+                    }
+                    break;
+                case 14 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:626:7: ';'
+                    {
+                    match(input,25,FOLLOW_25_in_statement2509); if (failed) return ;
+
+                    }
+                    break;
+                case 15 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:627:7: statementExpression ';'
+                    {
+                    pushFollow(FOLLOW_statementExpression_in_statement2517);
+                    statementExpression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,25,FOLLOW_25_in_statement2519); if (failed) return ;
+
+                    }
+                    break;
+                case 16 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:628:7: Identifier ':' statement
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_statement2527); if (failed) return ;
+                    match(input,74,FOLLOW_74_in_statement2529); if (failed) return ;
+                    pushFollow(FOLLOW_statement_in_statement2531);
+                    statement();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 83, statement_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end statement
+
+
+    // $ANTLR start catches
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:631:1: catches : catchClause ( catchClause )* ;
+    public final void catches() throws RecognitionException {
+        int catches_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 84) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:632:4: ( catchClause ( catchClause )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:632:4: catchClause ( catchClause )*
+            {
+            pushFollow(FOLLOW_catchClause_in_catches2543);
+            catchClause();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:632:16: ( catchClause )*
+            loop114:
+            do {
+                int alt114=2;
+                int LA114_0 = input.LA(1);
+
+                if ( (LA114_0==87) ) {
+                    alt114=1;
+                }
+
+
+                switch (alt114) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:632:17: catchClause
+            	    {
+            	    pushFollow(FOLLOW_catchClause_in_catches2546);
+            	    catchClause();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop114;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 84, catches_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end catches
+
+
+    // $ANTLR start catchClause
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:635:1: catchClause : 'catch' '(' formalParameter ')' block ;
+    public final void catchClause() throws RecognitionException {
+        int catchClause_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 85) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:636:4: ( 'catch' '(' formalParameter ')' block )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:636:4: 'catch' '(' formalParameter ')' block
+            {
+            match(input,87,FOLLOW_87_in_catchClause2560); if (failed) return ;
+            match(input,65,FOLLOW_65_in_catchClause2562); if (failed) return ;
+            pushFollow(FOLLOW_formalParameter_in_catchClause2564);
+            formalParameter();
+            _fsp--;
+            if (failed) return ;
+            match(input,66,FOLLOW_66_in_catchClause2566); if (failed) return ;
+            pushFollow(FOLLOW_block_in_catchClause2568);
+            block();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 85, catchClause_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end catchClause
+
+
+    // $ANTLR start formalParameter
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:639:1: formalParameter : ( variableModifier )* type variableDeclaratorId ;
+    public final void formalParameter() throws RecognitionException {
+        int formalParameter_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 86) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:640:4: ( ( variableModifier )* type variableDeclaratorId )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:640:4: ( variableModifier )* type variableDeclaratorId
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:640:4: ( variableModifier )*
+            loop115:
+            do {
+                int alt115=2;
+                int LA115_0 = input.LA(1);
+
+                if ( (LA115_0==49||LA115_0==71) ) {
+                    alt115=1;
+                }
+
+
+                switch (alt115) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: variableModifier
+            	    {
+            	    pushFollow(FOLLOW_variableModifier_in_formalParameter2579);
+            	    variableModifier();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop115;
+                }
+            } while (true);
+
+            pushFollow(FOLLOW_type_in_formalParameter2582);
+            type();
+            _fsp--;
+            if (failed) return ;
+            pushFollow(FOLLOW_variableDeclaratorId_in_formalParameter2584);
+            variableDeclaratorId();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 86, formalParameter_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end formalParameter
+
+
+    // $ANTLR start switchBlockStatementGroups
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:643:1: switchBlockStatementGroups : ( switchBlockStatementGroup )* ;
+    public final void switchBlockStatementGroups() throws RecognitionException {
+        int switchBlockStatementGroups_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 87) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:644:4: ( ( switchBlockStatementGroup )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:644:4: ( switchBlockStatementGroup )*
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:644:4: ( switchBlockStatementGroup )*
+            loop116:
+            do {
+                int alt116=2;
+                int LA116_0 = input.LA(1);
+
+                if ( (LA116_0==72||LA116_0==88) ) {
+                    alt116=1;
+                }
+
+
+                switch (alt116) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:644:5: switchBlockStatementGroup
+            	    {
+            	    pushFollow(FOLLOW_switchBlockStatementGroup_in_switchBlockStatementGroups2598);
+            	    switchBlockStatementGroup();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop116;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 87, switchBlockStatementGroups_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end switchBlockStatementGroups
+
+
+    // $ANTLR start switchBlockStatementGroup
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:647:1: switchBlockStatementGroup : switchLabel ( blockStatement )* ;
+    public final void switchBlockStatementGroup() throws RecognitionException {
+        int switchBlockStatementGroup_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 88) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:648:4: ( switchLabel ( blockStatement )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:648:4: switchLabel ( blockStatement )*
+            {
+            pushFollow(FOLLOW_switchLabel_in_switchBlockStatementGroup2612);
+            switchLabel();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:648:16: ( blockStatement )*
+            loop117:
+            do {
+                int alt117=2;
+                int LA117_0 = input.LA(1);
+
+                if ( ((LA117_0>=Identifier && LA117_0<=DecimalLiteral)||LA117_0==25||LA117_0==27||LA117_0==30||LA117_0==33||LA117_0==37||(LA117_0>=39 && LA117_0<=40)||(LA117_0>=45 && LA117_0<=62)||(LA117_0>=64 && LA117_0<=65)||(LA117_0>=68 && LA117_0<=71)||LA117_0==73||LA117_0==75||(LA117_0>=77 && LA117_0<=80)||(LA117_0>=82 && LA117_0<=86)||(LA117_0>=104 && LA117_0<=105)||(LA117_0>=108 && LA117_0<=113)) ) {
+                    alt117=1;
+                }
+
+
+                switch (alt117) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: blockStatement
+            	    {
+            	    pushFollow(FOLLOW_blockStatement_in_switchBlockStatementGroup2614);
+            	    blockStatement();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop117;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 88, switchBlockStatementGroup_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end switchBlockStatementGroup
+
+
+    // $ANTLR start switchLabel
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:651:1: switchLabel : ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' );
+    public final void switchLabel() throws RecognitionException {
+        int switchLabel_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 89) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:652:4: ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' )
+            int alt118=3;
+            int LA118_0 = input.LA(1);
+
+            if ( (LA118_0==88) ) {
+                int LA118_1 = input.LA(2);
+
+                if ( (LA118_1==Identifier) ) {
+                    int LA118_3 = input.LA(3);
+
+                    if ( (synpred173()) ) {
+                        alt118=1;
+                    }
+                    else if ( (synpred174()) ) {
+                        alt118=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("651:1: switchLabel : ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' );", 118, 3, input);
+
+                        throw nvae;
+                    }
+                }
+                else if ( ((LA118_1>=FloatingPointLiteral && LA118_1<=DecimalLiteral)||LA118_1==33||LA118_1==40||(LA118_1>=55 && LA118_1<=62)||(LA118_1>=64 && LA118_1<=65)||(LA118_1>=68 && LA118_1<=70)||(LA118_1>=104 && LA118_1<=105)||(LA118_1>=108 && LA118_1<=113)) ) {
+                    alt118=1;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("651:1: switchLabel : ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' );", 118, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else if ( (LA118_0==72) ) {
+                alt118=3;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("651:1: switchLabel : ( 'case' constantExpression ':' | 'case' enumConstantName ':' | 'default' ':' );", 118, 0, input);
+
+                throw nvae;
+            }
+            switch (alt118) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:652:4: 'case' constantExpression ':'
+                    {
+                    match(input,88,FOLLOW_88_in_switchLabel2627); if (failed) return ;
+                    pushFollow(FOLLOW_constantExpression_in_switchLabel2629);
+                    constantExpression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,74,FOLLOW_74_in_switchLabel2631); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:653:6: 'case' enumConstantName ':'
+                    {
+                    match(input,88,FOLLOW_88_in_switchLabel2638); if (failed) return ;
+                    pushFollow(FOLLOW_enumConstantName_in_switchLabel2640);
+                    enumConstantName();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,74,FOLLOW_74_in_switchLabel2642); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:654:6: 'default' ':'
+                    {
+                    match(input,72,FOLLOW_72_in_switchLabel2649); if (failed) return ;
+                    match(input,74,FOLLOW_74_in_switchLabel2651); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 89, switchLabel_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end switchLabel
+
+
+    // $ANTLR start moreStatementExpressions
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:657:1: moreStatementExpressions : ( ',' statementExpression )* ;
+    public final void moreStatementExpressions() throws RecognitionException {
+        int moreStatementExpressions_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 90) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:658:4: ( ( ',' statementExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:658:4: ( ',' statementExpression )*
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:658:4: ( ',' statementExpression )*
+            loop119:
+            do {
+                int alt119=2;
+                int LA119_0 = input.LA(1);
+
+                if ( (LA119_0==34) ) {
+                    alt119=1;
+                }
+
+
+                switch (alt119) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:658:5: ',' statementExpression
+            	    {
+            	    match(input,34,FOLLOW_34_in_moreStatementExpressions2664); if (failed) return ;
+            	    pushFollow(FOLLOW_statementExpression_in_moreStatementExpressions2666);
+            	    statementExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop119;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 90, moreStatementExpressions_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end moreStatementExpressions
+
+
+    // $ANTLR start forControl
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );
+    public final void forControl() throws RecognitionException {
+        int forControl_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 91) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:663:4: ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? )
+            int alt123=2;
+            switch ( input.LA(1) ) {
+            case 49:
+                {
+                switch ( input.LA(2) ) {
+                case Identifier:
+                    {
+                    switch ( input.LA(3) ) {
+                    case 33:
+                        {
+                        int LA123_60 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 60, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 28:
+                        {
+                        int LA123_61 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 61, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 41:
+                        {
+                        int LA123_62 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 62, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case Identifier:
+                        {
+                        int LA123_63 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 63, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    default:
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 24, input);
+
+                        throw nvae;
+                    }
+
+                    }
+                    break;
+                case 55:
+                case 56:
+                case 57:
+                case 58:
+                case 59:
+                case 60:
+                case 61:
+                case 62:
+                    {
+                    int LA123_25 = input.LA(3);
+
+                    if ( (LA123_25==41) ) {
+                        int LA123_64 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 64, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else if ( (LA123_25==Identifier) ) {
+                        int LA123_65 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 65, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 25, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 49:
+                    {
+                    switch ( input.LA(3) ) {
+                    case Identifier:
+                        {
+                        int LA123_66 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 66, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 55:
+                    case 56:
+                    case 57:
+                    case 58:
+                    case 59:
+                    case 60:
+                    case 61:
+                    case 62:
+                        {
+                        int LA123_67 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 67, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 49:
+                        {
+                        int LA123_68 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 68, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 71:
+                        {
+                        int LA123_69 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 69, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    default:
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 26, input);
+
+                        throw nvae;
+                    }
+
+                    }
+                    break;
+                case 71:
+                    {
+                    int LA123_27 = input.LA(3);
+
+                    if ( (LA123_27==Identifier) ) {
+                        int LA123_70 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 70, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 27, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 1, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case 71:
+                {
+                int LA123_2 = input.LA(2);
+
+                if ( (LA123_2==Identifier) ) {
+                    switch ( input.LA(3) ) {
+                    case 28:
+                        {
+                        int LA123_71 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 71, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 65:
+                        {
+                        int LA123_72 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 72, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case Identifier:
+                        {
+                        int LA123_73 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 73, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 55:
+                    case 56:
+                    case 57:
+                    case 58:
+                    case 59:
+                    case 60:
+                    case 61:
+                    case 62:
+                        {
+                        int LA123_74 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 74, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 49:
+                        {
+                        int LA123_75 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 75, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 71:
+                        {
+                        int LA123_76 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 76, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    default:
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 28, input);
+
+                        throw nvae;
+                    }
+
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case Identifier:
+                {
+                switch ( input.LA(2) ) {
+                case 33:
+                    {
+                    switch ( input.LA(3) ) {
+                    case FloatingPointLiteral:
+                    case CharacterLiteral:
+                    case StringLiteral:
+                    case HexLiteral:
+                    case OctalLiteral:
+                    case DecimalLiteral:
+                    case 33:
+                    case 40:
+                    case 44:
+                    case 64:
+                    case 65:
+                    case 68:
+                    case 69:
+                    case 70:
+                    case 104:
+                    case 105:
+                    case 108:
+                    case 109:
+                    case 110:
+                    case 111:
+                    case 112:
+                    case 113:
+                        {
+                        alt123=2;
+                        }
+                        break;
+                    case Identifier:
+                        {
+                        int LA123_95 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 95, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 55:
+                    case 56:
+                    case 57:
+                    case 58:
+                    case 59:
+                    case 60:
+                    case 61:
+                    case 62:
+                        {
+                        int LA123_96 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 96, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 63:
+                        {
+                        int LA123_98 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 98, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    default:
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 29, input);
+
+                        throw nvae;
+                    }
+
+                    }
+                    break;
+                case 28:
+                    {
+                    int LA123_30 = input.LA(3);
+
+                    if ( (LA123_30==30||LA123_30==33||LA123_30==64||(LA123_30>=112 && LA123_30<=113)) ) {
+                        alt123=2;
+                    }
+                    else if ( (LA123_30==Identifier) ) {
+                        int LA123_100 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 100, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 30, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 41:
+                    {
+                    int LA123_31 = input.LA(3);
+
+                    if ( (LA123_31==42) ) {
+                        int LA123_105 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 105, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else if ( (LA123_31==Identifier||(LA123_31>=FloatingPointLiteral && LA123_31<=DecimalLiteral)||LA123_31==33||LA123_31==40||(LA123_31>=55 && LA123_31<=62)||(LA123_31>=64 && LA123_31<=65)||(LA123_31>=68 && LA123_31<=70)||(LA123_31>=104 && LA123_31<=105)||(LA123_31>=108 && LA123_31<=113)) ) {
+                        alt123=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 31, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                    {
+                    int LA123_32 = input.LA(3);
+
+                    if ( (LA123_32==74) ) {
+                        alt123=1;
+                    }
+                    else if ( (LA123_32==25||LA123_32==34||LA123_32==41||LA123_32==44) ) {
+                        alt123=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 32, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 25:
+                case 29:
+                case 34:
+                case 35:
+                case 36:
+                case 44:
+                case 63:
+                case 65:
+                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:
+                    {
+                    alt123=2;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 3, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+                {
+                switch ( input.LA(2) ) {
+                case 41:
+                    {
+                    int LA123_57 = input.LA(3);
+
+                    if ( (LA123_57==42) ) {
+                        int LA123_131 = input.LA(4);
+
+                        if ( (synpred176()) ) {
+                            alt123=1;
+                        }
+                        else if ( (true) ) {
+                            alt123=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 131, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 57, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                    {
+                    int LA123_58 = input.LA(3);
+
+                    if ( (LA123_58==74) ) {
+                        alt123=1;
+                    }
+                    else if ( (LA123_58==25||LA123_58==34||LA123_58==41||LA123_58==44) ) {
+                        alt123=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 58, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 28:
+                    {
+                    alt123=2;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 4, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 25:
+            case 33:
+            case 40:
+            case 64:
+            case 65:
+            case 68:
+            case 69:
+            case 70:
+            case 104:
+            case 105:
+            case 108:
+            case 109:
+            case 110:
+            case 111:
+            case 112:
+            case 113:
+                {
+                alt123=2;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("661:1: forControl options {k=3; } : ( forVarControl | ( forInit )? ';' ( expression )? ';' ( forUpdate )? );", 123, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt123) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:663:4: forVarControl
+                    {
+                    pushFollow(FOLLOW_forVarControl_in_forControl2687);
+                    forVarControl();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:664:4: ( forInit )? ';' ( expression )? ';' ( forUpdate )?
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:664:4: ( forInit )?
+                    int alt120=2;
+                    int LA120_0 = input.LA(1);
+
+                    if ( (LA120_0==Identifier||(LA120_0>=FloatingPointLiteral && LA120_0<=DecimalLiteral)||LA120_0==33||LA120_0==40||LA120_0==49||(LA120_0>=55 && LA120_0<=62)||(LA120_0>=64 && LA120_0<=65)||(LA120_0>=68 && LA120_0<=71)||(LA120_0>=104 && LA120_0<=105)||(LA120_0>=108 && LA120_0<=113)) ) {
+                        alt120=1;
+                    }
+                    switch (alt120) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: forInit
+                            {
+                            pushFollow(FOLLOW_forInit_in_forControl2692);
+                            forInit();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,25,FOLLOW_25_in_forControl2695); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:664:17: ( expression )?
+                    int alt121=2;
+                    int LA121_0 = input.LA(1);
+
+                    if ( (LA121_0==Identifier||(LA121_0>=FloatingPointLiteral && LA121_0<=DecimalLiteral)||LA121_0==33||LA121_0==40||(LA121_0>=55 && LA121_0<=62)||(LA121_0>=64 && LA121_0<=65)||(LA121_0>=68 && LA121_0<=70)||(LA121_0>=104 && LA121_0<=105)||(LA121_0>=108 && LA121_0<=113)) ) {
+                        alt121=1;
+                    }
+                    switch (alt121) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: expression
+                            {
+                            pushFollow(FOLLOW_expression_in_forControl2697);
+                            expression();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,25,FOLLOW_25_in_forControl2700); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:664:33: ( forUpdate )?
+                    int alt122=2;
+                    int LA122_0 = input.LA(1);
+
+                    if ( (LA122_0==Identifier||(LA122_0>=FloatingPointLiteral && LA122_0<=DecimalLiteral)||LA122_0==33||LA122_0==40||(LA122_0>=55 && LA122_0<=62)||(LA122_0>=64 && LA122_0<=65)||(LA122_0>=68 && LA122_0<=70)||(LA122_0>=104 && LA122_0<=105)||(LA122_0>=108 && LA122_0<=113)) ) {
+                        alt122=1;
+                    }
+                    switch (alt122) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: forUpdate
+                            {
+                            pushFollow(FOLLOW_forUpdate_in_forControl2702);
+                            forUpdate();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 91, forControl_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end forControl
+
+
+    // $ANTLR start forInit
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );
+    public final void forInit() throws RecognitionException {
+        int forInit_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 92) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:668:4: ( ( variableModifier )* type variableDeclarators | expressionList )
+            int alt125=2;
+            switch ( input.LA(1) ) {
+            case 49:
+            case 71:
+                {
+                alt125=1;
+                }
+                break;
+            case Identifier:
+                {
+                switch ( input.LA(2) ) {
+                case 28:
+                    {
+                    int LA125_23 = input.LA(3);
+
+                    if ( (synpred181()) ) {
+                        alt125=1;
+                    }
+                    else if ( (true) ) {
+                        alt125=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );", 125, 23, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 41:
+                    {
+                    int LA125_24 = input.LA(3);
+
+                    if ( (synpred181()) ) {
+                        alt125=1;
+                    }
+                    else if ( (true) ) {
+                        alt125=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );", 125, 24, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case EOF:
+                case 25:
+                case 29:
+                case 34:
+                case 35:
+                case 36:
+                case 44:
+                case 63:
+                case 65:
+                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:
+                    {
+                    alt125=2;
+                    }
+                    break;
+                case 33:
+                    {
+                    int LA125_29 = input.LA(3);
+
+                    if ( (synpred181()) ) {
+                        alt125=1;
+                    }
+                    else if ( (true) ) {
+                        alt125=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );", 125, 29, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                    {
+                    alt125=1;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );", 125, 3, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+                {
+                switch ( input.LA(2) ) {
+                case 41:
+                    {
+                    int LA125_52 = input.LA(3);
+
+                    if ( (synpred181()) ) {
+                        alt125=1;
+                    }
+                    else if ( (true) ) {
+                        alt125=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );", 125, 52, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                    {
+                    alt125=1;
+                    }
+                    break;
+                case 28:
+                    {
+                    alt125=2;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );", 125, 4, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 33:
+            case 40:
+            case 64:
+            case 65:
+            case 68:
+            case 69:
+            case 70:
+            case 104:
+            case 105:
+            case 108:
+            case 109:
+            case 110:
+            case 111:
+            case 112:
+            case 113:
+                {
+                alt125=2;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("667:1: forInit : ( ( variableModifier )* type variableDeclarators | expressionList );", 125, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt125) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:668:4: ( variableModifier )* type variableDeclarators
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:668:4: ( variableModifier )*
+                    loop124:
+                    do {
+                        int alt124=2;
+                        int LA124_0 = input.LA(1);
+
+                        if ( (LA124_0==49||LA124_0==71) ) {
+                            alt124=1;
+                        }
+
+
+                        switch (alt124) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: variableModifier
+                    	    {
+                    	    pushFollow(FOLLOW_variableModifier_in_forInit2714);
+                    	    variableModifier();
+                    	    _fsp--;
+                    	    if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop124;
+                        }
+                    } while (true);
+
+                    pushFollow(FOLLOW_type_in_forInit2717);
+                    type();
+                    _fsp--;
+                    if (failed) return ;
+                    pushFollow(FOLLOW_variableDeclarators_in_forInit2719);
+                    variableDeclarators();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:669:4: expressionList
+                    {
+                    pushFollow(FOLLOW_expressionList_in_forInit2724);
+                    expressionList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 92, forInit_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end forInit
+
+
+    // $ANTLR start forVarControl
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:672:1: forVarControl : ( variableModifier )* type Identifier ':' expression ;
+    public final void forVarControl() throws RecognitionException {
+        int forVarControl_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 93) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:673:4: ( ( variableModifier )* type Identifier ':' expression )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:673:4: ( variableModifier )* type Identifier ':' expression
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:673:4: ( variableModifier )*
+            loop126:
+            do {
+                int alt126=2;
+                int LA126_0 = input.LA(1);
+
+                if ( (LA126_0==49||LA126_0==71) ) {
+                    alt126=1;
+                }
+
+
+                switch (alt126) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: variableModifier
+            	    {
+            	    pushFollow(FOLLOW_variableModifier_in_forVarControl2736);
+            	    variableModifier();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop126;
+                }
+            } while (true);
+
+            pushFollow(FOLLOW_type_in_forVarControl2739);
+            type();
+            _fsp--;
+            if (failed) return ;
+            match(input,Identifier,FOLLOW_Identifier_in_forVarControl2741); if (failed) return ;
+            match(input,74,FOLLOW_74_in_forVarControl2743); if (failed) return ;
+            pushFollow(FOLLOW_expression_in_forVarControl2745);
+            expression();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 93, forVarControl_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end forVarControl
+
+
+    // $ANTLR start forUpdate
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:676:1: forUpdate : expressionList ;
+    public final void forUpdate() throws RecognitionException {
+        int forUpdate_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 94) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:677:4: ( expressionList )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:677:4: expressionList
+            {
+            pushFollow(FOLLOW_expressionList_in_forUpdate2756);
+            expressionList();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 94, forUpdate_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end forUpdate
+
+
+    // $ANTLR start parExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:682:1: parExpression : '(' expression ')' ;
+    public final void parExpression() throws RecognitionException {
+        int parExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 95) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:683:4: ( '(' expression ')' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:683:4: '(' expression ')'
+            {
+            match(input,65,FOLLOW_65_in_parExpression2769); if (failed) return ;
+            pushFollow(FOLLOW_expression_in_parExpression2771);
+            expression();
+            _fsp--;
+            if (failed) return ;
+            match(input,66,FOLLOW_66_in_parExpression2773); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 95, parExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end parExpression
+
+
+    // $ANTLR start expressionList
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:686:1: expressionList : expression ( ',' expression )* ;
+    public final void expressionList() throws RecognitionException {
+        int expressionList_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 96) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:687:9: ( expression ( ',' expression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:687:9: expression ( ',' expression )*
+            {
+            pushFollow(FOLLOW_expression_in_expressionList2790);
+            expression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:687:20: ( ',' expression )*
+            loop127:
+            do {
+                int alt127=2;
+                int LA127_0 = input.LA(1);
+
+                if ( (LA127_0==34) ) {
+                    alt127=1;
+                }
+
+
+                switch (alt127) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:687:21: ',' expression
+            	    {
+            	    match(input,34,FOLLOW_34_in_expressionList2793); if (failed) return ;
+            	    pushFollow(FOLLOW_expression_in_expressionList2795);
+            	    expression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop127;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 96, expressionList_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end expressionList
+
+
+    // $ANTLR start statementExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:690:1: statementExpression : expression ;
+    public final void statementExpression() throws RecognitionException {
+        int statementExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 97) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:691:4: ( expression )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:691:4: expression
+            {
+            pushFollow(FOLLOW_expression_in_statementExpression2811);
+            expression();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 97, statementExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end statementExpression
+
+
+    // $ANTLR start constantExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:694:1: constantExpression : expression ;
+    public final void constantExpression() throws RecognitionException {
+        int constantExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 98) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:695:4: ( expression )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:695:4: expression
+            {
+            pushFollow(FOLLOW_expression_in_constantExpression2823);
+            expression();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 98, constantExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end constantExpression
+
+
+    // $ANTLR start expression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:698:1: expression : conditionalExpression ( assignmentOperator expression )? ;
+    public final void expression() throws RecognitionException {
+        int expression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 99) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:699:4: ( conditionalExpression ( assignmentOperator expression )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:699:4: conditionalExpression ( assignmentOperator expression )?
+            {
+            pushFollow(FOLLOW_conditionalExpression_in_expression2835);
+            conditionalExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:699:26: ( assignmentOperator expression )?
+            int alt128=2;
+            switch ( input.LA(1) ) {
+                case 44:
+                    {
+                    int LA128_1 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 89:
+                    {
+                    int LA128_2 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 90:
+                    {
+                    int LA128_3 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 91:
+                    {
+                    int LA128_4 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 92:
+                    {
+                    int LA128_5 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 93:
+                    {
+                    int LA128_6 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 94:
+                    {
+                    int LA128_7 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 95:
+                    {
+                    int LA128_8 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 96:
+                    {
+                    int LA128_9 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 33:
+                    {
+                    int LA128_10 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+                case 35:
+                    {
+                    int LA128_11 = input.LA(2);
+
+                    if ( (synpred184()) ) {
+                        alt128=1;
+                    }
+                    }
+                    break;
+            }
+
+            switch (alt128) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:699:27: assignmentOperator expression
+                    {
+                    pushFollow(FOLLOW_assignmentOperator_in_expression2838);
+                    assignmentOperator();
+                    _fsp--;
+                    if (failed) return ;
+                    pushFollow(FOLLOW_expression_in_expression2840);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 99, expression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end expression
+
+
+    // $ANTLR start assignmentOperator
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:702:1: assignmentOperator : ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | '<' '<' '=' | '>' '>' '=' | '>' '>' '>' '=' );
+    public final void assignmentOperator() throws RecognitionException {
+        int assignmentOperator_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 100) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:703:4: ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | '<' '<' '=' | '>' '>' '=' | '>' '>' '>' '=' )
+            int alt129=12;
+            switch ( input.LA(1) ) {
+            case 44:
+                {
+                alt129=1;
+                }
+                break;
+            case 89:
+                {
+                alt129=2;
+                }
+                break;
+            case 90:
+                {
+                alt129=3;
+                }
+                break;
+            case 91:
+                {
+                alt129=4;
+                }
+                break;
+            case 92:
+                {
+                alt129=5;
+                }
+                break;
+            case 93:
+                {
+                alt129=6;
+                }
+                break;
+            case 94:
+                {
+                alt129=7;
+                }
+                break;
+            case 95:
+                {
+                alt129=8;
+                }
+                break;
+            case 96:
+                {
+                alt129=9;
+                }
+                break;
+            case 33:
+                {
+                alt129=10;
+                }
+                break;
+            case 35:
+                {
+                int LA129_11 = input.LA(2);
+
+                if ( (LA129_11==35) ) {
+                    int LA129_12 = input.LA(3);
+
+                    if ( (synpred195()) ) {
+                        alt129=11;
+                    }
+                    else if ( (true) ) {
+                        alt129=12;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("702:1: assignmentOperator : ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | '<' '<' '=' | '>' '>' '=' | '>' '>' '>' '=' );", 129, 12, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("702:1: assignmentOperator : ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | '<' '<' '=' | '>' '>' '=' | '>' '>' '>' '=' );", 129, 11, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("702:1: assignmentOperator : ( '=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '%=' | '<' '<' '=' | '>' '>' '=' | '>' '>' '>' '=' );", 129, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt129) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:703:4: '='
+                    {
+                    match(input,44,FOLLOW_44_in_assignmentOperator2854); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:704:9: '+='
+                    {
+                    match(input,89,FOLLOW_89_in_assignmentOperator2864); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:705:9: '-='
+                    {
+                    match(input,90,FOLLOW_90_in_assignmentOperator2874); if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:706:9: '*='
+                    {
+                    match(input,91,FOLLOW_91_in_assignmentOperator2884); if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:707:9: '/='
+                    {
+                    match(input,92,FOLLOW_92_in_assignmentOperator2894); if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:708:9: '&='
+                    {
+                    match(input,93,FOLLOW_93_in_assignmentOperator2904); if (failed) return ;
+
+                    }
+                    break;
+                case 7 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:709:9: '|='
+                    {
+                    match(input,94,FOLLOW_94_in_assignmentOperator2914); if (failed) return ;
+
+                    }
+                    break;
+                case 8 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:710:9: '^='
+                    {
+                    match(input,95,FOLLOW_95_in_assignmentOperator2924); if (failed) return ;
+
+                    }
+                    break;
+                case 9 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:711:9: '%='
+                    {
+                    match(input,96,FOLLOW_96_in_assignmentOperator2934); if (failed) return ;
+
+                    }
+                    break;
+                case 10 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:712:9: '<' '<' '='
+                    {
+                    match(input,33,FOLLOW_33_in_assignmentOperator2944); if (failed) return ;
+                    match(input,33,FOLLOW_33_in_assignmentOperator2946); if (failed) return ;
+                    match(input,44,FOLLOW_44_in_assignmentOperator2948); if (failed) return ;
+
+                    }
+                    break;
+                case 11 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:713:9: '>' '>' '='
+                    {
+                    match(input,35,FOLLOW_35_in_assignmentOperator2958); if (failed) return ;
+                    match(input,35,FOLLOW_35_in_assignmentOperator2960); if (failed) return ;
+                    match(input,44,FOLLOW_44_in_assignmentOperator2962); if (failed) return ;
+
+                    }
+                    break;
+                case 12 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:714:9: '>' '>' '>' '='
+                    {
+                    match(input,35,FOLLOW_35_in_assignmentOperator2972); if (failed) return ;
+                    match(input,35,FOLLOW_35_in_assignmentOperator2974); if (failed) return ;
+                    match(input,35,FOLLOW_35_in_assignmentOperator2976); if (failed) return ;
+                    match(input,44,FOLLOW_44_in_assignmentOperator2978); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 100, assignmentOperator_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end assignmentOperator
+
+
+    // $ANTLR start conditionalExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:717:1: conditionalExpression : conditionalOrExpression ( '?' expression ':' expression )? ;
+    public final void conditionalExpression() throws RecognitionException {
+        int conditionalExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 101) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:718:9: ( conditionalOrExpression ( '?' expression ':' expression )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:718:9: conditionalOrExpression ( '?' expression ':' expression )?
+            {
+            pushFollow(FOLLOW_conditionalOrExpression_in_conditionalExpression2994);
+            conditionalOrExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:718:33: ( '?' expression ':' expression )?
+            int alt130=2;
+            int LA130_0 = input.LA(1);
+
+            if ( (LA130_0==63) ) {
+                alt130=1;
+            }
+            switch (alt130) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:718:35: '?' expression ':' expression
+                    {
+                    match(input,63,FOLLOW_63_in_conditionalExpression2998); if (failed) return ;
+                    pushFollow(FOLLOW_expression_in_conditionalExpression3000);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,74,FOLLOW_74_in_conditionalExpression3002); if (failed) return ;
+                    pushFollow(FOLLOW_expression_in_conditionalExpression3004);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 101, conditionalExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end conditionalExpression
+
+
+    // $ANTLR start conditionalOrExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:721:1: conditionalOrExpression : conditionalAndExpression ( '||' conditionalAndExpression )* ;
+    public final void conditionalOrExpression() throws RecognitionException {
+        int conditionalOrExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 102) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:722:9: ( conditionalAndExpression ( '||' conditionalAndExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:722:9: conditionalAndExpression ( '||' conditionalAndExpression )*
+            {
+            pushFollow(FOLLOW_conditionalAndExpression_in_conditionalOrExpression3023);
+            conditionalAndExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:722:34: ( '||' conditionalAndExpression )*
+            loop131:
+            do {
+                int alt131=2;
+                int LA131_0 = input.LA(1);
+
+                if ( (LA131_0==97) ) {
+                    alt131=1;
+                }
+
+
+                switch (alt131) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:722:36: '||' conditionalAndExpression
+            	    {
+            	    match(input,97,FOLLOW_97_in_conditionalOrExpression3027); if (failed) return ;
+            	    pushFollow(FOLLOW_conditionalAndExpression_in_conditionalOrExpression3029);
+            	    conditionalAndExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop131;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 102, conditionalOrExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end conditionalOrExpression
+
+
+    // $ANTLR start conditionalAndExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:725:1: conditionalAndExpression : inclusiveOrExpression ( '&&' inclusiveOrExpression )* ;
+    public final void conditionalAndExpression() throws RecognitionException {
+        int conditionalAndExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 103) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:726:9: ( inclusiveOrExpression ( '&&' inclusiveOrExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:726:9: inclusiveOrExpression ( '&&' inclusiveOrExpression )*
+            {
+            pushFollow(FOLLOW_inclusiveOrExpression_in_conditionalAndExpression3048);
+            inclusiveOrExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:726:31: ( '&&' inclusiveOrExpression )*
+            loop132:
+            do {
+                int alt132=2;
+                int LA132_0 = input.LA(1);
+
+                if ( (LA132_0==98) ) {
+                    alt132=1;
+                }
+
+
+                switch (alt132) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:726:33: '&&' inclusiveOrExpression
+            	    {
+            	    match(input,98,FOLLOW_98_in_conditionalAndExpression3052); if (failed) return ;
+            	    pushFollow(FOLLOW_inclusiveOrExpression_in_conditionalAndExpression3054);
+            	    inclusiveOrExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop132;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 103, conditionalAndExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end conditionalAndExpression
+
+
+    // $ANTLR start inclusiveOrExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:729:1: inclusiveOrExpression : exclusiveOrExpression ( '|' exclusiveOrExpression )* ;
+    public final void inclusiveOrExpression() throws RecognitionException {
+        int inclusiveOrExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 104) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:730:9: ( exclusiveOrExpression ( '|' exclusiveOrExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:730:9: exclusiveOrExpression ( '|' exclusiveOrExpression )*
+            {
+            pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression3073);
+            exclusiveOrExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:730:31: ( '|' exclusiveOrExpression )*
+            loop133:
+            do {
+                int alt133=2;
+                int LA133_0 = input.LA(1);
+
+                if ( (LA133_0==99) ) {
+                    alt133=1;
+                }
+
+
+                switch (alt133) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:730:33: '|' exclusiveOrExpression
+            	    {
+            	    match(input,99,FOLLOW_99_in_inclusiveOrExpression3077); if (failed) return ;
+            	    pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression3079);
+            	    exclusiveOrExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop133;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 104, inclusiveOrExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end inclusiveOrExpression
+
+
+    // $ANTLR start exclusiveOrExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:733:1: exclusiveOrExpression : andExpression ( '^' andExpression )* ;
+    public final void exclusiveOrExpression() throws RecognitionException {
+        int exclusiveOrExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 105) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:734:9: ( andExpression ( '^' andExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:734:9: andExpression ( '^' andExpression )*
+            {
+            pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression3098);
+            andExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:734:23: ( '^' andExpression )*
+            loop134:
+            do {
+                int alt134=2;
+                int LA134_0 = input.LA(1);
+
+                if ( (LA134_0==100) ) {
+                    alt134=1;
+                }
+
+
+                switch (alt134) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:734:25: '^' andExpression
+            	    {
+            	    match(input,100,FOLLOW_100_in_exclusiveOrExpression3102); if (failed) return ;
+            	    pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression3104);
+            	    andExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop134;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 105, exclusiveOrExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end exclusiveOrExpression
+
+
+    // $ANTLR start andExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:737:1: andExpression : equalityExpression ( '&' equalityExpression )* ;
+    public final void andExpression() throws RecognitionException {
+        int andExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 106) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:738:9: ( equalityExpression ( '&' equalityExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:738:9: equalityExpression ( '&' equalityExpression )*
+            {
+            pushFollow(FOLLOW_equalityExpression_in_andExpression3123);
+            equalityExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:738:28: ( '&' equalityExpression )*
+            loop135:
+            do {
+                int alt135=2;
+                int LA135_0 = input.LA(1);
+
+                if ( (LA135_0==36) ) {
+                    alt135=1;
+                }
+
+
+                switch (alt135) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:738:30: '&' equalityExpression
+            	    {
+            	    match(input,36,FOLLOW_36_in_andExpression3127); if (failed) return ;
+            	    pushFollow(FOLLOW_equalityExpression_in_andExpression3129);
+            	    equalityExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop135;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 106, andExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end andExpression
+
+
+    // $ANTLR start equalityExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:741:1: equalityExpression : instanceOfExpression ( ( '==' | '!=' ) instanceOfExpression )* ;
+    public final void equalityExpression() throws RecognitionException {
+        int equalityExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 107) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:742:9: ( instanceOfExpression ( ( '==' | '!=' ) instanceOfExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:742:9: instanceOfExpression ( ( '==' | '!=' ) instanceOfExpression )*
+            {
+            pushFollow(FOLLOW_instanceOfExpression_in_equalityExpression3148);
+            instanceOfExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:742:30: ( ( '==' | '!=' ) instanceOfExpression )*
+            loop136:
+            do {
+                int alt136=2;
+                int LA136_0 = input.LA(1);
+
+                if ( ((LA136_0>=101 && LA136_0<=102)) ) {
+                    alt136=1;
+                }
+
+
+                switch (alt136) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:742:32: ( '==' | '!=' ) instanceOfExpression
+            	    {
+            	    if ( (input.LA(1)>=101 && input.LA(1)<=102) ) {
+            	        input.consume();
+            	        errorRecovery=false;failed=false;
+            	    }
+            	    else {
+            	        if (backtracking>0) {failed=true; return ;}
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression3152);    throw mse;
+            	    }
+
+            	    pushFollow(FOLLOW_instanceOfExpression_in_equalityExpression3160);
+            	    instanceOfExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop136;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 107, equalityExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end equalityExpression
+
+
+    // $ANTLR start instanceOfExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:745:1: instanceOfExpression : relationalExpression ( 'instanceof' type )? ;
+    public final void instanceOfExpression() throws RecognitionException {
+        int instanceOfExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 108) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:746:9: ( relationalExpression ( 'instanceof' type )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:746:9: relationalExpression ( 'instanceof' type )?
+            {
+            pushFollow(FOLLOW_relationalExpression_in_instanceOfExpression3179);
+            relationalExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:746:30: ( 'instanceof' type )?
+            int alt137=2;
+            int LA137_0 = input.LA(1);
+
+            if ( (LA137_0==103) ) {
+                alt137=1;
+            }
+            switch (alt137) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:746:31: 'instanceof' type
+                    {
+                    match(input,103,FOLLOW_103_in_instanceOfExpression3182); if (failed) return ;
+                    pushFollow(FOLLOW_type_in_instanceOfExpression3184);
+                    type();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 108, instanceOfExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end instanceOfExpression
+
+
+    // $ANTLR start relationalExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:749:1: relationalExpression : shiftExpression ( relationalOp shiftExpression )* ;
+    public final void relationalExpression() throws RecognitionException {
+        int relationalExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 109) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:750:9: ( shiftExpression ( relationalOp shiftExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:750:9: shiftExpression ( relationalOp shiftExpression )*
+            {
+            pushFollow(FOLLOW_shiftExpression_in_relationalExpression3202);
+            shiftExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:750:25: ( relationalOp shiftExpression )*
+            loop138:
+            do {
+                int alt138=2;
+                int LA138_0 = input.LA(1);
+
+                if ( (LA138_0==33) ) {
+                    int LA138_23 = input.LA(2);
+
+                    if ( (LA138_23==Identifier||(LA138_23>=FloatingPointLiteral && LA138_23<=DecimalLiteral)||LA138_23==40||LA138_23==44||(LA138_23>=55 && LA138_23<=62)||(LA138_23>=64 && LA138_23<=65)||(LA138_23>=68 && LA138_23<=70)||(LA138_23>=104 && LA138_23<=105)||(LA138_23>=108 && LA138_23<=113)) ) {
+                        alt138=1;
+                    }
+                    else if ( (LA138_23==33) ) {
+                        int LA138_28 = input.LA(3);
+
+                        if ( (synpred205()) ) {
+                            alt138=1;
+                        }
+
+
+                    }
+
+
+                }
+                else if ( (LA138_0==35) ) {
+                    int LA138_24 = input.LA(2);
+
+                    if ( (LA138_24==Identifier||(LA138_24>=FloatingPointLiteral && LA138_24<=DecimalLiteral)||LA138_24==33||LA138_24==40||LA138_24==44||(LA138_24>=55 && LA138_24<=62)||(LA138_24>=64 && LA138_24<=65)||(LA138_24>=68 && LA138_24<=70)||(LA138_24>=104 && LA138_24<=105)||(LA138_24>=108 && LA138_24<=113)) ) {
+                        alt138=1;
+                    }
+
+
+                }
+
+
+                switch (alt138) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:750:27: relationalOp shiftExpression
+            	    {
+            	    pushFollow(FOLLOW_relationalOp_in_relationalExpression3206);
+            	    relationalOp();
+            	    _fsp--;
+            	    if (failed) return ;
+            	    pushFollow(FOLLOW_shiftExpression_in_relationalExpression3208);
+            	    shiftExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop138;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 109, relationalExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end relationalExpression
+
+
+    // $ANTLR start relationalOp
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:753:1: relationalOp : ( '<' '=' | '>' '=' | '<' | '>' ) ;
+    public final void relationalOp() throws RecognitionException {
+        int relationalOp_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 110) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:754:4: ( ( '<' '=' | '>' '=' | '<' | '>' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:754:4: ( '<' '=' | '>' '=' | '<' | '>' )
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:754:4: ( '<' '=' | '>' '=' | '<' | '>' )
+            int alt139=4;
+            int LA139_0 = input.LA(1);
+
+            if ( (LA139_0==33) ) {
+                int LA139_1 = input.LA(2);
+
+                if ( (LA139_1==44) ) {
+                    alt139=1;
+                }
+                else if ( (LA139_1==Identifier||(LA139_1>=FloatingPointLiteral && LA139_1<=DecimalLiteral)||LA139_1==33||LA139_1==40||(LA139_1>=55 && LA139_1<=62)||(LA139_1>=64 && LA139_1<=65)||(LA139_1>=68 && LA139_1<=70)||(LA139_1>=104 && LA139_1<=105)||(LA139_1>=108 && LA139_1<=113)) ) {
+                    alt139=3;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("754:4: ( '<' '=' | '>' '=' | '<' | '>' )", 139, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else if ( (LA139_0==35) ) {
+                int LA139_2 = input.LA(2);
+
+                if ( (LA139_2==44) ) {
+                    alt139=2;
+                }
+                else if ( (LA139_2==Identifier||(LA139_2>=FloatingPointLiteral && LA139_2<=DecimalLiteral)||LA139_2==33||LA139_2==40||(LA139_2>=55 && LA139_2<=62)||(LA139_2>=64 && LA139_2<=65)||(LA139_2>=68 && LA139_2<=70)||(LA139_2>=104 && LA139_2<=105)||(LA139_2>=108 && LA139_2<=113)) ) {
+                    alt139=4;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("754:4: ( '<' '=' | '>' '=' | '<' | '>' )", 139, 2, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("754:4: ( '<' '=' | '>' '=' | '<' | '>' )", 139, 0, input);
+
+                throw nvae;
+            }
+            switch (alt139) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:754:5: '<' '='
+                    {
+                    match(input,33,FOLLOW_33_in_relationalOp3224); if (failed) return ;
+                    match(input,44,FOLLOW_44_in_relationalOp3226); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:754:15: '>' '='
+                    {
+                    match(input,35,FOLLOW_35_in_relationalOp3230); if (failed) return ;
+                    match(input,44,FOLLOW_44_in_relationalOp3232); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:754:25: '<'
+                    {
+                    match(input,33,FOLLOW_33_in_relationalOp3236); if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:754:31: '>'
+                    {
+                    match(input,35,FOLLOW_35_in_relationalOp3240); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 110, relationalOp_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end relationalOp
+
+
+    // $ANTLR start shiftExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:757:1: shiftExpression : additiveExpression ( shiftOp additiveExpression )* ;
+    public final void shiftExpression() throws RecognitionException {
+        int shiftExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 111) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:758:9: ( additiveExpression ( shiftOp additiveExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:758:9: additiveExpression ( shiftOp additiveExpression )*
+            {
+            pushFollow(FOLLOW_additiveExpression_in_shiftExpression3257);
+            additiveExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:758:28: ( shiftOp additiveExpression )*
+            loop140:
+            do {
+                int alt140=2;
+                int LA140_0 = input.LA(1);
+
+                if ( (LA140_0==33) ) {
+                    int LA140_1 = input.LA(2);
+
+                    if ( (LA140_1==33) ) {
+                        int LA140_27 = input.LA(3);
+
+                        if ( (synpred209()) ) {
+                            alt140=1;
+                        }
+
+
+                    }
+
+
+                }
+                else if ( (LA140_0==35) ) {
+                    int LA140_2 = input.LA(2);
+
+                    if ( (LA140_2==35) ) {
+                        int LA140_48 = input.LA(3);
+
+                        if ( (synpred209()) ) {
+                            alt140=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt140) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:758:30: shiftOp additiveExpression
+            	    {
+            	    pushFollow(FOLLOW_shiftOp_in_shiftExpression3261);
+            	    shiftOp();
+            	    _fsp--;
+            	    if (failed) return ;
+            	    pushFollow(FOLLOW_additiveExpression_in_shiftExpression3263);
+            	    additiveExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop140;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 111, shiftExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end shiftExpression
+
+
+    // $ANTLR start shiftOp
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:762:1: shiftOp : ( '<' '<' | '>' '>' '>' | '>' '>' ) ;
+    public final void shiftOp() throws RecognitionException {
+        int shiftOp_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 112) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:4: ( ( '<' '<' | '>' '>' '>' | '>' '>' ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:4: ( '<' '<' | '>' '>' '>' | '>' '>' )
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:4: ( '<' '<' | '>' '>' '>' | '>' '>' )
+            int alt141=3;
+            int LA141_0 = input.LA(1);
+
+            if ( (LA141_0==33) ) {
+                alt141=1;
+            }
+            else if ( (LA141_0==35) ) {
+                int LA141_2 = input.LA(2);
+
+                if ( (LA141_2==35) ) {
+                    int LA141_3 = input.LA(3);
+
+                    if ( (synpred211()) ) {
+                        alt141=2;
+                    }
+                    else if ( (true) ) {
+                        alt141=3;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("763:4: ( '<' '<' | '>' '>' '>' | '>' '>' )", 141, 3, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("763:4: ( '<' '<' | '>' '>' '>' | '>' '>' )", 141, 2, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("763:4: ( '<' '<' | '>' '>' '>' | '>' '>' )", 141, 0, input);
+
+                throw nvae;
+            }
+            switch (alt141) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:5: '<' '<'
+                    {
+                    match(input,33,FOLLOW_33_in_shiftOp3287); if (failed) return ;
+                    match(input,33,FOLLOW_33_in_shiftOp3289); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:15: '>' '>' '>'
+                    {
+                    match(input,35,FOLLOW_35_in_shiftOp3293); if (failed) return ;
+                    match(input,35,FOLLOW_35_in_shiftOp3295); if (failed) return ;
+                    match(input,35,FOLLOW_35_in_shiftOp3297); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:29: '>' '>'
+                    {
+                    match(input,35,FOLLOW_35_in_shiftOp3301); if (failed) return ;
+                    match(input,35,FOLLOW_35_in_shiftOp3303); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 112, shiftOp_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end shiftOp
+
+
+    // $ANTLR start additiveExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:767:1: additiveExpression : multiplicativeExpression ( ( '+' | '-' ) multiplicativeExpression )* ;
+    public final void additiveExpression() throws RecognitionException {
+        int additiveExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 113) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:768:9: ( multiplicativeExpression ( ( '+' | '-' ) multiplicativeExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:768:9: multiplicativeExpression ( ( '+' | '-' ) multiplicativeExpression )*
+            {
+            pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3321);
+            multiplicativeExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:768:34: ( ( '+' | '-' ) multiplicativeExpression )*
+            loop142:
+            do {
+                int alt142=2;
+                int LA142_0 = input.LA(1);
+
+                if ( ((LA142_0>=104 && LA142_0<=105)) ) {
+                    alt142=1;
+                }
+
+
+                switch (alt142) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:768:36: ( '+' | '-' ) multiplicativeExpression
+            	    {
+            	    if ( (input.LA(1)>=104 && input.LA(1)<=105) ) {
+            	        input.consume();
+            	        errorRecovery=false;failed=false;
+            	    }
+            	    else {
+            	        if (backtracking>0) {failed=true; return ;}
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression3325);    throw mse;
+            	    }
+
+            	    pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression3333);
+            	    multiplicativeExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop142;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 113, additiveExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end additiveExpression
+
+
+    // $ANTLR start multiplicativeExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:771:1: multiplicativeExpression : unaryExpression ( ( '*' | '/' | '%' ) unaryExpression )* ;
+    public final void multiplicativeExpression() throws RecognitionException {
+        int multiplicativeExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 114) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:772:9: ( unaryExpression ( ( '*' | '/' | '%' ) unaryExpression )* )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:772:9: unaryExpression ( ( '*' | '/' | '%' ) unaryExpression )*
+            {
+            pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression3352);
+            unaryExpression();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:772:25: ( ( '*' | '/' | '%' ) unaryExpression )*
+            loop143:
+            do {
+                int alt143=2;
+                int LA143_0 = input.LA(1);
+
+                if ( (LA143_0==29||(LA143_0>=106 && LA143_0<=107)) ) {
+                    alt143=1;
+                }
+
+
+                switch (alt143) {
+            	case 1 :
+            	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:772:27: ( '*' | '/' | '%' ) unaryExpression
+            	    {
+            	    if ( input.LA(1)==29||(input.LA(1)>=106 && input.LA(1)<=107) ) {
+            	        input.consume();
+            	        errorRecovery=false;failed=false;
+            	    }
+            	    else {
+            	        if (backtracking>0) {failed=true; return ;}
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression3356);    throw mse;
+            	    }
+
+            	    pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression3370);
+            	    unaryExpression();
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop143;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 114, multiplicativeExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end multiplicativeExpression
+
+
+    // $ANTLR start unaryExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:775:1: unaryExpression : ( '+' unaryExpression | '-' unaryExpression | '++' primary | '--' primary | unaryExpressionNotPlusMinus );
+    public final void unaryExpression() throws RecognitionException {
+        int unaryExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 115) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:776:9: ( '+' unaryExpression | '-' unaryExpression | '++' primary | '--' primary | unaryExpressionNotPlusMinus )
+            int alt144=5;
+            switch ( input.LA(1) ) {
+            case 104:
+                {
+                alt144=1;
+                }
+                break;
+            case 105:
+                {
+                alt144=2;
+                }
+                break;
+            case 108:
+                {
+                alt144=3;
+                }
+                break;
+            case 109:
+                {
+                alt144=4;
+                }
+                break;
+            case Identifier:
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 33:
+            case 40:
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+            case 64:
+            case 65:
+            case 68:
+            case 69:
+            case 70:
+            case 110:
+            case 111:
+            case 112:
+            case 113:
+                {
+                alt144=5;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("775:1: unaryExpression : ( '+' unaryExpression | '-' unaryExpression | '++' primary | '--' primary | unaryExpressionNotPlusMinus );", 144, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt144) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:776:9: '+' unaryExpression
+                    {
+                    match(input,104,FOLLOW_104_in_unaryExpression3390); if (failed) return ;
+                    pushFollow(FOLLOW_unaryExpression_in_unaryExpression3392);
+                    unaryExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:777:7: '-' unaryExpression
+                    {
+                    match(input,105,FOLLOW_105_in_unaryExpression3400); if (failed) return ;
+                    pushFollow(FOLLOW_unaryExpression_in_unaryExpression3402);
+                    unaryExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:778:9: '++' primary
+                    {
+                    match(input,108,FOLLOW_108_in_unaryExpression3412); if (failed) return ;
+                    pushFollow(FOLLOW_primary_in_unaryExpression3414);
+                    primary();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:779:9: '--' primary
+                    {
+                    match(input,109,FOLLOW_109_in_unaryExpression3424); if (failed) return ;
+                    pushFollow(FOLLOW_primary_in_unaryExpression3426);
+                    primary();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:780:9: unaryExpressionNotPlusMinus
+                    {
+                    pushFollow(FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression3436);
+                    unaryExpressionNotPlusMinus();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 115, unaryExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end unaryExpression
+
+
+    // $ANTLR start unaryExpressionNotPlusMinus
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );
+    public final void unaryExpressionNotPlusMinus() throws RecognitionException {
+        int unaryExpressionNotPlusMinus_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 116) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:784:9: ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? )
+            int alt147=4;
+            switch ( input.LA(1) ) {
+            case 110:
+                {
+                alt147=1;
+                }
+                break;
+            case 111:
+                {
+                alt147=2;
+                }
+                break;
+            case 65:
+                {
+                switch ( input.LA(2) ) {
+                case 55:
+                case 56:
+                case 57:
+                case 58:
+                case 59:
+                case 60:
+                case 61:
+                case 62:
+                    {
+                    int LA147_17 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 17, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case Identifier:
+                    {
+                    int LA147_18 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 18, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 104:
+                    {
+                    int LA147_19 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 19, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 105:
+                    {
+                    int LA147_20 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 20, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 108:
+                    {
+                    int LA147_21 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 21, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 109:
+                    {
+                    int LA147_22 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 22, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 110:
+                    {
+                    int LA147_23 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 23, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 111:
+                    {
+                    int LA147_24 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 24, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 65:
+                    {
+                    int LA147_25 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 25, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 33:
+                    {
+                    int LA147_26 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 26, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 112:
+                    {
+                    int LA147_27 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 27, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 64:
+                    {
+                    int LA147_28 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 28, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case HexLiteral:
+                case OctalLiteral:
+                case DecimalLiteral:
+                    {
+                    int LA147_29 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 29, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case FloatingPointLiteral:
+                    {
+                    int LA147_30 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 30, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case CharacterLiteral:
+                    {
+                    int LA147_31 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 31, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case StringLiteral:
+                    {
+                    int LA147_32 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 32, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 69:
+                case 70:
+                    {
+                    int LA147_33 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 33, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 68:
+                    {
+                    int LA147_34 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 34, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 113:
+                    {
+                    int LA147_35 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 35, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                case 40:
+                    {
+                    int LA147_36 = input.LA(3);
+
+                    if ( (synpred223()) ) {
+                        alt147=3;
+                    }
+                    else if ( (true) ) {
+                        alt147=4;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 36, input);
+
+                        throw nvae;
+                    }
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 3, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            case Identifier:
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 33:
+            case 40:
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+            case 64:
+            case 68:
+            case 69:
+            case 70:
+            case 112:
+            case 113:
+                {
+                alt147=4;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("783:1: unaryExpressionNotPlusMinus : ( '~' unaryExpression | '!' unaryExpression | castExpression | primary ( selector )* ( '++' | '--' )? );", 147, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt147) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:784:9: '~' unaryExpression
+                    {
+                    match(input,110,FOLLOW_110_in_unaryExpressionNotPlusMinus3455); if (failed) return ;
+                    pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus3457);
+                    unaryExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:785:8: '!' unaryExpression
+                    {
+                    match(input,111,FOLLOW_111_in_unaryExpressionNotPlusMinus3466); if (failed) return ;
+                    pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus3468);
+                    unaryExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:786:9: castExpression
+                    {
+                    pushFollow(FOLLOW_castExpression_in_unaryExpressionNotPlusMinus3478);
+                    castExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:787:9: primary ( selector )* ( '++' | '--' )?
+                    {
+                    pushFollow(FOLLOW_primary_in_unaryExpressionNotPlusMinus3488);
+                    primary();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:787:17: ( selector )*
+                    loop145:
+                    do {
+                        int alt145=2;
+                        int LA145_0 = input.LA(1);
+
+                        if ( (LA145_0==28||LA145_0==41) ) {
+                            alt145=1;
+                        }
+
+
+                        switch (alt145) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: selector
+                    	    {
+                    	    pushFollow(FOLLOW_selector_in_unaryExpressionNotPlusMinus3490);
+                    	    selector();
+                    	    _fsp--;
+                    	    if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop145;
+                        }
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:787:27: ( '++' | '--' )?
+                    int alt146=2;
+                    int LA146_0 = input.LA(1);
+
+                    if ( ((LA146_0>=108 && LA146_0<=109)) ) {
+                        alt146=1;
+                    }
+                    switch (alt146) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:
+                            {
+                            if ( (input.LA(1)>=108 && input.LA(1)<=109) ) {
+                                input.consume();
+                                errorRecovery=false;failed=false;
+                            }
+                            else {
+                                if (backtracking>0) {failed=true; return ;}
+                                MismatchedSetException mse =
+                                    new MismatchedSetException(null,input);
+                                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_unaryExpressionNotPlusMinus3493);    throw mse;
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 116, unaryExpressionNotPlusMinus_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end unaryExpressionNotPlusMinus
+
+
+    // $ANTLR start castExpression
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:790:1: castExpression : ( '(' primitiveType ')' unaryExpression | '(' ( type | expression ) ')' unaryExpressionNotPlusMinus );
+    public final void castExpression() throws RecognitionException {
+        int castExpression_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 117) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:791:8: ( '(' primitiveType ')' unaryExpression | '(' ( type | expression ) ')' unaryExpressionNotPlusMinus )
+            int alt149=2;
+            int LA149_0 = input.LA(1);
+
+            if ( (LA149_0==65) ) {
+                int LA149_1 = input.LA(2);
+
+                if ( ((LA149_1>=55 && LA149_1<=62)) ) {
+                    int LA149_2 = input.LA(3);
+
+                    if ( (synpred227()) ) {
+                        alt149=1;
+                    }
+                    else if ( (true) ) {
+                        alt149=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("790:1: castExpression : ( '(' primitiveType ')' unaryExpression | '(' ( type | expression ) ')' unaryExpressionNotPlusMinus );", 149, 2, input);
+
+                        throw nvae;
+                    }
+                }
+                else if ( (LA149_1==Identifier||(LA149_1>=FloatingPointLiteral && LA149_1<=DecimalLiteral)||LA149_1==33||LA149_1==40||(LA149_1>=64 && LA149_1<=65)||(LA149_1>=68 && LA149_1<=70)||(LA149_1>=104 && LA149_1<=105)||(LA149_1>=108 && LA149_1<=113)) ) {
+                    alt149=2;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("790:1: castExpression : ( '(' primitiveType ')' unaryExpression | '(' ( type | expression ) ')' unaryExpressionNotPlusMinus );", 149, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("790:1: castExpression : ( '(' primitiveType ')' unaryExpression | '(' ( type | expression ) ')' unaryExpressionNotPlusMinus );", 149, 0, input);
+
+                throw nvae;
+            }
+            switch (alt149) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:791:8: '(' primitiveType ')' unaryExpression
+                    {
+                    match(input,65,FOLLOW_65_in_castExpression3516); if (failed) return ;
+                    pushFollow(FOLLOW_primitiveType_in_castExpression3518);
+                    primitiveType();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,66,FOLLOW_66_in_castExpression3520); if (failed) return ;
+                    pushFollow(FOLLOW_unaryExpression_in_castExpression3522);
+                    unaryExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:792:8: '(' ( type | expression ) ')' unaryExpressionNotPlusMinus
+                    {
+                    match(input,65,FOLLOW_65_in_castExpression3531); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:792:12: ( type | expression )
+                    int alt148=2;
+                    switch ( input.LA(1) ) {
+                    case Identifier:
+                        {
+                        int LA148_1 = input.LA(2);
+
+                        if ( (synpred228()) ) {
+                            alt148=1;
+                        }
+                        else if ( (true) ) {
+                            alt148=2;
+                        }
+                        else {
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("792:12: ( type | expression )", 148, 1, input);
+
+                            throw nvae;
+                        }
+                        }
+                        break;
+                    case 55:
+                    case 56:
+                    case 57:
+                    case 58:
+                    case 59:
+                    case 60:
+                    case 61:
+                    case 62:
+                        {
+                        switch ( input.LA(2) ) {
+                        case 41:
+                            {
+                            int LA148_48 = input.LA(3);
+
+                            if ( (synpred228()) ) {
+                                alt148=1;
+                            }
+                            else if ( (true) ) {
+                                alt148=2;
+                            }
+                            else {
+                                if (backtracking>0) {failed=true; return ;}
+                                NoViableAltException nvae =
+                                    new NoViableAltException("792:12: ( type | expression )", 148, 48, input);
+
+                                throw nvae;
+                            }
+                            }
+                            break;
+                        case 28:
+                            {
+                            alt148=2;
+                            }
+                            break;
+                        case 66:
+                            {
+                            alt148=1;
+                            }
+                            break;
+                        default:
+                            if (backtracking>0) {failed=true; return ;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("792:12: ( type | expression )", 148, 2, input);
+
+                            throw nvae;
+                        }
+
+                        }
+                        break;
+                    case FloatingPointLiteral:
+                    case CharacterLiteral:
+                    case StringLiteral:
+                    case HexLiteral:
+                    case OctalLiteral:
+                    case DecimalLiteral:
+                    case 33:
+                    case 40:
+                    case 64:
+                    case 65:
+                    case 68:
+                    case 69:
+                    case 70:
+                    case 104:
+                    case 105:
+                    case 108:
+                    case 109:
+                    case 110:
+                    case 111:
+                    case 112:
+                    case 113:
+                        {
+                        alt148=2;
+                        }
+                        break;
+                    default:
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("792:12: ( type | expression )", 148, 0, input);
+
+                        throw nvae;
+                    }
+
+                    switch (alt148) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:792:13: type
+                            {
+                            pushFollow(FOLLOW_type_in_castExpression3534);
+                            type();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+                        case 2 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:792:20: expression
+                            {
+                            pushFollow(FOLLOW_expression_in_castExpression3538);
+                            expression();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,66,FOLLOW_66_in_castExpression3541); if (failed) return ;
+                    pushFollow(FOLLOW_unaryExpressionNotPlusMinus_in_castExpression3543);
+                    unaryExpressionNotPlusMinus();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 117, castExpression_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end castExpression
+
+
+    // $ANTLR start primary
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:795:1: primary : ( parExpression | nonWildcardTypeArguments ( explicitGenericInvocationSuffix | 'this' arguments ) | 'this' ( '.' Identifier )* ( identifierSuffix )? | 'super' superSuffix | literal | 'new' creator | i= Identifier ( '.' Identifier )* ( identifierSuffix )? | primitiveType ( '[' ']' )* '.' 'class' | 'void' '.' 'class' );
+    public final void primary() throws RecognitionException {
+        int primary_StartIndex = input.index();
+        Token i=null;
+
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 118) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:796:7: ( parExpression | nonWildcardTypeArguments ( explicitGenericInvocationSuffix | 'this' arguments ) | 'this' ( '.' Identifier )* ( identifierSuffix )? | 'super' superSuffix | literal | 'new' creator | i= Identifier ( '.' Identifier )* ( identifierSuffix )? | primitiveType ( '[' ']' )* '.' 'class' | 'void' '.' 'class' )
+            int alt156=9;
+            switch ( input.LA(1) ) {
+            case 65:
+                {
+                alt156=1;
+                }
+                break;
+            case 33:
+                {
+                alt156=2;
+                }
+                break;
+            case 112:
+                {
+                alt156=3;
+                }
+                break;
+            case 64:
+                {
+                alt156=4;
+                }
+                break;
+            case FloatingPointLiteral:
+            case CharacterLiteral:
+            case StringLiteral:
+            case HexLiteral:
+            case OctalLiteral:
+            case DecimalLiteral:
+            case 68:
+            case 69:
+            case 70:
+                {
+                alt156=5;
+                }
+                break;
+            case 113:
+                {
+                alt156=6;
+                }
+                break;
+            case Identifier:
+                {
+                alt156=7;
+                }
+                break;
+            case 55:
+            case 56:
+            case 57:
+            case 58:
+            case 59:
+            case 60:
+            case 61:
+            case 62:
+                {
+                alt156=8;
+                }
+                break;
+            case 40:
+                {
+                alt156=9;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("795:1: primary : ( parExpression | nonWildcardTypeArguments ( explicitGenericInvocationSuffix | 'this' arguments ) | 'this' ( '.' Identifier )* ( identifierSuffix )? | 'super' superSuffix | literal | 'new' creator | i= Identifier ( '.' Identifier )* ( identifierSuffix )? | primitiveType ( '[' ']' )* '.' 'class' | 'void' '.' 'class' );", 156, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt156) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:796:7: parExpression
+                    {
+                    pushFollow(FOLLOW_parExpression_in_primary3560);
+                    parExpression();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:797:9: nonWildcardTypeArguments ( explicitGenericInvocationSuffix | 'this' arguments )
+                    {
+                    pushFollow(FOLLOW_nonWildcardTypeArguments_in_primary3570);
+                    nonWildcardTypeArguments();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:798:9: ( explicitGenericInvocationSuffix | 'this' arguments )
+                    int alt150=2;
+                    int LA150_0 = input.LA(1);
+
+                    if ( (LA150_0==Identifier||LA150_0==64) ) {
+                        alt150=1;
+                    }
+                    else if ( (LA150_0==112) ) {
+                        alt150=2;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("798:9: ( explicitGenericInvocationSuffix | 'this' arguments )", 150, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt150) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:798:10: explicitGenericInvocationSuffix
+                            {
+                            pushFollow(FOLLOW_explicitGenericInvocationSuffix_in_primary3581);
+                            explicitGenericInvocationSuffix();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+                        case 2 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:798:44: 'this' arguments
+                            {
+                            match(input,112,FOLLOW_112_in_primary3585); if (failed) return ;
+                            pushFollow(FOLLOW_arguments_in_primary3587);
+                            arguments();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:9: 'this' ( '.' Identifier )* ( identifierSuffix )?
+                    {
+                    match(input,112,FOLLOW_112_in_primary3598); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:16: ( '.' Identifier )*
+                    loop151:
+                    do {
+                        int alt151=2;
+                        int LA151_0 = input.LA(1);
+
+                        if ( (LA151_0==28) ) {
+                            int LA151_3 = input.LA(2);
+
+                            if ( (LA151_3==Identifier) ) {
+                                int LA151_35 = input.LA(3);
+
+                                if ( (synpred232()) ) {
+                                    alt151=1;
+                                }
+
+
+                            }
+
+
+                        }
+
+
+                        switch (alt151) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:17: '.' Identifier
+                    	    {
+                    	    match(input,28,FOLLOW_28_in_primary3601); if (failed) return ;
+                    	    match(input,Identifier,FOLLOW_Identifier_in_primary3603); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop151;
+                        }
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:34: ( identifierSuffix )?
+                    int alt152=2;
+                    switch ( input.LA(1) ) {
+                        case 41:
+                            {
+                            switch ( input.LA(2) ) {
+                                case 42:
+                                    {
+                                    alt152=1;
+                                    }
+                                    break;
+                                case 104:
+                                    {
+                                    int LA152_34 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 105:
+                                    {
+                                    int LA152_35 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 108:
+                                    {
+                                    int LA152_36 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 109:
+                                    {
+                                    int LA152_37 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 110:
+                                    {
+                                    int LA152_38 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 111:
+                                    {
+                                    int LA152_39 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 65:
+                                    {
+                                    int LA152_40 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 33:
+                                    {
+                                    int LA152_41 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 112:
+                                    {
+                                    int LA152_42 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 64:
+                                    {
+                                    int LA152_43 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case HexLiteral:
+                                case OctalLiteral:
+                                case DecimalLiteral:
+                                    {
+                                    int LA152_44 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case FloatingPointLiteral:
+                                    {
+                                    int LA152_45 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case CharacterLiteral:
+                                    {
+                                    int LA152_46 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case StringLiteral:
+                                    {
+                                    int LA152_47 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 69:
+                                case 70:
+                                    {
+                                    int LA152_48 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 68:
+                                    {
+                                    int LA152_49 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 113:
+                                    {
+                                    int LA152_50 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case Identifier:
+                                    {
+                                    int LA152_51 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 55:
+                                case 56:
+                                case 57:
+                                case 58:
+                                case 59:
+                                case 60:
+                                case 61:
+                                case 62:
+                                    {
+                                    int LA152_52 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 40:
+                                    {
+                                    int LA152_53 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                            }
+
+                            }
+                            break;
+                        case 65:
+                            {
+                            alt152=1;
+                            }
+                            break;
+                        case 28:
+                            {
+                            switch ( input.LA(2) ) {
+                                case 112:
+                                    {
+                                    int LA152_54 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 30:
+                                case 33:
+                                    {
+                                    alt152=1;
+                                    }
+                                    break;
+                                case 64:
+                                    {
+                                    int LA152_56 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                                case 113:
+                                    {
+                                    int LA152_57 = input.LA(3);
+
+                                    if ( (synpred233()) ) {
+                                        alt152=1;
+                                    }
+                                    }
+                                    break;
+                            }
+
+                            }
+                            break;
+                    }
+
+                    switch (alt152) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:35: identifierSuffix
+                            {
+                            pushFollow(FOLLOW_identifierSuffix_in_primary3608);
+                            identifierSuffix();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:800:9: 'super' superSuffix
+                    {
+                    match(input,64,FOLLOW_64_in_primary3620); if (failed) return ;
+                    pushFollow(FOLLOW_superSuffix_in_primary3622);
+                    superSuffix();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:801:9: literal
+                    {
+                    pushFollow(FOLLOW_literal_in_primary3632);
+                    literal();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:802:9: 'new' creator
+                    {
+                    match(input,113,FOLLOW_113_in_primary3642); if (failed) return ;
+                    pushFollow(FOLLOW_creator_in_primary3644);
+                    creator();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 7 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:9: i= Identifier ( '.' Identifier )* ( identifierSuffix )?
+                    {
+                    i=(Token)input.LT(1);
+                    match(input,Identifier,FOLLOW_Identifier_in_primary3656); if (failed) return ;
+                    if ( backtracking==0 ) {
+                       identifiers.add( i.getText() );  
+                    }
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:55: ( '.' Identifier )*
+                    loop153:
+                    do {
+                        int alt153=2;
+                        int LA153_0 = input.LA(1);
+
+                        if ( (LA153_0==28) ) {
+                            int LA153_3 = input.LA(2);
+
+                            if ( (LA153_3==Identifier) ) {
+                                int LA153_36 = input.LA(3);
+
+                                if ( (synpred238()) ) {
+                                    alt153=1;
+                                }
+
+
+                            }
+
+
+                        }
+
+
+                        switch (alt153) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:56: '.' Identifier
+                    	    {
+                    	    match(input,28,FOLLOW_28_in_primary3661); if (failed) return ;
+                    	    match(input,Identifier,FOLLOW_Identifier_in_primary3663); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop153;
+                        }
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:73: ( identifierSuffix )?
+                    int alt154=2;
+                    switch ( input.LA(1) ) {
+                        case 41:
+                            {
+                            switch ( input.LA(2) ) {
+                                case 42:
+                                    {
+                                    alt154=1;
+                                    }
+                                    break;
+                                case 104:
+                                    {
+                                    int LA154_34 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 105:
+                                    {
+                                    int LA154_35 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 108:
+                                    {
+                                    int LA154_36 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 109:
+                                    {
+                                    int LA154_37 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 110:
+                                    {
+                                    int LA154_38 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 111:
+                                    {
+                                    int LA154_39 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 65:
+                                    {
+                                    int LA154_40 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 33:
+                                    {
+                                    int LA154_41 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 112:
+                                    {
+                                    int LA154_42 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 64:
+                                    {
+                                    int LA154_43 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case HexLiteral:
+                                case OctalLiteral:
+                                case DecimalLiteral:
+                                    {
+                                    int LA154_44 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case FloatingPointLiteral:
+                                    {
+                                    int LA154_45 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case CharacterLiteral:
+                                    {
+                                    int LA154_46 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case StringLiteral:
+                                    {
+                                    int LA154_47 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 69:
+                                case 70:
+                                    {
+                                    int LA154_48 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 68:
+                                    {
+                                    int LA154_49 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 113:
+                                    {
+                                    int LA154_50 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case Identifier:
+                                    {
+                                    int LA154_51 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 55:
+                                case 56:
+                                case 57:
+                                case 58:
+                                case 59:
+                                case 60:
+                                case 61:
+                                case 62:
+                                    {
+                                    int LA154_52 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 40:
+                                    {
+                                    int LA154_53 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                            }
+
+                            }
+                            break;
+                        case 65:
+                            {
+                            alt154=1;
+                            }
+                            break;
+                        case 28:
+                            {
+                            switch ( input.LA(2) ) {
+                                case 64:
+                                    {
+                                    int LA154_54 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 113:
+                                    {
+                                    int LA154_55 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 112:
+                                    {
+                                    int LA154_56 = input.LA(3);
+
+                                    if ( (synpred239()) ) {
+                                        alt154=1;
+                                    }
+                                    }
+                                    break;
+                                case 30:
+                                case 33:
+                                    {
+                                    alt154=1;
+                                    }
+                                    break;
+                            }
+
+                            }
+                            break;
+                    }
+
+                    switch (alt154) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:74: identifierSuffix
+                            {
+                            pushFollow(FOLLOW_identifierSuffix_in_primary3668);
+                            identifierSuffix();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:804:9: primitiveType ( '[' ']' )* '.' 'class'
+                    {
+                    pushFollow(FOLLOW_primitiveType_in_primary3680);
+                    primitiveType();
+                    _fsp--;
+                    if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:804:23: ( '[' ']' )*
+                    loop155:
+                    do {
+                        int alt155=2;
+                        int LA155_0 = input.LA(1);
+
+                        if ( (LA155_0==41) ) {
+                            alt155=1;
+                        }
+
+
+                        switch (alt155) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:804:24: '[' ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_primary3683); if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_primary3685); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop155;
+                        }
+                    } while (true);
+
+                    match(input,28,FOLLOW_28_in_primary3689); if (failed) return ;
+                    match(input,30,FOLLOW_30_in_primary3691); if (failed) return ;
+
+                    }
+                    break;
+                case 9 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:805:9: 'void' '.' 'class'
+                    {
+                    match(input,40,FOLLOW_40_in_primary3701); if (failed) return ;
+                    match(input,28,FOLLOW_28_in_primary3703); if (failed) return ;
+                    match(input,30,FOLLOW_30_in_primary3705); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 118, primary_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end primary
+
+
+    // $ANTLR start identifierSuffix
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:808:1: identifierSuffix : ( ( '[' ']' )+ '.' 'class' | ( '[' expression ']' )+ | arguments | '.' 'class' | '.' explicitGenericInvocation | '.' 'this' | '.' 'super' arguments | '.' 'new' ( nonWildcardTypeArguments )? innerCreator );
+    public final void identifierSuffix() throws RecognitionException {
+        int identifierSuffix_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 119) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:809:4: ( ( '[' ']' )+ '.' 'class' | ( '[' expression ']' )+ | arguments | '.' 'class' | '.' explicitGenericInvocation | '.' 'this' | '.' 'super' arguments | '.' 'new' ( nonWildcardTypeArguments )? innerCreator )
+            int alt160=8;
+            switch ( input.LA(1) ) {
+            case 41:
+                {
+                int LA160_1 = input.LA(2);
+
+                if ( (LA160_1==42) ) {
+                    alt160=1;
+                }
+                else if ( (LA160_1==Identifier||(LA160_1>=FloatingPointLiteral && LA160_1<=DecimalLiteral)||LA160_1==33||LA160_1==40||(LA160_1>=55 && LA160_1<=62)||(LA160_1>=64 && LA160_1<=65)||(LA160_1>=68 && LA160_1<=70)||(LA160_1>=104 && LA160_1<=105)||(LA160_1>=108 && LA160_1<=113)) ) {
+                    alt160=2;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("808:1: identifierSuffix : ( ( '[' ']' )+ '.' 'class' | ( '[' expression ']' )+ | arguments | '.' 'class' | '.' explicitGenericInvocation | '.' 'this' | '.' 'super' arguments | '.' 'new' ( nonWildcardTypeArguments )? innerCreator );", 160, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 65:
+                {
+                alt160=3;
+                }
+                break;
+            case 28:
+                {
+                switch ( input.LA(2) ) {
+                case 113:
+                    {
+                    alt160=8;
+                    }
+                    break;
+                case 64:
+                    {
+                    alt160=7;
+                    }
+                    break;
+                case 30:
+                    {
+                    alt160=4;
+                    }
+                    break;
+                case 112:
+                    {
+                    alt160=6;
+                    }
+                    break;
+                case 33:
+                    {
+                    alt160=5;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("808:1: identifierSuffix : ( ( '[' ']' )+ '.' 'class' | ( '[' expression ']' )+ | arguments | '.' 'class' | '.' explicitGenericInvocation | '.' 'this' | '.' 'super' arguments | '.' 'new' ( nonWildcardTypeArguments )? innerCreator );", 160, 3, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("808:1: identifierSuffix : ( ( '[' ']' )+ '.' 'class' | ( '[' expression ']' )+ | arguments | '.' 'class' | '.' explicitGenericInvocation | '.' 'this' | '.' 'super' arguments | '.' 'new' ( nonWildcardTypeArguments )? innerCreator );", 160, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt160) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:809:4: ( '[' ']' )+ '.' 'class'
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:809:4: ( '[' ']' )+
+                    int cnt157=0;
+                    loop157:
+                    do {
+                        int alt157=2;
+                        int LA157_0 = input.LA(1);
+
+                        if ( (LA157_0==41) ) {
+                            alt157=1;
+                        }
+
+
+                        switch (alt157) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:809:5: '[' ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_identifierSuffix3717); if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_identifierSuffix3719); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt157 >= 1 ) break loop157;
+                    	    if (backtracking>0) {failed=true; return ;}
+                                EarlyExitException eee =
+                                    new EarlyExitException(157, input);
+                                throw eee;
+                        }
+                        cnt157++;
+                    } while (true);
+
+                    match(input,28,FOLLOW_28_in_identifierSuffix3723); if (failed) return ;
+                    match(input,30,FOLLOW_30_in_identifierSuffix3725); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:810:4: ( '[' expression ']' )+
+                    {
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:810:4: ( '[' expression ']' )+
+                    int cnt158=0;
+                    loop158:
+                    do {
+                        int alt158=2;
+                        int LA158_0 = input.LA(1);
+
+                        if ( (LA158_0==41) ) {
+                            switch ( input.LA(2) ) {
+                            case 104:
+                                {
+                                int LA158_32 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 105:
+                                {
+                                int LA158_33 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 108:
+                                {
+                                int LA158_34 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 109:
+                                {
+                                int LA158_35 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 110:
+                                {
+                                int LA158_36 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 111:
+                                {
+                                int LA158_37 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 65:
+                                {
+                                int LA158_38 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 33:
+                                {
+                                int LA158_39 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 112:
+                                {
+                                int LA158_40 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 64:
+                                {
+                                int LA158_41 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case HexLiteral:
+                            case OctalLiteral:
+                            case DecimalLiteral:
+                                {
+                                int LA158_42 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case FloatingPointLiteral:
+                                {
+                                int LA158_43 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case CharacterLiteral:
+                                {
+                                int LA158_44 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case StringLiteral:
+                                {
+                                int LA158_45 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 69:
+                            case 70:
+                                {
+                                int LA158_46 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 68:
+                                {
+                                int LA158_47 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 113:
+                                {
+                                int LA158_48 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case Identifier:
+                                {
+                                int LA158_49 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 55:
+                            case 56:
+                            case 57:
+                            case 58:
+                            case 59:
+                            case 60:
+                            case 61:
+                            case 62:
+                                {
+                                int LA158_50 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+                            case 40:
+                                {
+                                int LA158_51 = input.LA(3);
+
+                                if ( (synpred245()) ) {
+                                    alt158=1;
+                                }
+
+
+                                }
+                                break;
+
+                            }
+
+                        }
+
+
+                        switch (alt158) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:810:5: '[' expression ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_identifierSuffix3731); if (failed) return ;
+                    	    pushFollow(FOLLOW_expression_in_identifierSuffix3733);
+                    	    expression();
+                    	    _fsp--;
+                    	    if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_identifierSuffix3735); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt158 >= 1 ) break loop158;
+                    	    if (backtracking>0) {failed=true; return ;}
+                                EarlyExitException eee =
+                                    new EarlyExitException(158, input);
+                                throw eee;
+                        }
+                        cnt158++;
+                    } while (true);
+
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:811:9: arguments
+                    {
+                    pushFollow(FOLLOW_arguments_in_identifierSuffix3748);
+                    arguments();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:812:9: '.' 'class'
+                    {
+                    match(input,28,FOLLOW_28_in_identifierSuffix3758); if (failed) return ;
+                    match(input,30,FOLLOW_30_in_identifierSuffix3760); if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:813:9: '.' explicitGenericInvocation
+                    {
+                    match(input,28,FOLLOW_28_in_identifierSuffix3770); if (failed) return ;
+                    pushFollow(FOLLOW_explicitGenericInvocation_in_identifierSuffix3772);
+                    explicitGenericInvocation();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:814:9: '.' 'this'
+                    {
+                    match(input,28,FOLLOW_28_in_identifierSuffix3782); if (failed) return ;
+                    match(input,112,FOLLOW_112_in_identifierSuffix3784); if (failed) return ;
+
+                    }
+                    break;
+                case 7 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:815:9: '.' 'super' arguments
+                    {
+                    match(input,28,FOLLOW_28_in_identifierSuffix3794); if (failed) return ;
+                    match(input,64,FOLLOW_64_in_identifierSuffix3796); if (failed) return ;
+                    pushFollow(FOLLOW_arguments_in_identifierSuffix3798);
+                    arguments();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 8 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:816:9: '.' 'new' ( nonWildcardTypeArguments )? innerCreator
+                    {
+                    match(input,28,FOLLOW_28_in_identifierSuffix3808); if (failed) return ;
+                    match(input,113,FOLLOW_113_in_identifierSuffix3810); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:816:19: ( nonWildcardTypeArguments )?
+                    int alt159=2;
+                    int LA159_0 = input.LA(1);
+
+                    if ( (LA159_0==33) ) {
+                        alt159=1;
+                    }
+                    switch (alt159) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:816:20: nonWildcardTypeArguments
+                            {
+                            pushFollow(FOLLOW_nonWildcardTypeArguments_in_identifierSuffix3813);
+                            nonWildcardTypeArguments();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    pushFollow(FOLLOW_innerCreator_in_identifierSuffix3817);
+                    innerCreator();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 119, identifierSuffix_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end identifierSuffix
+
+
+    // $ANTLR start creator
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:819:1: creator : ( nonWildcardTypeArguments )? createdName ( arrayCreatorRest | classCreatorRest ) ;
+    public final void creator() throws RecognitionException {
+        int creator_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 120) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:820:4: ( ( nonWildcardTypeArguments )? createdName ( arrayCreatorRest | classCreatorRest ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:820:4: ( nonWildcardTypeArguments )? createdName ( arrayCreatorRest | classCreatorRest )
+            {
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:820:4: ( nonWildcardTypeArguments )?
+            int alt161=2;
+            int LA161_0 = input.LA(1);
+
+            if ( (LA161_0==33) ) {
+                alt161=1;
+            }
+            switch (alt161) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: nonWildcardTypeArguments
+                    {
+                    pushFollow(FOLLOW_nonWildcardTypeArguments_in_creator3829);
+                    nonWildcardTypeArguments();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            pushFollow(FOLLOW_createdName_in_creator3832);
+            createdName();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:821:9: ( arrayCreatorRest | classCreatorRest )
+            int alt162=2;
+            int LA162_0 = input.LA(1);
+
+            if ( (LA162_0==41) ) {
+                alt162=1;
+            }
+            else if ( (LA162_0==65) ) {
+                alt162=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("821:9: ( arrayCreatorRest | classCreatorRest )", 162, 0, input);
+
+                throw nvae;
+            }
+            switch (alt162) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:821:10: arrayCreatorRest
+                    {
+                    pushFollow(FOLLOW_arrayCreatorRest_in_creator3843);
+                    arrayCreatorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:821:29: classCreatorRest
+                    {
+                    pushFollow(FOLLOW_classCreatorRest_in_creator3847);
+                    classCreatorRest();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 120, creator_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end creator
+
+
+    // $ANTLR start createdName
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:824:1: createdName : ( Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* | primitiveType );
+    public final void createdName() throws RecognitionException {
+        int createdName_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 121) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:825:4: ( Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* | primitiveType )
+            int alt166=2;
+            int LA166_0 = input.LA(1);
+
+            if ( (LA166_0==Identifier) ) {
+                alt166=1;
+            }
+            else if ( ((LA166_0>=55 && LA166_0<=62)) ) {
+                alt166=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("824:1: createdName : ( Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* | primitiveType );", 166, 0, input);
+
+                throw nvae;
+            }
+            switch (alt166) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:825:4: Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )*
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_createdName3859); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:825:15: ( typeArguments )?
+                    int alt163=2;
+                    int LA163_0 = input.LA(1);
+
+                    if ( (LA163_0==33) ) {
+                        alt163=1;
+                    }
+                    switch (alt163) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: typeArguments
+                            {
+                            pushFollow(FOLLOW_typeArguments_in_createdName3861);
+                            typeArguments();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:826:9: ( '.' Identifier ( typeArguments )? )*
+                    loop165:
+                    do {
+                        int alt165=2;
+                        int LA165_0 = input.LA(1);
+
+                        if ( (LA165_0==28) ) {
+                            alt165=1;
+                        }
+
+
+                        switch (alt165) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:826:10: '.' Identifier ( typeArguments )?
+                    	    {
+                    	    match(input,28,FOLLOW_28_in_createdName3873); if (failed) return ;
+                    	    match(input,Identifier,FOLLOW_Identifier_in_createdName3875); if (failed) return ;
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:826:25: ( typeArguments )?
+                    	    int alt164=2;
+                    	    int LA164_0 = input.LA(1);
+
+                    	    if ( (LA164_0==33) ) {
+                    	        alt164=1;
+                    	    }
+                    	    switch (alt164) {
+                    	        case 1 :
+                    	            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: typeArguments
+                    	            {
+                    	            pushFollow(FOLLOW_typeArguments_in_createdName3877);
+                    	            typeArguments();
+                    	            _fsp--;
+                    	            if (failed) return ;
+
+                    	            }
+                    	            break;
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop165;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:827:7: primitiveType
+                    {
+                    pushFollow(FOLLOW_primitiveType_in_createdName3888);
+                    primitiveType();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 121, createdName_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end createdName
+
+
+    // $ANTLR start innerCreator
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:830:1: innerCreator : Identifier classCreatorRest ;
+    public final void innerCreator() throws RecognitionException {
+        int innerCreator_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 122) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:831:4: ( Identifier classCreatorRest )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:831:4: Identifier classCreatorRest
+            {
+            match(input,Identifier,FOLLOW_Identifier_in_innerCreator3900); if (failed) return ;
+            pushFollow(FOLLOW_classCreatorRest_in_innerCreator3902);
+            classCreatorRest();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 122, innerCreator_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end innerCreator
+
+
+    // $ANTLR start arrayCreatorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:834:1: arrayCreatorRest : '[' ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* ) ;
+    public final void arrayCreatorRest() throws RecognitionException {
+        int arrayCreatorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 123) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:835:4: ( '[' ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* ) )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:835:4: '[' ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* )
+            {
+            match(input,41,FOLLOW_41_in_arrayCreatorRest3913); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:836:9: ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* )
+            int alt170=2;
+            int LA170_0 = input.LA(1);
+
+            if ( (LA170_0==42) ) {
+                alt170=1;
+            }
+            else if ( (LA170_0==Identifier||(LA170_0>=FloatingPointLiteral && LA170_0<=DecimalLiteral)||LA170_0==33||LA170_0==40||(LA170_0>=55 && LA170_0<=62)||(LA170_0>=64 && LA170_0<=65)||(LA170_0>=68 && LA170_0<=70)||(LA170_0>=104 && LA170_0<=105)||(LA170_0>=108 && LA170_0<=113)) ) {
+                alt170=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("836:9: ( ']' ( '[' ']' )* arrayInitializer | expression ']' ( '[' expression ']' )* ( '[' ']' )* )", 170, 0, input);
+
+                throw nvae;
+            }
+            switch (alt170) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:836:13: ']' ( '[' ']' )* arrayInitializer
+                    {
+                    match(input,42,FOLLOW_42_in_arrayCreatorRest3927); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:836:17: ( '[' ']' )*
+                    loop167:
+                    do {
+                        int alt167=2;
+                        int LA167_0 = input.LA(1);
+
+                        if ( (LA167_0==41) ) {
+                            alt167=1;
+                        }
+
+
+                        switch (alt167) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:836:18: '[' ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_arrayCreatorRest3930); if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_arrayCreatorRest3932); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop167;
+                        }
+                    } while (true);
+
+                    pushFollow(FOLLOW_arrayInitializer_in_arrayCreatorRest3936);
+                    arrayInitializer();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:837:13: expression ']' ( '[' expression ']' )* ( '[' ']' )*
+                    {
+                    pushFollow(FOLLOW_expression_in_arrayCreatorRest3950);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,42,FOLLOW_42_in_arrayCreatorRest3952); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:837:28: ( '[' expression ']' )*
+                    loop168:
+                    do {
+                        int alt168=2;
+                        int LA168_0 = input.LA(1);
+
+                        if ( (LA168_0==41) ) {
+                            switch ( input.LA(2) ) {
+                            case 104:
+                                {
+                                int LA168_33 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 105:
+                                {
+                                int LA168_34 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 108:
+                                {
+                                int LA168_35 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 109:
+                                {
+                                int LA168_36 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 110:
+                                {
+                                int LA168_37 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 111:
+                                {
+                                int LA168_38 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 65:
+                                {
+                                int LA168_39 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 33:
+                                {
+                                int LA168_40 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 112:
+                                {
+                                int LA168_41 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 64:
+                                {
+                                int LA168_42 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case HexLiteral:
+                            case OctalLiteral:
+                            case DecimalLiteral:
+                                {
+                                int LA168_43 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case FloatingPointLiteral:
+                                {
+                                int LA168_44 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case CharacterLiteral:
+                                {
+                                int LA168_45 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case StringLiteral:
+                                {
+                                int LA168_46 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 69:
+                            case 70:
+                                {
+                                int LA168_47 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 68:
+                                {
+                                int LA168_48 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 113:
+                                {
+                                int LA168_49 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case Identifier:
+                                {
+                                int LA168_50 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 55:
+                            case 56:
+                            case 57:
+                            case 58:
+                            case 59:
+                            case 60:
+                            case 61:
+                            case 62:
+                                {
+                                int LA168_51 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+                            case 40:
+                                {
+                                int LA168_52 = input.LA(3);
+
+                                if ( (synpred261()) ) {
+                                    alt168=1;
+                                }
+
+
+                                }
+                                break;
+
+                            }
+
+                        }
+
+
+                        switch (alt168) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:837:29: '[' expression ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_arrayCreatorRest3955); if (failed) return ;
+                    	    pushFollow(FOLLOW_expression_in_arrayCreatorRest3957);
+                    	    expression();
+                    	    _fsp--;
+                    	    if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_arrayCreatorRest3959); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop168;
+                        }
+                    } while (true);
+
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:837:50: ( '[' ']' )*
+                    loop169:
+                    do {
+                        int alt169=2;
+                        int LA169_0 = input.LA(1);
+
+                        if ( (LA169_0==41) ) {
+                            int LA169_30 = input.LA(2);
+
+                            if ( (LA169_30==42) ) {
+                                alt169=1;
+                            }
+
+
+                        }
+
+
+                        switch (alt169) {
+                    	case 1 :
+                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:837:51: '[' ']'
+                    	    {
+                    	    match(input,41,FOLLOW_41_in_arrayCreatorRest3964); if (failed) return ;
+                    	    match(input,42,FOLLOW_42_in_arrayCreatorRest3966); if (failed) return ;
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop169;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 123, arrayCreatorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end arrayCreatorRest
+
+
+    // $ANTLR start classCreatorRest
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:841:1: classCreatorRest : arguments ( classBody )? ;
+    public final void classCreatorRest() throws RecognitionException {
+        int classCreatorRest_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 124) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:842:4: ( arguments ( classBody )? )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:842:4: arguments ( classBody )?
+            {
+            pushFollow(FOLLOW_arguments_in_classCreatorRest3989);
+            arguments();
+            _fsp--;
+            if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:842:14: ( classBody )?
+            int alt171=2;
+            int LA171_0 = input.LA(1);
+
+            if ( (LA171_0==37) ) {
+                alt171=1;
+            }
+            switch (alt171) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: classBody
+                    {
+                    pushFollow(FOLLOW_classBody_in_classCreatorRest3991);
+                    classBody();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 124, classCreatorRest_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end classCreatorRest
+
+
+    // $ANTLR start explicitGenericInvocation
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:845:1: explicitGenericInvocation : nonWildcardTypeArguments explicitGenericInvocationSuffix ;
+    public final void explicitGenericInvocation() throws RecognitionException {
+        int explicitGenericInvocation_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 125) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:846:4: ( nonWildcardTypeArguments explicitGenericInvocationSuffix )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:846:4: nonWildcardTypeArguments explicitGenericInvocationSuffix
+            {
+            pushFollow(FOLLOW_nonWildcardTypeArguments_in_explicitGenericInvocation4004);
+            nonWildcardTypeArguments();
+            _fsp--;
+            if (failed) return ;
+            pushFollow(FOLLOW_explicitGenericInvocationSuffix_in_explicitGenericInvocation4006);
+            explicitGenericInvocationSuffix();
+            _fsp--;
+            if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 125, explicitGenericInvocation_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end explicitGenericInvocation
+
+
+    // $ANTLR start nonWildcardTypeArguments
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:849:1: nonWildcardTypeArguments : '<' typeList '>' ;
+    public final void nonWildcardTypeArguments() throws RecognitionException {
+        int nonWildcardTypeArguments_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 126) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:850:4: ( '<' typeList '>' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:850:4: '<' typeList '>'
+            {
+            match(input,33,FOLLOW_33_in_nonWildcardTypeArguments4018); if (failed) return ;
+            pushFollow(FOLLOW_typeList_in_nonWildcardTypeArguments4020);
+            typeList();
+            _fsp--;
+            if (failed) return ;
+            match(input,35,FOLLOW_35_in_nonWildcardTypeArguments4022); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 126, nonWildcardTypeArguments_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end nonWildcardTypeArguments
+
+
+    // $ANTLR start explicitGenericInvocationSuffix
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:853:1: explicitGenericInvocationSuffix : ( 'super' superSuffix | Identifier arguments );
+    public final void explicitGenericInvocationSuffix() throws RecognitionException {
+        int explicitGenericInvocationSuffix_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 127) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:854:4: ( 'super' superSuffix | Identifier arguments )
+            int alt172=2;
+            int LA172_0 = input.LA(1);
+
+            if ( (LA172_0==64) ) {
+                alt172=1;
+            }
+            else if ( (LA172_0==Identifier) ) {
+                alt172=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("853:1: explicitGenericInvocationSuffix : ( 'super' superSuffix | Identifier arguments );", 172, 0, input);
+
+                throw nvae;
+            }
+            switch (alt172) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:854:4: 'super' superSuffix
+                    {
+                    match(input,64,FOLLOW_64_in_explicitGenericInvocationSuffix4034); if (failed) return ;
+                    pushFollow(FOLLOW_superSuffix_in_explicitGenericInvocationSuffix4036);
+                    superSuffix();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:855:6: Identifier arguments
+                    {
+                    match(input,Identifier,FOLLOW_Identifier_in_explicitGenericInvocationSuffix4043); if (failed) return ;
+                    pushFollow(FOLLOW_arguments_in_explicitGenericInvocationSuffix4045);
+                    arguments();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 127, explicitGenericInvocationSuffix_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end explicitGenericInvocationSuffix
+
+
+    // $ANTLR start selector
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:858:1: selector : ( '.' Identifier ( arguments )? | '.' 'this' | '.' 'super' superSuffix | '.' 'new' ( nonWildcardTypeArguments )? innerCreator | '[' expression ']' );
+    public final void selector() throws RecognitionException {
+        int selector_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 128) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:859:4: ( '.' Identifier ( arguments )? | '.' 'this' | '.' 'super' superSuffix | '.' 'new' ( nonWildcardTypeArguments )? innerCreator | '[' expression ']' )
+            int alt175=5;
+            int LA175_0 = input.LA(1);
+
+            if ( (LA175_0==28) ) {
+                switch ( input.LA(2) ) {
+                case 64:
+                    {
+                    alt175=3;
+                    }
+                    break;
+                case 113:
+                    {
+                    alt175=4;
+                    }
+                    break;
+                case Identifier:
+                    {
+                    alt175=1;
+                    }
+                    break;
+                case 112:
+                    {
+                    alt175=2;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("858:1: selector : ( '.' Identifier ( arguments )? | '.' 'this' | '.' 'super' superSuffix | '.' 'new' ( nonWildcardTypeArguments )? innerCreator | '[' expression ']' );", 175, 1, input);
+
+                    throw nvae;
+                }
+
+            }
+            else if ( (LA175_0==41) ) {
+                alt175=5;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("858:1: selector : ( '.' Identifier ( arguments )? | '.' 'this' | '.' 'super' superSuffix | '.' 'new' ( nonWildcardTypeArguments )? innerCreator | '[' expression ']' );", 175, 0, input);
+
+                throw nvae;
+            }
+            switch (alt175) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:859:4: '.' Identifier ( arguments )?
+                    {
+                    match(input,28,FOLLOW_28_in_selector4057); if (failed) return ;
+                    match(input,Identifier,FOLLOW_Identifier_in_selector4059); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:859:19: ( arguments )?
+                    int alt173=2;
+                    int LA173_0 = input.LA(1);
+
+                    if ( (LA173_0==65) ) {
+                        alt173=1;
+                    }
+                    switch (alt173) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:859:20: arguments
+                            {
+                            pushFollow(FOLLOW_arguments_in_selector4062);
+                            arguments();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:860:6: '.' 'this'
+                    {
+                    match(input,28,FOLLOW_28_in_selector4071); if (failed) return ;
+                    match(input,112,FOLLOW_112_in_selector4073); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:861:6: '.' 'super' superSuffix
+                    {
+                    match(input,28,FOLLOW_28_in_selector4080); if (failed) return ;
+                    match(input,64,FOLLOW_64_in_selector4082); if (failed) return ;
+                    pushFollow(FOLLOW_superSuffix_in_selector4084);
+                    superSuffix();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:862:6: '.' 'new' ( nonWildcardTypeArguments )? innerCreator
+                    {
+                    match(input,28,FOLLOW_28_in_selector4091); if (failed) return ;
+                    match(input,113,FOLLOW_113_in_selector4093); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:862:16: ( nonWildcardTypeArguments )?
+                    int alt174=2;
+                    int LA174_0 = input.LA(1);
+
+                    if ( (LA174_0==33) ) {
+                        alt174=1;
+                    }
+                    switch (alt174) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:862:17: nonWildcardTypeArguments
+                            {
+                            pushFollow(FOLLOW_nonWildcardTypeArguments_in_selector4096);
+                            nonWildcardTypeArguments();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    pushFollow(FOLLOW_innerCreator_in_selector4100);
+                    innerCreator();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:863:6: '[' expression ']'
+                    {
+                    match(input,41,FOLLOW_41_in_selector4107); if (failed) return ;
+                    pushFollow(FOLLOW_expression_in_selector4109);
+                    expression();
+                    _fsp--;
+                    if (failed) return ;
+                    match(input,42,FOLLOW_42_in_selector4111); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 128, selector_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end selector
+
+
+    // $ANTLR start superSuffix
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:866:1: superSuffix : ( arguments | '.' Identifier ( arguments )? );
+    public final void superSuffix() throws RecognitionException {
+        int superSuffix_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 129) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:867:4: ( arguments | '.' Identifier ( arguments )? )
+            int alt177=2;
+            int LA177_0 = input.LA(1);
+
+            if ( (LA177_0==65) ) {
+                alt177=1;
+            }
+            else if ( (LA177_0==28) ) {
+                alt177=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("866:1: superSuffix : ( arguments | '.' Identifier ( arguments )? );", 177, 0, input);
+
+                throw nvae;
+            }
+            switch (alt177) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:867:4: arguments
+                    {
+                    pushFollow(FOLLOW_arguments_in_superSuffix4123);
+                    arguments();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:868:6: '.' Identifier ( arguments )?
+                    {
+                    match(input,28,FOLLOW_28_in_superSuffix4130); if (failed) return ;
+                    match(input,Identifier,FOLLOW_Identifier_in_superSuffix4132); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:868:21: ( arguments )?
+                    int alt176=2;
+                    int LA176_0 = input.LA(1);
+
+                    if ( (LA176_0==65) ) {
+                        alt176=1;
+                    }
+                    switch (alt176) {
+                        case 1 :
+                            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:868:22: arguments
+                            {
+                            pushFollow(FOLLOW_arguments_in_superSuffix4135);
+                            arguments();
+                            _fsp--;
+                            if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 129, superSuffix_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end superSuffix
+
+
+    // $ANTLR start arguments
+    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:871:1: arguments : '(' ( expressionList )? ')' ;
+    public final void arguments() throws RecognitionException {
+        int arguments_StartIndex = input.index();
+        try {
+            if ( backtracking>0 && alreadyParsedRule(input, 130) ) { return ; }
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:872:4: ( '(' ( expressionList )? ')' )
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:872:4: '(' ( expressionList )? ')'
+            {
+            match(input,65,FOLLOW_65_in_arguments4151); if (failed) return ;
+            // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:872:8: ( expressionList )?
+            int alt178=2;
+            int LA178_0 = input.LA(1);
+
+            if ( (LA178_0==Identifier||(LA178_0>=FloatingPointLiteral && LA178_0<=DecimalLiteral)||LA178_0==33||LA178_0==40||(LA178_0>=55 && LA178_0<=62)||(LA178_0>=64 && LA178_0<=65)||(LA178_0>=68 && LA178_0<=70)||(LA178_0>=104 && LA178_0<=105)||(LA178_0>=108 && LA178_0<=113)) ) {
+                alt178=1;
+            }
+            switch (alt178) {
+                case 1 :
+                    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: expressionList
+                    {
+                    pushFollow(FOLLOW_expressionList_in_arguments4153);
+                    expressionList();
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            match(input,66,FOLLOW_66_in_arguments4156); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            if ( backtracking>0 ) { memoize(input, 130, arguments_StartIndex); }
+        }
+        return ;
+    }
+    // $ANTLR end arguments
+
+    // $ANTLR start synpred1
+    public final void synpred1_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:202:4: ( annotations )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:202:4: annotations
+        {
+        pushFollow(FOLLOW_annotations_in_synpred170);
+        annotations();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred1
+
+    // $ANTLR start synpred38
+    public final void synpred38_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:298:4: ( methodDeclaration )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:298:4: methodDeclaration
+        {
+        pushFollow(FOLLOW_methodDeclaration_in_synpred38577);
+        methodDeclaration();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred38
+
+    // $ANTLR start synpred39
+    public final void synpred39_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:299:4: ( fieldDeclaration )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:299:4: fieldDeclaration
+        {
+        pushFollow(FOLLOW_fieldDeclaration_in_synpred39582);
+        fieldDeclaration();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred39
+
+    // $ANTLR start synpred85
+    public final void synpred85_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:432:16: ( '.' Identifier )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:432:16: '.' Identifier
+        {
+        match(input,28,FOLLOW_28_in_synpred851363); if (failed) return ;
+        match(input,Identifier,FOLLOW_Identifier_in_synpred851365); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred85
+
+    // $ANTLR start synpred120
+    public final void synpred120_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:522:4: ( annotation )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:522:4: annotation
+        {
+        pushFollow(FOLLOW_annotation_in_synpred1201867);
+        annotation();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred120
+
+    // $ANTLR start synpred135
+    public final void synpred135_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:569:6: ( classDeclaration ( ';' )? )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:569:6: classDeclaration ( ';' )?
+        {
+        pushFollow(FOLLOW_classDeclaration_in_synpred1352097);
+        classDeclaration();
+        _fsp--;
+        if (failed) return ;
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:569:23: ( ';' )?
+        int alt194=2;
+        int LA194_0 = input.LA(1);
+
+        if ( (LA194_0==25) ) {
+            alt194=1;
+        }
+        switch (alt194) {
+            case 1 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ';'
+                {
+                match(input,25,FOLLOW_25_in_synpred1352099); if (failed) return ;
+
+                }
+                break;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred135
+
+    // $ANTLR start synpred137
+    public final void synpred137_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:570:6: ( interfaceDeclaration ( ';' )? )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:570:6: interfaceDeclaration ( ';' )?
+        {
+        pushFollow(FOLLOW_interfaceDeclaration_in_synpred1372107);
+        interfaceDeclaration();
+        _fsp--;
+        if (failed) return ;
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:570:27: ( ';' )?
+        int alt195=2;
+        int LA195_0 = input.LA(1);
+
+        if ( (LA195_0==25) ) {
+            alt195=1;
+        }
+        switch (alt195) {
+            case 1 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ';'
+                {
+                match(input,25,FOLLOW_25_in_synpred1372109); if (failed) return ;
+
+                }
+                break;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred137
+
+    // $ANTLR start synpred139
+    public final void synpred139_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:571:6: ( enumDeclaration ( ';' )? )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:571:6: enumDeclaration ( ';' )?
+        {
+        pushFollow(FOLLOW_enumDeclaration_in_synpred1392117);
+        enumDeclaration();
+        _fsp--;
+        if (failed) return ;
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:571:22: ( ';' )?
+        int alt196=2;
+        int LA196_0 = input.LA(1);
+
+        if ( (LA196_0==25) ) {
+            alt196=1;
+        }
+        switch (alt196) {
+            case 1 :
+                // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: ';'
+                {
+                match(input,25,FOLLOW_25_in_synpred1392119); if (failed) return ;
+
+                }
+                break;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred139
+
+    // $ANTLR start synpred144
+    public final void synpred144_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:599:4: ( localVariableDeclaration )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:599:4: localVariableDeclaration
+        {
+        pushFollow(FOLLOW_localVariableDeclaration_in_synpred1442234);
+        localVariableDeclaration();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred144
+
+    // $ANTLR start synpred145
+    public final void synpred145_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:600:4: ( classOrInterfaceDeclaration )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:600:4: classOrInterfaceDeclaration
+        {
+        pushFollow(FOLLOW_classOrInterfaceDeclaration_in_synpred1452239);
+        classOrInterfaceDeclaration();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred145
+
+    // $ANTLR start synpred150
+    public final void synpred150_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:611:52: ( 'else' statement )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:611:52: 'else' statement
+        {
+        match(input,76,FOLLOW_76_in_synpred1502320); if (failed) return ;
+        pushFollow(FOLLOW_statement_in_synpred1502322);
+        statement();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred150
+
+    // $ANTLR start synpred155
+    public final void synpred155_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:616:9: ( catches 'finally' block )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:616:9: catches 'finally' block
+        {
+        pushFollow(FOLLOW_catches_in_synpred1552388);
+        catches();
+        _fsp--;
+        if (failed) return ;
+        match(input,81,FOLLOW_81_in_synpred1552390); if (failed) return ;
+        pushFollow(FOLLOW_block_in_synpred1552392);
+        block();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred155
+
+    // $ANTLR start synpred156
+    public final void synpred156_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:617:9: ( catches )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:617:9: catches
+        {
+        pushFollow(FOLLOW_catches_in_synpred1562402);
+        catches();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred156
+
+    // $ANTLR start synpred173
+    public final void synpred173_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:652:4: ( 'case' constantExpression ':' )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:652:4: 'case' constantExpression ':'
+        {
+        match(input,88,FOLLOW_88_in_synpred1732627); if (failed) return ;
+        pushFollow(FOLLOW_constantExpression_in_synpred1732629);
+        constantExpression();
+        _fsp--;
+        if (failed) return ;
+        match(input,74,FOLLOW_74_in_synpred1732631); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred173
+
+    // $ANTLR start synpred174
+    public final void synpred174_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:653:6: ( 'case' enumConstantName ':' )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:653:6: 'case' enumConstantName ':'
+        {
+        match(input,88,FOLLOW_88_in_synpred1742638); if (failed) return ;
+        pushFollow(FOLLOW_enumConstantName_in_synpred1742640);
+        enumConstantName();
+        _fsp--;
+        if (failed) return ;
+        match(input,74,FOLLOW_74_in_synpred1742642); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred174
+
+    // $ANTLR start synpred176
+    public final void synpred176_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:663:4: ( forVarControl )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:663:4: forVarControl
+        {
+        pushFollow(FOLLOW_forVarControl_in_synpred1762687);
+        forVarControl();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred176
+
+    // $ANTLR start synpred181
+    public final void synpred181_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:668:4: ( ( variableModifier )* type variableDeclarators )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:668:4: ( variableModifier )* type variableDeclarators
+        {
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:668:4: ( variableModifier )*
+        loop203:
+        do {
+            int alt203=2;
+            int LA203_0 = input.LA(1);
+
+            if ( (LA203_0==49||LA203_0==71) ) {
+                alt203=1;
+            }
+
+
+            switch (alt203) {
+        	case 1 :
+        	    // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:0:0: variableModifier
+        	    {
+        	    pushFollow(FOLLOW_variableModifier_in_synpred1812714);
+        	    variableModifier();
+        	    _fsp--;
+        	    if (failed) return ;
+
+        	    }
+        	    break;
+
+        	default :
+        	    break loop203;
+            }
+        } while (true);
+
+        pushFollow(FOLLOW_type_in_synpred1812717);
+        type();
+        _fsp--;
+        if (failed) return ;
+        pushFollow(FOLLOW_variableDeclarators_in_synpred1812719);
+        variableDeclarators();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred181
+
+    // $ANTLR start synpred184
+    public final void synpred184_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:699:27: ( assignmentOperator expression )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:699:27: assignmentOperator expression
+        {
+        pushFollow(FOLLOW_assignmentOperator_in_synpred1842838);
+        assignmentOperator();
+        _fsp--;
+        if (failed) return ;
+        pushFollow(FOLLOW_expression_in_synpred1842840);
+        expression();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred184
+
+    // $ANTLR start synpred195
+    public final void synpred195_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:713:9: ( '>' '>' '=' )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:713:9: '>' '>' '='
+        {
+        match(input,35,FOLLOW_35_in_synpred1952958); if (failed) return ;
+        match(input,35,FOLLOW_35_in_synpred1952960); if (failed) return ;
+        match(input,44,FOLLOW_44_in_synpred1952962); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred195
+
+    // $ANTLR start synpred205
+    public final void synpred205_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:750:27: ( relationalOp shiftExpression )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:750:27: relationalOp shiftExpression
+        {
+        pushFollow(FOLLOW_relationalOp_in_synpred2053206);
+        relationalOp();
+        _fsp--;
+        if (failed) return ;
+        pushFollow(FOLLOW_shiftExpression_in_synpred2053208);
+        shiftExpression();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred205
+
+    // $ANTLR start synpred209
+    public final void synpred209_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:758:30: ( shiftOp additiveExpression )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:758:30: shiftOp additiveExpression
+        {
+        pushFollow(FOLLOW_shiftOp_in_synpred2093261);
+        shiftOp();
+        _fsp--;
+        if (failed) return ;
+        pushFollow(FOLLOW_additiveExpression_in_synpred2093263);
+        additiveExpression();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred209
+
+    // $ANTLR start synpred211
+    public final void synpred211_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:15: ( '>' '>' '>' )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:763:15: '>' '>' '>'
+        {
+        match(input,35,FOLLOW_35_in_synpred2113293); if (failed) return ;
+        match(input,35,FOLLOW_35_in_synpred2113295); if (failed) return ;
+        match(input,35,FOLLOW_35_in_synpred2113297); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred211
+
+    // $ANTLR start synpred223
+    public final void synpred223_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:786:9: ( castExpression )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:786:9: castExpression
+        {
+        pushFollow(FOLLOW_castExpression_in_synpred2233478);
+        castExpression();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred223
+
+    // $ANTLR start synpred227
+    public final void synpred227_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:791:8: ( '(' primitiveType ')' unaryExpression )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:791:8: '(' primitiveType ')' unaryExpression
+        {
+        match(input,65,FOLLOW_65_in_synpred2273516); if (failed) return ;
+        pushFollow(FOLLOW_primitiveType_in_synpred2273518);
+        primitiveType();
+        _fsp--;
+        if (failed) return ;
+        match(input,66,FOLLOW_66_in_synpred2273520); if (failed) return ;
+        pushFollow(FOLLOW_unaryExpression_in_synpred2273522);
+        unaryExpression();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred227
+
+    // $ANTLR start synpred228
+    public final void synpred228_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:792:13: ( type )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:792:13: type
+        {
+        pushFollow(FOLLOW_type_in_synpred2283534);
+        type();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred228
+
+    // $ANTLR start synpred232
+    public final void synpred232_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:17: ( '.' Identifier )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:17: '.' Identifier
+        {
+        match(input,28,FOLLOW_28_in_synpred2323601); if (failed) return ;
+        match(input,Identifier,FOLLOW_Identifier_in_synpred2323603); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred232
+
+    // $ANTLR start synpred233
+    public final void synpred233_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:35: ( identifierSuffix )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:799:35: identifierSuffix
+        {
+        pushFollow(FOLLOW_identifierSuffix_in_synpred2333608);
+        identifierSuffix();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred233
+
+    // $ANTLR start synpred238
+    public final void synpred238_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:56: ( '.' Identifier )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:56: '.' Identifier
+        {
+        match(input,28,FOLLOW_28_in_synpred2383661); if (failed) return ;
+        match(input,Identifier,FOLLOW_Identifier_in_synpred2383663); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred238
+
+    // $ANTLR start synpred239
+    public final void synpred239_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:74: ( identifierSuffix )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:803:74: identifierSuffix
+        {
+        pushFollow(FOLLOW_identifierSuffix_in_synpred2393668);
+        identifierSuffix();
+        _fsp--;
+        if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred239
+
+    // $ANTLR start synpred245
+    public final void synpred245_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:810:5: ( '[' expression ']' )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:810:5: '[' expression ']'
+        {
+        match(input,41,FOLLOW_41_in_synpred2453731); if (failed) return ;
+        pushFollow(FOLLOW_expression_in_synpred2453733);
+        expression();
+        _fsp--;
+        if (failed) return ;
+        match(input,42,FOLLOW_42_in_synpred2453735); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred245
+
+    // $ANTLR start synpred261
+    public final void synpred261_fragment() throws RecognitionException {   
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:837:29: ( '[' expression ']' )
+        // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g:837:29: '[' expression ']'
+        {
+        match(input,41,FOLLOW_41_in_synpred2613955); if (failed) return ;
+        pushFollow(FOLLOW_expression_in_synpred2613957);
+        expression();
+        _fsp--;
+        if (failed) return ;
+        match(input,42,FOLLOW_42_in_synpred2613959); if (failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred261
+
+    public final boolean synpred139() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred139_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred156() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred156_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred209() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred209_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred120() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred120_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred232() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred232_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred228() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred228_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred195() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred195_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred173() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred173_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred38() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred38_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred184() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred184_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred155() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred155_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred85() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred85_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred227() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred227_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred39() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred39_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred205() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred205_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred1() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred1_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred145() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred145_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred176() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred176_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred233() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred233_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred174() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred174_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred261() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred261_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred211() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred211_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred135() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred135_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred181() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred181_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred238() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred238_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred150() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred150_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred137() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred137_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred239() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred239_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred245() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred245_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred144() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred144_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+    public final boolean synpred223() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred223_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+
+
+ 
+
+    public static final BitSet FOLLOW_annotations_in_compilationUnit70 = new BitSet(new long[]{0x007FE0804F000022L,0x0000000000000080L});
+    public static final BitSet FOLLOW_packageDeclaration_in_compilationUnit75 = new BitSet(new long[]{0x007FE0804E000022L,0x0000000000000080L});
+    public static final BitSet FOLLOW_importDeclaration_in_compilationUnit86 = new BitSet(new long[]{0x007FE0804E000022L,0x0000000000000080L});
+    public static final BitSet FOLLOW_typeDeclaration_in_compilationUnit97 = new BitSet(new long[]{0x007FE0804A000022L,0x0000000000000080L});
+    public static final BitSet FOLLOW_24_in_packageDeclaration109 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_qualifiedName_in_packageDeclaration111 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_packageDeclaration113 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_26_in_importDeclaration125 = new BitSet(new long[]{0x0000000008000010L});
+    public static final BitSet FOLLOW_27_in_importDeclaration127 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_importDeclaration130 = new BitSet(new long[]{0x0000000012000000L});
+    public static final BitSet FOLLOW_28_in_importDeclaration133 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_importDeclaration135 = new BitSet(new long[]{0x0000000012000000L});
+    public static final BitSet FOLLOW_28_in_importDeclaration140 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_29_in_importDeclaration142 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_importDeclaration146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classOrInterfaceDeclaration_in_typeDeclaration158 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_typeDeclaration168 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_modifier_in_classOrInterfaceDeclaration180 = new BitSet(new long[]{0x007FE08048000020L,0x0000000000000080L});
+    public static final BitSet FOLLOW_classDeclaration_in_classOrInterfaceDeclaration184 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceDeclaration_in_classOrInterfaceDeclaration188 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_normalClassDeclaration_in_classDeclaration201 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enumDeclaration_in_classDeclaration211 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_30_in_normalClassDeclaration223 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_normalClassDeclaration225 = new BitSet(new long[]{0x0000002380000000L});
+    public static final BitSet FOLLOW_typeParameters_in_normalClassDeclaration228 = new BitSet(new long[]{0x0000002180000000L});
+    public static final BitSet FOLLOW_31_in_normalClassDeclaration241 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_type_in_normalClassDeclaration243 = new BitSet(new long[]{0x0000002100000000L});
+    public static final BitSet FOLLOW_32_in_normalClassDeclaration256 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_typeList_in_normalClassDeclaration258 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_classBody_in_normalClassDeclaration270 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_typeParameters282 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_typeParameter_in_typeParameters284 = new BitSet(new long[]{0x0000000C00000000L});
+    public static final BitSet FOLLOW_34_in_typeParameters287 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_typeParameter_in_typeParameters289 = new BitSet(new long[]{0x0000000C00000000L});
+    public static final BitSet FOLLOW_35_in_typeParameters293 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_typeParameter304 = new BitSet(new long[]{0x0000000080000002L});
+    public static final BitSet FOLLOW_31_in_typeParameter307 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_bound_in_typeParameter309 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_bound324 = new BitSet(new long[]{0x0000001000000002L});
+    public static final BitSet FOLLOW_36_in_bound327 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_type_in_bound329 = new BitSet(new long[]{0x0000001000000002L});
+    public static final BitSet FOLLOW_ENUM_in_enumDeclaration342 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_enumDeclaration344 = new BitSet(new long[]{0x0000002100000000L});
+    public static final BitSet FOLLOW_32_in_enumDeclaration347 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_typeList_in_enumDeclaration349 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_enumBody_in_enumDeclaration353 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_enumBody365 = new BitSet(new long[]{0x0000004402000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_enumConstants_in_enumBody367 = new BitSet(new long[]{0x0000004402000000L});
+    public static final BitSet FOLLOW_34_in_enumBody370 = new BitSet(new long[]{0x0000004002000000L});
+    public static final BitSet FOLLOW_enumBodyDeclarations_in_enumBody373 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_38_in_enumBody376 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enumConstant_in_enumConstants387 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_enumConstants390 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_enumConstant_in_enumConstants392 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_annotations_in_enumConstant406 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_enumConstant409 = new BitSet(new long[]{0x0000002000000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_arguments_in_enumConstant412 = new BitSet(new long[]{0x0000002000000002L});
+    public static final BitSet FOLLOW_classBody_in_enumConstant417 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_enumBodyDeclarations431 = new BitSet(new long[]{0x7FFFE1A24A000032L,0x0000000000000080L});
+    public static final BitSet FOLLOW_classBodyDeclaration_in_enumBodyDeclarations434 = new BitSet(new long[]{0x7FFFE1A24A000032L,0x0000000000000080L});
+    public static final BitSet FOLLOW_normalInterfaceDeclaration_in_interfaceDeclaration448 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotationTypeDeclaration_in_interfaceDeclaration454 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_39_in_normalInterfaceDeclaration466 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_normalInterfaceDeclaration468 = new BitSet(new long[]{0x0000002280000000L});
+    public static final BitSet FOLLOW_typeParameters_in_normalInterfaceDeclaration470 = new BitSet(new long[]{0x0000002080000000L});
+    public static final BitSet FOLLOW_31_in_normalInterfaceDeclaration474 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_typeList_in_normalInterfaceDeclaration476 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_interfaceBody_in_normalInterfaceDeclaration480 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_typeList492 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_typeList495 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_type_in_typeList497 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_37_in_classBody511 = new BitSet(new long[]{0x7FFFE1E24A000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_classBodyDeclaration_in_classBody513 = new BitSet(new long[]{0x7FFFE1E24A000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_38_in_classBody516 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_interfaceBody528 = new BitSet(new long[]{0x7FFFE1C24A000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_interfaceBodyDeclaration_in_interfaceBody530 = new BitSet(new long[]{0x7FFFE1C24A000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_38_in_interfaceBody533 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_classBodyDeclaration544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_27_in_classBodyDeclaration549 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_block_in_classBodyDeclaration552 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_modifier_in_classBodyDeclaration557 = new BitSet(new long[]{0x7FFFE18248000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_memberDecl_in_classBodyDeclaration560 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_genericMethodOrConstructorDecl_in_memberDecl572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_methodDeclaration_in_memberDecl577 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fieldDeclaration_in_memberDecl582 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_memberDecl587 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_memberDecl589 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_voidMethodDeclaratorRest_in_memberDecl591 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_memberDecl596 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_constructorDeclaratorRest_in_memberDecl598 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceDeclaration_in_memberDecl603 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classDeclaration_in_memberDecl608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_typeParameters_in_genericMethodOrConstructorDecl620 = new BitSet(new long[]{0x7F80010000000010L});
+    public static final BitSet FOLLOW_genericMethodOrConstructorRest_in_genericMethodOrConstructorDecl622 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_genericMethodOrConstructorRest635 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_40_in_genericMethodOrConstructorRest639 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_genericMethodOrConstructorRest642 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_methodDeclaratorRest_in_genericMethodOrConstructorRest644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_genericMethodOrConstructorRest649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_constructorDeclaratorRest_in_genericMethodOrConstructorRest651 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_methodDeclaration662 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_methodDeclaration664 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_methodDeclaratorRest_in_methodDeclaration666 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_fieldDeclaration677 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_variableDeclarators_in_fieldDeclaration679 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_fieldDeclaration681 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_modifier_in_interfaceBodyDeclaration694 = new BitSet(new long[]{0x7FFFE18248000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_interfaceMemberDecl_in_interfaceBodyDeclaration697 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_interfaceBodyDeclaration704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceMethodOrFieldDecl_in_interfaceMemberDecl715 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceGenericMethodDecl_in_interfaceMemberDecl722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_interfaceMemberDecl732 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_interfaceMemberDecl734 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_voidInterfaceMethodDeclaratorRest_in_interfaceMemberDecl736 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceDeclaration_in_interfaceMemberDecl746 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classDeclaration_in_interfaceMemberDecl756 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_interfaceMethodOrFieldDecl768 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_interfaceMethodOrFieldDecl770 = new BitSet(new long[]{0x0000120000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceMethodOrFieldRest_in_interfaceMethodOrFieldDecl772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constantDeclaratorsRest_in_interfaceMethodOrFieldRest784 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_interfaceMethodOrFieldRest786 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceMethodDeclaratorRest_in_interfaceMethodOrFieldRest791 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_formalParameters_in_methodDeclaratorRest803 = new BitSet(new long[]{0x00000A2002000000L});
+    public static final BitSet FOLLOW_41_in_methodDeclaratorRest806 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_methodDeclaratorRest808 = new BitSet(new long[]{0x00000A2002000000L});
+    public static final BitSet FOLLOW_43_in_methodDeclaratorRest821 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_qualifiedNameList_in_methodDeclaratorRest823 = new BitSet(new long[]{0x0000002002000000L});
+    public static final BitSet FOLLOW_methodBody_in_methodDeclaratorRest839 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_methodDeclaratorRest853 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_formalParameters_in_voidMethodDeclaratorRest875 = new BitSet(new long[]{0x0000082002000000L});
+    public static final BitSet FOLLOW_43_in_voidMethodDeclaratorRest878 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_qualifiedNameList_in_voidMethodDeclaratorRest880 = new BitSet(new long[]{0x0000002002000000L});
+    public static final BitSet FOLLOW_methodBody_in_voidMethodDeclaratorRest896 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_voidMethodDeclaratorRest910 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_formalParameters_in_interfaceMethodDeclaratorRest932 = new BitSet(new long[]{0x00000A0002000000L});
+    public static final BitSet FOLLOW_41_in_interfaceMethodDeclaratorRest935 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_interfaceMethodDeclaratorRest937 = new BitSet(new long[]{0x00000A0002000000L});
+    public static final BitSet FOLLOW_43_in_interfaceMethodDeclaratorRest942 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_qualifiedNameList_in_interfaceMethodDeclaratorRest944 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_interfaceMethodDeclaratorRest948 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_typeParameters_in_interfaceGenericMethodDecl960 = new BitSet(new long[]{0x7F80010000000010L});
+    public static final BitSet FOLLOW_type_in_interfaceGenericMethodDecl963 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_40_in_interfaceGenericMethodDecl967 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_interfaceGenericMethodDecl970 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceMethodDeclaratorRest_in_interfaceGenericMethodDecl980 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_formalParameters_in_voidInterfaceMethodDeclaratorRest992 = new BitSet(new long[]{0x0000080002000000L});
+    public static final BitSet FOLLOW_43_in_voidInterfaceMethodDeclaratorRest995 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_qualifiedNameList_in_voidInterfaceMethodDeclaratorRest997 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_voidInterfaceMethodDeclaratorRest1001 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_formalParameters_in_constructorDeclaratorRest1013 = new BitSet(new long[]{0x0000082000000000L});
+    public static final BitSet FOLLOW_43_in_constructorDeclaratorRest1016 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_qualifiedNameList_in_constructorDeclaratorRest1018 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_methodBody_in_constructorDeclaratorRest1022 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_constantDeclarator1033 = new BitSet(new long[]{0x0000120000000000L});
+    public static final BitSet FOLLOW_constantDeclaratorRest_in_constantDeclarator1035 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableDeclarator_in_variableDeclarators1047 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_variableDeclarators1050 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_variableDeclarator_in_variableDeclarators1052 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_Identifier_in_variableDeclarator1065 = new BitSet(new long[]{0x0000120000000002L});
+    public static final BitSet FOLLOW_variableDeclaratorRest_in_variableDeclarator1067 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_variableDeclaratorRest1080 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_variableDeclaratorRest1082 = new BitSet(new long[]{0x0000120000000002L});
+    public static final BitSet FOLLOW_44_in_variableDeclaratorRest1087 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_variableInitializer_in_variableDeclaratorRest1089 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_variableDeclaratorRest1096 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_variableInitializer_in_variableDeclaratorRest1098 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constantDeclaratorRest_in_constantDeclaratorsRest1118 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_constantDeclaratorsRest1121 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_constantDeclarator_in_constantDeclaratorsRest1123 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_41_in_constantDeclaratorRest1140 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_constantDeclaratorRest1142 = new BitSet(new long[]{0x0000120000000000L});
+    public static final BitSet FOLLOW_44_in_constantDeclaratorRest1146 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_variableInitializer_in_constantDeclaratorRest1148 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_variableDeclaratorId1160 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_41_in_variableDeclaratorId1163 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_variableDeclaratorId1165 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_arrayInitializer_in_variableInitializer1178 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expression_in_variableInitializer1188 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_arrayInitializer1200 = new BitSet(new long[]{0x7F80016200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_variableInitializer_in_arrayInitializer1203 = new BitSet(new long[]{0x0000004400000000L});
+    public static final BitSet FOLLOW_34_in_arrayInitializer1206 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_variableInitializer_in_arrayInitializer1208 = new BitSet(new long[]{0x0000004400000000L});
+    public static final BitSet FOLLOW_34_in_arrayInitializer1213 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_38_in_arrayInitializer1220 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotation_in_modifier1236 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_45_in_modifier1246 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_46_in_modifier1256 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_modifier1266 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_27_in_modifier1276 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_48_in_modifier1286 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_49_in_modifier1296 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_modifier1306 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_51_in_modifier1316 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_52_in_modifier1326 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_53_in_modifier1336 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_54_in_modifier1346 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_packageOrTypeName1360 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_28_in_packageOrTypeName1363 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_packageOrTypeName1365 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_Identifier_in_enumConstantName1383 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_typeName1399 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_packageOrTypeName_in_typeName1409 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_28_in_typeName1411 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_typeName1413 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_type1424 = new BitSet(new long[]{0x0000020210000002L});
+    public static final BitSet FOLLOW_typeArguments_in_type1427 = new BitSet(new long[]{0x0000020010000002L});
+    public static final BitSet FOLLOW_28_in_type1432 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_type1434 = new BitSet(new long[]{0x0000020210000002L});
+    public static final BitSet FOLLOW_typeArguments_in_type1437 = new BitSet(new long[]{0x0000020010000002L});
+    public static final BitSet FOLLOW_41_in_type1445 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_type1447 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_primitiveType_in_type1454 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_41_in_type1457 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_type1459 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_set_in_primitiveType0 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_49_in_variableModifier1547 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotation_in_variableModifier1557 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_typeArguments1568 = new BitSet(new long[]{0xFF80000000000010L});
+    public static final BitSet FOLLOW_typeArgument_in_typeArguments1570 = new BitSet(new long[]{0x0000000C00000000L});
+    public static final BitSet FOLLOW_34_in_typeArguments1573 = new BitSet(new long[]{0xFF80000000000010L});
+    public static final BitSet FOLLOW_typeArgument_in_typeArguments1575 = new BitSet(new long[]{0x0000000C00000000L});
+    public static final BitSet FOLLOW_35_in_typeArguments1579 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_typeArgument1591 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_63_in_typeArgument1596 = new BitSet(new long[]{0x0000000080000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_set_in_typeArgument1599 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_type_in_typeArgument1607 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_qualifiedName_in_qualifiedNameList1621 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_qualifiedNameList1624 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_qualifiedName_in_qualifiedNameList1626 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_65_in_formalParameters1640 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000084L});
+    public static final BitSet FOLLOW_formalParameterDecls_in_formalParameters1642 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_formalParameters1645 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableModifier_in_formalParameterDecls1657 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_type_in_formalParameterDecls1660 = new BitSet(new long[]{0x0000000000000012L,0x0000000000000008L});
+    public static final BitSet FOLLOW_formalParameterDeclsRest_in_formalParameterDecls1662 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest1675 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_formalParameterDeclsRest1678 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_formalParameterDecls_in_formalParameterDeclsRest1680 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_67_in_formalParameterDeclsRest1689 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_variableDeclaratorId_in_formalParameterDeclsRest1691 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_block_in_methodBody1703 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_qualifiedName1714 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_28_in_qualifiedName1717 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_qualifiedName1719 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_integerLiteral_in_literal1736 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FloatingPointLiteral_in_literal1746 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CharacterLiteral_in_literal1756 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_StringLiteral_in_literal1766 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_booleanLiteral_in_literal1776 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_68_in_literal1786 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_set_in_integerLiteral0 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotation_in_annotations1867 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+    public static final BitSet FOLLOW_71_in_annotation1879 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_annotationName_in_annotation1881 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_annotation1884 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F300000000F7L});
+    public static final BitSet FOLLOW_elementValuePairs_in_annotation1886 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_annotation1889 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_annotationName1903 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_28_in_annotationName1906 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_annotationName1908 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_elementValuePair_in_elementValuePairs1922 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_elementValuePairs1925 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F300000000F3L});
+    public static final BitSet FOLLOW_elementValuePair_in_elementValuePairs1927 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_Identifier_in_elementValuePair1942 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_elementValuePair1944 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F300000000F3L});
+    public static final BitSet FOLLOW_elementValue_in_elementValuePair1948 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalExpression_in_elementValue1960 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotation_in_elementValue1967 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_elementValueArrayInitializer_in_elementValue1974 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_elementValueArrayInitializer1986 = new BitSet(new long[]{0x7F80016200000FD0L,0x0003F300000000F3L});
+    public static final BitSet FOLLOW_elementValue_in_elementValueArrayInitializer1989 = new BitSet(new long[]{0x0000004400000000L});
+    public static final BitSet FOLLOW_34_in_elementValueArrayInitializer1992 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F300000000F3L});
+    public static final BitSet FOLLOW_elementValue_in_elementValueArrayInitializer1994 = new BitSet(new long[]{0x0000004400000000L});
+    public static final BitSet FOLLOW_38_in_elementValueArrayInitializer2001 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_71_in_annotationTypeDeclaration2013 = new BitSet(new long[]{0x0000008000000000L});
+    public static final BitSet FOLLOW_39_in_annotationTypeDeclaration2015 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_annotationTypeDeclaration2017 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_annotationTypeBody_in_annotationTypeDeclaration2019 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_annotationTypeBody2031 = new BitSet(new long[]{0x7FFFE0C048000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_annotationTypeElementDeclarations_in_annotationTypeBody2034 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_38_in_annotationTypeBody2038 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotationTypeElementDeclaration_in_annotationTypeElementDeclarations2051 = new BitSet(new long[]{0x7FFFE08048000032L,0x0000000000000080L});
+    public static final BitSet FOLLOW_annotationTypeElementDeclaration_in_annotationTypeElementDeclarations2055 = new BitSet(new long[]{0x7FFFE08048000032L,0x0000000000000080L});
+    public static final BitSet FOLLOW_modifier_in_annotationTypeElementDeclaration2070 = new BitSet(new long[]{0x7FFFE08048000030L,0x0000000000000080L});
+    public static final BitSet FOLLOW_annotationTypeElementRest_in_annotationTypeElementDeclaration2074 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_annotationTypeElementRest2086 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_annotationMethodOrConstantRest_in_annotationTypeElementRest2088 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_annotationTypeElementRest2090 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classDeclaration_in_annotationTypeElementRest2097 = new BitSet(new long[]{0x0000000002000002L});
+    public static final BitSet FOLLOW_25_in_annotationTypeElementRest2099 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceDeclaration_in_annotationTypeElementRest2107 = new BitSet(new long[]{0x0000000002000002L});
+    public static final BitSet FOLLOW_25_in_annotationTypeElementRest2109 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enumDeclaration_in_annotationTypeElementRest2117 = new BitSet(new long[]{0x0000000002000002L});
+    public static final BitSet FOLLOW_25_in_annotationTypeElementRest2119 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotationTypeDeclaration_in_annotationTypeElementRest2127 = new BitSet(new long[]{0x0000000002000002L});
+    public static final BitSet FOLLOW_25_in_annotationTypeElementRest2129 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotationMethodRest_in_annotationMethodOrConstantRest2142 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotationConstantRest_in_annotationMethodOrConstantRest2149 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_annotationMethodRest2162 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_annotationMethodRest2164 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_annotationMethodRest2166 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
+    public static final BitSet FOLLOW_defaultValue_in_annotationMethodRest2169 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableDeclarators_in_annotationConstantRest2186 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_72_in_defaultValue2201 = new BitSet(new long[]{0x7F80012200000FD0L,0x0003F300000000F3L});
+    public static final BitSet FOLLOW_elementValue_in_defaultValue2203 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_block2217 = new BitSet(new long[]{0x7FFFE1E24A000FF0L,0x0003F300007DEAF3L});
+    public static final BitSet FOLLOW_blockStatement_in_block2219 = new BitSet(new long[]{0x7FFFE1E24A000FF0L,0x0003F300007DEAF3L});
+    public static final BitSet FOLLOW_38_in_block2222 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_localVariableDeclaration_in_blockStatement2234 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classOrInterfaceDeclaration_in_blockStatement2239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_statement_in_blockStatement2248 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableModifier_in_localVariableDeclaration2260 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_type_in_localVariableDeclaration2263 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_variableDeclarators_in_localVariableDeclaration2265 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_localVariableDeclaration2267 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_block_in_statement2279 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_73_in_statement2287 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_statement2289 = new BitSet(new long[]{0x0000000002000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_statement2292 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_statement2294 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_statement2298 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_75_in_statement2306 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_parExpression_in_statement2308 = new BitSet(new long[]{0x7F88012202000FD0L,0x0003F300007DEA73L});
+    public static final BitSet FOLLOW_statement_in_statement2310 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_76_in_statement2320 = new BitSet(new long[]{0x7F88012202000FD0L,0x0003F300007DEA73L});
+    public static final BitSet FOLLOW_statement_in_statement2322 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_77_in_statement2332 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_statement2334 = new BitSet(new long[]{0x7F82010202000FD0L,0x0003F300000000F3L});
+    public static final BitSet FOLLOW_forControl_in_statement2336 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_statement2338 = new BitSet(new long[]{0x7F88012202000FD0L,0x0003F300007DEA73L});
+    public static final BitSet FOLLOW_statement_in_statement2340 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_78_in_statement2348 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_parExpression_in_statement2350 = new BitSet(new long[]{0x7F88012202000FD0L,0x0003F300007DEA73L});
+    public static final BitSet FOLLOW_statement_in_statement2352 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_79_in_statement2360 = new BitSet(new long[]{0x7F88012202000FD0L,0x0003F300007DEA73L});
+    public static final BitSet FOLLOW_statement_in_statement2362 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_78_in_statement2364 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_parExpression_in_statement2366 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_statement2368 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_80_in_statement2376 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_block_in_statement2378 = new BitSet(new long[]{0x0000000000000000L,0x0000000000820000L});
+    public static final BitSet FOLLOW_catches_in_statement2388 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_81_in_statement2390 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_block_in_statement2392 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_catches_in_statement2402 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_81_in_statement2412 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_block_in_statement2414 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_82_in_statement2430 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_parExpression_in_statement2432 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_37_in_statement2434 = new BitSet(new long[]{0x0000004000000000L,0x0000000001000100L});
+    public static final BitSet FOLLOW_switchBlockStatementGroups_in_statement2436 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_38_in_statement2438 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_51_in_statement2446 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_parExpression_in_statement2448 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_block_in_statement2450 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_83_in_statement2458 = new BitSet(new long[]{0x7F80010202000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_statement2460 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_statement2463 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_84_in_statement2471 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_statement2473 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_statement2475 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_statement2483 = new BitSet(new long[]{0x0000000002000010L});
+    public static final BitSet FOLLOW_Identifier_in_statement2485 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_statement2488 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_86_in_statement2496 = new BitSet(new long[]{0x0000000002000010L});
+    public static final BitSet FOLLOW_Identifier_in_statement2498 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_statement2501 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_25_in_statement2509 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_statementExpression_in_statement2517 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_statement2519 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_statement2527 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_statement2529 = new BitSet(new long[]{0x7F88012202000FD0L,0x0003F300007DEA73L});
+    public static final BitSet FOLLOW_statement_in_statement2531 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_catchClause_in_catches2543 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
+    public static final BitSet FOLLOW_catchClause_in_catches2546 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
+    public static final BitSet FOLLOW_87_in_catchClause2560 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_catchClause2562 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_formalParameter_in_catchClause2564 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_catchClause2566 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_block_in_catchClause2568 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableModifier_in_formalParameter2579 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_type_in_formalParameter2582 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_variableDeclaratorId_in_formalParameter2584 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_switchBlockStatementGroup_in_switchBlockStatementGroups2598 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000100L});
+    public static final BitSet FOLLOW_switchLabel_in_switchBlockStatementGroup2612 = new BitSet(new long[]{0x7FFFE1A24A000FF2L,0x0003F300007DEAF3L});
+    public static final BitSet FOLLOW_blockStatement_in_switchBlockStatementGroup2614 = new BitSet(new long[]{0x7FFFE1A24A000FF2L,0x0003F300007DEAF3L});
+    public static final BitSet FOLLOW_88_in_switchLabel2627 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_constantExpression_in_switchLabel2629 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_switchLabel2631 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_88_in_switchLabel2638 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_enumConstantName_in_switchLabel2640 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_switchLabel2642 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_72_in_switchLabel2649 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_switchLabel2651 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_moreStatementExpressions2664 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_statementExpression_in_moreStatementExpressions2666 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_forVarControl_in_forControl2687 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forInit_in_forControl2692 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_forControl2695 = new BitSet(new long[]{0x7F80010202000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_forControl2697 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_forControl2700 = new BitSet(new long[]{0x7F80010200000FD2L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_forUpdate_in_forControl2702 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableModifier_in_forInit2714 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_type_in_forInit2717 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_variableDeclarators_in_forInit2719 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expressionList_in_forInit2724 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableModifier_in_forVarControl2736 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_type_in_forVarControl2739 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_forVarControl2741 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_forVarControl2743 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_forVarControl2745 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expressionList_in_forUpdate2756 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_parExpression2769 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_parExpression2771 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_parExpression2773 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expression_in_expressionList2790 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_34_in_expressionList2793 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_expressionList2795 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_expression_in_statementExpression2811 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expression_in_constantExpression2823 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalExpression_in_expression2835 = new BitSet(new long[]{0x0000100A00000002L,0x00000001FE000000L});
+    public static final BitSet FOLLOW_assignmentOperator_in_expression2838 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_expression2840 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_assignmentOperator2854 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_89_in_assignmentOperator2864 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_90_in_assignmentOperator2874 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_91_in_assignmentOperator2884 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_92_in_assignmentOperator2894 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_93_in_assignmentOperator2904 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_94_in_assignmentOperator2914 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_95_in_assignmentOperator2924 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_96_in_assignmentOperator2934 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_assignmentOperator2944 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_33_in_assignmentOperator2946 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_assignmentOperator2948 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_assignmentOperator2958 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_assignmentOperator2960 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_assignmentOperator2962 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_assignmentOperator2972 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_assignmentOperator2974 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_assignmentOperator2976 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_assignmentOperator2978 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalOrExpression_in_conditionalExpression2994 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_63_in_conditionalExpression2998 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_conditionalExpression3000 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_conditionalExpression3002 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_conditionalExpression3004 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_conditionalAndExpression_in_conditionalOrExpression3023 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_97_in_conditionalOrExpression3027 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_conditionalAndExpression_in_conditionalOrExpression3029 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_inclusiveOrExpression_in_conditionalAndExpression3048 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_98_in_conditionalAndExpression3052 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_inclusiveOrExpression_in_conditionalAndExpression3054 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression3073 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
+    public static final BitSet FOLLOW_99_in_inclusiveOrExpression3077 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression3079 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
+    public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression3098 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
+    public static final BitSet FOLLOW_100_in_exclusiveOrExpression3102 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression3104 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
+    public static final BitSet FOLLOW_equalityExpression_in_andExpression3123 = new BitSet(new long[]{0x0000001000000002L});
+    public static final BitSet FOLLOW_36_in_andExpression3127 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_equalityExpression_in_andExpression3129 = new BitSet(new long[]{0x0000001000000002L});
+    public static final BitSet FOLLOW_instanceOfExpression_in_equalityExpression3148 = new BitSet(new long[]{0x0000000000000002L,0x0000006000000000L});
+    public static final BitSet FOLLOW_set_in_equalityExpression3152 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_instanceOfExpression_in_equalityExpression3160 = new BitSet(new long[]{0x0000000000000002L,0x0000006000000000L});
+    public static final BitSet FOLLOW_relationalExpression_in_instanceOfExpression3179 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
+    public static final BitSet FOLLOW_103_in_instanceOfExpression3182 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_type_in_instanceOfExpression3184 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression3202 = new BitSet(new long[]{0x0000000A00000002L});
+    public static final BitSet FOLLOW_relationalOp_in_relationalExpression3206 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression3208 = new BitSet(new long[]{0x0000000A00000002L});
+    public static final BitSet FOLLOW_33_in_relationalOp3224 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_relationalOp3226 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_relationalOp3230 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_relationalOp3232 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_relationalOp3236 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_relationalOp3240 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression3257 = new BitSet(new long[]{0x0000000A00000002L});
+    public static final BitSet FOLLOW_shiftOp_in_shiftExpression3261 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression3263 = new BitSet(new long[]{0x0000000A00000002L});
+    public static final BitSet FOLLOW_33_in_shiftOp3287 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_33_in_shiftOp3289 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_shiftOp3293 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_shiftOp3295 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_shiftOp3297 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_shiftOp3301 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_shiftOp3303 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3321 = new BitSet(new long[]{0x0000000000000002L,0x0000030000000000L});
+    public static final BitSet FOLLOW_set_in_additiveExpression3325 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression3333 = new BitSet(new long[]{0x0000000000000002L,0x0000030000000000L});
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression3352 = new BitSet(new long[]{0x0000000020000002L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_set_in_multiplicativeExpression3356 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression3370 = new BitSet(new long[]{0x0000000020000002L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_104_in_unaryExpression3390 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_unaryExpression_in_unaryExpression3392 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_unaryExpression3400 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_unaryExpression_in_unaryExpression3402 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_108_in_unaryExpression3412 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003000000000073L});
+    public static final BitSet FOLLOW_primary_in_unaryExpression3414 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_109_in_unaryExpression3424 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003000000000073L});
+    public static final BitSet FOLLOW_primary_in_unaryExpression3426 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression3436 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_110_in_unaryExpressionNotPlusMinus3455 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus3457 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_111_in_unaryExpressionNotPlusMinus3466 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus3468 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_castExpression_in_unaryExpressionNotPlusMinus3478 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_primary_in_unaryExpressionNotPlusMinus3488 = new BitSet(new long[]{0x0000020010000002L,0x0000300000000000L});
+    public static final BitSet FOLLOW_selector_in_unaryExpressionNotPlusMinus3490 = new BitSet(new long[]{0x0000020010000002L,0x0000300000000000L});
+    public static final BitSet FOLLOW_set_in_unaryExpressionNotPlusMinus3493 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_castExpression3516 = new BitSet(new long[]{0x7F80000000000000L});
+    public static final BitSet FOLLOW_primitiveType_in_castExpression3518 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_castExpression3520 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_unaryExpression_in_castExpression3522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_castExpression3531 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_type_in_castExpression3534 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_expression_in_castExpression3538 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_castExpression3541 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003C00000000073L});
+    public static final BitSet FOLLOW_unaryExpressionNotPlusMinus_in_castExpression3543 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_parExpression_in_primary3560 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_nonWildcardTypeArguments_in_primary3570 = new BitSet(new long[]{0x0000000000000010L,0x0001000000000001L});
+    public static final BitSet FOLLOW_explicitGenericInvocationSuffix_in_primary3581 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_112_in_primary3585 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_arguments_in_primary3587 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_112_in_primary3598 = new BitSet(new long[]{0x0000020010000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_primary3601 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_primary3603 = new BitSet(new long[]{0x0000020010000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_identifierSuffix_in_primary3608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_primary3620 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_superSuffix_in_primary3622 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_in_primary3632 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_113_in_primary3642 = new BitSet(new long[]{0x7F80000200000010L});
+    public static final BitSet FOLLOW_creator_in_primary3644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_primary3656 = new BitSet(new long[]{0x0000020010000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_primary3661 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_primary3663 = new BitSet(new long[]{0x0000020010000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_identifierSuffix_in_primary3668 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_primitiveType_in_primary3680 = new BitSet(new long[]{0x0000020010000000L});
+    public static final BitSet FOLLOW_41_in_primary3683 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_primary3685 = new BitSet(new long[]{0x0000020010000000L});
+    public static final BitSet FOLLOW_28_in_primary3689 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_30_in_primary3691 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_primary3701 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_28_in_primary3703 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_30_in_primary3705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_identifierSuffix3717 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_identifierSuffix3719 = new BitSet(new long[]{0x0000020010000000L});
+    public static final BitSet FOLLOW_28_in_identifierSuffix3723 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_30_in_identifierSuffix3725 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_identifierSuffix3731 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_identifierSuffix3733 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_identifierSuffix3735 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_arguments_in_identifierSuffix3748 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_identifierSuffix3758 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_30_in_identifierSuffix3760 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_identifierSuffix3770 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_explicitGenericInvocation_in_identifierSuffix3772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_identifierSuffix3782 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+    public static final BitSet FOLLOW_112_in_identifierSuffix3784 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_identifierSuffix3794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_64_in_identifierSuffix3796 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_arguments_in_identifierSuffix3798 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_identifierSuffix3808 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_113_in_identifierSuffix3810 = new BitSet(new long[]{0x0000000200000010L});
+    public static final BitSet FOLLOW_nonWildcardTypeArguments_in_identifierSuffix3813 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_innerCreator_in_identifierSuffix3817 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_nonWildcardTypeArguments_in_creator3829 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_createdName_in_creator3832 = new BitSet(new long[]{0x0000020000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_arrayCreatorRest_in_creator3843 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classCreatorRest_in_creator3847 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_createdName3859 = new BitSet(new long[]{0x0000000210000002L});
+    public static final BitSet FOLLOW_typeArguments_in_createdName3861 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_28_in_createdName3873 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_createdName3875 = new BitSet(new long[]{0x0000000210000002L});
+    public static final BitSet FOLLOW_typeArguments_in_createdName3877 = new BitSet(new long[]{0x0000000010000002L});
+    public static final BitSet FOLLOW_primitiveType_in_createdName3888 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_innerCreator3900 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_classCreatorRest_in_innerCreator3902 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_arrayCreatorRest3913 = new BitSet(new long[]{0x7F80050200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_42_in_arrayCreatorRest3927 = new BitSet(new long[]{0x0000022000000000L});
+    public static final BitSet FOLLOW_41_in_arrayCreatorRest3930 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_arrayCreatorRest3932 = new BitSet(new long[]{0x0000022000000000L});
+    public static final BitSet FOLLOW_arrayInitializer_in_arrayCreatorRest3936 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_expression_in_arrayCreatorRest3950 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_arrayCreatorRest3952 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_41_in_arrayCreatorRest3955 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_arrayCreatorRest3957 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_arrayCreatorRest3959 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_41_in_arrayCreatorRest3964 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_arrayCreatorRest3966 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_arguments_in_classCreatorRest3989 = new BitSet(new long[]{0x0000002000000002L});
+    public static final BitSet FOLLOW_classBody_in_classCreatorRest3991 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_nonWildcardTypeArguments_in_explicitGenericInvocation4004 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000001L});
+    public static final BitSet FOLLOW_explicitGenericInvocationSuffix_in_explicitGenericInvocation4006 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_nonWildcardTypeArguments4018 = new BitSet(new long[]{0x7F80000000000010L});
+    public static final BitSet FOLLOW_typeList_in_nonWildcardTypeArguments4020 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_nonWildcardTypeArguments4022 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_explicitGenericInvocationSuffix4034 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_superSuffix_in_explicitGenericInvocationSuffix4036 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_Identifier_in_explicitGenericInvocationSuffix4043 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_arguments_in_explicitGenericInvocationSuffix4045 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_selector4057 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_selector4059 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_arguments_in_selector4062 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_selector4071 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+    public static final BitSet FOLLOW_112_in_selector4073 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_selector4080 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_64_in_selector4082 = new BitSet(new long[]{0x0000000010000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_superSuffix_in_selector4084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_selector4091 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_113_in_selector4093 = new BitSet(new long[]{0x0000000200000010L});
+    public static final BitSet FOLLOW_nonWildcardTypeArguments_in_selector4096 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_innerCreator_in_selector4100 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_selector4107 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_selector4109 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_selector4111 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_arguments_in_superSuffix4123 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_superSuffix4130 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_superSuffix4132 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_arguments_in_superSuffix4135 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_arguments4151 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000077L});
+    public static final BitSet FOLLOW_expressionList_in_arguments4153 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_arguments4156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotations_in_synpred170 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_methodDeclaration_in_synpred38577 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fieldDeclaration_in_synpred39582 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_synpred851363 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_synpred851365 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_annotation_in_synpred1201867 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classDeclaration_in_synpred1352097 = new BitSet(new long[]{0x0000000002000002L});
+    public static final BitSet FOLLOW_25_in_synpred1352099 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_interfaceDeclaration_in_synpred1372107 = new BitSet(new long[]{0x0000000002000002L});
+    public static final BitSet FOLLOW_25_in_synpred1372109 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enumDeclaration_in_synpred1392117 = new BitSet(new long[]{0x0000000002000002L});
+    public static final BitSet FOLLOW_25_in_synpred1392119 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_localVariableDeclaration_in_synpred1442234 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_classOrInterfaceDeclaration_in_synpred1452239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_76_in_synpred1502320 = new BitSet(new long[]{0x7F88012202000FD0L,0x0003F300007DEA73L});
+    public static final BitSet FOLLOW_statement_in_synpred1502322 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_catches_in_synpred1552388 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_81_in_synpred1552390 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_block_in_synpred1552392 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_catches_in_synpred1562402 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_88_in_synpred1732627 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_constantExpression_in_synpred1732629 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_synpred1732631 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_88_in_synpred1742638 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_enumConstantName_in_synpred1742640 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_74_in_synpred1742642 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forVarControl_in_synpred1762687 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variableModifier_in_synpred1812714 = new BitSet(new long[]{0x7F82000000000010L,0x0000000000000080L});
+    public static final BitSet FOLLOW_type_in_synpred1812717 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_variableDeclarators_in_synpred1812719 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_assignmentOperator_in_synpred1842838 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_synpred1842840 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_synpred1952958 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_synpred1952960 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_synpred1952962 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_relationalOp_in_synpred2053206 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_shiftExpression_in_synpred2053208 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_shiftOp_in_synpred2093261 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_additiveExpression_in_synpred2093263 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_35_in_synpred2113293 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_synpred2113295 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_synpred2113297 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_castExpression_in_synpred2233478 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_synpred2273516 = new BitSet(new long[]{0x7F80000000000000L});
+    public static final BitSet FOLLOW_primitiveType_in_synpred2273518 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_synpred2273520 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_unaryExpression_in_synpred2273522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_in_synpred2283534 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_synpred2323601 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_synpred2323603 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifierSuffix_in_synpred2333608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_synpred2383661 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_Identifier_in_synpred2383663 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifierSuffix_in_synpred2393668 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_synpred2453731 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_synpred2453733 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_synpred2453735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_synpred2613955 = new BitSet(new long[]{0x7F80010200000FD0L,0x0003F30000000073L});
+    public static final BitSet FOLLOW_expression_in_synpred2613957 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_synpred2613959 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserLexer.java	2007-06-14 14:10:42 UTC (rev 12578)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserLexer.java	2007-06-14 16:46:08 UTC (rev 12579)
@@ -1,4449 +0,0 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g 2007-04-24 04:56:12
-
-	package org.drools.rule.builder.dialect.java.parser;
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-
-public class JavaParserLexer extends Lexer {
-    public static final int T114=114;
-    public static final int LOR=29;
-    public static final int T115=115;
-    public static final int LT=36;
-    public static final int STAR=8;
-    public static final int MOD=46;
-    public static final int MOD_ASSIGN=21;
-    public static final int BSR=42;
-    public static final int EOF=-1;
-    public static final int DIV_ASSIGN=20;
-    public static final int OCTAL_DIGIT=65;
-    public static final int SL_ASSIGN=24;
-    public static final int RPAREN=14;
-    public static final int INC=47;
-    public static final int LNOT=50;
-    public static final int STRING_LITERAL=53;
-    public static final int BSR_ASSIGN=23;
-    public static final int NOT_EQUAL=34;
-    public static final int FLOAT_TYPE_SUFFIX=63;
-    public static final int RBRACK=5;
-    public static final int GE=39;
-    public static final int MINUS_ASSIGN=18;
-    public static final int LCURLY=9;
-    public static final int T100=100;
-    public static final int T102=102;
-    public static final int T101=101;
-    public static final int T109=109;
-    public static final int T107=107;
-    public static final int T108=108;
-    public static final int T105=105;
-    public static final int WS=55;
-    public static final int T106=106;
-    public static final int T103=103;
-    public static final int T104=104;
-    public static final int SL_COMMENT=56;
-    public static final int NUM_INT=51;
-    public static final int GT=37;
-    public static final int BNOT=49;
-    public static final int NUM_FLOAT=54;
-    public static final int T113=113;
-    public static final int T112=112;
-    public static final int T111=111;
-    public static final int T110=110;
-    public static final int DECIMAL_LITERAL=58;
-    public static final int LAND=30;
-    public static final int T75=75;
-    public static final int T76=76;
-    public static final int DEC=48;
-    public static final int T73=73;
-    public static final int T74=74;
-    public static final int LBRACK=4;
-    public static final int T79=79;
-    public static final int T77=77;
-    public static final int T78=78;
-    public static final int BXOR_ASSIGN=26;
-    public static final int DIGITS=61;
-    public static final int T72=72;
-    public static final int LPAREN=13;
-    public static final int T71=71;
-    public static final int T70=70;
-    public static final int ESCAPE_SEQUENCE=64;
-    public static final int ML_COMMENT=57;
-    public static final int T68=68;
-    public static final int BOR_ASSIGN=27;
-    public static final int T69=69;
-    public static final int COMMA=12;
-    public static final int EQUAL=35;
-    public static final int BOR=31;
-    public static final int IDENT=6;
-    public static final int PLUS=43;
-    public static final int BXOR=32;
-    public static final int HEX_LITERAL=59;
-    public static final int DOT=7;
-    public static final int T99=99;
-    public static final int T97=97;
-    public static final int T98=98;
-    public static final int T95=95;
-    public static final int T96=96;
-    public static final int OCTAL_LITERAL=60;
-    public static final int HEX_DIGIT=67;
-    public static final int MINUS=44;
-    public static final int T94=94;
-    public static final int Tokens=116;
-    public static final int T93=93;
-    public static final int BAND=33;
-    public static final int T92=92;
-    public static final int SEMI=10;
-    public static final int STAR_ASSIGN=19;
-    public static final int T91=91;
-    public static final int T90=90;
-    public static final int COLON=16;
-    public static final int T88=88;
-    public static final int T89=89;
-    public static final int BAND_ASSIGN=25;
-    public static final int T84=84;
-    public static final int T85=85;
-    public static final int QUESTION=28;
-    public static final int T86=86;
-    public static final int CHAR_LITERAL=52;
-    public static final int T87=87;
-    public static final int SL=40;
-    public static final int RCURLY=11;
-    public static final int SR=41;
-    public static final int PLUS_ASSIGN=17;
-    public static final int ASSIGN=15;
-    public static final int UNICODE_CHAR=66;
-    public static final int DIV=45;
-    public static final int T81=81;
-    public static final int T80=80;
-    public static final int EXPONENT_PART=62;
-    public static final int T83=83;
-    public static final int SR_ASSIGN=22;
-    public static final int T82=82;
-    public static final int LE=38;
-    
-    	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
-
-    public JavaParserLexer() {;} 
-    public JavaParserLexer(CharStream input) {
-        super(input);
-    }
-    public String getGrammarFileName() { return "C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g"; }
-
-    // $ANTLR start T68
-    public final void mT68() throws RecognitionException {
-        try {
-            int _type = T68;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:9:7: ( 'void' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:9:7: 'void'
-            {
-            match("void"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T68
-
-    // $ANTLR start T69
-    public final void mT69() throws RecognitionException {
-        try {
-            int _type = T69;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:10:7: ( 'boolean' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:10:7: 'boolean'
-            {
-            match("boolean"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T69
-
-    // $ANTLR start T70
-    public final void mT70() throws RecognitionException {
-        try {
-            int _type = T70;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:11:7: ( 'byte' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:11:7: 'byte'
-            {
-            match("byte"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T70
-
-    // $ANTLR start T71
-    public final void mT71() throws RecognitionException {
-        try {
-            int _type = T71;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:12:7: ( 'char' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:12:7: 'char'
-            {
-            match("char"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T71
-
-    // $ANTLR start T72
-    public final void mT72() throws RecognitionException {
-        try {
-            int _type = T72;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:13:7: ( 'short' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:13:7: 'short'
-            {
-            match("short"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T72
-
-    // $ANTLR start T73
-    public final void mT73() throws RecognitionException {
-        try {
-            int _type = T73;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:14:7: ( 'int' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:14:7: 'int'
-            {
-            match("int"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T73
-
-    // $ANTLR start T74
-    public final void mT74() throws RecognitionException {
-        try {
-            int _type = T74;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:15:7: ( 'float' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:15:7: 'float'
-            {
-            match("float"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T74
-
-    // $ANTLR start T75
-    public final void mT75() throws RecognitionException {
-        try {
-            int _type = T75;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:16:7: ( 'long' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:16:7: 'long'
-            {
-            match("long"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T75
-
-    // $ANTLR start T76
-    public final void mT76() throws RecognitionException {
-        try {
-            int _type = T76;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:17:7: ( 'double' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:17:7: 'double'
-            {
-            match("double"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T76
-
-    // $ANTLR start T77
-    public final void mT77() throws RecognitionException {
-        try {
-            int _type = T77;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:18:7: ( 'private' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:18:7: 'private'
-            {
-            match("private"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T77
-
-    // $ANTLR start T78
-    public final void mT78() throws RecognitionException {
-        try {
-            int _type = T78;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:19:7: ( 'public' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:19:7: 'public'
-            {
-            match("public"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T78
-
-    // $ANTLR start T79
-    public final void mT79() throws RecognitionException {
-        try {
-            int _type = T79;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:20:7: ( 'protected' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:20:7: 'protected'
-            {
-            match("protected"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T79
-
-    // $ANTLR start T80
-    public final void mT80() throws RecognitionException {
-        try {
-            int _type = T80;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:21:7: ( 'static' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:21:7: 'static'
-            {
-            match("static"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T80
-
-    // $ANTLR start T81
-    public final void mT81() throws RecognitionException {
-        try {
-            int _type = T81;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:22:7: ( 'transient' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:22:7: 'transient'
-            {
-            match("transient"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T81
-
-    // $ANTLR start T82
-    public final void mT82() throws RecognitionException {
-        try {
-            int _type = T82;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:23:7: ( 'final' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:23:7: 'final'
-            {
-            match("final"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T82
-
-    // $ANTLR start T83
-    public final void mT83() throws RecognitionException {
-        try {
-            int _type = T83;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:24:7: ( 'abstract' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:24:7: 'abstract'
-            {
-            match("abstract"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T83
-
-    // $ANTLR start T84
-    public final void mT84() throws RecognitionException {
-        try {
-            int _type = T84;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:25:7: ( 'native' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:25:7: 'native'
-            {
-            match("native"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T84
-
-    // $ANTLR start T85
-    public final void mT85() throws RecognitionException {
-        try {
-            int _type = T85;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:26:7: ( 'threadsafe' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:26:7: 'threadsafe'
-            {
-            match("threadsafe"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T85
-
-    // $ANTLR start T86
-    public final void mT86() throws RecognitionException {
-        try {
-            int _type = T86;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:27:7: ( 'synchronized' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:27:7: 'synchronized'
-            {
-            match("synchronized"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T86
-
-    // $ANTLR start T87
-    public final void mT87() throws RecognitionException {
-        try {
-            int _type = T87;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:28:7: ( 'volatile' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:28:7: 'volatile'
-            {
-            match("volatile"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T87
-
-    // $ANTLR start T88
-    public final void mT88() throws RecognitionException {
-        try {
-            int _type = T88;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:29:7: ( 'strictfp' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:29:7: 'strictfp'
-            {
-            match("strictfp"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T88
-
-    // $ANTLR start T89
-    public final void mT89() throws RecognitionException {
-        try {
-            int _type = T89;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:30:7: ( 'class' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:30:7: 'class'
-            {
-            match("class"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T89
-
-    // $ANTLR start T90
-    public final void mT90() throws RecognitionException {
-        try {
-            int _type = T90;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:31:7: ( 'extends' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:31:7: 'extends'
-            {
-            match("extends"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T90
-
-    // $ANTLR start T91
-    public final void mT91() throws RecognitionException {
-        try {
-            int _type = T91;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:32:7: ( 'interface' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:32:7: 'interface'
-            {
-            match("interface"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T91
-
-    // $ANTLR start T92
-    public final void mT92() throws RecognitionException {
-        try {
-            int _type = T92;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:33:7: ( 'implements' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:33:7: 'implements'
-            {
-            match("implements"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T92
-
-    // $ANTLR start T93
-    public final void mT93() throws RecognitionException {
-        try {
-            int _type = T93;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:34:7: ( 'this' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:34:7: 'this'
-            {
-            match("this"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T93
-
-    // $ANTLR start T94
-    public final void mT94() throws RecognitionException {
-        try {
-            int _type = T94;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:35:7: ( 'super' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:35:7: 'super'
-            {
-            match("super"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T94
-
-    // $ANTLR start T95
-    public final void mT95() throws RecognitionException {
-        try {
-            int _type = T95;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:36:7: ( 'throws' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:36:7: 'throws'
-            {
-            match("throws"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T95
-
-    // $ANTLR start T96
-    public final void mT96() throws RecognitionException {
-        try {
-            int _type = T96;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:37:7: ( 'if' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:37:7: 'if'
-            {
-            match("if"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T96
-
-    // $ANTLR start T97
-    public final void mT97() throws RecognitionException {
-        try {
-            int _type = T97;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:38:7: ( 'else' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:38:7: 'else'
-            {
-            match("else"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T97
-
-    // $ANTLR start T98
-    public final void mT98() throws RecognitionException {
-        try {
-            int _type = T98;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:39:7: ( 'for' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:39:7: 'for'
-            {
-            match("for"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T98
-
-    // $ANTLR start T99
-    public final void mT99() throws RecognitionException {
-        try {
-            int _type = T99;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:40:7: ( 'while' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:40:7: 'while'
-            {
-            match("while"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T99
-
-    // $ANTLR start T100
-    public final void mT100() throws RecognitionException {
-        try {
-            int _type = T100;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:41:8: ( 'do' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:41:8: 'do'
-            {
-            match("do"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T100
-
-    // $ANTLR start T101
-    public final void mT101() throws RecognitionException {
-        try {
-            int _type = T101;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:42:8: ( 'break' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:42:8: 'break'
-            {
-            match("break"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T101
-
-    // $ANTLR start T102
-    public final void mT102() throws RecognitionException {
-        try {
-            int _type = T102;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:43:8: ( 'continue' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:43:8: 'continue'
-            {
-            match("continue"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T102
-
-    // $ANTLR start T103
-    public final void mT103() throws RecognitionException {
-        try {
-            int _type = T103;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:44:8: ( 'return' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:44:8: 'return'
-            {
-            match("return"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T103
-
-    // $ANTLR start T104
-    public final void mT104() throws RecognitionException {
-        try {
-            int _type = T104;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:45:8: ( 'switch' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:45:8: 'switch'
-            {
-            match("switch"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T104
-
-    // $ANTLR start T105
-    public final void mT105() throws RecognitionException {
-        try {
-            int _type = T105;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:46:8: ( 'throw' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:46:8: 'throw'
-            {
-            match("throw"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T105
-
-    // $ANTLR start T106
-    public final void mT106() throws RecognitionException {
-        try {
-            int _type = T106;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:47:8: ( 'case' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:47:8: 'case'
-            {
-            match("case"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T106
-
-    // $ANTLR start T107
-    public final void mT107() throws RecognitionException {
-        try {
-            int _type = T107;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:48:8: ( 'default' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:48:8: 'default'
-            {
-            match("default"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T107
-
-    // $ANTLR start T108
-    public final void mT108() throws RecognitionException {
-        try {
-            int _type = T108;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:49:8: ( 'try' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:49:8: 'try'
-            {
-            match("try"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T108
-
-    // $ANTLR start T109
-    public final void mT109() throws RecognitionException {
-        try {
-            int _type = T109;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:50:8: ( 'finally' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:50:8: 'finally'
-            {
-            match("finally"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T109
-
-    // $ANTLR start T110
-    public final void mT110() throws RecognitionException {
-        try {
-            int _type = T110;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:51:8: ( 'catch' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:51:8: 'catch'
-            {
-            match("catch"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T110
-
-    // $ANTLR start T111
-    public final void mT111() throws RecognitionException {
-        try {
-            int _type = T111;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:52:8: ( 'instanceof' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:52:8: 'instanceof'
-            {
-            match("instanceof"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T111
-
-    // $ANTLR start T112
-    public final void mT112() throws RecognitionException {
-        try {
-            int _type = T112;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:53:8: ( 'true' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:53:8: 'true'
-            {
-            match("true"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T112
-
-    // $ANTLR start T113
-    public final void mT113() throws RecognitionException {
-        try {
-            int _type = T113;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:54:8: ( 'false' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:54:8: 'false'
-            {
-            match("false"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T113
-
-    // $ANTLR start T114
-    public final void mT114() throws RecognitionException {
-        try {
-            int _type = T114;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:55:8: ( 'null' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:55:8: 'null'
-            {
-            match("null"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T114
-
-    // $ANTLR start T115
-    public final void mT115() throws RecognitionException {
-        try {
-            int _type = T115;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:56:8: ( 'new' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:56:8: 'new'
-            {
-            match("new"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T115
-
-    // $ANTLR start QUESTION
-    public final void mQUESTION() throws RecognitionException {
-        try {
-            int _type = QUESTION;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:914:13: ( '?' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:914:13: '?'
-            {
-            match('?'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end QUESTION
-
-    // $ANTLR start LPAREN
-    public final void mLPAREN() throws RecognitionException {
-        try {
-            int _type = LPAREN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:917:12: ( '(' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:917:12: '('
-            {
-            match('('); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LPAREN
-
-    // $ANTLR start RPAREN
-    public final void mRPAREN() throws RecognitionException {
-        try {
-            int _type = RPAREN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:920:12: ( ')' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:920:12: ')'
-            {
-            match(')'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end RPAREN
-
-    // $ANTLR start LBRACK
-    public final void mLBRACK() throws RecognitionException {
-        try {
-            int _type = LBRACK;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:923:12: ( '[' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:923:12: '['
-            {
-            match('['); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LBRACK
-
-    // $ANTLR start RBRACK
-    public final void mRBRACK() throws RecognitionException {
-        try {
-            int _type = RBRACK;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:926:12: ( ']' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:926:12: ']'
-            {
-            match(']'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end RBRACK
-
-    // $ANTLR start LCURLY
-    public final void mLCURLY() throws RecognitionException {
-        try {
-            int _type = LCURLY;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:929:12: ( '{' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:929:12: '{'
-            {
-            match('{'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LCURLY
-
-    // $ANTLR start RCURLY
-    public final void mRCURLY() throws RecognitionException {
-        try {
-            int _type = RCURLY;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:932:12: ( '}' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:932:12: '}'
-            {
-            match('}'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end RCURLY
-
-    // $ANTLR start COLON
-    public final void mCOLON() throws RecognitionException {
-        try {
-            int _type = COLON;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:935:11: ( ':' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:935:11: ':'
-            {
-            match(':'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end COLON
-
-    // $ANTLR start COMMA
-    public final void mCOMMA() throws RecognitionException {
-        try {
-            int _type = COMMA;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:938:11: ( ',' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:938:11: ','
-            {
-            match(','); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end COMMA
-
-    // $ANTLR start DOT
-    public final void mDOT() throws RecognitionException {
-        try {
-            int _type = DOT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:940:10: ( '.' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:940:10: '.'
-            {
-            match('.'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end DOT
-
-    // $ANTLR start ASSIGN
-    public final void mASSIGN() throws RecognitionException {
-        try {
-            int _type = ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:942:12: ( '=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:942:12: '='
-            {
-            match('='); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end ASSIGN
-
-    // $ANTLR start EQUAL
-    public final void mEQUAL() throws RecognitionException {
-        try {
-            int _type = EQUAL;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:945:11: ( '==' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:945:11: '=='
-            {
-            match("=="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end EQUAL
-
-    // $ANTLR start LNOT
-    public final void mLNOT() throws RecognitionException {
-        try {
-            int _type = LNOT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:948:10: ( '!' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:948:10: '!'
-            {
-            match('!'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LNOT
-
-    // $ANTLR start BNOT
-    public final void mBNOT() throws RecognitionException {
-        try {
-            int _type = BNOT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:951:10: ( '~' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:951:10: '~'
-            {
-            match('~'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BNOT
-
-    // $ANTLR start NOT_EQUAL
-    public final void mNOT_EQUAL() throws RecognitionException {
-        try {
-            int _type = NOT_EQUAL;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:954:14: ( '!=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:954:14: '!='
-            {
-            match("!="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end NOT_EQUAL
-
-    // $ANTLR start DIV
-    public final void mDIV() throws RecognitionException {
-        try {
-            int _type = DIV;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:957:10: ( '/' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:957:10: '/'
-            {
-            match('/'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end DIV
-
-    // $ANTLR start DIV_ASSIGN
-    public final void mDIV_ASSIGN() throws RecognitionException {
-        try {
-            int _type = DIV_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:960:15: ( '/=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:960:15: '/='
-            {
-            match("/="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end DIV_ASSIGN
-
-    // $ANTLR start PLUS
-    public final void mPLUS() throws RecognitionException {
-        try {
-            int _type = PLUS;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:963:10: ( '+' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:963:10: '+'
-            {
-            match('+'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end PLUS
-
-    // $ANTLR start PLUS_ASSIGN
-    public final void mPLUS_ASSIGN() throws RecognitionException {
-        try {
-            int _type = PLUS_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:966:16: ( '+=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:966:16: '+='
-            {
-            match("+="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end PLUS_ASSIGN
-
-    // $ANTLR start INC
-    public final void mINC() throws RecognitionException {
-        try {
-            int _type = INC;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:969:10: ( '++' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:969:10: '++'
-            {
-            match("++"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end INC
-
-    // $ANTLR start MINUS
-    public final void mMINUS() throws RecognitionException {
-        try {
-            int _type = MINUS;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:972:11: ( '-' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:972:11: '-'
-            {
-            match('-'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end MINUS
-
-    // $ANTLR start MINUS_ASSIGN
-    public final void mMINUS_ASSIGN() throws RecognitionException {
-        try {
-            int _type = MINUS_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:975:16: ( '-=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:975:16: '-='
-            {
-            match("-="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end MINUS_ASSIGN
-
-    // $ANTLR start DEC
-    public final void mDEC() throws RecognitionException {
-        try {
-            int _type = DEC;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:978:10: ( '--' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:978:10: '--'
-            {
-            match("--"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end DEC
-
-    // $ANTLR start STAR
-    public final void mSTAR() throws RecognitionException {
-        try {
-            int _type = STAR;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:981:10: ( '*' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:981:10: '*'
-            {
-            match('*'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end STAR
-
-    // $ANTLR start STAR_ASSIGN
-    public final void mSTAR_ASSIGN() throws RecognitionException {
-        try {
-            int _type = STAR_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:984:16: ( '*=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:984:16: '*='
-            {
-            match("*="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end STAR_ASSIGN
-
-    // $ANTLR start MOD
-    public final void mMOD() throws RecognitionException {
-        try {
-            int _type = MOD;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:987:10: ( '%' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:987:10: '%'
-            {
-            match('%'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end MOD
-
-    // $ANTLR start MOD_ASSIGN
-    public final void mMOD_ASSIGN() throws RecognitionException {
-        try {
-            int _type = MOD_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:990:15: ( '%=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:990:15: '%='
-            {
-            match("%="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end MOD_ASSIGN
-
-    // $ANTLR start SR
-    public final void mSR() throws RecognitionException {
-        try {
-            int _type = SR;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:993:9: ( '>>' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:993:9: '>>'
-            {
-            match(">>"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end SR
-
-    // $ANTLR start SR_ASSIGN
-    public final void mSR_ASSIGN() throws RecognitionException {
-        try {
-            int _type = SR_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:996:14: ( '>>=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:996:14: '>>='
-            {
-            match(">>="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end SR_ASSIGN
-
-    // $ANTLR start BSR
-    public final void mBSR() throws RecognitionException {
-        try {
-            int _type = BSR;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:999:10: ( '>>>' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:999:10: '>>>'
-            {
-            match(">>>"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BSR
-
-    // $ANTLR start BSR_ASSIGN
-    public final void mBSR_ASSIGN() throws RecognitionException {
-        try {
-            int _type = BSR_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1002:15: ( '>>>=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1002:15: '>>>='
-            {
-            match(">>>="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BSR_ASSIGN
-
-    // $ANTLR start GE
-    public final void mGE() throws RecognitionException {
-        try {
-            int _type = GE;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1005:9: ( '>=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1005:9: '>='
-            {
-            match(">="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end GE
-
-    // $ANTLR start GT
-    public final void mGT() throws RecognitionException {
-        try {
-            int _type = GT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1008:9: ( '>' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1008:9: '>'
-            {
-            match('>'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end GT
-
-    // $ANTLR start SL
-    public final void mSL() throws RecognitionException {
-        try {
-            int _type = SL;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1011:9: ( '<<' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1011:9: '<<'
-            {
-            match("<<"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end SL
-
-    // $ANTLR start SL_ASSIGN
-    public final void mSL_ASSIGN() throws RecognitionException {
-        try {
-            int _type = SL_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1014:14: ( '<<=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1014:14: '<<='
-            {
-            match("<<="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end SL_ASSIGN
-
-    // $ANTLR start LE
-    public final void mLE() throws RecognitionException {
-        try {
-            int _type = LE;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1017:9: ( '<=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1017:9: '<='
-            {
-            match("<="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LE
-
-    // $ANTLR start LT
-    public final void mLT() throws RecognitionException {
-        try {
-            int _type = LT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1020:9: ( '<' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1020:9: '<'
-            {
-            match('<'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LT
-
-    // $ANTLR start BXOR
-    public final void mBXOR() throws RecognitionException {
-        try {
-            int _type = BXOR;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1023:10: ( '^' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1023:10: '^'
-            {
-            match('^'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BXOR
-
-    // $ANTLR start BXOR_ASSIGN
-    public final void mBXOR_ASSIGN() throws RecognitionException {
-        try {
-            int _type = BXOR_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1026:16: ( '^=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1026:16: '^='
-            {
-            match("^="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BXOR_ASSIGN
-
-    // $ANTLR start BOR
-    public final void mBOR() throws RecognitionException {
-        try {
-            int _type = BOR;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1029:10: ( '|' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1029:10: '|'
-            {
-            match('|'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BOR
-
-    // $ANTLR start BOR_ASSIGN
-    public final void mBOR_ASSIGN() throws RecognitionException {
-        try {
-            int _type = BOR_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1032:15: ( '|=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1032:15: '|='
-            {
-            match("|="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BOR_ASSIGN
-
-    // $ANTLR start LOR
-    public final void mLOR() throws RecognitionException {
-        try {
-            int _type = LOR;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1035:10: ( '||' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1035:10: '||'
-            {
-            match("||"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LOR
-
-    // $ANTLR start BAND
-    public final void mBAND() throws RecognitionException {
-        try {
-            int _type = BAND;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1038:10: ( '&' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1038:10: '&'
-            {
-            match('&'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BAND
-
-    // $ANTLR start BAND_ASSIGN
-    public final void mBAND_ASSIGN() throws RecognitionException {
-        try {
-            int _type = BAND_ASSIGN;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1041:16: ( '&=' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1041:16: '&='
-            {
-            match("&="); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end BAND_ASSIGN
-
-    // $ANTLR start LAND
-    public final void mLAND() throws RecognitionException {
-        try {
-            int _type = LAND;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1044:10: ( '&&' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1044:10: '&&'
-            {
-            match("&&"); 
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end LAND
-
-    // $ANTLR start SEMI
-    public final void mSEMI() throws RecognitionException {
-        try {
-            int _type = SEMI;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1047:10: ( ';' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1047:10: ';'
-            {
-            match(';'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end SEMI
-
-    // $ANTLR start WS
-    public final void mWS() throws RecognitionException {
-        try {
-            int _type = WS;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1053:6: ( ( ' ' | '\\t' | '\\f' | ( '\\r\\n' | '\\r' | '\\n' ) )+ )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1053:6: ( ' ' | '\\t' | '\\f' | ( '\\r\\n' | '\\r' | '\\n' ) )+
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1053:6: ( ' ' | '\\t' | '\\f' | ( '\\r\\n' | '\\r' | '\\n' ) )+
-            int cnt2=0;
-            loop2:
-            do {
-                int alt2=5;
-                switch ( input.LA(1) ) {
-                case ' ':
-                    {
-                    alt2=1;
-                    }
-                    break;
-                case '\t':
-                    {
-                    alt2=2;
-                    }
-                    break;
-                case '\f':
-                    {
-                    alt2=3;
-                    }
-                    break;
-                case '\n':
-                case '\r':
-                    {
-                    alt2=4;
-                    }
-                    break;
-
-                }
-
-                switch (alt2) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1053:8: ' '
-            	    {
-            	    match(' '); 
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1054:5: '\\t'
-            	    {
-            	    match('\t'); 
-
-            	    }
-            	    break;
-            	case 3 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1055:5: '\\f'
-            	    {
-            	    match('\f'); 
-
-            	    }
-            	    break;
-            	case 4 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1057:5: ( '\\r\\n' | '\\r' | '\\n' )
-            	    {
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1057:5: ( '\\r\\n' | '\\r' | '\\n' )
-            	    int alt1=3;
-            	    int LA1_0 = input.LA(1);
-
-            	    if ( (LA1_0=='\r') ) {
-            	        int LA1_1 = input.LA(2);
-
-            	        if ( (LA1_1=='\n') ) {
-            	            alt1=1;
-            	        }
-            	        else {
-            	            alt1=2;}
-            	    }
-            	    else if ( (LA1_0=='\n') ) {
-            	        alt1=3;
-            	    }
-            	    else {
-            	        NoViableAltException nvae =
-            	            new NoViableAltException("1057:5: ( '\\r\\n' | '\\r' | '\\n' )", 1, 0, input);
-
-            	        throw nvae;
-            	    }
-            	    switch (alt1) {
-            	        case 1 :
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1057:7: '\\r\\n'
-            	            {
-            	            match("\r\n"); 
-
-
-            	            }
-            	            break;
-            	        case 2 :
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1058:6: '\\r'
-            	            {
-            	            match('\r'); 
-
-            	            }
-            	            break;
-            	        case 3 :
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1059:6: '\\n'
-            	            {
-            	            match('\n'); 
-
-            	            }
-            	            break;
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt2 >= 1 ) break loop2;
-                        EarlyExitException eee =
-                            new EarlyExitException(2, input);
-                        throw eee;
-                }
-                cnt2++;
-            } while (true);
-
-             channel=HIDDEN; /*token = JavaParser.IGNORE_TOKEN;*/ 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end WS
-
-    // $ANTLR start SL_COMMENT
-    public final void mSL_COMMENT() throws RecognitionException {
-        try {
-            int _type = SL_COMMENT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1069:4: ( '//' ( options {greedy=false; } : . )* ( '\\r' )? '\\n' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1069:4: '//' ( options {greedy=false; } : . )* ( '\\r' )? '\\n'
-            {
-            match("//"); 
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1069:9: ( options {greedy=false; } : . )*
-            loop3:
-            do {
-                int alt3=2;
-                int LA3_0 = input.LA(1);
-
-                if ( (LA3_0=='\r') ) {
-                    alt3=2;
-                }
-                else if ( (LA3_0=='\n') ) {
-                    alt3=2;
-                }
-                else if ( ((LA3_0>='\u0000' && LA3_0<='\t')||(LA3_0>='\u000B' && LA3_0<='\f')||(LA3_0>='\u000E' && LA3_0<='\uFFFE')) ) {
-                    alt3=1;
-                }
-
-
-                switch (alt3) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1069:36: .
-            	    {
-            	    matchAny(); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop3;
-                }
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1069:40: ( '\\r' )?
-            int alt4=2;
-            int LA4_0 = input.LA(1);
-
-            if ( (LA4_0=='\r') ) {
-                alt4=1;
-            }
-            switch (alt4) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1069:41: '\\r'
-                    {
-                    match('\r'); 
-
-                    }
-                    break;
-
-            }
-
-            match('\n'); 
-            channel=HIDDEN; /*token = JavaParser.IGNORE_TOKEN;*/
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end SL_COMMENT
-
-    // $ANTLR start ML_COMMENT
-    public final void mML_COMMENT() throws RecognitionException {
-        try {
-            int _type = ML_COMMENT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1077:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1077:4: '/*' ( options {greedy=false; } : . )* '*/'
-            {
-            match("/*"); 
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1078:3: ( options {greedy=false; } : . )*
-            loop5:
-            do {
-                int alt5=2;
-                int LA5_0 = input.LA(1);
-
-                if ( (LA5_0=='*') ) {
-                    int LA5_1 = input.LA(2);
-
-                    if ( (LA5_1=='/') ) {
-                        alt5=2;
-                    }
-                    else if ( ((LA5_1>='\u0000' && LA5_1<='.')||(LA5_1>='0' && LA5_1<='\uFFFE')) ) {
-                        alt5=1;
-                    }
-
-
-                }
-                else if ( ((LA5_0>='\u0000' && LA5_0<=')')||(LA5_0>='+' && LA5_0<='\uFFFE')) ) {
-                    alt5=1;
-                }
-
-
-                switch (alt5) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1078:31: .
-            	    {
-            	    matchAny(); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop5;
-                }
-            } while (true);
-
-            match("*/"); 
-
-            channel=HIDDEN;/*token = JavaParser.IGNORE_TOKEN;*/
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end ML_COMMENT
-
-    // $ANTLR start IDENT
-    public final void mIDENT() throws RecognitionException {
-        try {
-            int _type = IDENT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1084:4: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '$' )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1084:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '$' )*
-            {
-            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recover(mse);    throw mse;
-            }
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1084:32: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '$' )*
-            loop6:
-            do {
-                int alt6=2;
-                int LA6_0 = input.LA(1);
-
-                if ( (LA6_0=='$'||(LA6_0>='0' && LA6_0<='9')||(LA6_0>='A' && LA6_0<='Z')||LA6_0=='_'||(LA6_0>='a' && LA6_0<='z')) ) {
-                    alt6=1;
-                }
-
-
-                switch (alt6) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-            	    {
-            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse =
-            	            new MismatchedSetException(null,input);
-            	        recover(mse);    throw mse;
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop6;
-                }
-            } while (true);
-
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end IDENT
-
-    // $ANTLR start NUM_INT
-    public final void mNUM_INT() throws RecognitionException {
-        try {
-            int _type = NUM_INT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1090:7: ( DECIMAL_LITERAL | HEX_LITERAL | OCTAL_LITERAL )
-            int alt7=3;
-            int LA7_0 = input.LA(1);
-
-            if ( ((LA7_0>='1' && LA7_0<='9')) ) {
-                alt7=1;
-            }
-            else if ( (LA7_0=='0') ) {
-                int LA7_2 = input.LA(2);
-
-                if ( (LA7_2=='X'||LA7_2=='x') ) {
-                    alt7=2;
-                }
-                else {
-                    alt7=3;}
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("1089:1: NUM_INT : ( DECIMAL_LITERAL | HEX_LITERAL | OCTAL_LITERAL );", 7, 0, input);
-
-                throw nvae;
-            }
-            switch (alt7) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1090:7: DECIMAL_LITERAL
-                    {
-                    mDECIMAL_LITERAL(); 
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1091:7: HEX_LITERAL
-                    {
-                    mHEX_LITERAL(); 
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1092:7: OCTAL_LITERAL
-                    {
-                    mOCTAL_LITERAL(); 
-
-                    }
-                    break;
-
-            }
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end NUM_INT
-
-    // $ANTLR start DECIMAL_LITERAL
-    public final void mDECIMAL_LITERAL() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1096:18: ( '1' .. '9' ( '0' .. '9' )* ( 'l' | 'L' )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1096:18: '1' .. '9' ( '0' .. '9' )* ( 'l' | 'L' )?
-            {
-            matchRange('1','9'); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1096:27: ( '0' .. '9' )*
-            loop8:
-            do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
-
-                if ( ((LA8_0>='0' && LA8_0<='9')) ) {
-                    alt8=1;
-                }
-
-
-                switch (alt8) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1096:28: '0' .. '9'
-            	    {
-            	    matchRange('0','9'); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop8;
-                }
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1096:39: ( 'l' | 'L' )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
-
-            if ( (LA9_0=='L'||LA9_0=='l') ) {
-                alt9=1;
-            }
-            switch (alt9) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-                    {
-                    if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse =
-                            new MismatchedSetException(null,input);
-                        recover(mse);    throw mse;
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end DECIMAL_LITERAL
-
-    // $ANTLR start HEX_LITERAL
-    public final void mHEX_LITERAL() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1099:14: ( '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ( 'l' | 'L' )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1099:14: '0' ( 'x' | 'X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ( 'l' | 'L' )?
-            {
-            match('0'); 
-            if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recover(mse);    throw mse;
-            }
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1099:28: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
-            int cnt10=0;
-            loop10:
-            do {
-                int alt10=2;
-                int LA10_0 = input.LA(1);
-
-                if ( ((LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='F')||(LA10_0>='a' && LA10_0<='f')) ) {
-                    alt10=1;
-                }
-
-
-                switch (alt10) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-            	    {
-            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse =
-            	            new MismatchedSetException(null,input);
-            	        recover(mse);    throw mse;
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt10 >= 1 ) break loop10;
-                        EarlyExitException eee =
-                            new EarlyExitException(10, input);
-                        throw eee;
-                }
-                cnt10++;
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1099:58: ( 'l' | 'L' )?
-            int alt11=2;
-            int LA11_0 = input.LA(1);
-
-            if ( (LA11_0=='L'||LA11_0=='l') ) {
-                alt11=1;
-            }
-            switch (alt11) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-                    {
-                    if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse =
-                            new MismatchedSetException(null,input);
-                        recover(mse);    throw mse;
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end HEX_LITERAL
-
-    // $ANTLR start OCTAL_LITERAL
-    public final void mOCTAL_LITERAL() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1102:16: ( '0' ( '0' .. '7' )* ( 'l' | 'L' )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1102:16: '0' ( '0' .. '7' )* ( 'l' | 'L' )?
-            {
-            match('0'); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1102:20: ( '0' .. '7' )*
-            loop12:
-            do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
-
-                if ( ((LA12_0>='0' && LA12_0<='7')) ) {
-                    alt12=1;
-                }
-
-
-                switch (alt12) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1102:21: '0' .. '7'
-            	    {
-            	    matchRange('0','7'); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop12;
-                }
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1102:32: ( 'l' | 'L' )?
-            int alt13=2;
-            int LA13_0 = input.LA(1);
-
-            if ( (LA13_0=='L'||LA13_0=='l') ) {
-                alt13=1;
-            }
-            switch (alt13) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-                    {
-                    if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse =
-                            new MismatchedSetException(null,input);
-                        recover(mse);    throw mse;
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end OCTAL_LITERAL
-
-    // $ANTLR start NUM_FLOAT
-    public final void mNUM_FLOAT() throws RecognitionException {
-        try {
-            int _type = NUM_FLOAT;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:11: ( DIGITS '.' ( DIGITS )? ( EXPONENT_PART )? ( FLOAT_TYPE_SUFFIX )? | '.' DIGITS ( EXPONENT_PART )? ( FLOAT_TYPE_SUFFIX )? | DIGITS EXPONENT_PART FLOAT_TYPE_SUFFIX | DIGITS EXPONENT_PART | DIGITS FLOAT_TYPE_SUFFIX )
-            int alt19=5;
-            alt19 = dfa19.predict(input);
-            switch (alt19) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:11: DIGITS '.' ( DIGITS )? ( EXPONENT_PART )? ( FLOAT_TYPE_SUFFIX )?
-                    {
-                    mDIGITS(); 
-                    match('.'); 
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:22: ( DIGITS )?
-                    int alt14=2;
-                    int LA14_0 = input.LA(1);
-
-                    if ( ((LA14_0>='0' && LA14_0<='9')) ) {
-                        alt14=1;
-                    }
-                    switch (alt14) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:23: DIGITS
-                            {
-                            mDIGITS(); 
-
-                            }
-                            break;
-
-                    }
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:32: ( EXPONENT_PART )?
-                    int alt15=2;
-                    int LA15_0 = input.LA(1);
-
-                    if ( (LA15_0=='E'||LA15_0=='e') ) {
-                        alt15=1;
-                    }
-                    switch (alt15) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:33: EXPONENT_PART
-                            {
-                            mEXPONENT_PART(); 
-
-                            }
-                            break;
-
-                    }
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:49: ( FLOAT_TYPE_SUFFIX )?
-                    int alt16=2;
-                    int LA16_0 = input.LA(1);
-
-                    if ( (LA16_0=='D'||LA16_0=='F'||LA16_0=='d'||LA16_0=='f') ) {
-                        alt16=1;
-                    }
-                    switch (alt16) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1105:50: FLOAT_TYPE_SUFFIX
-                            {
-                            mFLOAT_TYPE_SUFFIX(); 
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1106:7: '.' DIGITS ( EXPONENT_PART )? ( FLOAT_TYPE_SUFFIX )?
-                    {
-                    match('.'); 
-                    mDIGITS(); 
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1106:18: ( EXPONENT_PART )?
-                    int alt17=2;
-                    int LA17_0 = input.LA(1);
-
-                    if ( (LA17_0=='E'||LA17_0=='e') ) {
-                        alt17=1;
-                    }
-                    switch (alt17) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1106:19: EXPONENT_PART
-                            {
-                            mEXPONENT_PART(); 
-
-                            }
-                            break;
-
-                    }
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1106:35: ( FLOAT_TYPE_SUFFIX )?
-                    int alt18=2;
-                    int LA18_0 = input.LA(1);
-
-                    if ( (LA18_0=='D'||LA18_0=='F'||LA18_0=='d'||LA18_0=='f') ) {
-                        alt18=1;
-                    }
-                    switch (alt18) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1106:36: FLOAT_TYPE_SUFFIX
-                            {
-                            mFLOAT_TYPE_SUFFIX(); 
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1107:11: DIGITS EXPONENT_PART FLOAT_TYPE_SUFFIX
-                    {
-                    mDIGITS(); 
-                    mEXPONENT_PART(); 
-                    mFLOAT_TYPE_SUFFIX(); 
-
-                    }
-                    break;
-                case 4 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1108:11: DIGITS EXPONENT_PART
-                    {
-                    mDIGITS(); 
-                    mEXPONENT_PART(); 
-
-                    }
-                    break;
-                case 5 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1109:11: DIGITS FLOAT_TYPE_SUFFIX
-                    {
-                    mDIGITS(); 
-                    mFLOAT_TYPE_SUFFIX(); 
-
-                    }
-                    break;
-
-            }
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end NUM_FLOAT
-
-    // $ANTLR start DIGITS
-    public final void mDIGITS() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1114:10: ( ( '0' .. '9' )+ )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1114:10: ( '0' .. '9' )+
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1114:10: ( '0' .. '9' )+
-            int cnt20=0;
-            loop20:
-            do {
-                int alt20=2;
-                int LA20_0 = input.LA(1);
-
-                if ( ((LA20_0>='0' && LA20_0<='9')) ) {
-                    alt20=1;
-                }
-
-
-                switch (alt20) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1114:11: '0' .. '9'
-            	    {
-            	    matchRange('0','9'); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt20 >= 1 ) break loop20;
-                        EarlyExitException eee =
-                            new EarlyExitException(20, input);
-                        throw eee;
-                }
-                cnt20++;
-            } while (true);
-
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end DIGITS
-
-    // $ANTLR start EXPONENT_PART
-    public final void mEXPONENT_PART() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1122:16: ( ( 'e' | 'E' ) ( '+' | '-' )? DIGITS )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1122:16: ( 'e' | 'E' ) ( '+' | '-' )? DIGITS
-            {
-            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recover(mse);    throw mse;
-            }
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1122:26: ( '+' | '-' )?
-            int alt21=2;
-            int LA21_0 = input.LA(1);
-
-            if ( (LA21_0=='+'||LA21_0=='-') ) {
-                alt21=1;
-            }
-            switch (alt21) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-                    {
-                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse =
-                            new MismatchedSetException(null,input);
-                        recover(mse);    throw mse;
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-            mDIGITS(); 
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end EXPONENT_PART
-
-    // $ANTLR start FLOAT_TYPE_SUFFIX
-    public final void mFLOAT_TYPE_SUFFIX() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1125:23: ( ( 'f' | 'F' | 'd' | 'D' ) )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1125:23: ( 'f' | 'F' | 'd' | 'D' )
-            {
-            if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='d'||input.LA(1)=='f' ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recover(mse);    throw mse;
-            }
-
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end FLOAT_TYPE_SUFFIX
-
-    // $ANTLR start CHAR_LITERAL
-    public final void mCHAR_LITERAL() throws RecognitionException {
-        try {
-            int _type = CHAR_LITERAL;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1129:7: ( '\\'' (~ ( '\\'' | '\\\\' ) | ESCAPE_SEQUENCE ) '\\'' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1129:7: '\\'' (~ ( '\\'' | '\\\\' ) | ESCAPE_SEQUENCE ) '\\''
-            {
-            match('\''); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1130:7: (~ ( '\\'' | '\\\\' ) | ESCAPE_SEQUENCE )
-            int alt22=2;
-            int LA22_0 = input.LA(1);
-
-            if ( ((LA22_0>='\u0000' && LA22_0<='&')||(LA22_0>='(' && LA22_0<='[')||(LA22_0>=']' && LA22_0<='\uFFFE')) ) {
-                alt22=1;
-            }
-            else if ( (LA22_0=='\\') ) {
-                alt22=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("1130:7: (~ ( '\\'' | '\\\\' ) | ESCAPE_SEQUENCE )", 22, 0, input);
-
-                throw nvae;
-            }
-            switch (alt22) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1130:9: ~ ( '\\'' | '\\\\' )
-                    {
-                    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
-                        input.consume();
-
-                    }
-                    else {
-                        MismatchedSetException mse =
-                            new MismatchedSetException(null,input);
-                        recover(mse);    throw mse;
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1131:9: ESCAPE_SEQUENCE
-                    {
-                    mESCAPE_SEQUENCE(); 
-
-                    }
-                    break;
-
-            }
-
-            match('\''); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end CHAR_LITERAL
-
-    // $ANTLR start STRING_LITERAL
-    public final void mSTRING_LITERAL() throws RecognitionException {
-        try {
-            int _type = STRING_LITERAL;
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1138:7: ( '\\\"' (~ ( '\\\"' | '\\\\' ) | ESCAPE_SEQUENCE )* '\\\"' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1138:7: '\\\"' (~ ( '\\\"' | '\\\\' ) | ESCAPE_SEQUENCE )* '\\\"'
-            {
-            match('\"'); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1139:7: (~ ( '\\\"' | '\\\\' ) | ESCAPE_SEQUENCE )*
-            loop23:
-            do {
-                int alt23=3;
-                int LA23_0 = input.LA(1);
-
-                if ( ((LA23_0>='\u0000' && LA23_0<='!')||(LA23_0>='#' && LA23_0<='[')||(LA23_0>=']' && LA23_0<='\uFFFE')) ) {
-                    alt23=1;
-                }
-                else if ( (LA23_0=='\\') ) {
-                    alt23=2;
-                }
-
-
-                switch (alt23) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1139:9: ~ ( '\\\"' | '\\\\' )
-            	    {
-            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse =
-            	            new MismatchedSetException(null,input);
-            	        recover(mse);    throw mse;
-            	    }
-
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1140:9: ESCAPE_SEQUENCE
-            	    {
-            	    mESCAPE_SEQUENCE(); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop23;
-                }
-            } while (true);
-
-            match('\"'); 
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end STRING_LITERAL
-
-    // $ANTLR start ESCAPE_SEQUENCE
-    public final void mESCAPE_SEQUENCE() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1147:7: ( '\\\\' 'b' | '\\\\' 't' | '\\\\' 'n' | '\\\\' 'f' | '\\\\' 'r' | '\\\\' '\\\"' | '\\\\' '\\'' | '\\\\' '\\\\' | '\\\\' '0' .. '3' OCTAL_DIGIT OCTAL_DIGIT | '\\\\' OCTAL_DIGIT OCTAL_DIGIT | '\\\\' OCTAL_DIGIT | UNICODE_CHAR )
-            int alt24=12;
-            int LA24_0 = input.LA(1);
-
-            if ( (LA24_0=='\\') ) {
-                switch ( input.LA(2) ) {
-                case '\'':
-                    {
-                    alt24=7;
-                    }
-                    break;
-                case 'u':
-                    {
-                    alt24=12;
-                    }
-                    break;
-                case 'b':
-                    {
-                    alt24=1;
-                    }
-                    break;
-                case '\\':
-                    {
-                    alt24=8;
-                    }
-                    break;
-                case 'r':
-                    {
-                    alt24=5;
-                    }
-                    break;
-                case '0':
-                case '1':
-                case '2':
-                case '3':
-                    {
-                    int LA24_7 = input.LA(3);
-
-                    if ( ((LA24_7>='0' && LA24_7<='7')) ) {
-                        int LA24_14 = input.LA(4);
-
-                        if ( ((LA24_14>='0' && LA24_14<='7')) ) {
-                            alt24=9;
-                        }
-                        else {
-                            alt24=10;}
-                    }
-                    else {
-                        alt24=11;}
-                    }
-                    break;
-                case '\"':
-                    {
-                    alt24=6;
-                    }
-                    break;
-                case 'f':
-                    {
-                    alt24=4;
-                    }
-                    break;
-                case 't':
-                    {
-                    alt24=2;
-                    }
-                    break;
-                case 'n':
-                    {
-                    alt24=3;
-                    }
-                    break;
-                case '4':
-                case '5':
-                case '6':
-                case '7':
-                    {
-                    int LA24_12 = input.LA(3);
-
-                    if ( ((LA24_12>='0' && LA24_12<='7')) ) {
-                        alt24=10;
-                    }
-                    else {
-                        alt24=11;}
-                    }
-                    break;
-                default:
-                    NoViableAltException nvae =
-                        new NoViableAltException("1145:1: fragment ESCAPE_SEQUENCE : ( '\\\\' 'b' | '\\\\' 't' | '\\\\' 'n' | '\\\\' 'f' | '\\\\' 'r' | '\\\\' '\\\"' | '\\\\' '\\'' | '\\\\' '\\\\' | '\\\\' '0' .. '3' OCTAL_DIGIT OCTAL_DIGIT | '\\\\' OCTAL_DIGIT OCTAL_DIGIT | '\\\\' OCTAL_DIGIT | UNICODE_CHAR );", 24, 1, input);
-
-                    throw nvae;
-                }
-
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("1145:1: fragment ESCAPE_SEQUENCE : ( '\\\\' 'b' | '\\\\' 't' | '\\\\' 'n' | '\\\\' 'f' | '\\\\' 'r' | '\\\\' '\\\"' | '\\\\' '\\'' | '\\\\' '\\\\' | '\\\\' '0' .. '3' OCTAL_DIGIT OCTAL_DIGIT | '\\\\' OCTAL_DIGIT OCTAL_DIGIT | '\\\\' OCTAL_DIGIT | UNICODE_CHAR );", 24, 0, input);
-
-                throw nvae;
-            }
-            switch (alt24) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1147:7: '\\\\' 'b'
-                    {
-                    match('\\'); 
-                    match('b'); 
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1148:9: '\\\\' 't'
-                    {
-                    match('\\'); 
-                    match('t'); 
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1149:9: '\\\\' 'n'
-                    {
-                    match('\\'); 
-                    match('n'); 
-
-                    }
-                    break;
-                case 4 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1150:9: '\\\\' 'f'
-                    {
-                    match('\\'); 
-                    match('f'); 
-
-                    }
-                    break;
-                case 5 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1151:9: '\\\\' 'r'
-                    {
-                    match('\\'); 
-                    match('r'); 
-
-                    }
-                    break;
-                case 6 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1152:9: '\\\\' '\\\"'
-                    {
-                    match('\\'); 
-                    match('\"'); 
-
-                    }
-                    break;
-                case 7 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1153:9: '\\\\' '\\''
-                    {
-                    match('\\'); 
-                    match('\''); 
-
-                    }
-                    break;
-                case 8 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1154:9: '\\\\' '\\\\'
-                    {
-                    match('\\'); 
-                    match('\\'); 
-
-                    }
-                    break;
-                case 9 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1155:7: '\\\\' '0' .. '3' OCTAL_DIGIT OCTAL_DIGIT
-                    {
-                    match('\\'); 
-                    matchRange('0','3'); 
-                    mOCTAL_DIGIT(); 
-                    mOCTAL_DIGIT(); 
-
-                    }
-                    break;
-                case 10 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1156:9: '\\\\' OCTAL_DIGIT OCTAL_DIGIT
-                    {
-                    match('\\'); 
-                    mOCTAL_DIGIT(); 
-                    mOCTAL_DIGIT(); 
-
-                    }
-                    break;
-                case 11 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1157:9: '\\\\' OCTAL_DIGIT
-                    {
-                    match('\\'); 
-                    mOCTAL_DIGIT(); 
-
-                    }
-                    break;
-                case 12 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1158:4: UNICODE_CHAR
-                    {
-                    mUNICODE_CHAR(); 
-
-                    }
-                    break;
-
-            }
-        }
-        finally {
-        }
-    }
-    // $ANTLR end ESCAPE_SEQUENCE
-
-    // $ANTLR start UNICODE_CHAR
-    public final void mUNICODE_CHAR() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1163:4: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1163:4: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
-            {
-            match('\\'); 
-            match('u'); 
-            mHEX_DIGIT(); 
-            mHEX_DIGIT(); 
-            mHEX_DIGIT(); 
-            mHEX_DIGIT(); 
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end UNICODE_CHAR
-
-    // $ANTLR start HEX_DIGIT
-    public final void mHEX_DIGIT() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1168:4: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-            {
-            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recover(mse);    throw mse;
-            }
-
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end HEX_DIGIT
-
-    // $ANTLR start OCTAL_DIGIT
-    public final void mOCTAL_DIGIT() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1173:4: ( '0' .. '7' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1173:4: '0' .. '7'
-            {
-            matchRange('0','7'); 
-
-            }
-
-        }
-        finally {
-        }
-    }
-    // $ANTLR end OCTAL_DIGIT
-
-    public void mTokens() throws RecognitionException {
-        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:10: ( T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | T112 | T113 | T114 | T115 | QUESTION | LPAREN | RPAREN | LBRACK | RBRACK | LCURLY | RCURLY | COLON | COMMA | DOT | ASSIGN | EQUAL | LNOT | BNOT | NOT_EQUAL | DIV | DIV_ASSIGN | PLUS | PLUS_ASSIGN | INC | MINUS | MINUS_ASSIGN | DEC | STAR | STAR_ASSIGN | MOD | MOD_ASSIGN | SR | SR_ASSIGN | BSR | BSR_ASSIGN | GE | GT | SL | SL_ASSIGN | LE | LT | BXOR | BXOR_ASSIGN | BOR | BOR_ASSIGN | LOR | BAND | BAND_ASSIGN | LAND | SEMI | WS | SL_COMMENT | ML_COMMENT | IDENT | NUM_INT | NUM_FLOAT | CHAR_LITERAL | STRING_LITERAL )
-        int alt25=102;
-        alt25 = dfa25.predict(input);
-        switch (alt25) {
-            case 1 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:10: T68
-                {
-                mT68(); 
-
-                }
-                break;
-            case 2 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:14: T69
-                {
-                mT69(); 
-
-                }
-                break;
-            case 3 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:18: T70
-                {
-                mT70(); 
-
-                }
-                break;
-            case 4 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:22: T71
-                {
-                mT71(); 
-
-                }
-                break;
-            case 5 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:26: T72
-                {
-                mT72(); 
-
-                }
-                break;
-            case 6 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:30: T73
-                {
-                mT73(); 
-
-                }
-                break;
-            case 7 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:34: T74
-                {
-                mT74(); 
-
-                }
-                break;
-            case 8 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:38: T75
-                {
-                mT75(); 
-
-                }
-                break;
-            case 9 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:42: T76
-                {
-                mT76(); 
-
-                }
-                break;
-            case 10 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:46: T77
-                {
-                mT77(); 
-
-                }
-                break;
-            case 11 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:50: T78
-                {
-                mT78(); 
-
-                }
-                break;
-            case 12 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:54: T79
-                {
-                mT79(); 
-
-                }
-                break;
-            case 13 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:58: T80
-                {
-                mT80(); 
-
-                }
-                break;
-            case 14 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:62: T81
-                {
-                mT81(); 
-
-                }
-                break;
-            case 15 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:66: T82
-                {
-                mT82(); 
-
-                }
-                break;
-            case 16 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:70: T83
-                {
-                mT83(); 
-
-                }
-                break;
-            case 17 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:74: T84
-                {
-                mT84(); 
-
-                }
-                break;
-            case 18 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:78: T85
-                {
-                mT85(); 
-
-                }
-                break;
-            case 19 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:82: T86
-                {
-                mT86(); 
-
-                }
-                break;
-            case 20 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:86: T87
-                {
-                mT87(); 
-
-                }
-                break;
-            case 21 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:90: T88
-                {
-                mT88(); 
-
-                }
-                break;
-            case 22 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:94: T89
-                {
-                mT89(); 
-
-                }
-                break;
-            case 23 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:98: T90
-                {
-                mT90(); 
-
-                }
-                break;
-            case 24 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:102: T91
-                {
-                mT91(); 
-
-                }
-                break;
-            case 25 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:106: T92
-                {
-                mT92(); 
-
-                }
-                break;
-            case 26 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:110: T93
-                {
-                mT93(); 
-
-                }
-                break;
-            case 27 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:114: T94
-                {
-                mT94(); 
-
-                }
-                break;
-            case 28 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:118: T95
-                {
-                mT95(); 
-
-                }
-                break;
-            case 29 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:122: T96
-                {
-                mT96(); 
-
-                }
-                break;
-            case 30 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:126: T97
-                {
-                mT97(); 
-
-                }
-                break;
-            case 31 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:130: T98
-                {
-                mT98(); 
-
-                }
-                break;
-            case 32 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:134: T99
-                {
-                mT99(); 
-
-                }
-                break;
-            case 33 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:138: T100
-                {
-                mT100(); 
-
-                }
-                break;
-            case 34 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:143: T101
-                {
-                mT101(); 
-
-                }
-                break;
-            case 35 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:148: T102
-                {
-                mT102(); 
-
-                }
-                break;
-            case 36 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:153: T103
-                {
-                mT103(); 
-
-                }
-                break;
-            case 37 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:158: T104
-                {
-                mT104(); 
-
-                }
-                break;
-            case 38 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:163: T105
-                {
-                mT105(); 
-
-                }
-                break;
-            case 39 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:168: T106
-                {
-                mT106(); 
-
-                }
-                break;
-            case 40 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:173: T107
-                {
-                mT107(); 
-
-                }
-                break;
-            case 41 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:178: T108
-                {
-                mT108(); 
-
-                }
-                break;
-            case 42 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:183: T109
-                {
-                mT109(); 
-
-                }
-                break;
-            case 43 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:188: T110
-                {
-                mT110(); 
-
-                }
-                break;
-            case 44 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:193: T111
-                {
-                mT111(); 
-
-                }
-                break;
-            case 45 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:198: T112
-                {
-                mT112(); 
-
-                }
-                break;
-            case 46 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:203: T113
-                {
-                mT113(); 
-
-                }
-                break;
-            case 47 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:208: T114
-                {
-                mT114(); 
-
-                }
-                break;
-            case 48 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:213: T115
-                {
-                mT115(); 
-
-                }
-                break;
-            case 49 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:218: QUESTION
-                {
-                mQUESTION(); 
-
-                }
-                break;
-            case 50 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:227: LPAREN
-                {
-                mLPAREN(); 
-
-                }
-                break;
-            case 51 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:234: RPAREN
-                {
-                mRPAREN(); 
-
-                }
-                break;
-            case 52 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:241: LBRACK
-                {
-                mLBRACK(); 
-
-                }
-                break;
-            case 53 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:248: RBRACK
-                {
-                mRBRACK(); 
-
-                }
-                break;
-            case 54 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:255: LCURLY
-                {
-                mLCURLY(); 
-
-                }
-                break;
-            case 55 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:262: RCURLY
-                {
-                mRCURLY(); 
-
-                }
-                break;
-            case 56 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:269: COLON
-                {
-                mCOLON(); 
-
-                }
-                break;
-            case 57 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:275: COMMA
-                {
-                mCOMMA(); 
-
-                }
-                break;
-            case 58 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:281: DOT
-                {
-                mDOT(); 
-
-                }
-                break;
-            case 59 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:285: ASSIGN
-                {
-                mASSIGN(); 
-
-                }
-                break;
-            case 60 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:292: EQUAL
-                {
-                mEQUAL(); 
-
-                }
-                break;
-            case 61 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:298: LNOT
-                {
-                mLNOT(); 
-
-                }
-                break;
-            case 62 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:303: BNOT
-                {
-                mBNOT(); 
-
-                }
-                break;
-            case 63 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:308: NOT_EQUAL
-                {
-                mNOT_EQUAL(); 
-
-                }
-                break;
-            case 64 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:318: DIV
-                {
-                mDIV(); 
-
-                }
-                break;
-            case 65 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:322: DIV_ASSIGN
-                {
-                mDIV_ASSIGN(); 
-
-                }
-                break;
-            case 66 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:333: PLUS
-                {
-                mPLUS(); 
-
-                }
-                break;
-            case 67 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:338: PLUS_ASSIGN
-                {
-                mPLUS_ASSIGN(); 
-
-                }
-                break;
-            case 68 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:350: INC
-                {
-                mINC(); 
-
-                }
-                break;
-            case 69 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:354: MINUS
-                {
-                mMINUS(); 
-
-                }
-                break;
-            case 70 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:360: MINUS_ASSIGN
-                {
-                mMINUS_ASSIGN(); 
-
-                }
-                break;
-            case 71 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:373: DEC
-                {
-                mDEC(); 
-
-                }
-                break;
-            case 72 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:377: STAR
-                {
-                mSTAR(); 
-
-                }
-                break;
-            case 73 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:382: STAR_ASSIGN
-                {
-                mSTAR_ASSIGN(); 
-
-                }
-                break;
-            case 74 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:394: MOD
-                {
-                mMOD(); 
-
-                }
-                break;
-            case 75 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:398: MOD_ASSIGN
-                {
-                mMOD_ASSIGN(); 
-
-                }
-                break;
-            case 76 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:409: SR
-                {
-                mSR(); 
-
-                }
-                break;
-            case 77 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:412: SR_ASSIGN
-                {
-                mSR_ASSIGN(); 
-
-                }
-                break;
-            case 78 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:422: BSR
-                {
-                mBSR(); 
-
-                }
-                break;
-            case 79 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:426: BSR_ASSIGN
-                {
-                mBSR_ASSIGN(); 
-
-                }
-                break;
-            case 80 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:437: GE
-                {
-                mGE(); 
-
-                }
-                break;
-            case 81 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:440: GT
-                {
-                mGT(); 
-
-                }
-                break;
-            case 82 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:443: SL
-                {
-                mSL(); 
-
-                }
-                break;
-            case 83 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:446: SL_ASSIGN
-                {
-                mSL_ASSIGN(); 
-
-                }
-                break;
-            case 84 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:456: LE
-                {
-                mLE(); 
-
-                }
-                break;
-            case 85 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:459: LT
-                {
-                mLT(); 
-
-                }
-                break;
-            case 86 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:462: BXOR
-                {
-                mBXOR(); 
-
-                }
-                break;
-            case 87 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:467: BXOR_ASSIGN
-                {
-                mBXOR_ASSIGN(); 
-
-                }
-                break;
-            case 88 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:479: BOR
-                {
-                mBOR(); 
-
-                }
-                break;
-            case 89 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:483: BOR_ASSIGN
-                {
-                mBOR_ASSIGN(); 
-
-                }
-                break;
-            case 90 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:494: LOR
-                {
-                mLOR(); 
-
-                }
-                break;
-            case 91 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:498: BAND
-                {
-                mBAND(); 
-
-                }
-                break;
-            case 92 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:503: BAND_ASSIGN
-                {
-                mBAND_ASSIGN(); 
-
-                }
-                break;
-            case 93 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:515: LAND
-                {
-                mLAND(); 
-
-                }
-                break;
-            case 94 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:520: SEMI
-                {
-                mSEMI(); 
-
-                }
-                break;
-            case 95 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:525: WS
-                {
-                mWS(); 
-
-                }
-                break;
-            case 96 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:528: SL_COMMENT
-                {
-                mSL_COMMENT(); 
-
-                }
-                break;
-            case 97 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:539: ML_COMMENT
-                {
-                mML_COMMENT(); 
-
-                }
-                break;
-            case 98 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:550: IDENT
-                {
-                mIDENT(); 
-
-                }
-                break;
-            case 99 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:556: NUM_INT
-                {
-                mNUM_INT(); 
-
-                }
-                break;
-            case 100 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:564: NUM_FLOAT
-                {
-                mNUM_FLOAT(); 
-
-                }
-                break;
-            case 101 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:574: CHAR_LITERAL
-                {
-                mCHAR_LITERAL(); 
-
-                }
-                break;
-            case 102 :
-                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:1:587: STRING_LITERAL
-                {
-                mSTRING_LITERAL(); 
-
-                }
-                break;
-
-        }
-
-    }
-
-
-    protected DFA19 dfa19 = new DFA19(this);
-    protected DFA25 dfa25 = new DFA25(this);
-    static final String DFA19_eotS =
-        "\7\uffff\1\10\2\uffff";
-    static final String DFA19_eofS =
-        "\12\uffff";
-    static final String DFA19_minS =
-        "\2\56\2\uffff\1\53\1\uffff\2\60\2\uffff";
-    static final String DFA19_maxS =
-        "\1\71\1\146\2\uffff\1\71\1\uffff\1\71\1\146\2\uffff";
-    static final String DFA19_acceptS =
-        "\2\uffff\1\2\1\1\1\uffff\1\5\2\uffff\1\4\1\3";
-    static final String DFA19_specialS =
-        "\12\uffff}>";
-    static final String[] DFA19_transitionS = {
-            "\1\2\1\uffff\12\1",
-            "\1\3\1\uffff\12\1\12\uffff\1\5\1\4\1\5\35\uffff\1\5\1\4\1\5",
-            "",
-            "",
-            "\1\6\1\uffff\1\6\2\uffff\12\7",
-            "",
-            "\12\7",
-            "\12\7\12\uffff\1\11\1\uffff\1\11\35\uffff\1\11\1\uffff\1\11",
-            "",
-            ""
-    };
-
-    static final short[] DFA19_eot = DFA.unpackEncodedString(DFA19_eotS);
-    static final short[] DFA19_eof = DFA.unpackEncodedString(DFA19_eofS);
-    static final char[] DFA19_min = DFA.unpackEncodedStringToUnsignedChars(DFA19_minS);
-    static final char[] DFA19_max = DFA.unpackEncodedStringToUnsignedChars(DFA19_maxS);
-    static final short[] DFA19_accept = DFA.unpackEncodedString(DFA19_acceptS);
-    static final short[] DFA19_special = DFA.unpackEncodedString(DFA19_specialS);
-    static final short[][] DFA19_transition;
-
-    static {
-        int numStates = DFA19_transitionS.length;
-        DFA19_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA19_transition[i] = DFA.unpackEncodedString(DFA19_transitionS[i]);
-        }
-    }
-
-    class DFA19 extends DFA {
-
-        public DFA19(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 19;
-            this.eot = DFA19_eot;
-            this.eof = DFA19_eof;
-            this.min = DFA19_min;
-            this.max = DFA19_max;
-            this.accept = DFA19_accept;
-            this.special = DFA19_special;
-            this.transition = DFA19_transition;
-        }
-        public String getDescription() {
-            return "1104:1: NUM_FLOAT : ( DIGITS '.' ( DIGITS )? ( EXPONENT_PART )? ( FLOAT_TYPE_SUFFIX )? | '.' DIGITS ( EXPONENT_PART )? ( FLOAT_TYPE_SUFFIX )? | DIGITS EXPONENT_PART FLOAT_TYPE_SUFFIX | DIGITS EXPONENT_PART | DIGITS FLOAT_TYPE_SUFFIX );";
-        }
-    }
-    static final String DFA25_eotS =
-        "\1\uffff\17\51\11\uffff\1\121\1\124\1\126\1\uffff\1\132\1\135\1"+
-        "\140\1\142\1\144\1\147\1\152\1\154\1\157\1\162\3\uffff\2\163\2\uffff"+
-        "\16\51\1\u0088\6\51\1\u0090\15\51\25\uffff\1\u00a4\2\uffff\1\u00a6"+
-        "\12\uffff\2\163\21\51\1\u00b9\1\uffff\3\51\1\u00bd\3\51\1\uffff"+
-        "\7\51\1\u00c9\3\51\1\u00cd\5\51\1\u00d4\4\uffff\1\u00d5\2\51\1\u00d8"+
-        "\1\51\1\u00da\1\51\1\u00dc\12\51\1\uffff\3\51\1\uffff\1\51\1\u00eb"+
-        "\7\51\1\u00f3\1\51\1\uffff\1\u00f5\2\51\1\uffff\1\u00f8\1\u00f9"+
-        "\3\51\3\uffff\2\51\1\uffff\1\u00ff\1\uffff\1\u0100\1\uffff\1\u0101"+
-        "\1\51\1\u0103\3\51\1\u0107\4\51\1\u010c\1\u010e\1\u010f\1\uffff"+
-        "\5\51\1\u0116\1\51\1\uffff\1\51\1\uffff\2\51\2\uffff\1\51\1\u011c"+
-        "\3\51\3\uffff\1\51\1\uffff\2\51\1\u0123\1\uffff\1\u0124\3\51\1\uffff"+
-        "\1\51\2\uffff\1\u0129\1\51\1\u012b\2\51\1\u012e\1\uffff\3\51\1\u0132"+
-        "\1\51\1\uffff\1\u0134\1\51\1\u0136\3\51\2\uffff\3\51\1\u013d\1\uffff"+
-        "\1\u013e\1\uffff\1\51\1\u0140\1\uffff\3\51\1\uffff\1\u0144\1\uffff"+
-        "\1\u0145\1\uffff\1\u0146\1\51\1\u0148\3\51\2\uffff\1\51\1\uffff"+
-        "\2\51\1\u014f\3\uffff\1\51\1\uffff\1\51\1\u0152\1\51\1\u0154\1\51"+
-        "\1\u0156\1\uffff\1\51\1\u0158\1\uffff\1\u0159\1\uffff\1\u015a\1"+
-        "\uffff\1\51\3\uffff\1\u015c\1\uffff";
-    static final String DFA25_eofS =
-        "\u015d\uffff";
-    static final String DFA25_minS =
-        "\1\11\2\157\1\141\1\150\1\146\1\141\1\157\1\145\1\162\1\150\1\142"+
-        "\1\141\1\154\1\150\1\145\11\uffff\1\60\2\75\1\uffff\1\52\1\53\1"+
-        "\55\3\75\1\74\2\75\1\46\3\uffff\2\56\2\uffff\1\151\1\157\1\164\1"+
-        "\145\2\141\1\163\1\156\1\157\1\156\1\141\1\160\1\151\1\163\1\44"+
-        "\1\160\1\157\1\156\1\162\1\154\1\156\1\44\1\146\1\142\2\151\1\141"+
-        "\1\163\1\164\1\167\1\154\1\163\1\164\1\151\1\164\25\uffff\1\75\2"+
-        "\uffff\1\75\12\uffff\2\56\1\144\1\141\1\154\1\145\1\141\1\162\1"+
-        "\163\1\145\1\143\1\164\1\162\1\143\1\151\1\164\1\145\2\164\1\44"+
-        "\1\uffff\1\154\2\141\1\44\1\163\1\147\1\142\1\uffff\1\141\1\154"+
-        "\1\164\1\166\1\145\1\163\1\156\1\44\1\145\1\164\1\151\1\44\1\154"+
-        "\2\145\1\154\1\165\1\75\4\uffff\1\44\1\164\1\145\1\44\1\153\1\44"+
-        "\1\163\1\44\1\150\1\151\1\164\1\150\1\143\1\151\1\162\1\143\1\141"+
-        "\1\162\1\uffff\1\145\1\164\1\154\1\uffff\1\145\1\44\1\154\1\165"+
-        "\1\151\1\145\1\141\1\167\1\141\1\44\1\163\1\uffff\1\44\1\162\1\166"+
-        "\1\uffff\2\44\1\156\1\145\1\162\3\uffff\1\151\1\141\1\uffff\1\44"+
-        "\1\uffff\1\44\1\uffff\1\44\1\156\1\44\1\162\1\164\1\143\1\44\1\150"+
-        "\1\156\1\146\1\155\3\44\1\uffff\1\145\1\154\2\143\1\164\1\44\1\144"+
-        "\1\uffff\1\151\1\uffff\1\141\1\145\2\uffff\1\144\1\44\1\156\1\154"+
-        "\1\156\3\uffff\1\165\1\uffff\1\157\1\146\1\44\1\uffff\1\44\1\143"+
-        "\1\141\1\145\1\uffff\1\171\2\uffff\1\44\1\164\1\44\1\164\1\145\1"+
-        "\44\1\uffff\1\163\1\145\1\143\1\44\1\163\1\uffff\1\44\1\145\1\44"+
-        "\1\145\1\156\1\160\2\uffff\1\145\1\143\1\156\1\44\1\uffff\1\44\1"+
-        "\uffff\1\145\1\44\1\uffff\1\141\1\156\1\164\1\uffff\1\44\1\uffff"+
-        "\1\44\1\uffff\1\44\1\151\1\44\1\157\1\145\1\164\2\uffff\1\144\1"+
-        "\uffff\1\146\1\164\1\44\3\uffff\1\172\1\uffff\1\146\1\44\1\163\1"+
-        "\44\1\145\1\44\1\uffff\1\145\1\44\1\uffff\1\44\1\uffff\1\44\1\uffff"+
-        "\1\144\3\uffff\1\44\1\uffff";
-    static final String DFA25_maxS =
-        "\1\176\1\157\1\171\1\157\1\171\1\156\3\157\1\165\1\162\1\142\1\165"+
-        "\1\170\1\150\1\145\11\uffff\1\71\2\75\1\uffff\5\75\1\76\2\75\1\174"+
-        "\1\75\3\uffff\2\146\2\uffff\1\154\1\157\1\164\1\145\2\141\1\164"+
-        "\1\156\1\157\1\156\1\162\1\160\1\151\1\164\1\172\1\160\1\157\1\156"+
-        "\1\162\1\154\1\156\1\172\1\146\1\142\1\157\1\162\1\171\1\163\1\164"+
-        "\1\167\1\154\1\163\1\164\1\151\1\164\25\uffff\1\76\2\uffff\1\75"+
-        "\12\uffff\2\146\1\144\1\141\1\154\1\145\1\141\1\162\1\163\1\145"+
-        "\1\143\1\164\1\162\1\143\1\151\1\164\1\145\2\164\1\172\1\uffff\1"+
-        "\154\2\141\1\172\1\163\1\147\1\142\1\uffff\1\141\1\154\1\164\1\166"+
-        "\1\157\1\163\1\156\1\172\1\145\1\164\1\151\1\172\1\154\2\145\1\154"+
-        "\1\165\1\75\4\uffff\1\172\1\164\1\145\1\172\1\153\1\172\1\163\1"+
-        "\172\1\150\1\151\1\164\1\150\1\143\1\151\1\162\1\143\1\141\1\162"+
-        "\1\uffff\1\145\1\164\1\154\1\uffff\1\145\1\172\1\154\1\165\1\151"+
-        "\1\145\1\141\1\167\1\141\1\172\1\163\1\uffff\1\172\1\162\1\166\1"+
-        "\uffff\2\172\1\156\1\145\1\162\3\uffff\1\151\1\141\1\uffff\1\172"+
-        "\1\uffff\1\172\1\uffff\1\172\1\156\1\172\1\162\1\164\1\143\1\172"+
-        "\1\150\1\156\1\146\1\155\3\172\1\uffff\1\145\1\154\2\143\1\164\1"+
-        "\172\1\144\1\uffff\1\151\1\uffff\1\141\1\145\2\uffff\1\144\1\172"+
-        "\1\156\1\154\1\156\3\uffff\1\165\1\uffff\1\157\1\146\1\172\1\uffff"+
-        "\1\172\1\143\1\141\1\145\1\uffff\1\171\2\uffff\1\172\1\164\1\172"+
-        "\1\164\1\145\1\172\1\uffff\1\163\1\145\1\143\1\172\1\163\1\uffff"+
-        "\1\172\1\145\1\172\1\145\1\156\1\160\2\uffff\1\145\1\143\1\156\1"+
-        "\172\1\uffff\1\172\1\uffff\1\145\1\172\1\uffff\1\141\1\156\1\164"+
-        "\1\uffff\1\172\1\uffff\1\172\1\uffff\1\172\1\151\1\172\1\157\1\145"+
-        "\1\164\2\uffff\1\144\1\uffff\1\146\1\164\1\172\3\uffff\1\172\1\uffff"+
-        "\1\146\1\172\1\163\1\172\1\145\1\172\1\uffff\1\145\1\172\1\uffff"+
-        "\1\172\1\uffff\1\172\1\uffff\1\144\3\uffff\1\172\1\uffff";
-    static final String DFA25_acceptS =
-        "\20\uffff\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71\3\uffff\1"+
-        "\76\12\uffff\1\136\1\137\1\142\2\uffff\1\145\1\146\43\uffff\1\72"+
-        "\1\144\1\74\1\73\1\77\1\75\1\141\1\140\1\101\1\100\1\104\1\103\1"+
-        "\102\1\107\1\106\1\105\1\111\1\110\1\113\1\112\1\120\1\uffff\1\121"+
-        "\1\124\1\uffff\1\125\1\127\1\126\1\131\1\132\1\130\1\134\1\135\1"+
-        "\133\1\143\24\uffff\1\35\7\uffff\1\41\22\uffff\1\115\1\114\1\123"+
-        "\1\122\22\uffff\1\6\3\uffff\1\37\13\uffff\1\51\3\uffff\1\60\5\uffff"+
-        "\1\117\1\116\1\1\2\uffff\1\3\1\uffff\1\4\1\uffff\1\47\16\uffff\1"+
-        "\10\7\uffff\1\32\1\uffff\1\55\2\uffff\1\57\1\36\5\uffff\1\42\1\26"+
-        "\1\53\1\uffff\1\5\3\uffff\1\33\4\uffff\1\7\1\uffff\1\17\1\56\6\uffff"+
-        "\1\46\5\uffff\1\40\6\uffff\1\15\1\45\4\uffff\1\11\1\uffff\1\13\2"+
-        "\uffff\1\34\3\uffff\1\21\1\uffff\1\44\1\uffff\1\2\6\uffff\1\52\1"+
-        "\50\1\uffff\1\12\3\uffff\1\27\1\24\1\43\1\uffff\1\25\6\uffff\1\20"+
-        "\2\uffff\1\30\1\uffff\1\14\1\uffff\1\16\1\uffff\1\54\1\31\1\22\1"+
-        "\uffff\1\23";
-    static final String DFA25_specialS =
-        "\u015d\uffff}>";
-    static final String[] DFA25_transitionS = {
-            "\2\50\1\uffff\2\50\22\uffff\1\50\1\33\1\55\1\uffff\1\51\1\41"+
-            "\1\46\1\54\1\21\1\22\1\40\1\36\1\30\1\37\1\31\1\35\1\53\11\52"+
-            "\1\27\1\47\1\43\1\32\1\42\1\20\1\uffff\32\51\1\23\1\uffff\1"+
-            "\24\1\44\1\51\1\uffff\1\13\1\2\1\3\1\10\1\15\1\6\2\51\1\5\2"+
-            "\51\1\7\1\51\1\14\1\51\1\11\1\51\1\17\1\4\1\12\1\51\1\1\1\16"+
-            "\3\51\1\25\1\45\1\26\1\34",
-            "\1\56",
-            "\1\57\2\uffff\1\61\6\uffff\1\60",
-            "\1\64\6\uffff\1\62\3\uffff\1\63\2\uffff\1\65",
-            "\1\66\13\uffff\1\70\1\71\1\uffff\1\72\1\uffff\1\67",
-            "\1\74\6\uffff\1\75\1\73",
-            "\1\101\7\uffff\1\77\2\uffff\1\76\2\uffff\1\100",
-            "\1\102",
-            "\1\104\11\uffff\1\103",
-            "\1\106\2\uffff\1\105",
-            "\1\107\11\uffff\1\110",
-            "\1\111",
-            "\1\112\3\uffff\1\113\17\uffff\1\114",
-            "\1\115\13\uffff\1\116",
-            "\1\117",
-            "\1\120",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\12\122",
-            "\1\123",
-            "\1\125",
-            "",
-            "\1\127\4\uffff\1\130\15\uffff\1\131",
-            "\1\133\21\uffff\1\134",
-            "\1\136\17\uffff\1\137",
-            "\1\141",
-            "\1\143",
-            "\1\145\1\146",
-            "\1\151\1\150",
-            "\1\153",
-            "\1\155\76\uffff\1\156",
-            "\1\161\26\uffff\1\160",
-            "",
-            "",
-            "",
-            "\1\122\1\uffff\12\164\12\uffff\3\122\35\uffff\3\122",
-            "\1\122\1\uffff\10\165\2\122\12\uffff\3\122\35\uffff\3\122",
-            "",
-            "",
-            "\1\166\2\uffff\1\167",
-            "\1\170",
-            "\1\171",
-            "\1\172",
-            "\1\173",
-            "\1\174",
-            "\1\175\1\176",
-            "\1\177",
-            "\1\u0080",
-            "\1\u0081",
-            "\1\u0083\20\uffff\1\u0082",
-            "\1\u0084",
-            "\1\u0085",
-            "\1\u0086\1\u0087",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0089",
-            "\1\u008a",
-            "\1\u008b",
-            "\1\u008c",
-            "\1\u008d",
-            "\1\u008e",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\24\51"+
-            "\1\u008f\5\51",
-            "\1\u0091",
-            "\1\u0092",
-            "\1\u0094\5\uffff\1\u0093",
-            "\1\u0096\10\uffff\1\u0095",
-            "\1\u0097\23\uffff\1\u0099\3\uffff\1\u0098",
-            "\1\u009a",
-            "\1\u009b",
-            "\1\u009c",
-            "\1\u009d",
-            "\1\u009e",
-            "\1\u009f",
-            "\1\u00a0",
-            "\1\u00a1",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\u00a3\1\u00a2",
-            "",
-            "",
-            "\1\u00a5",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\122\1\uffff\12\164\12\uffff\3\122\35\uffff\3\122",
-            "\1\122\1\uffff\10\165\2\122\12\uffff\3\122\35\uffff\3\122",
-            "\1\u00a7",
-            "\1\u00a8",
-            "\1\u00a9",
-            "\1\u00aa",
-            "\1\u00ab",
-            "\1\u00ac",
-            "\1\u00ad",
-            "\1\u00ae",
-            "\1\u00af",
-            "\1\u00b0",
-            "\1\u00b1",
-            "\1\u00b2",
-            "\1\u00b3",
-            "\1\u00b4",
-            "\1\u00b5",
-            "\1\u00b6",
-            "\1\u00b7",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\4\51"+
-            "\1\u00b8\25\51",
-            "",
-            "\1\u00ba",
-            "\1\u00bb",
-            "\1\u00bc",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00be",
-            "\1\u00bf",
-            "\1\u00c0",
-            "",
-            "\1\u00c1",
-            "\1\u00c2",
-            "\1\u00c3",
-            "\1\u00c4",
-            "\1\u00c6\11\uffff\1\u00c5",
-            "\1\u00c7",
-            "\1\u00c8",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00ca",
-            "\1\u00cb",
-            "\1\u00cc",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00ce",
-            "\1\u00cf",
-            "\1\u00d0",
-            "\1\u00d1",
-            "\1\u00d2",
-            "\1\u00d3",
-            "",
-            "",
-            "",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00d6",
-            "\1\u00d7",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00d9",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00db",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00dd",
-            "\1\u00de",
-            "\1\u00df",
-            "\1\u00e0",
-            "\1\u00e1",
-            "\1\u00e2",
-            "\1\u00e3",
-            "\1\u00e4",
-            "\1\u00e5",
-            "\1\u00e6",
-            "",
-            "\1\u00e7",
-            "\1\u00e8",
-            "\1\u00e9",
-            "",
-            "\1\u00ea",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00ec",
-            "\1\u00ed",
-            "\1\u00ee",
-            "\1\u00ef",
-            "\1\u00f0",
-            "\1\u00f1",
-            "\1\u00f2",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00f4",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00f6",
-            "\1\u00f7",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u00fa",
-            "\1\u00fb",
-            "\1\u00fc",
-            "",
-            "",
-            "",
-            "\1\u00fd",
-            "\1\u00fe",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0102",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0104",
-            "\1\u0105",
-            "\1\u0106",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0108",
-            "\1\u0109",
-            "\1\u010a",
-            "\1\u010b",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\13\51"+
-            "\1\u010d\16\51",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\u0110",
-            "\1\u0111",
-            "\1\u0112",
-            "\1\u0113",
-            "\1\u0114",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\22\51"+
-            "\1\u0115\7\51",
-            "\1\u0117",
-            "",
-            "\1\u0118",
-            "",
-            "\1\u0119",
-            "\1\u011a",
-            "",
-            "",
-            "\1\u011b",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u011d",
-            "\1\u011e",
-            "\1\u011f",
-            "",
-            "",
-            "",
-            "\1\u0120",
-            "",
-            "\1\u0121",
-            "\1\u0122",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0125",
-            "\1\u0126",
-            "\1\u0127",
-            "",
-            "\1\u0128",
-            "",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u012a",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u012c",
-            "\1\u012d",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\u012f",
-            "\1\u0130",
-            "\1\u0131",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0133",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0135",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0137",
-            "\1\u0138",
-            "\1\u0139",
-            "",
-            "",
-            "\1\u013a",
-            "\1\u013b",
-            "\1\u013c",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\u013f",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\u0141",
-            "\1\u0142",
-            "\1\u0143",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0147",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0149",
-            "\1\u014a",
-            "\1\u014b",
-            "",
-            "",
-            "\1\u014c",
-            "",
-            "\1\u014d",
-            "\1\u014e",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "",
-            "",
-            "\1\u0150",
-            "",
-            "\1\u0151",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0153",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "\1\u0155",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\u0157",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            "",
-            "\1\u015b",
-            "",
-            "",
-            "",
-            "\1\51\13\uffff\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51",
-            ""
-    };
-
-    static final short[] DFA25_eot = DFA.unpackEncodedString(DFA25_eotS);
-    static final short[] DFA25_eof = DFA.unpackEncodedString(DFA25_eofS);
-    static final char[] DFA25_min = DFA.unpackEncodedStringToUnsignedChars(DFA25_minS);
-    static final char[] DFA25_max = DFA.unpackEncodedStringToUnsignedChars(DFA25_maxS);
-    static final short[] DFA25_accept = DFA.unpackEncodedString(DFA25_acceptS);
-    static final short[] DFA25_special = DFA.unpackEncodedString(DFA25_specialS);
-    static final short[][] DFA25_transition;
-
-    static {
-        int numStates = DFA25_transitionS.length;
-        DFA25_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA25_transition[i] = DFA.unpackEncodedString(DFA25_transitionS[i]);
-        }
-    }
-
-    class DFA25 extends DFA {
-
-        public DFA25(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 25;
-            this.eot = DFA25_eot;
-            this.eof = DFA25_eof;
-            this.min = DFA25_min;
-            this.max = DFA25_max;
-            this.accept = DFA25_accept;
-            this.special = DFA25_special;
-            this.transition = DFA25_transition;
-        }
-        public String getDescription() {
-            return "1:1: Tokens : ( T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | T87 | T88 | T89 | T90 | T91 | T92 | T93 | T94 | T95 | T96 | T97 | T98 | T99 | T100 | T101 | T102 | T103 | T104 | T105 | T106 | T107 | T108 | T109 | T110 | T111 | T112 | T113 | T114 | T115 | QUESTION | LPAREN | RPAREN | LBRACK | RBRACK | LCURLY | RCURLY | COLON | COMMA | DOT | ASSIGN | EQUAL | LNOT | BNOT | NOT_EQUAL | DIV | DIV_ASSIGN | PLUS | PLUS_ASSIGN | INC | MINUS | MINUS_ASSIGN | DEC | STAR | STAR_ASSIGN | MOD | MOD_ASSIGN | SR | SR_ASSIGN | BSR | BSR_ASSIGN | GE | GT | SL | SL_ASSIGN | LE | LT | BXOR | BXOR_ASSIGN | BOR | BOR_ASSIGN | LOR | BAND | BAND_ASSIGN | LAND | SEMI | WS | SL_COMMENT | ML_COMMENT | IDENT | NUM_INT | NUM_FLOAT | CHAR_LITERAL | STRING_LITERAL );";
-        }
-    }
- 
-
-}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserParser.java	2007-06-14 14:10:42 UTC (rev 12578)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/parser/JavaParserParser.java	2007-06-14 16:46:08 UTC (rev 12579)
@@ -1,5375 +0,0 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g 2007-04-24 04:56:12
-
-	package org.drools.rule.builder.dialect.java.parser;
-	import java.util.Iterator;
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
-import java.util.List;
-import java.util.ArrayList;
-
-public class JavaParserParser extends Parser {
-    public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LBRACK", "RBRACK", "IDENT", "DOT", "STAR", "LCURLY", "SEMI", "RCURLY", "COMMA", "LPAREN", "RPAREN", "ASSIGN", "COLON", "PLUS_ASSIGN", "MINUS_ASSIGN", "STAR_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "SR_ASSIGN", "BSR_ASSIGN", "SL_ASSIGN", "BAND_ASSIGN", "BXOR_ASSIGN", "BOR_ASSIGN", "QUESTION", "LOR", "LAND", "BOR", "BXOR", "BAND", "NOT_EQUAL", "EQUAL", "LT", "GT", "LE", "GE", "SL", "SR", "BSR", "PLUS", "MINUS", "DIV", "MOD", "INC", "DEC", "BNOT", "LNOT", "NUM_INT", "CHAR_LITERAL", "STRING_LITERAL", "NUM_FLOAT", "WS", "SL_COMMENT", "ML_COMMENT", "DECIMAL_LITERAL", "HEX_LITERAL", "OCTAL_LITERAL", "DIGITS", "EXPONENT_PART", "FLOAT_TYPE_SUFFIX", "ESCAPE_SEQUENCE", "OCTAL_DIGIT", "UNICODE_CHAR", "HEX_DIGIT", "'void'", "'boolean'", "'byte'", "'char'", "'short'", "'int'", "'float'", "'long'", "'double'", "'private'", "'public'", "'protected'", "'static'", "'transient'", "'final'", "'abstract'", "'native'", "'threadsafe'", "'synchronized'"!
 , "'volatile'", "'strictfp'", "'class'", "'extends'", "'interface'", "'implements'", "'this'", "'super'", "'throws'", "'if'", "'else'", "'for'", "'while'", "'do'", "'break'", "'continue'", "'return'", "'switch'", "'throw'", "'case'", "'default'", "'try'", "'finally'", "'catch'", "'instanceof'", "'true'", "'false'", "'null'", "'new'"
-    };
-    public static final int LOR=29;
-    public static final int DEC=48;
-    public static final int LT=36;
-    public static final int STAR=8;
-    public static final int LBRACK=4;
-    public static final int BXOR_ASSIGN=26;
-    public static final int MOD=46;
-    public static final int DIGITS=61;
-    public static final int MOD_ASSIGN=21;
-    public static final int BSR=42;
-    public static final int EOF=-1;
-    public static final int DIV_ASSIGN=20;
-    public static final int OCTAL_DIGIT=65;
-    public static final int SL_ASSIGN=24;
-    public static final int LPAREN=13;
-    public static final int ESCAPE_SEQUENCE=64;
-    public static final int ML_COMMENT=57;
-    public static final int LNOT=50;
-    public static final int INC=47;
-    public static final int RPAREN=14;
-    public static final int STRING_LITERAL=53;
-    public static final int BSR_ASSIGN=23;
-    public static final int BOR_ASSIGN=27;
-    public static final int COMMA=12;
-    public static final int NOT_EQUAL=34;
-    public static final int BOR=31;
-    public static final int EQUAL=35;
-    public static final int IDENT=6;
-    public static final int BXOR=32;
-    public static final int PLUS=43;
-    public static final int HEX_LITERAL=59;
-    public static final int DOT=7;
-    public static final int FLOAT_TYPE_SUFFIX=63;
-    public static final int RBRACK=5;
-    public static final int GE=39;
-    public static final int MINUS_ASSIGN=18;
-    public static final int OCTAL_LITERAL=60;
-    public static final int HEX_DIGIT=67;
-    public static final int LCURLY=9;
-    public static final int MINUS=44;
-    public static final int BAND=33;
-    public static final int SEMI=10;
-    public static final int STAR_ASSIGN=19;
-    public static final int COLON=16;
-    public static final int WS=55;
-    public static final int BAND_ASSIGN=25;
-    public static final int QUESTION=28;
-    public static final int CHAR_LITERAL=52;
-    public static final int SL=40;
-    public static final int SL_COMMENT=56;
-    public static final int NUM_INT=51;
-    public static final int RCURLY=11;
-    public static final int SR=41;
-    public static final int PLUS_ASSIGN=17;
-    public static final int ASSIGN=15;
-    public static final int GT=37;
-    public static final int UNICODE_CHAR=66;
-    public static final int BNOT=49;
-    public static final int NUM_FLOAT=54;
-    public static final int DIV=45;
-    public static final int EXPONENT_PART=62;
-    public static final int DECIMAL_LITERAL=58;
-    public static final int SR_ASSIGN=22;
-    public static final int LAND=30;
-    public static final int LE=38;
-
-        public JavaParserParser(TokenStream input) {
-            super(input);
-        }
-        
-
-    public String[] getTokenNames() { return tokenNames; }
-    public String getGrammarFileName() { return "C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g"; }
-
-    
-    	private List identifiers = new ArrayList();
-    	public List getIdentifiers() { return identifiers; }
-    	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
-    	private List errors = new ArrayList();
-    	
-    	private String source = "unknown";
-    	
-    	public void setSource(String source) {
-    		this.source = source;
-    	}
-    	
-    	public String getSource() {
-    		return this.source;
-    	}
-    		
-    	public void reportError(RecognitionException ex) {
-    	        // if we've already reported an error and have not matched a token
-                    // yet successfully, don't report any errors.
-                    if ( errorRecovery ) {
-                            //System.err.print("[SPURIOUS] ");
-                            return;
-                    }
-                    errorRecovery = true;
-    
-    		errors.add( ex ); 
-    	}
-         	
-         	/** return the raw RecognitionException errors */
-         	public List getErrors() {
-         		return errors;
-         	}
-         	
-         	/** Return a list of pretty strings summarising the errors */
-         	public List getErrorMessages() {
-         		List messages = new ArrayList();
-     		for ( Iterator errorIter = errors.iterator() ; errorIter.hasNext() ; ) {
-         	     		messages.add( createErrorMessage( (RecognitionException) errorIter.next() ) );
-         	     	}
-         	     	return messages;
-         	}
-         	
-         	/** return true if any parser errors were accumulated */
-         	public boolean hasErrors() {
-      		return ! errors.isEmpty();
-         	}
-         	
-         	/** This will take a RecognitionException, and create a sensible error message out of it */
-         	public String createErrorMessage(RecognitionException e)
-            {
-    		StringBuffer message = new StringBuffer();		
-                    message.append( source + ":"+e.line+":"+e.charPositionInLine+" ");
-                    if ( e instanceof MismatchedTokenException ) {
-                            MismatchedTokenException mte = (MismatchedTokenException)e;
-                            message.append("mismatched token: "+
-                                                               e.token+
-                                                               "; expecting type "+
-                                                               tokenNames[mte.expecting]);
-                    }
-                    else if ( e instanceof MismatchedTreeNodeException ) {
-                            MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e;
-                            message.append("mismatched tree node: "+
-                                                               //mtne.foundNode+ FIXME
-                                                               "; expecting type "+
-                                                               tokenNames[mtne.expecting]);
-                    }
-                    else if ( e instanceof NoViableAltException ) {
-                            NoViableAltException nvae = (NoViableAltException)e;
-    			message.append( "Unexpected token '" + e.token.getText() + "'" );
-                            /*
-                            message.append("decision=<<"+nvae.grammarDecisionDescription+">>"+
-                                                               " state "+nvae.stateNumber+
-                                                               " (decision="+nvae.decisionNumber+
-                                                               ") no viable alt; token="+
-                                                               e.token);
-                                                               */
-                    }
-                    else if ( e instanceof EarlyExitException ) {
-                            EarlyExitException eee = (EarlyExitException)e;
-                            message.append("required (...)+ loop (decision="+
-                                                               eee.decisionNumber+
-                                                               ") did not match anything; token="+
-                                                               e.token);
-                    }
-                    else if ( e instanceof MismatchedSetException ) {
-                            MismatchedSetException mse = (MismatchedSetException)e;
-                            message.append("mismatched token '"+
-                                                               e.token+
-                                                               "' expecting set "+mse.expecting);
-                    }
-                    else if ( e instanceof MismatchedNotSetException ) {
-                            MismatchedNotSetException mse = (MismatchedNotSetException)e;
-                            message.append("mismatched token '"+
-                                                               e.token+
-                                                               "' expecting set "+mse.expecting);
-                    }
-                    else if ( e instanceof FailedPredicateException ) {
-                            FailedPredicateException fpe = (FailedPredicateException)e;
-                            message.append("rule "+fpe.ruleName+" failed predicate: {"+
-                                                               fpe.predicateText+"}?");
-    		}
-                   	return message.toString();
-            }   
-
-
-
-    // $ANTLR start declaration
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:139:1: declaration : modifiers typeSpec variableDefinitions ;
-    public final void declaration() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:143:4: ( modifiers typeSpec variableDefinitions )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:143:4: modifiers typeSpec variableDefinitions
-            {
-            pushFollow(FOLLOW_modifiers_in_declaration59);
-            modifiers();
-            _fsp--;
-
-            pushFollow(FOLLOW_typeSpec_in_declaration61);
-            typeSpec();
-            _fsp--;
-
-            pushFollow(FOLLOW_variableDefinitions_in_declaration63);
-            variableDefinitions();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end declaration
-
-
-    // $ANTLR start typeSpec
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:149:1: typeSpec : ( classTypeSpec | builtInTypeSpec );
-    public final void typeSpec() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:150:4: ( classTypeSpec | builtInTypeSpec )
-            int alt1=2;
-            int LA1_0 = input.LA(1);
-
-            if ( (LA1_0==IDENT) ) {
-                alt1=1;
-            }
-            else if ( ((LA1_0>=68 && LA1_0<=76)) ) {
-                alt1=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("149:1: typeSpec : ( classTypeSpec | builtInTypeSpec );", 1, 0, input);
-
-                throw nvae;
-            }
-            switch (alt1) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:150:4: classTypeSpec
-                    {
-                    pushFollow(FOLLOW_classTypeSpec_in_typeSpec79);
-                    classTypeSpec();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:151:4: builtInTypeSpec
-                    {
-                    pushFollow(FOLLOW_builtInTypeSpec_in_typeSpec84);
-                    builtInTypeSpec();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end typeSpec
-
-
-    // $ANTLR start classTypeSpec
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:156:1: classTypeSpec : identifier ( LBRACK RBRACK )* ;
-    public final void classTypeSpec() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:157:4: ( identifier ( LBRACK RBRACK )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:157:4: identifier ( LBRACK RBRACK )*
-            {
-            pushFollow(FOLLOW_identifier_in_classTypeSpec97);
-            identifier();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:157:15: ( LBRACK RBRACK )*
-            loop2:
-            do {
-                int alt2=2;
-                int LA2_0 = input.LA(1);
-
-                if ( (LA2_0==LBRACK) ) {
-                    alt2=1;
-                }
-
-
-                switch (alt2) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:157:16: LBRACK RBRACK
-            	    {
-            	    match(input,LBRACK,FOLLOW_LBRACK_in_classTypeSpec100); 
-            	    match(input,RBRACK,FOLLOW_RBRACK_in_classTypeSpec103); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop2;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end classTypeSpec
-
-
-    // $ANTLR start builtInTypeSpec
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:162:1: builtInTypeSpec : builtInType ( LBRACK RBRACK )* ;
-    public final void builtInTypeSpec() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:163:4: ( builtInType ( LBRACK RBRACK )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:163:4: builtInType ( LBRACK RBRACK )*
-            {
-            pushFollow(FOLLOW_builtInType_in_builtInTypeSpec118);
-            builtInType();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:163:16: ( LBRACK RBRACK )*
-            loop3:
-            do {
-                int alt3=2;
-                int LA3_0 = input.LA(1);
-
-                if ( (LA3_0==LBRACK) ) {
-                    alt3=1;
-                }
-
-
-                switch (alt3) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:163:17: LBRACK RBRACK
-            	    {
-            	    match(input,LBRACK,FOLLOW_LBRACK_in_builtInTypeSpec121); 
-            	    match(input,RBRACK,FOLLOW_RBRACK_in_builtInTypeSpec124); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop3;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end builtInTypeSpec
-
-
-    // $ANTLR start type
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:168:1: type : ( identifier | builtInType );
-    public final void type() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:169:4: ( identifier | builtInType )
-            int alt4=2;
-            int LA4_0 = input.LA(1);
-
-            if ( (LA4_0==IDENT) ) {
-                alt4=1;
-            }
-            else if ( ((LA4_0>=68 && LA4_0<=76)) ) {
-                alt4=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("168:1: type : ( identifier | builtInType );", 4, 0, input);
-
-                throw nvae;
-            }
-            switch (alt4) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:169:4: identifier
-                    {
-                    pushFollow(FOLLOW_identifier_in_type139);
-                    identifier();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:170:4: builtInType
-                    {
-                    pushFollow(FOLLOW_builtInType_in_type144);
-                    builtInType();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end type
-
-
-    // $ANTLR start builtInType
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:174:1: builtInType : ( 'void' | 'boolean' | 'byte' | 'char' | 'short' | 'int' | 'float' | 'long' | 'double' );
-    public final void builtInType() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:175:4: ( 'void' | 'boolean' | 'byte' | 'char' | 'short' | 'int' | 'float' | 'long' | 'double' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-            {
-            if ( (input.LA(1)>=68 && input.LA(1)<=76) ) {
-                input.consume();
-                errorRecovery=false;
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_builtInType0);    throw mse;
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end builtInType
-
-
-    // $ANTLR start identifier
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:188:1: identifier : IDENT ( DOT IDENT )* ;
-    public final void identifier() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:189:4: ( IDENT ( DOT IDENT )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:189:4: IDENT ( DOT IDENT )*
-            {
-            match(input,IDENT,FOLLOW_IDENT_in_identifier209); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:189:11: ( DOT IDENT )*
-            loop5:
-            do {
-                int alt5=2;
-                int LA5_0 = input.LA(1);
-
-                if ( (LA5_0==DOT) ) {
-                    alt5=1;
-                }
-
-
-                switch (alt5) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:189:13: DOT IDENT
-            	    {
-            	    match(input,DOT,FOLLOW_DOT_in_identifier214); 
-            	    match(input,IDENT,FOLLOW_IDENT_in_identifier216); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop5;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end identifier
-
-
-    // $ANTLR start identifierStar
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:192:1: identifierStar : IDENT ( DOT IDENT )* ( DOT STAR )? ;
-    public final void identifierStar() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:193:4: ( IDENT ( DOT IDENT )* ( DOT STAR )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:193:4: IDENT ( DOT IDENT )* ( DOT STAR )?
-            {
-            match(input,IDENT,FOLLOW_IDENT_in_identifierStar230); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:194:3: ( DOT IDENT )*
-            loop6:
-            do {
-                int alt6=2;
-                int LA6_0 = input.LA(1);
-
-                if ( (LA6_0==DOT) ) {
-                    int LA6_1 = input.LA(2);
-
-                    if ( (LA6_1==IDENT) ) {
-                        alt6=1;
-                    }
-
-
-                }
-
-
-                switch (alt6) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:194:5: DOT IDENT
-            	    {
-            	    match(input,DOT,FOLLOW_DOT_in_identifierStar236); 
-            	    match(input,IDENT,FOLLOW_IDENT_in_identifierStar238); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop6;
-                }
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:195:3: ( DOT STAR )?
-            int alt7=2;
-            int LA7_0 = input.LA(1);
-
-            if ( (LA7_0==DOT) ) {
-                alt7=1;
-            }
-            switch (alt7) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:195:5: DOT STAR
-                    {
-                    match(input,DOT,FOLLOW_DOT_in_identifierStar247); 
-                    match(input,STAR,FOLLOW_STAR_in_identifierStar249); 
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end identifierStar
-
-
-    // $ANTLR start modifiers
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:202:1: modifiers : ( modifier )* ;
-    public final void modifiers() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:203:4: ( ( modifier )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:203:4: ( modifier )*
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:203:4: ( modifier )*
-            loop8:
-            do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
-
-                if ( ((LA8_0>=77 && LA8_0<=88)) ) {
-                    alt8=1;
-                }
-
-
-                switch (alt8) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:203:6: modifier
-            	    {
-            	    pushFollow(FOLLOW_modifier_in_modifiers270);
-            	    modifier();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop8;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end modifiers
-
-
-    // $ANTLR start modifier
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:208:1: modifier : ( 'private' | 'public' | 'protected' | 'static' | 'transient' | 'final' | 'abstract' | 'native' | 'threadsafe' | 'synchronized' | 'volatile' | 'strictfp' );
-    public final void modifier() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:209:4: ( 'private' | 'public' | 'protected' | 'static' | 'transient' | 'final' | 'abstract' | 'native' | 'threadsafe' | 'synchronized' | 'volatile' | 'strictfp' )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-            {
-            if ( (input.LA(1)>=77 && input.LA(1)<=88) ) {
-                input.consume();
-                errorRecovery=false;
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_modifier0);    throw mse;
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end modifier
-
-
-    // $ANTLR start classDefinition
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:225:1: classDefinition : 'class' IDENT superClassClause implementsClause classBlock ;
-    public final void classDefinition() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:226:4: ( 'class' IDENT superClassClause implementsClause classBlock )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:226:4: 'class' IDENT superClassClause implementsClause classBlock
-            {
-            match(input,89,FOLLOW_89_in_classDefinition356); 
-            match(input,IDENT,FOLLOW_IDENT_in_classDefinition358); 
-            pushFollow(FOLLOW_superClassClause_in_classDefinition365);
-            superClassClause();
-            _fsp--;
-
-            pushFollow(FOLLOW_implementsClause_in_classDefinition372);
-            implementsClause();
-            _fsp--;
-
-            pushFollow(FOLLOW_classBlock_in_classDefinition379);
-            classBlock();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end classDefinition
-
-
-    // $ANTLR start superClassClause
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:235:1: superClassClause : ( 'extends' identifier )? ;
-    public final void superClassClause() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:236:4: ( ( 'extends' identifier )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:236:4: ( 'extends' identifier )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:236:4: ( 'extends' identifier )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
-
-            if ( (LA9_0==90) ) {
-                alt9=1;
-            }
-            switch (alt9) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:236:6: 'extends' identifier
-                    {
-                    match(input,90,FOLLOW_90_in_superClassClause392); 
-                    pushFollow(FOLLOW_identifier_in_superClassClause394);
-                    identifier();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end superClassClause
-
-
-    // $ANTLR start interfaceDefinition
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:241:1: interfaceDefinition : 'interface' IDENT interfaceExtends classBlock ;
-    public final void interfaceDefinition() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:242:4: ( 'interface' IDENT interfaceExtends classBlock )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:242:4: 'interface' IDENT interfaceExtends classBlock
-            {
-            match(input,91,FOLLOW_91_in_interfaceDefinition412); 
-            match(input,IDENT,FOLLOW_IDENT_in_interfaceDefinition414); 
-            pushFollow(FOLLOW_interfaceExtends_in_interfaceDefinition421);
-            interfaceExtends();
-            _fsp--;
-
-            pushFollow(FOLLOW_classBlock_in_interfaceDefinition428);
-            classBlock();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end interfaceDefinition
-
-
-    // $ANTLR start classBlock
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:252:1: classBlock : LCURLY ( field | SEMI )* RCURLY ;
-    public final void classBlock() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:253:4: ( LCURLY ( field | SEMI )* RCURLY )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:253:4: LCURLY ( field | SEMI )* RCURLY
-            {
-            match(input,LCURLY,FOLLOW_LCURLY_in_classBlock442); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:254:4: ( field | SEMI )*
-            loop10:
-            do {
-                int alt10=3;
-                int LA10_0 = input.LA(1);
-
-                if ( (LA10_0==IDENT||LA10_0==LCURLY||(LA10_0>=68 && LA10_0<=89)||LA10_0==91) ) {
-                    alt10=1;
-                }
-                else if ( (LA10_0==SEMI) ) {
-                    alt10=2;
-                }
-
-
-                switch (alt10) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:254:6: field
-            	    {
-            	    pushFollow(FOLLOW_field_in_classBlock449);
-            	    field();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:254:14: SEMI
-            	    {
-            	    match(input,SEMI,FOLLOW_SEMI_in_classBlock453); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop10;
-                }
-            } while (true);
-
-            match(input,RCURLY,FOLLOW_RCURLY_in_classBlock460); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end classBlock
-
-
-    // $ANTLR start interfaceExtends
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:260:1: interfaceExtends : ( 'extends' identifier ( COMMA identifier )* )? ;
-    public final void interfaceExtends() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:261:4: ( ( 'extends' identifier ( COMMA identifier )* )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:261:4: ( 'extends' identifier ( COMMA identifier )* )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:261:4: ( 'extends' identifier ( COMMA identifier )* )?
-            int alt12=2;
-            int LA12_0 = input.LA(1);
-
-            if ( (LA12_0==90) ) {
-                alt12=1;
-            }
-            switch (alt12) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:262:3: 'extends' identifier ( COMMA identifier )*
-                    {
-                    match(input,90,FOLLOW_90_in_interfaceExtends479); 
-                    pushFollow(FOLLOW_identifier_in_interfaceExtends483);
-                    identifier();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:263:14: ( COMMA identifier )*
-                    loop11:
-                    do {
-                        int alt11=2;
-                        int LA11_0 = input.LA(1);
-
-                        if ( (LA11_0==COMMA) ) {
-                            alt11=1;
-                        }
-
-
-                        switch (alt11) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:263:16: COMMA identifier
-                    	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_interfaceExtends487); 
-                    	    pushFollow(FOLLOW_identifier_in_interfaceExtends489);
-                    	    identifier();
-                    	    _fsp--;
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop11;
-                        }
-                    } while (true);
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end interfaceExtends
-
-
-    // $ANTLR start implementsClause
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:268:1: implementsClause : ( 'implements' identifier ( COMMA identifier )* )? ;
-    public final void implementsClause() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:269:4: ( ( 'implements' identifier ( COMMA identifier )* )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:269:4: ( 'implements' identifier ( COMMA identifier )* )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:269:4: ( 'implements' identifier ( COMMA identifier )* )?
-            int alt14=2;
-            int LA14_0 = input.LA(1);
-
-            if ( (LA14_0==92) ) {
-                alt14=1;
-            }
-            switch (alt14) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:270:4: 'implements' identifier ( COMMA identifier )*
-                    {
-                    match(input,92,FOLLOW_92_in_implementsClause514); 
-                    pushFollow(FOLLOW_identifier_in_implementsClause516);
-                    identifier();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:270:28: ( COMMA identifier )*
-                    loop13:
-                    do {
-                        int alt13=2;
-                        int LA13_0 = input.LA(1);
-
-                        if ( (LA13_0==COMMA) ) {
-                            alt13=1;
-                        }
-
-
-                        switch (alt13) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:270:30: COMMA identifier
-                    	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_implementsClause520); 
-                    	    pushFollow(FOLLOW_identifier_in_implementsClause522);
-                    	    identifier();
-                    	    _fsp--;
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop13;
-                        }
-                    } while (true);
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end implementsClause
-
-
-    // $ANTLR start field
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:278:1: field : ( modifiers ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) ) | 'static' compoundStatement | compoundStatement );
-    public final void field() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:280:3: ( modifiers ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) ) | 'static' compoundStatement | compoundStatement )
-            int alt19=3;
-            switch ( input.LA(1) ) {
-            case 80:
-                {
-                int LA19_1 = input.LA(2);
-
-                if ( (LA19_1==IDENT||(LA19_1>=68 && LA19_1<=89)||LA19_1==91) ) {
-                    alt19=1;
-                }
-                else if ( (LA19_1==LCURLY) ) {
-                    alt19=2;
-                }
-                else {
-                    NoViableAltException nvae =
-                        new NoViableAltException("278:1: field : ( modifiers ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) ) | 'static' compoundStatement | compoundStatement );", 19, 1, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case IDENT:
-            case 68:
-            case 69:
-            case 70:
-            case 71:
-            case 72:
-            case 73:
-            case 74:
-            case 75:
-            case 76:
-            case 77:
-            case 78:
-            case 79:
-            case 81:
-            case 82:
-            case 83:
-            case 84:
-            case 85:
-            case 86:
-            case 87:
-            case 88:
-            case 89:
-            case 91:
-                {
-                alt19=1;
-                }
-                break;
-            case LCURLY:
-                {
-                alt19=3;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("278:1: field : ( modifiers ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) ) | 'static' compoundStatement | compoundStatement );", 19, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt19) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:280:3: modifiers ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) )
-                    {
-                    pushFollow(FOLLOW_modifiers_in_field548);
-                    modifiers();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:281:3: ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) )
-                    int alt18=4;
-                    switch ( input.LA(1) ) {
-                    case IDENT:
-                        {
-                        int LA18_1 = input.LA(2);
-
-                        if ( (LA18_1==LPAREN) ) {
-                            alt18=1;
-                        }
-                        else if ( (LA18_1==LBRACK||(LA18_1>=IDENT && LA18_1<=DOT)) ) {
-                            alt18=4;
-                        }
-                        else {
-                            NoViableAltException nvae =
-                                new NoViableAltException("281:3: ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) )", 18, 1, input);
-
-                            throw nvae;
-                        }
-                        }
-                        break;
-                    case 89:
-                        {
-                        alt18=2;
-                        }
-                        break;
-                    case 91:
-                        {
-                        alt18=3;
-                        }
-                        break;
-                    case 68:
-                    case 69:
-                    case 70:
-                    case 71:
-                    case 72:
-                    case 73:
-                    case 74:
-                    case 75:
-                    case 76:
-                        {
-                        alt18=4;
-                        }
-                        break;
-                    default:
-                        NoViableAltException nvae =
-                            new NoViableAltException("281:3: ( ctorHead constructorBody | classDefinition | interfaceDefinition | typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI ) )", 18, 0, input);
-
-                        throw nvae;
-                    }
-
-                    switch (alt18) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:281:5: ctorHead constructorBody
-                            {
-                            pushFollow(FOLLOW_ctorHead_in_field554);
-                            ctorHead();
-                            _fsp--;
-
-                            pushFollow(FOLLOW_constructorBody_in_field556);
-                            constructorBody();
-                            _fsp--;
-
-
-                            }
-                            break;
-                        case 2 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:284:5: classDefinition
-                            {
-                            pushFollow(FOLLOW_classDefinition_in_field568);
-                            classDefinition();
-                            _fsp--;
-
-
-                            }
-                            break;
-                        case 3 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:287:5: interfaceDefinition
-                            {
-                            pushFollow(FOLLOW_interfaceDefinition_in_field586);
-                            interfaceDefinition();
-                            _fsp--;
-
-
-                            }
-                            break;
-                        case 4 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:290:5: typeSpec ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI )
-                            {
-                            pushFollow(FOLLOW_typeSpec_in_field600);
-                            typeSpec();
-                            _fsp--;
-
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:291:4: ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI )
-                            int alt17=2;
-                            int LA17_0 = input.LA(1);
-
-                            if ( (LA17_0==IDENT) ) {
-                                int LA17_1 = input.LA(2);
-
-                                if ( (LA17_1==LPAREN) ) {
-                                    alt17=1;
-                                }
-                                else if ( (LA17_1==LBRACK||LA17_1==SEMI||LA17_1==COMMA||LA17_1==ASSIGN) ) {
-                                    alt17=2;
-                                }
-                                else {
-                                    NoViableAltException nvae =
-                                        new NoViableAltException("291:4: ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI )", 17, 1, input);
-
-                                    throw nvae;
-                                }
-                            }
-                            else {
-                                NoViableAltException nvae =
-                                    new NoViableAltException("291:4: ( IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI ) | variableDefinitions SEMI )", 17, 0, input);
-
-                                throw nvae;
-                            }
-                            switch (alt17) {
-                                case 1 :
-                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:291:6: IDENT LPAREN parameterDeclarationList RPAREN declaratorBrackets ( throwsClause )? ( compoundStatement | SEMI )
-                                    {
-                                    match(input,IDENT,FOLLOW_IDENT_in_field609); 
-                                    match(input,LPAREN,FOLLOW_LPAREN_in_field623); 
-                                    pushFollow(FOLLOW_parameterDeclarationList_in_field625);
-                                    parameterDeclarationList();
-                                    _fsp--;
-
-                                    match(input,RPAREN,FOLLOW_RPAREN_in_field627); 
-                                    pushFollow(FOLLOW_declaratorBrackets_in_field634);
-                                    declaratorBrackets();
-                                    _fsp--;
-
-                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:300:5: ( throwsClause )?
-                                    int alt15=2;
-                                    int LA15_0 = input.LA(1);
-
-                                    if ( (LA15_0==95) ) {
-                                        alt15=1;
-                                    }
-                                    switch (alt15) {
-                                        case 1 :
-                                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:300:6: throwsClause
-                                            {
-                                            pushFollow(FOLLOW_throwsClause_in_field652);
-                                            throwsClause();
-                                            _fsp--;
-
-
-                                            }
-                                            break;
-
-                                    }
-
-                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:302:5: ( compoundStatement | SEMI )
-                                    int alt16=2;
-                                    int LA16_0 = input.LA(1);
-
-                                    if ( (LA16_0==LCURLY) ) {
-                                        alt16=1;
-                                    }
-                                    else if ( (LA16_0==SEMI) ) {
-                                        alt16=2;
-                                    }
-                                    else {
-                                        NoViableAltException nvae =
-                                            new NoViableAltException("302:5: ( compoundStatement | SEMI )", 16, 0, input);
-
-                                        throw nvae;
-                                    }
-                                    switch (alt16) {
-                                        case 1 :
-                                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:302:7: compoundStatement
-                                            {
-                                            pushFollow(FOLLOW_compoundStatement_in_field663);
-                                            compoundStatement();
-                                            _fsp--;
-
-
-                                            }
-                                            break;
-                                        case 2 :
-                                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:302:27: SEMI
-                                            {
-                                            match(input,SEMI,FOLLOW_SEMI_in_field667); 
-
-                                            }
-                                            break;
-
-                                    }
-
-
-                                    }
-                                    break;
-                                case 2 :
-                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:303:6: variableDefinitions SEMI
-                                    {
-                                    pushFollow(FOLLOW_variableDefinitions_in_field676);
-                                    variableDefinitions();
-                                    _fsp--;
-
-                                    match(input,SEMI,FOLLOW_SEMI_in_field678); 
-
-                                    }
-                                    break;
-
-                            }
-
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:310:4: 'static' compoundStatement
-                    {
-                    match(input,80,FOLLOW_80_in_field704); 
-                    pushFollow(FOLLOW_compoundStatement_in_field706);
-                    compoundStatement();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:314:4: compoundStatement
-                    {
-                    pushFollow(FOLLOW_compoundStatement_in_field720);
-                    compoundStatement();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end field
-
-
-    // $ANTLR start constructorBody
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:318:1: constructorBody : LCURLY ( options {greedy=true; } : explicitConstructorInvocation )? ( statement )* RCURLY ;
-    public final void constructorBody() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:319:9: ( LCURLY ( options {greedy=true; } : explicitConstructorInvocation )? ( statement )* RCURLY )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:319:9: LCURLY ( options {greedy=true; } : explicitConstructorInvocation )? ( statement )* RCURLY
-            {
-            match(input,LCURLY,FOLLOW_LCURLY_in_constructorBody739); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:320:13: ( options {greedy=true; } : explicitConstructorInvocation )?
-            int alt20=2;
-            int LA20_0 = input.LA(1);
-
-            if ( (LA20_0==93) ) {
-                int LA20_1 = input.LA(2);
-
-                if ( (LA20_1==LPAREN) ) {
-                    alt20=1;
-                }
-            }
-            else if ( (LA20_0==94) ) {
-                int LA20_2 = input.LA(2);
-
-                if ( (LA20_2==LPAREN) ) {
-                    alt20=1;
-                }
-            }
-            switch (alt20) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:320:40: explicitConstructorInvocation
-                    {
-                    pushFollow(FOLLOW_explicitConstructorInvocation_in_constructorBody765);
-                    explicitConstructorInvocation();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:321:13: ( statement )*
-            loop21:
-            do {
-                int alt21=2;
-                int LA21_0 = input.LA(1);
-
-                if ( (LA21_0==IDENT||(LA21_0>=LCURLY && LA21_0<=SEMI)||LA21_0==LPAREN||(LA21_0>=PLUS && LA21_0<=MINUS)||(LA21_0>=INC && LA21_0<=NUM_FLOAT)||(LA21_0>=68 && LA21_0<=89)||(LA21_0>=93 && LA21_0<=94)||LA21_0==96||(LA21_0>=98 && LA21_0<=105)||LA21_0==108||(LA21_0>=112 && LA21_0<=115)) ) {
-                    alt21=1;
-                }
-
-
-                switch (alt21) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:321:14: statement
-            	    {
-            	    pushFollow(FOLLOW_statement_in_constructorBody782);
-            	    statement();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop21;
-                }
-            } while (true);
-
-            match(input,RCURLY,FOLLOW_RCURLY_in_constructorBody794); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end constructorBody
-
-
-    // $ANTLR start explicitConstructorInvocation
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:325:1: explicitConstructorInvocation : ( 'this' LPAREN argList RPAREN SEMI | 'super' LPAREN argList RPAREN SEMI );
-    public final void explicitConstructorInvocation() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:327:9: ( 'this' LPAREN argList RPAREN SEMI | 'super' LPAREN argList RPAREN SEMI )
-            int alt22=2;
-            int LA22_0 = input.LA(1);
-
-            if ( (LA22_0==93) ) {
-                alt22=1;
-            }
-            else if ( (LA22_0==94) ) {
-                alt22=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("325:1: explicitConstructorInvocation : ( 'this' LPAREN argList RPAREN SEMI | 'super' LPAREN argList RPAREN SEMI );", 22, 0, input);
-
-                throw nvae;
-            }
-            switch (alt22) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:327:9: 'this' LPAREN argList RPAREN SEMI
-                    {
-                    match(input,93,FOLLOW_93_in_explicitConstructorInvocation815); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_explicitConstructorInvocation817); 
-                    pushFollow(FOLLOW_argList_in_explicitConstructorInvocation819);
-                    argList();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_explicitConstructorInvocation821); 
-                    match(input,SEMI,FOLLOW_SEMI_in_explicitConstructorInvocation823); 
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:329:9: 'super' LPAREN argList RPAREN SEMI
-                    {
-                    match(input,94,FOLLOW_94_in_explicitConstructorInvocation836); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_explicitConstructorInvocation838); 
-                    pushFollow(FOLLOW_argList_in_explicitConstructorInvocation840);
-                    argList();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_explicitConstructorInvocation842); 
-                    match(input,SEMI,FOLLOW_SEMI_in_explicitConstructorInvocation844); 
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end explicitConstructorInvocation
-
-
-    // $ANTLR start variableDefinitions
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:333:1: variableDefinitions : variableDeclarator ( COMMA variableDeclarator )* ;
-    public final void variableDefinitions() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:334:4: ( variableDeclarator ( COMMA variableDeclarator )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:334:4: variableDeclarator ( COMMA variableDeclarator )*
-            {
-            pushFollow(FOLLOW_variableDeclarator_in_variableDefinitions861);
-            variableDeclarator();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:335:3: ( COMMA variableDeclarator )*
-            loop23:
-            do {
-                int alt23=2;
-                int LA23_0 = input.LA(1);
-
-                if ( (LA23_0==COMMA) ) {
-                    alt23=1;
-                }
-
-
-                switch (alt23) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:335:5: COMMA variableDeclarator
-            	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_variableDefinitions867); 
-            	    pushFollow(FOLLOW_variableDeclarator_in_variableDefinitions872);
-            	    variableDeclarator();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop23;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end variableDefinitions
-
-
-    // $ANTLR start variableDeclarator
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:340:1: variableDeclarator : IDENT declaratorBrackets varInitializer ;
-    public final void variableDeclarator() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:345:4: ( IDENT declaratorBrackets varInitializer )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:345:4: IDENT declaratorBrackets varInitializer
-            {
-            match(input,IDENT,FOLLOW_IDENT_in_variableDeclarator890); 
-            pushFollow(FOLLOW_declaratorBrackets_in_variableDeclarator892);
-            declaratorBrackets();
-            _fsp--;
-
-            pushFollow(FOLLOW_varInitializer_in_variableDeclarator894);
-            varInitializer();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end variableDeclarator
-
-
-    // $ANTLR start declaratorBrackets
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:349:1: declaratorBrackets : ( LBRACK RBRACK )* ;
-    public final void declaratorBrackets() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:351:3: ( ( LBRACK RBRACK )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:351:3: ( LBRACK RBRACK )*
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:351:3: ( LBRACK RBRACK )*
-            loop24:
-            do {
-                int alt24=2;
-                int LA24_0 = input.LA(1);
-
-                if ( (LA24_0==LBRACK) ) {
-                    alt24=1;
-                }
-
-
-                switch (alt24) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:351:4: LBRACK RBRACK
-            	    {
-            	    match(input,LBRACK,FOLLOW_LBRACK_in_declaratorBrackets912); 
-            	    match(input,RBRACK,FOLLOW_RBRACK_in_declaratorBrackets915); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop24;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end declaratorBrackets
-
-
-    // $ANTLR start varInitializer
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:354:1: varInitializer : ( ASSIGN initializer )? ;
-    public final void varInitializer() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:355:4: ( ( ASSIGN initializer )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:355:4: ( ASSIGN initializer )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:355:4: ( ASSIGN initializer )?
-            int alt25=2;
-            int LA25_0 = input.LA(1);
-
-            if ( (LA25_0==ASSIGN) ) {
-                alt25=1;
-            }
-            switch (alt25) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:355:6: ASSIGN initializer
-                    {
-                    match(input,ASSIGN,FOLLOW_ASSIGN_in_varInitializer930); 
-                    pushFollow(FOLLOW_initializer_in_varInitializer932);
-                    initializer();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end varInitializer
-
-
-    // $ANTLR start arrayInitializer
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:359:1: arrayInitializer : LCURLY ( initializer ( COMMA initializer )* ( COMMA )? )? RCURLY ;
-    public final void arrayInitializer() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:360:4: ( LCURLY ( initializer ( COMMA initializer )* ( COMMA )? )? RCURLY )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:360:4: LCURLY ( initializer ( COMMA initializer )* ( COMMA )? )? RCURLY
-            {
-            match(input,LCURLY,FOLLOW_LCURLY_in_arrayInitializer947); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:361:4: ( initializer ( COMMA initializer )* ( COMMA )? )?
-            int alt28=2;
-            int LA28_0 = input.LA(1);
-
-            if ( (LA28_0==IDENT||LA28_0==LCURLY||LA28_0==LPAREN||(LA28_0>=PLUS && LA28_0<=MINUS)||(LA28_0>=INC && LA28_0<=NUM_FLOAT)||(LA28_0>=68 && LA28_0<=76)||(LA28_0>=93 && LA28_0<=94)||(LA28_0>=112 && LA28_0<=115)) ) {
-                alt28=1;
-            }
-            switch (alt28) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:361:6: initializer ( COMMA initializer )* ( COMMA )?
-                    {
-                    pushFollow(FOLLOW_initializer_in_arrayInitializer955);
-                    initializer();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:362:5: ( COMMA initializer )*
-                    loop26:
-                    do {
-                        int alt26=2;
-                        int LA26_0 = input.LA(1);
-
-                        if ( (LA26_0==COMMA) ) {
-                            int LA26_1 = input.LA(2);
-
-                            if ( (LA26_1==IDENT||LA26_1==LCURLY||LA26_1==LPAREN||(LA26_1>=PLUS && LA26_1<=MINUS)||(LA26_1>=INC && LA26_1<=NUM_FLOAT)||(LA26_1>=68 && LA26_1<=76)||(LA26_1>=93 && LA26_1<=94)||(LA26_1>=112 && LA26_1<=115)) ) {
-                                alt26=1;
-                            }
-
-
-                        }
-
-
-                        switch (alt26) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:367:6: COMMA initializer
-                    	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_arrayInitializer992); 
-                    	    pushFollow(FOLLOW_initializer_in_arrayInitializer994);
-                    	    initializer();
-                    	    _fsp--;
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop26;
-                        }
-                    } while (true);
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:369:5: ( COMMA )?
-                    int alt27=2;
-                    int LA27_0 = input.LA(1);
-
-                    if ( (LA27_0==COMMA) ) {
-                        alt27=1;
-                    }
-                    switch (alt27) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:369:6: COMMA
-                            {
-                            match(input,COMMA,FOLLOW_COMMA_in_arrayInitializer1008); 
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-            match(input,RCURLY,FOLLOW_RCURLY_in_arrayInitializer1020); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end arrayInitializer
-
-
-    // $ANTLR start initializer
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:377:1: initializer : ( expression | arrayInitializer );
-    public final void initializer() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:378:4: ( expression | arrayInitializer )
-            int alt29=2;
-            int LA29_0 = input.LA(1);
-
-            if ( (LA29_0==IDENT||LA29_0==LPAREN||(LA29_0>=PLUS && LA29_0<=MINUS)||(LA29_0>=INC && LA29_0<=NUM_FLOAT)||(LA29_0>=68 && LA29_0<=76)||(LA29_0>=93 && LA29_0<=94)||(LA29_0>=112 && LA29_0<=115)) ) {
-                alt29=1;
-            }
-            else if ( (LA29_0==LCURLY) ) {
-                alt29=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("377:1: initializer : ( expression | arrayInitializer );", 29, 0, input);
-
-                throw nvae;
-            }
-            switch (alt29) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:378:4: expression
-                    {
-                    pushFollow(FOLLOW_expression_in_initializer1034);
-                    expression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:379:4: arrayInitializer
-                    {
-                    pushFollow(FOLLOW_arrayInitializer_in_initializer1039);
-                    arrayInitializer();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end initializer
-
-
-    // $ANTLR start ctorHead
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:385:1: ctorHead : IDENT LPAREN parameterDeclarationList RPAREN ( throwsClause )? ;
-    public final void ctorHead() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:386:4: ( IDENT LPAREN parameterDeclarationList RPAREN ( throwsClause )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:386:4: IDENT LPAREN parameterDeclarationList RPAREN ( throwsClause )?
-            {
-            match(input,IDENT,FOLLOW_IDENT_in_ctorHead1053); 
-            match(input,LPAREN,FOLLOW_LPAREN_in_ctorHead1063); 
-            pushFollow(FOLLOW_parameterDeclarationList_in_ctorHead1065);
-            parameterDeclarationList();
-            _fsp--;
-
-            match(input,RPAREN,FOLLOW_RPAREN_in_ctorHead1067); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:392:3: ( throwsClause )?
-            int alt30=2;
-            int LA30_0 = input.LA(1);
-
-            if ( (LA30_0==95) ) {
-                alt30=1;
-            }
-            switch (alt30) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:392:4: throwsClause
-                    {
-                    pushFollow(FOLLOW_throwsClause_in_ctorHead1076);
-                    throwsClause();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end ctorHead
-
-
-    // $ANTLR start throwsClause
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:396:1: throwsClause : 'throws' identifier ( COMMA identifier )* ;
-    public final void throwsClause() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:397:4: ( 'throws' identifier ( COMMA identifier )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:397:4: 'throws' identifier ( COMMA identifier )*
-            {
-            match(input,95,FOLLOW_95_in_throwsClause1090); 
-            pushFollow(FOLLOW_identifier_in_throwsClause1092);
-            identifier();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:397:24: ( COMMA identifier )*
-            loop31:
-            do {
-                int alt31=2;
-                int LA31_0 = input.LA(1);
-
-                if ( (LA31_0==COMMA) ) {
-                    alt31=1;
-                }
-
-
-                switch (alt31) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:397:26: COMMA identifier
-            	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_throwsClause1096); 
-            	    pushFollow(FOLLOW_identifier_in_throwsClause1098);
-            	    identifier();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop31;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end throwsClause
-
-
-    // $ANTLR start parameterDeclarationList
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:402:1: parameterDeclarationList : ( parameterDeclaration ( COMMA parameterDeclaration )* )? ;
-    public final void parameterDeclarationList() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:403:4: ( ( parameterDeclaration ( COMMA parameterDeclaration )* )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:403:4: ( parameterDeclaration ( COMMA parameterDeclaration )* )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:403:4: ( parameterDeclaration ( COMMA parameterDeclaration )* )?
-            int alt33=2;
-            int LA33_0 = input.LA(1);
-
-            if ( (LA33_0==IDENT||(LA33_0>=68 && LA33_0<=76)||LA33_0==82) ) {
-                alt33=1;
-            }
-            switch (alt33) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:403:6: parameterDeclaration ( COMMA parameterDeclaration )*
-                    {
-                    pushFollow(FOLLOW_parameterDeclaration_in_parameterDeclarationList1116);
-                    parameterDeclaration();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:403:27: ( COMMA parameterDeclaration )*
-                    loop32:
-                    do {
-                        int alt32=2;
-                        int LA32_0 = input.LA(1);
-
-                        if ( (LA32_0==COMMA) ) {
-                            alt32=1;
-                        }
-
-
-                        switch (alt32) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:403:29: COMMA parameterDeclaration
-                    	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_parameterDeclarationList1120); 
-                    	    pushFollow(FOLLOW_parameterDeclaration_in_parameterDeclarationList1122);
-                    	    parameterDeclaration();
-                    	    _fsp--;
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop32;
-                        }
-                    } while (true);
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end parameterDeclarationList
-
-
-    // $ANTLR start parameterDeclaration
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:407:1: parameterDeclaration : parameterModifier typeSpec IDENT declaratorBrackets ;
-    public final void parameterDeclaration() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:408:4: ( parameterModifier typeSpec IDENT declaratorBrackets )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:408:4: parameterModifier typeSpec IDENT declaratorBrackets
-            {
-            pushFollow(FOLLOW_parameterModifier_in_parameterDeclaration1140);
-            parameterModifier();
-            _fsp--;
-
-            pushFollow(FOLLOW_typeSpec_in_parameterDeclaration1142);
-            typeSpec();
-            _fsp--;
-
-            match(input,IDENT,FOLLOW_IDENT_in_parameterDeclaration1144); 
-            pushFollow(FOLLOW_declaratorBrackets_in_parameterDeclaration1148);
-            declaratorBrackets();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end parameterDeclaration
-
-
-    // $ANTLR start parameterModifier
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:412:1: parameterModifier : ( 'final' )? ;
-    public final void parameterModifier() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:413:4: ( ( 'final' )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:413:4: ( 'final' )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:413:4: ( 'final' )?
-            int alt34=2;
-            int LA34_0 = input.LA(1);
-
-            if ( (LA34_0==82) ) {
-                alt34=1;
-            }
-            switch (alt34) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:413:5: 'final'
-                    {
-                    match(input,82,FOLLOW_82_in_parameterModifier1160); 
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end parameterModifier
-
-
-    // $ANTLR start compoundStatement
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:426:1: compoundStatement : LCURLY ( statement )* RCURLY ;
-    public final void compoundStatement() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:427:4: ( LCURLY ( statement )* RCURLY )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:427:4: LCURLY ( statement )* RCURLY
-            {
-            match(input,LCURLY,FOLLOW_LCURLY_in_compoundStatement1185); 
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:429:4: ( statement )*
-            loop35:
-            do {
-                int alt35=2;
-                int LA35_0 = input.LA(1);
-
-                if ( (LA35_0==IDENT||(LA35_0>=LCURLY && LA35_0<=SEMI)||LA35_0==LPAREN||(LA35_0>=PLUS && LA35_0<=MINUS)||(LA35_0>=INC && LA35_0<=NUM_FLOAT)||(LA35_0>=68 && LA35_0<=89)||(LA35_0>=93 && LA35_0<=94)||LA35_0==96||(LA35_0>=98 && LA35_0<=105)||LA35_0==108||(LA35_0>=112 && LA35_0<=115)) ) {
-                    alt35=1;
-                }
-
-
-                switch (alt35) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:429:5: statement
-            	    {
-            	    pushFollow(FOLLOW_statement_in_compoundStatement1196);
-            	    statement();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop35;
-                }
-            } while (true);
-
-            match(input,RCURLY,FOLLOW_RCURLY_in_compoundStatement1202); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end compoundStatement
-
-
-    // $ANTLR start statement
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:434:1: statement : ( compoundStatement | declaration SEMI | expression SEMI | modifiers classDefinition | IDENT COLON statement | 'if' LPAREN expression RPAREN statement ( 'else' statement )? | 'for' LPAREN forInit SEMI forCond SEMI forIter RPAREN statement | 'while' LPAREN expression RPAREN statement | 'do' statement 'while' LPAREN expression RPAREN SEMI | 'break' ( IDENT )? SEMI | 'continue' ( IDENT )? SEMI | 'return' ( expression )? SEMI | 'switch' LPAREN expression RPAREN LCURLY ( casesGroup )* RCURLY | tryBlock | 'throw' expression SEMI | 'synchronized' LPAREN expression RPAREN compoundStatement | SEMI );
-    public final void statement() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:436:4: ( compoundStatement | declaration SEMI | expression SEMI | modifiers classDefinition | IDENT COLON statement | 'if' LPAREN expression RPAREN statement ( 'else' statement )? | 'for' LPAREN forInit SEMI forCond SEMI forIter RPAREN statement | 'while' LPAREN expression RPAREN statement | 'do' statement 'while' LPAREN expression RPAREN SEMI | 'break' ( IDENT )? SEMI | 'continue' ( IDENT )? SEMI | 'return' ( expression )? SEMI | 'switch' LPAREN expression RPAREN LCURLY ( casesGroup )* RCURLY | tryBlock | 'throw' expression SEMI | 'synchronized' LPAREN expression RPAREN compoundStatement | SEMI )
-            int alt41=17;
-            alt41 = dfa41.predict(input);
-            switch (alt41) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:436:4: compoundStatement
-                    {
-                    pushFollow(FOLLOW_compoundStatement_in_statement1216);
-                    compoundStatement();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:443:4: declaration SEMI
-                    {
-                    pushFollow(FOLLOW_declaration_in_statement1232);
-                    declaration();
-                    _fsp--;
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1234); 
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:448:4: expression SEMI
-                    {
-                    pushFollow(FOLLOW_expression_in_statement1246);
-                    expression();
-                    _fsp--;
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1248); 
-
-                    }
-                    break;
-                case 4 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:451:4: modifiers classDefinition
-                    {
-                    pushFollow(FOLLOW_modifiers_in_statement1256);
-                    modifiers();
-                    _fsp--;
-
-                    pushFollow(FOLLOW_classDefinition_in_statement1258);
-                    classDefinition();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 5 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:454:4: IDENT COLON statement
-                    {
-                    match(input,IDENT,FOLLOW_IDENT_in_statement1266); 
-                    match(input,COLON,FOLLOW_COLON_in_statement1268); 
-                    pushFollow(FOLLOW_statement_in_statement1271);
-                    statement();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 6 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:457:4: 'if' LPAREN expression RPAREN statement ( 'else' statement )?
-                    {
-                    match(input,96,FOLLOW_96_in_statement1279); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_statement1281); 
-                    pushFollow(FOLLOW_expression_in_statement1283);
-                    expression();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_statement1285); 
-                    pushFollow(FOLLOW_statement_in_statement1287);
-                    statement();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:458:3: ( 'else' statement )?
-                    int alt36=2;
-                    int LA36_0 = input.LA(1);
-
-                    if ( (LA36_0==97) ) {
-                        alt36=1;
-                    }
-                    switch (alt36) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:462:4: 'else' statement
-                            {
-                            match(input,97,FOLLOW_97_in_statement1308); 
-                            pushFollow(FOLLOW_statement_in_statement1310);
-                            statement();
-                            _fsp--;
-
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 7 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:466:4: 'for' LPAREN forInit SEMI forCond SEMI forIter RPAREN statement
-                    {
-                    match(input,98,FOLLOW_98_in_statement1323); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_statement1328); 
-                    pushFollow(FOLLOW_forInit_in_statement1334);
-                    forInit();
-                    _fsp--;
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1336); 
-                    pushFollow(FOLLOW_forCond_in_statement1345);
-                    forCond();
-                    _fsp--;
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1347); 
-                    pushFollow(FOLLOW_forIter_in_statement1356);
-                    forIter();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_statement1370); 
-                    pushFollow(FOLLOW_statement_in_statement1375);
-                    statement();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 8 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:475:4: 'while' LPAREN expression RPAREN statement
-                    {
-                    match(input,99,FOLLOW_99_in_statement1404); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_statement1406); 
-                    pushFollow(FOLLOW_expression_in_statement1408);
-                    expression();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_statement1410); 
-                    pushFollow(FOLLOW_statement_in_statement1412);
-                    statement();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 9 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:478:4: 'do' statement 'while' LPAREN expression RPAREN SEMI
-                    {
-                    match(input,100,FOLLOW_100_in_statement1420); 
-                    pushFollow(FOLLOW_statement_in_statement1422);
-                    statement();
-                    _fsp--;
-
-                    match(input,99,FOLLOW_99_in_statement1424); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_statement1426); 
-                    pushFollow(FOLLOW_expression_in_statement1428);
-                    expression();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_statement1430); 
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1432); 
-
-                    }
-                    break;
-                case 10 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:481:4: 'break' ( IDENT )? SEMI
-                    {
-                    match(input,101,FOLLOW_101_in_statement1440); 
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:481:12: ( IDENT )?
-                    int alt37=2;
-                    int LA37_0 = input.LA(1);
-
-                    if ( (LA37_0==IDENT) ) {
-                        alt37=1;
-                    }
-                    switch (alt37) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:481:13: IDENT
-                            {
-                            match(input,IDENT,FOLLOW_IDENT_in_statement1443); 
-
-                            }
-                            break;
-
-                    }
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1447); 
-
-                    }
-                    break;
-                case 11 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:484:4: 'continue' ( IDENT )? SEMI
-                    {
-                    match(input,102,FOLLOW_102_in_statement1455); 
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:484:15: ( IDENT )?
-                    int alt38=2;
-                    int LA38_0 = input.LA(1);
-
-                    if ( (LA38_0==IDENT) ) {
-                        alt38=1;
-                    }
-                    switch (alt38) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:484:16: IDENT
-                            {
-                            match(input,IDENT,FOLLOW_IDENT_in_statement1458); 
-
-                            }
-                            break;
-
-                    }
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1462); 
-
-                    }
-                    break;
-                case 12 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:487:4: 'return' ( expression )? SEMI
-                    {
-                    match(input,103,FOLLOW_103_in_statement1470); 
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:487:13: ( expression )?
-                    int alt39=2;
-                    int LA39_0 = input.LA(1);
-
-                    if ( (LA39_0==IDENT||LA39_0==LPAREN||(LA39_0>=PLUS && LA39_0<=MINUS)||(LA39_0>=INC && LA39_0<=NUM_FLOAT)||(LA39_0>=68 && LA39_0<=76)||(LA39_0>=93 && LA39_0<=94)||(LA39_0>=112 && LA39_0<=115)) ) {
-                        alt39=1;
-                    }
-                    switch (alt39) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:487:14: expression
-                            {
-                            pushFollow(FOLLOW_expression_in_statement1473);
-                            expression();
-                            _fsp--;
-
-
-                            }
-                            break;
-
-                    }
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1477); 
-
-                    }
-                    break;
-                case 13 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:490:4: 'switch' LPAREN expression RPAREN LCURLY ( casesGroup )* RCURLY
-                    {
-                    match(input,104,FOLLOW_104_in_statement1485); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_statement1487); 
-                    pushFollow(FOLLOW_expression_in_statement1489);
-                    expression();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_statement1491); 
-                    match(input,LCURLY,FOLLOW_LCURLY_in_statement1493); 
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:491:4: ( casesGroup )*
-                    loop40:
-                    do {
-                        int alt40=2;
-                        int LA40_0 = input.LA(1);
-
-                        if ( ((LA40_0>=106 && LA40_0<=107)) ) {
-                            alt40=1;
-                        }
-
-
-                        switch (alt40) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:491:6: casesGroup
-                    	    {
-                    	    pushFollow(FOLLOW_casesGroup_in_statement1500);
-                    	    casesGroup();
-                    	    _fsp--;
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop40;
-                        }
-                    } while (true);
-
-                    match(input,RCURLY,FOLLOW_RCURLY_in_statement1507); 
-
-                    }
-                    break;
-                case 14 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:495:4: tryBlock
-                    {
-                    pushFollow(FOLLOW_tryBlock_in_statement1515);
-                    tryBlock();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 15 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:498:4: 'throw' expression SEMI
-                    {
-                    match(input,105,FOLLOW_105_in_statement1523); 
-                    pushFollow(FOLLOW_expression_in_statement1525);
-                    expression();
-                    _fsp--;
-
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1527); 
-
-                    }
-                    break;
-                case 16 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:501:4: 'synchronized' LPAREN expression RPAREN compoundStatement
-                    {
-                    match(input,86,FOLLOW_86_in_statement1535); 
-                    match(input,LPAREN,FOLLOW_LPAREN_in_statement1537); 
-                    pushFollow(FOLLOW_expression_in_statement1539);
-                    expression();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_statement1541); 
-                    pushFollow(FOLLOW_compoundStatement_in_statement1543);
-                    compoundStatement();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 17 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:507:4: SEMI
-                    {
-                    match(input,SEMI,FOLLOW_SEMI_in_statement1556); 
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end statement
-
-
-    // $ANTLR start casesGroup
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:510:1: casesGroup : ( options {greedy=true; } : aCase )+ caseSList ;
-    public final void casesGroup() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:511:4: ( ( options {greedy=true; } : aCase )+ caseSList )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:511:4: ( options {greedy=true; } : aCase )+ caseSList
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:511:4: ( options {greedy=true; } : aCase )+
-            int cnt42=0;
-            loop42:
-            do {
-                int alt42=2;
-                int LA42_0 = input.LA(1);
-
-                if ( (LA42_0==106) ) {
-                    alt42=1;
-                }
-                else if ( (LA42_0==107) ) {
-                    alt42=1;
-                }
-
-
-                switch (alt42) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:517:4: aCase
-            	    {
-            	    pushFollow(FOLLOW_aCase_in_casesGroup1602);
-            	    aCase();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt42 >= 1 ) break loop42;
-                        EarlyExitException eee =
-                            new EarlyExitException(42, input);
-                        throw eee;
-                }
-                cnt42++;
-            } while (true);
-
-            pushFollow(FOLLOW_caseSList_in_casesGroup1611);
-            caseSList();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end casesGroup
-
-
-    // $ANTLR start aCase
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:523:1: aCase : ( 'case' expression | 'default' ) COLON ;
-    public final void aCase() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:524:4: ( ( 'case' expression | 'default' ) COLON )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:524:4: ( 'case' expression | 'default' ) COLON
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:524:4: ( 'case' expression | 'default' )
-            int alt43=2;
-            int LA43_0 = input.LA(1);
-
-            if ( (LA43_0==106) ) {
-                alt43=1;
-            }
-            else if ( (LA43_0==107) ) {
-                alt43=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("524:4: ( 'case' expression | 'default' )", 43, 0, input);
-
-                throw nvae;
-            }
-            switch (alt43) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:524:5: 'case' expression
-                    {
-                    match(input,106,FOLLOW_106_in_aCase1626); 
-                    pushFollow(FOLLOW_expression_in_aCase1628);
-                    expression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:524:25: 'default'
-                    {
-                    match(input,107,FOLLOW_107_in_aCase1632); 
-
-                    }
-                    break;
-
-            }
-
-            match(input,COLON,FOLLOW_COLON_in_aCase1635); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end aCase
-
-
-    // $ANTLR start caseSList
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:527:1: caseSList : ( statement )* ;
-    public final void caseSList() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:528:4: ( ( statement )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:528:4: ( statement )*
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:528:4: ( statement )*
-            loop44:
-            do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
-
-                if ( (LA44_0==IDENT||(LA44_0>=LCURLY && LA44_0<=SEMI)||LA44_0==LPAREN||(LA44_0>=PLUS && LA44_0<=MINUS)||(LA44_0>=INC && LA44_0<=NUM_FLOAT)||(LA44_0>=68 && LA44_0<=89)||(LA44_0>=93 && LA44_0<=94)||LA44_0==96||(LA44_0>=98 && LA44_0<=105)||LA44_0==108||(LA44_0>=112 && LA44_0<=115)) ) {
-                    alt44=1;
-                }
-
-
-                switch (alt44) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:528:5: statement
-            	    {
-            	    pushFollow(FOLLOW_statement_in_caseSList1647);
-            	    statement();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop44;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end caseSList
-
-
-    // $ANTLR start forInit
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:533:1: forInit : ( declaration | expressionList )? ;
-    public final void forInit() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:536:4: ( ( declaration | expressionList )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:536:4: ( declaration | expressionList )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:536:4: ( declaration | expressionList )?
-            int alt45=3;
-            alt45 = dfa45.predict(input);
-            switch (alt45) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:536:6: declaration
-                    {
-                    pushFollow(FOLLOW_declaration_in_forInit1678);
-                    declaration();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:538:5: expressionList
-                    {
-                    pushFollow(FOLLOW_expressionList_in_forInit1687);
-                    expressionList();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end forInit
-
-
-    // $ANTLR start forCond
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:543:1: forCond : ( expression )? ;
-    public final void forCond() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:544:4: ( ( expression )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:544:4: ( expression )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:544:4: ( expression )?
-            int alt46=2;
-            int LA46_0 = input.LA(1);
-
-            if ( (LA46_0==IDENT||LA46_0==LPAREN||(LA46_0>=PLUS && LA46_0<=MINUS)||(LA46_0>=INC && LA46_0<=NUM_FLOAT)||(LA46_0>=68 && LA46_0<=76)||(LA46_0>=93 && LA46_0<=94)||(LA46_0>=112 && LA46_0<=115)) ) {
-                alt46=1;
-            }
-            switch (alt46) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:544:5: expression
-                    {
-                    pushFollow(FOLLOW_expression_in_forCond1707);
-                    expression();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end forCond
-
-
-    // $ANTLR start forIter
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:548:1: forIter : ( expressionList )? ;
-    public final void forIter() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:549:4: ( ( expressionList )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:549:4: ( expressionList )?
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:549:4: ( expressionList )?
-            int alt47=2;
-            int LA47_0 = input.LA(1);
-
-            if ( (LA47_0==IDENT||LA47_0==LPAREN||(LA47_0>=PLUS && LA47_0<=MINUS)||(LA47_0>=INC && LA47_0<=NUM_FLOAT)||(LA47_0>=68 && LA47_0<=76)||(LA47_0>=93 && LA47_0<=94)||(LA47_0>=112 && LA47_0<=115)) ) {
-                alt47=1;
-            }
-            switch (alt47) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:549:5: expressionList
-                    {
-                    pushFollow(FOLLOW_expressionList_in_forIter1724);
-                    expressionList();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end forIter
-
-
-    // $ANTLR start tryBlock
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:554:1: tryBlock : 'try' compoundStatement ( handler )* ( finallyClause )? ;
-    public final void tryBlock() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:555:4: ( 'try' compoundStatement ( handler )* ( finallyClause )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:555:4: 'try' compoundStatement ( handler )* ( finallyClause )?
-            {
-            match(input,108,FOLLOW_108_in_tryBlock1741); 
-            pushFollow(FOLLOW_compoundStatement_in_tryBlock1743);
-            compoundStatement();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:556:3: ( handler )*
-            loop48:
-            do {
-                int alt48=2;
-                int LA48_0 = input.LA(1);
-
-                if ( (LA48_0==110) ) {
-                    alt48=1;
-                }
-
-
-                switch (alt48) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:556:4: handler
-            	    {
-            	    pushFollow(FOLLOW_handler_in_tryBlock1748);
-            	    handler();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop48;
-                }
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:557:3: ( finallyClause )?
-            int alt49=2;
-            int LA49_0 = input.LA(1);
-
-            if ( (LA49_0==109) ) {
-                alt49=1;
-            }
-            switch (alt49) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:557:5: finallyClause
-                    {
-                    pushFollow(FOLLOW_finallyClause_in_tryBlock1756);
-                    finallyClause();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end tryBlock
-
-
-    // $ANTLR start finallyClause
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:560:1: finallyClause : 'finally' compoundStatement ;
-    public final void finallyClause() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:561:4: ( 'finally' compoundStatement )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:561:4: 'finally' compoundStatement
-            {
-            match(input,109,FOLLOW_109_in_finallyClause1770); 
-            pushFollow(FOLLOW_compoundStatement_in_finallyClause1772);
-            compoundStatement();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end finallyClause
-
-
-    // $ANTLR start handler
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:565:1: handler : 'catch' LPAREN parameterDeclaration RPAREN compoundStatement ;
-    public final void handler() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:566:4: ( 'catch' LPAREN parameterDeclaration RPAREN compoundStatement )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:566:4: 'catch' LPAREN parameterDeclaration RPAREN compoundStatement
-            {
-            match(input,110,FOLLOW_110_in_handler1784); 
-            match(input,LPAREN,FOLLOW_LPAREN_in_handler1786); 
-            pushFollow(FOLLOW_parameterDeclaration_in_handler1788);
-            parameterDeclaration();
-            _fsp--;
-
-            match(input,RPAREN,FOLLOW_RPAREN_in_handler1790); 
-            pushFollow(FOLLOW_compoundStatement_in_handler1792);
-            compoundStatement();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end handler
-
-
-    // $ANTLR start expression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:605:1: expression : assignmentExpression ;
-    public final void expression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:606:4: ( assignmentExpression )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:606:4: assignmentExpression
-            {
-            pushFollow(FOLLOW_assignmentExpression_in_expression1839);
-            assignmentExpression();
-            _fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end expression
-
-
-    // $ANTLR start expressionList
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:612:1: expressionList : expression ( COMMA expression )* ;
-    public final void expressionList() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:613:4: ( expression ( COMMA expression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:613:4: expression ( COMMA expression )*
-            {
-            pushFollow(FOLLOW_expression_in_expressionList1855);
-            expression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:613:15: ( COMMA expression )*
-            loop50:
-            do {
-                int alt50=2;
-                int LA50_0 = input.LA(1);
-
-                if ( (LA50_0==COMMA) ) {
-                    alt50=1;
-                }
-
-
-                switch (alt50) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:613:16: COMMA expression
-            	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_expressionList1858); 
-            	    pushFollow(FOLLOW_expression_in_expressionList1860);
-            	    expression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop50;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end expressionList
-
-
-    // $ANTLR start assignmentExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:619:1: assignmentExpression : conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | MOD_ASSIGN | SR_ASSIGN | BSR_ASSIGN | SL_ASSIGN | BAND_ASSIGN | BXOR_ASSIGN | BOR_ASSIGN ) assignmentExpression )? ;
-    public final void assignmentExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:620:4: ( conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | MOD_ASSIGN | SR_ASSIGN | BSR_ASSIGN | SL_ASSIGN | BAND_ASSIGN | BXOR_ASSIGN | BOR_ASSIGN ) assignmentExpression )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:620:4: conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | MOD_ASSIGN | SR_ASSIGN | BSR_ASSIGN | SL_ASSIGN | BAND_ASSIGN | BXOR_ASSIGN | BOR_ASSIGN ) assignmentExpression )?
-            {
-            pushFollow(FOLLOW_conditionalExpression_in_assignmentExpression1878);
-            conditionalExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:621:3: ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | MOD_ASSIGN | SR_ASSIGN | BSR_ASSIGN | SL_ASSIGN | BAND_ASSIGN | BXOR_ASSIGN | BOR_ASSIGN ) assignmentExpression )?
-            int alt51=2;
-            int LA51_0 = input.LA(1);
-
-            if ( (LA51_0==ASSIGN||(LA51_0>=PLUS_ASSIGN && LA51_0<=BOR_ASSIGN)) ) {
-                alt51=1;
-            }
-            switch (alt51) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:621:5: ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | MOD_ASSIGN | SR_ASSIGN | BSR_ASSIGN | SL_ASSIGN | BAND_ASSIGN | BXOR_ASSIGN | BOR_ASSIGN ) assignmentExpression
-                    {
-                    if ( input.LA(1)==ASSIGN||(input.LA(1)>=PLUS_ASSIGN && input.LA(1)<=BOR_ASSIGN) ) {
-                        input.consume();
-                        errorRecovery=false;
-                    }
-                    else {
-                        MismatchedSetException mse =
-                            new MismatchedSetException(null,input);
-                        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_assignmentExpression1884);    throw mse;
-                    }
-
-                    pushFollow(FOLLOW_assignmentExpression_in_assignmentExpression2103);
-                    assignmentExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end assignmentExpression
-
-
-    // $ANTLR start conditionalExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:640:1: conditionalExpression : logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? ;
-    public final void conditionalExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:641:4: ( logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:641:4: logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )?
-            {
-            pushFollow(FOLLOW_logicalOrExpression_in_conditionalExpression2121);
-            logicalOrExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:642:3: ( QUESTION assignmentExpression COLON conditionalExpression )?
-            int alt52=2;
-            int LA52_0 = input.LA(1);
-
-            if ( (LA52_0==QUESTION) ) {
-                alt52=1;
-            }
-            switch (alt52) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:642:5: QUESTION assignmentExpression COLON conditionalExpression
-                    {
-                    match(input,QUESTION,FOLLOW_QUESTION_in_conditionalExpression2127); 
-                    pushFollow(FOLLOW_assignmentExpression_in_conditionalExpression2129);
-                    assignmentExpression();
-                    _fsp--;
-
-                    match(input,COLON,FOLLOW_COLON_in_conditionalExpression2131); 
-                    pushFollow(FOLLOW_conditionalExpression_in_conditionalExpression2133);
-                    conditionalExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end conditionalExpression
-
-
-    // $ANTLR start logicalOrExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:647:1: logicalOrExpression : logicalAndExpression ( LOR logicalAndExpression )* ;
-    public final void logicalOrExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:648:4: ( logicalAndExpression ( LOR logicalAndExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:648:4: logicalAndExpression ( LOR logicalAndExpression )*
-            {
-            pushFollow(FOLLOW_logicalAndExpression_in_logicalOrExpression2149);
-            logicalAndExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:648:25: ( LOR logicalAndExpression )*
-            loop53:
-            do {
-                int alt53=2;
-                int LA53_0 = input.LA(1);
-
-                if ( (LA53_0==LOR) ) {
-                    alt53=1;
-                }
-
-
-                switch (alt53) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:648:26: LOR logicalAndExpression
-            	    {
-            	    match(input,LOR,FOLLOW_LOR_in_logicalOrExpression2152); 
-            	    pushFollow(FOLLOW_logicalAndExpression_in_logicalOrExpression2154);
-            	    logicalAndExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop53;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end logicalOrExpression
-
-
-    // $ANTLR start logicalAndExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:653:1: logicalAndExpression : inclusiveOrExpression ( LAND inclusiveOrExpression )* ;
-    public final void logicalAndExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:654:4: ( inclusiveOrExpression ( LAND inclusiveOrExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:654:4: inclusiveOrExpression ( LAND inclusiveOrExpression )*
-            {
-            pushFollow(FOLLOW_inclusiveOrExpression_in_logicalAndExpression2169);
-            inclusiveOrExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:654:26: ( LAND inclusiveOrExpression )*
-            loop54:
-            do {
-                int alt54=2;
-                int LA54_0 = input.LA(1);
-
-                if ( (LA54_0==LAND) ) {
-                    alt54=1;
-                }
-
-
-                switch (alt54) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:654:27: LAND inclusiveOrExpression
-            	    {
-            	    match(input,LAND,FOLLOW_LAND_in_logicalAndExpression2172); 
-            	    pushFollow(FOLLOW_inclusiveOrExpression_in_logicalAndExpression2174);
-            	    inclusiveOrExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop54;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end logicalAndExpression
-
-
-    // $ANTLR start inclusiveOrExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:659:1: inclusiveOrExpression : exclusiveOrExpression ( BOR exclusiveOrExpression )* ;
-    public final void inclusiveOrExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:660:4: ( exclusiveOrExpression ( BOR exclusiveOrExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:660:4: exclusiveOrExpression ( BOR exclusiveOrExpression )*
-            {
-            pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression2189);
-            exclusiveOrExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:660:26: ( BOR exclusiveOrExpression )*
-            loop55:
-            do {
-                int alt55=2;
-                int LA55_0 = input.LA(1);
-
-                if ( (LA55_0==BOR) ) {
-                    alt55=1;
-                }
-
-
-                switch (alt55) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:660:27: BOR exclusiveOrExpression
-            	    {
-            	    match(input,BOR,FOLLOW_BOR_in_inclusiveOrExpression2192); 
-            	    pushFollow(FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression2194);
-            	    exclusiveOrExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop55;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end inclusiveOrExpression
-
-
-    // $ANTLR start exclusiveOrExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:665:1: exclusiveOrExpression : andExpression ( BXOR andExpression )* ;
-    public final void exclusiveOrExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:666:4: ( andExpression ( BXOR andExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:666:4: andExpression ( BXOR andExpression )*
-            {
-            pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression2209);
-            andExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:666:18: ( BXOR andExpression )*
-            loop56:
-            do {
-                int alt56=2;
-                int LA56_0 = input.LA(1);
-
-                if ( (LA56_0==BXOR) ) {
-                    alt56=1;
-                }
-
-
-                switch (alt56) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:666:19: BXOR andExpression
-            	    {
-            	    match(input,BXOR,FOLLOW_BXOR_in_exclusiveOrExpression2212); 
-            	    pushFollow(FOLLOW_andExpression_in_exclusiveOrExpression2214);
-            	    andExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop56;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end exclusiveOrExpression
-
-
-    // $ANTLR start andExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:671:1: andExpression : equalityExpression ( BAND equalityExpression )* ;
-    public final void andExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:672:4: ( equalityExpression ( BAND equalityExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:672:4: equalityExpression ( BAND equalityExpression )*
-            {
-            pushFollow(FOLLOW_equalityExpression_in_andExpression2229);
-            equalityExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:672:23: ( BAND equalityExpression )*
-            loop57:
-            do {
-                int alt57=2;
-                int LA57_0 = input.LA(1);
-
-                if ( (LA57_0==BAND) ) {
-                    alt57=1;
-                }
-
-
-                switch (alt57) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:672:24: BAND equalityExpression
-            	    {
-            	    match(input,BAND,FOLLOW_BAND_in_andExpression2232); 
-            	    pushFollow(FOLLOW_equalityExpression_in_andExpression2234);
-            	    equalityExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop57;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end andExpression
-
-
-    // $ANTLR start equalityExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:677:1: equalityExpression : relationalExpression ( ( NOT_EQUAL | EQUAL ) relationalExpression )* ;
-    public final void equalityExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:678:4: ( relationalExpression ( ( NOT_EQUAL | EQUAL ) relationalExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:678:4: relationalExpression ( ( NOT_EQUAL | EQUAL ) relationalExpression )*
-            {
-            pushFollow(FOLLOW_relationalExpression_in_equalityExpression2249);
-            relationalExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:678:25: ( ( NOT_EQUAL | EQUAL ) relationalExpression )*
-            loop58:
-            do {
-                int alt58=2;
-                int LA58_0 = input.LA(1);
-
-                if ( ((LA58_0>=NOT_EQUAL && LA58_0<=EQUAL)) ) {
-                    alt58=1;
-                }
-
-
-                switch (alt58) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:678:26: ( NOT_EQUAL | EQUAL ) relationalExpression
-            	    {
-            	    if ( (input.LA(1)>=NOT_EQUAL && input.LA(1)<=EQUAL) ) {
-            	        input.consume();
-            	        errorRecovery=false;
-            	    }
-            	    else {
-            	        MismatchedSetException mse =
-            	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_equalityExpression2252);    throw mse;
-            	    }
-
-            	    pushFollow(FOLLOW_relationalExpression_in_equalityExpression2260);
-            	    relationalExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop58;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end equalityExpression
-
-
-    // $ANTLR start relationalExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:683:1: relationalExpression : shiftExpression ( ( ( LT | GT | LE | GE ) shiftExpression )* | 'instanceof' typeSpec ) ;
-    public final void relationalExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:684:4: ( shiftExpression ( ( ( LT | GT | LE | GE ) shiftExpression )* | 'instanceof' typeSpec ) )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:684:4: shiftExpression ( ( ( LT | GT | LE | GE ) shiftExpression )* | 'instanceof' typeSpec )
-            {
-            pushFollow(FOLLOW_shiftExpression_in_relationalExpression2275);
-            shiftExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:685:3: ( ( ( LT | GT | LE | GE ) shiftExpression )* | 'instanceof' typeSpec )
-            int alt60=2;
-            int LA60_0 = input.LA(1);
-
-            if ( (LA60_0==RBRACK||(LA60_0>=SEMI && LA60_0<=COMMA)||(LA60_0>=RPAREN && LA60_0<=GE)) ) {
-                alt60=1;
-            }
-            else if ( (LA60_0==111) ) {
-                alt60=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("685:3: ( ( ( LT | GT | LE | GE ) shiftExpression )* | 'instanceof' typeSpec )", 60, 0, input);
-
-                throw nvae;
-            }
-            switch (alt60) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:685:5: ( ( LT | GT | LE | GE ) shiftExpression )*
-                    {
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:685:5: ( ( LT | GT | LE | GE ) shiftExpression )*
-                    loop59:
-                    do {
-                        int alt59=2;
-                        int LA59_0 = input.LA(1);
-
-                        if ( ((LA59_0>=LT && LA59_0<=GE)) ) {
-                            alt59=1;
-                        }
-
-
-                        switch (alt59) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:685:7: ( LT | GT | LE | GE ) shiftExpression
-                    	    {
-                    	    if ( (input.LA(1)>=LT && input.LA(1)<=GE) ) {
-                    	        input.consume();
-                    	        errorRecovery=false;
-                    	    }
-                    	    else {
-                    	        MismatchedSetException mse =
-                    	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_relationalExpression2283);    throw mse;
-                    	    }
-
-                    	    pushFollow(FOLLOW_shiftExpression_in_relationalExpression2321);
-                    	    shiftExpression();
-                    	    _fsp--;
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop59;
-                        }
-                    } while (true);
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:692:5: 'instanceof' typeSpec
-                    {
-                    match(input,111,FOLLOW_111_in_relationalExpression2333); 
-                    pushFollow(FOLLOW_typeSpec_in_relationalExpression2335);
-                    typeSpec();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end relationalExpression
-
-
-    // $ANTLR start shiftExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:698:1: shiftExpression : additiveExpression ( ( SL | SR | BSR ) additiveExpression )* ;
-    public final void shiftExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:699:4: ( additiveExpression ( ( SL | SR | BSR ) additiveExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:699:4: additiveExpression ( ( SL | SR | BSR ) additiveExpression )*
-            {
-            pushFollow(FOLLOW_additiveExpression_in_shiftExpression2352);
-            additiveExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:699:23: ( ( SL | SR | BSR ) additiveExpression )*
-            loop61:
-            do {
-                int alt61=2;
-                int LA61_0 = input.LA(1);
-
-                if ( ((LA61_0>=SL && LA61_0<=BSR)) ) {
-                    alt61=1;
-                }
-
-
-                switch (alt61) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:699:24: ( SL | SR | BSR ) additiveExpression
-            	    {
-            	    if ( (input.LA(1)>=SL && input.LA(1)<=BSR) ) {
-            	        input.consume();
-            	        errorRecovery=false;
-            	    }
-            	    else {
-            	        MismatchedSetException mse =
-            	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_shiftExpression2355);    throw mse;
-            	    }
-
-            	    pushFollow(FOLLOW_additiveExpression_in_shiftExpression2367);
-            	    additiveExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop61;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end shiftExpression
-
-
-    // $ANTLR start additiveExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:704:1: additiveExpression : multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* ;
-    public final void additiveExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:705:4: ( multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:705:4: multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )*
-            {
-            pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression2382);
-            multiplicativeExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:705:29: ( ( PLUS | MINUS ) multiplicativeExpression )*
-            loop62:
-            do {
-                int alt62=2;
-                int LA62_0 = input.LA(1);
-
-                if ( ((LA62_0>=PLUS && LA62_0<=MINUS)) ) {
-                    alt62=1;
-                }
-
-
-                switch (alt62) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:705:30: ( PLUS | MINUS ) multiplicativeExpression
-            	    {
-            	    if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) {
-            	        input.consume();
-            	        errorRecovery=false;
-            	    }
-            	    else {
-            	        MismatchedSetException mse =
-            	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_additiveExpression2385);    throw mse;
-            	    }
-
-            	    pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression2393);
-            	    multiplicativeExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop62;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end additiveExpression
-
-
-    // $ANTLR start multiplicativeExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:710:1: multiplicativeExpression : unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* ;
-    public final void multiplicativeExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:711:4: ( unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:711:4: unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )*
-            {
-            pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression2408);
-            unaryExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:711:20: ( ( STAR | DIV | MOD ) unaryExpression )*
-            loop63:
-            do {
-                int alt63=2;
-                int LA63_0 = input.LA(1);
-
-                if ( (LA63_0==STAR||(LA63_0>=DIV && LA63_0<=MOD)) ) {
-                    alt63=1;
-                }
-
-
-                switch (alt63) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:711:21: ( STAR | DIV | MOD ) unaryExpression
-            	    {
-            	    if ( input.LA(1)==STAR||(input.LA(1)>=DIV && input.LA(1)<=MOD) ) {
-            	        input.consume();
-            	        errorRecovery=false;
-            	    }
-            	    else {
-            	        MismatchedSetException mse =
-            	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_multiplicativeExpression2411);    throw mse;
-            	    }
-
-            	    pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression2424);
-            	    unaryExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop63;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end multiplicativeExpression
-
-
-    // $ANTLR start unaryExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:714:1: unaryExpression : ( INC unaryExpression | DEC unaryExpression | MINUS unaryExpression | PLUS unaryExpression | unaryExpressionNotPlusMinus );
-    public final void unaryExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:715:4: ( INC unaryExpression | DEC unaryExpression | MINUS unaryExpression | PLUS unaryExpression | unaryExpressionNotPlusMinus )
-            int alt64=5;
-            switch ( input.LA(1) ) {
-            case INC:
-                {
-                alt64=1;
-                }
-                break;
-            case DEC:
-                {
-                alt64=2;
-                }
-                break;
-            case MINUS:
-                {
-                alt64=3;
-                }
-                break;
-            case PLUS:
-                {
-                alt64=4;
-                }
-                break;
-            case IDENT:
-            case LPAREN:
-            case BNOT:
-            case LNOT:
-            case NUM_INT:
-            case CHAR_LITERAL:
-            case STRING_LITERAL:
-            case NUM_FLOAT:
-            case 68:
-            case 69:
-            case 70:
-            case 71:
-            case 72:
-            case 73:
-            case 74:
-            case 75:
-            case 76:
-            case 93:
-            case 94:
-            case 112:
-            case 113:
-            case 114:
-            case 115:
-                {
-                alt64=5;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("714:1: unaryExpression : ( INC unaryExpression | DEC unaryExpression | MINUS unaryExpression | PLUS unaryExpression | unaryExpressionNotPlusMinus );", 64, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt64) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:715:4: INC unaryExpression
-                    {
-                    match(input,INC,FOLLOW_INC_in_unaryExpression2437); 
-                    pushFollow(FOLLOW_unaryExpression_in_unaryExpression2439);
-                    unaryExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:716:4: DEC unaryExpression
-                    {
-                    match(input,DEC,FOLLOW_DEC_in_unaryExpression2444); 
-                    pushFollow(FOLLOW_unaryExpression_in_unaryExpression2446);
-                    unaryExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:717:4: MINUS unaryExpression
-                    {
-                    match(input,MINUS,FOLLOW_MINUS_in_unaryExpression2451); 
-                    pushFollow(FOLLOW_unaryExpression_in_unaryExpression2454);
-                    unaryExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 4 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:718:4: PLUS unaryExpression
-                    {
-                    match(input,PLUS,FOLLOW_PLUS_in_unaryExpression2459); 
-                    pushFollow(FOLLOW_unaryExpression_in_unaryExpression2463);
-                    unaryExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 5 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:719:4: unaryExpressionNotPlusMinus
-                    {
-                    pushFollow(FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression2468);
-                    unaryExpressionNotPlusMinus();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end unaryExpression
-
-
-    // $ANTLR start unaryExpressionNotPlusMinus
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:722:1: unaryExpressionNotPlusMinus : ( BNOT unaryExpression | LNOT unaryExpression | LPAREN builtInTypeSpec RPAREN unaryExpression | LPAREN classTypeSpec RPAREN unaryExpressionNotPlusMinus | postfixExpression );
-    public final void unaryExpressionNotPlusMinus() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:723:4: ( BNOT unaryExpression | LNOT unaryExpression | LPAREN builtInTypeSpec RPAREN unaryExpression | LPAREN classTypeSpec RPAREN unaryExpressionNotPlusMinus | postfixExpression )
-            int alt65=5;
-            alt65 = dfa65.predict(input);
-            switch (alt65) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:723:4: BNOT unaryExpression
-                    {
-                    match(input,BNOT,FOLLOW_BNOT_in_unaryExpressionNotPlusMinus2479); 
-                    pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2481);
-                    unaryExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:724:4: LNOT unaryExpression
-                    {
-                    match(input,LNOT,FOLLOW_LNOT_in_unaryExpressionNotPlusMinus2486); 
-                    pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2488);
-                    unaryExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:726:9: LPAREN builtInTypeSpec RPAREN unaryExpression
-                    {
-                    match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus2499); 
-                    pushFollow(FOLLOW_builtInTypeSpec_in_unaryExpressionNotPlusMinus2501);
-                    builtInTypeSpec();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus2503); 
-                    pushFollow(FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2513);
-                    unaryExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 4 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:732:7: LPAREN classTypeSpec RPAREN unaryExpressionNotPlusMinus
-                    {
-                    match(input,LPAREN,FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus2549); 
-                    pushFollow(FOLLOW_classTypeSpec_in_unaryExpressionNotPlusMinus2551);
-                    classTypeSpec();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus2553); 
-                    pushFollow(FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpressionNotPlusMinus2563);
-                    unaryExpressionNotPlusMinus();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 5 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:735:7: postfixExpression
-                    {
-                    pushFollow(FOLLOW_postfixExpression_in_unaryExpressionNotPlusMinus2572);
-                    postfixExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end unaryExpressionNotPlusMinus
-
-
-    // $ANTLR start postfixExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:739:1: postfixExpression : primaryExpression ( DOT IDENT ( LPAREN argList RPAREN )? | DOT 'this' | DOT 'super' ( LPAREN argList RPAREN | DOT IDENT ( LPAREN argList RPAREN )? ) | DOT newExpression | LBRACK expression RBRACK )* ( INC | DEC )? ;
-    public final void postfixExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:740:6: ( primaryExpression ( DOT IDENT ( LPAREN argList RPAREN )? | DOT 'this' | DOT 'super' ( LPAREN argList RPAREN | DOT IDENT ( LPAREN argList RPAREN )? ) | DOT newExpression | LBRACK expression RBRACK )* ( INC | DEC )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:740:6: primaryExpression ( DOT IDENT ( LPAREN argList RPAREN )? | DOT 'this' | DOT 'super' ( LPAREN argList RPAREN | DOT IDENT ( LPAREN argList RPAREN )? ) | DOT newExpression | LBRACK expression RBRACK )* ( INC | DEC )?
-            {
-            pushFollow(FOLLOW_primaryExpression_in_postfixExpression2586);
-            primaryExpression();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:741:3: ( DOT IDENT ( LPAREN argList RPAREN )? | DOT 'this' | DOT 'super' ( LPAREN argList RPAREN | DOT IDENT ( LPAREN argList RPAREN )? ) | DOT newExpression | LBRACK expression RBRACK )*
-            loop69:
-            do {
-                int alt69=6;
-                int LA69_0 = input.LA(1);
-
-                if ( (LA69_0==DOT) ) {
-                    switch ( input.LA(2) ) {
-                    case IDENT:
-                        {
-                        alt69=1;
-                        }
-                        break;
-                    case 93:
-                        {
-                        alt69=2;
-                        }
-                        break;
-                    case 94:
-                        {
-                        alt69=3;
-                        }
-                        break;
-                    case 115:
-                        {
-                        alt69=4;
-                        }
-                        break;
-
-                    }
-
-                }
-                else if ( (LA69_0==LBRACK) ) {
-                    alt69=5;
-                }
-
-
-                switch (alt69) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:741:7: DOT IDENT ( LPAREN argList RPAREN )?
-            	    {
-            	    match(input,DOT,FOLLOW_DOT_in_postfixExpression2594); 
-            	    match(input,IDENT,FOLLOW_IDENT_in_postfixExpression2596); 
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:742:4: ( LPAREN argList RPAREN )?
-            	    int alt66=2;
-            	    int LA66_0 = input.LA(1);
-
-            	    if ( (LA66_0==LPAREN) ) {
-            	        alt66=1;
-            	    }
-            	    switch (alt66) {
-            	        case 1 :
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:742:6: LPAREN argList RPAREN
-            	            {
-            	            match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression2603); 
-            	            pushFollow(FOLLOW_argList_in_postfixExpression2610);
-            	            argList();
-            	            _fsp--;
-
-            	            match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpression2616); 
-
-            	            }
-            	            break;
-
-            	    }
-
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:746:5: DOT 'this'
-            	    {
-            	    match(input,DOT,FOLLOW_DOT_in_postfixExpression2628); 
-            	    match(input,93,FOLLOW_93_in_postfixExpression2630); 
-
-            	    }
-            	    break;
-            	case 3 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:748:5: DOT 'super' ( LPAREN argList RPAREN | DOT IDENT ( LPAREN argList RPAREN )? )
-            	    {
-            	    match(input,DOT,FOLLOW_DOT_in_postfixExpression2637); 
-            	    match(input,94,FOLLOW_94_in_postfixExpression2639); 
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:749:13: ( LPAREN argList RPAREN | DOT IDENT ( LPAREN argList RPAREN )? )
-            	    int alt68=2;
-            	    int LA68_0 = input.LA(1);
-
-            	    if ( (LA68_0==LPAREN) ) {
-            	        alt68=1;
-            	    }
-            	    else if ( (LA68_0==DOT) ) {
-            	        alt68=2;
-            	    }
-            	    else {
-            	        NoViableAltException nvae =
-            	            new NoViableAltException("749:13: ( LPAREN argList RPAREN | DOT IDENT ( LPAREN argList RPAREN )? )", 68, 0, input);
-
-            	        throw nvae;
-            	    }
-            	    switch (alt68) {
-            	        case 1 :
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:750:17: LPAREN argList RPAREN
-            	            {
-            	            match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression2674); 
-            	            pushFollow(FOLLOW_argList_in_postfixExpression2676);
-            	            argList();
-            	            _fsp--;
-
-            	            match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpression2678); 
-
-            	            }
-            	            break;
-            	        case 2 :
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:752:8: DOT IDENT ( LPAREN argList RPAREN )?
-            	            {
-            	            match(input,DOT,FOLLOW_DOT_in_postfixExpression2704); 
-            	            match(input,IDENT,FOLLOW_IDENT_in_postfixExpression2706); 
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:753:17: ( LPAREN argList RPAREN )?
-            	            int alt67=2;
-            	            int LA67_0 = input.LA(1);
-
-            	            if ( (LA67_0==LPAREN) ) {
-            	                alt67=1;
-            	            }
-            	            switch (alt67) {
-            	                case 1 :
-            	                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:753:19: LPAREN argList RPAREN
-            	                    {
-            	                    match(input,LPAREN,FOLLOW_LPAREN_in_postfixExpression2726); 
-            	                    pushFollow(FOLLOW_argList_in_postfixExpression2749);
-            	                    argList();
-            	                    _fsp--;
-
-            	                    match(input,RPAREN,FOLLOW_RPAREN_in_postfixExpression2771); 
-
-            	                    }
-            	                    break;
-
-            	            }
-
-
-            	            }
-            	            break;
-
-            	    }
-
-
-            	    }
-            	    break;
-            	case 4 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:758:5: DOT newExpression
-            	    {
-            	    match(input,DOT,FOLLOW_DOT_in_postfixExpression2810); 
-            	    pushFollow(FOLLOW_newExpression_in_postfixExpression2812);
-            	    newExpression();
-            	    _fsp--;
-
-
-            	    }
-            	    break;
-            	case 5 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:759:5: LBRACK expression RBRACK
-            	    {
-            	    match(input,LBRACK,FOLLOW_LBRACK_in_postfixExpression2818); 
-            	    pushFollow(FOLLOW_expression_in_postfixExpression2821);
-            	    expression();
-            	    _fsp--;
-
-            	    match(input,RBRACK,FOLLOW_RBRACK_in_postfixExpression2823); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop69;
-                }
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:762:3: ( INC | DEC )?
-            int alt70=2;
-            int LA70_0 = input.LA(1);
-
-            if ( ((LA70_0>=INC && LA70_0<=DEC)) ) {
-                alt70=1;
-            }
-            switch (alt70) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-                    {
-                    if ( (input.LA(1)>=INC && input.LA(1)<=DEC) ) {
-                        input.consume();
-                        errorRecovery=false;
-                    }
-                    else {
-                        MismatchedSetException mse =
-                            new MismatchedSetException(null,input);
-                        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_postfixExpression2833);    throw mse;
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end postfixExpression
-
-
-    // $ANTLR start primaryExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:770:1: primaryExpression : ( identPrimary ( options {greedy=true; } : DOT 'class' )? | constant | 'true' | 'false' | 'null' | newExpression | 'this' | 'super' | LPAREN assignmentExpression RPAREN | builtInType ( LBRACK RBRACK )* DOT 'class' );
-    public final void primaryExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:771:4: ( identPrimary ( options {greedy=true; } : DOT 'class' )? | constant | 'true' | 'false' | 'null' | newExpression | 'this' | 'super' | LPAREN assignmentExpression RPAREN | builtInType ( LBRACK RBRACK )* DOT 'class' )
-            int alt73=10;
-            switch ( input.LA(1) ) {
-            case IDENT:
-                {
-                alt73=1;
-                }
-                break;
-            case NUM_INT:
-            case CHAR_LITERAL:
-            case STRING_LITERAL:
-            case NUM_FLOAT:
-                {
-                alt73=2;
-                }
-                break;
-            case 112:
-                {
-                alt73=3;
-                }
-                break;
-            case 113:
-                {
-                alt73=4;
-                }
-                break;
-            case 114:
-                {
-                alt73=5;
-                }
-                break;
-            case 115:
-                {
-                alt73=6;
-                }
-                break;
-            case 93:
-                {
-                alt73=7;
-                }
-                break;
-            case 94:
-                {
-                alt73=8;
-                }
-                break;
-            case LPAREN:
-                {
-                alt73=9;
-                }
-                break;
-            case 68:
-            case 69:
-            case 70:
-            case 71:
-            case 72:
-            case 73:
-            case 74:
-            case 75:
-            case 76:
-                {
-                alt73=10;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("770:1: primaryExpression : ( identPrimary ( options {greedy=true; } : DOT 'class' )? | constant | 'true' | 'false' | 'null' | newExpression | 'this' | 'super' | LPAREN assignmentExpression RPAREN | builtInType ( LBRACK RBRACK )* DOT 'class' );", 73, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt73) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:771:4: identPrimary ( options {greedy=true; } : DOT 'class' )?
-                    {
-                    pushFollow(FOLLOW_identPrimary_in_primaryExpression2881);
-                    identPrimary();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:771:17: ( options {greedy=true; } : DOT 'class' )?
-                    int alt71=2;
-                    int LA71_0 = input.LA(1);
-
-                    if ( (LA71_0==DOT) ) {
-                        int LA71_1 = input.LA(2);
-
-                        if ( (LA71_1==89) ) {
-                            alt71=1;
-                        }
-                    }
-                    switch (alt71) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:771:43: DOT 'class'
-                            {
-                            match(input,DOT,FOLLOW_DOT_in_primaryExpression2893); 
-                            match(input,89,FOLLOW_89_in_primaryExpression2895); 
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:772:9: constant
-                    {
-                    pushFollow(FOLLOW_constant_in_primaryExpression2908);
-                    constant();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 3 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:773:4: 'true'
-                    {
-                    match(input,112,FOLLOW_112_in_primaryExpression2913); 
-
-                    }
-                    break;
-                case 4 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:774:4: 'false'
-                    {
-                    match(input,113,FOLLOW_113_in_primaryExpression2918); 
-
-                    }
-                    break;
-                case 5 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:775:4: 'null'
-                    {
-                    match(input,114,FOLLOW_114_in_primaryExpression2923); 
-
-                    }
-                    break;
-                case 6 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:776:9: newExpression
-                    {
-                    pushFollow(FOLLOW_newExpression_in_primaryExpression2933);
-                    newExpression();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 7 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:777:4: 'this'
-                    {
-                    match(input,93,FOLLOW_93_in_primaryExpression2938); 
-
-                    }
-                    break;
-                case 8 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:778:4: 'super'
-                    {
-                    match(input,94,FOLLOW_94_in_primaryExpression2943); 
-
-                    }
-                    break;
-                case 9 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:779:4: LPAREN assignmentExpression RPAREN
-                    {
-                    match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression2948); 
-                    pushFollow(FOLLOW_assignmentExpression_in_primaryExpression2950);
-                    assignmentExpression();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_primaryExpression2952); 
-
-                    }
-                    break;
-                case 10 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:781:4: builtInType ( LBRACK RBRACK )* DOT 'class'
-                    {
-                    pushFollow(FOLLOW_builtInType_in_primaryExpression2960);
-                    builtInType();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:782:3: ( LBRACK RBRACK )*
-                    loop72:
-                    do {
-                        int alt72=2;
-                        int LA72_0 = input.LA(1);
-
-                        if ( (LA72_0==LBRACK) ) {
-                            alt72=1;
-                        }
-
-
-                        switch (alt72) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:782:5: LBRACK RBRACK
-                    	    {
-                    	    match(input,LBRACK,FOLLOW_LBRACK_in_primaryExpression2966); 
-                    	    match(input,RBRACK,FOLLOW_RBRACK_in_primaryExpression2969); 
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop72;
-                        }
-                    } while (true);
-
-                    match(input,DOT,FOLLOW_DOT_in_primaryExpression2976); 
-                    match(input,89,FOLLOW_89_in_primaryExpression2978); 
-
-                    }
-                    break;
-
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end primaryExpression
-
-
-    // $ANTLR start identPrimary
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:786:1: identPrimary : i= IDENT ( options {greedy=true; k=2; } : DOT IDENT )* ( options {greedy=true; } : ( LPAREN argList RPAREN ) | ( options {greedy=true; } : LBRACK RBRACK )+ )? ;
-    public final void identPrimary() throws RecognitionException {
-        Token i=null;
-
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:791:4: (i= IDENT ( options {greedy=true; k=2; } : DOT IDENT )* ( options {greedy=true; } : ( LPAREN argList RPAREN ) | ( options {greedy=true; } : LBRACK RBRACK )+ )? )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:791:4: i= IDENT ( options {greedy=true; k=2; } : DOT IDENT )* ( options {greedy=true; } : ( LPAREN argList RPAREN ) | ( options {greedy=true; } : LBRACK RBRACK )+ )?
-            {
-            i=(Token)input.LT(1);
-            match(input,IDENT,FOLLOW_IDENT_in_identPrimary2993); 
-             identifiers.add( i.getText() );  
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:792:3: ( options {greedy=true; k=2; } : DOT IDENT )*
-            loop74:
-            do {
-                int alt74=2;
-                int LA74_0 = input.LA(1);
-
-                if ( (LA74_0==DOT) ) {
-                    int LA74_3 = input.LA(2);
-
-                    if ( (LA74_3==IDENT) ) {
-                        alt74=1;
-                    }
-
-
-                }
-
-
-                switch (alt74) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:796:5: DOT IDENT
-            	    {
-            	    match(input,DOT,FOLLOW_DOT_in_identPrimary3031); 
-            	    match(input,IDENT,FOLLOW_IDENT_in_identPrimary3033); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop74;
-                }
-            } while (true);
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:798:3: ( options {greedy=true; } : ( LPAREN argList RPAREN ) | ( options {greedy=true; } : LBRACK RBRACK )+ )?
-            int alt76=3;
-            int LA76_0 = input.LA(1);
-
-            if ( (LA76_0==LPAREN) ) {
-                alt76=1;
-            }
-            else if ( (LA76_0==LBRACK) ) {
-                int LA76_2 = input.LA(2);
-
-                if ( (LA76_2==RBRACK) ) {
-                    alt76=2;
-                }
-            }
-            switch (alt76) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:804:7: ( LPAREN argList RPAREN )
-                    {
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:804:7: ( LPAREN argList RPAREN )
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:804:9: LPAREN argList RPAREN
-                    {
-                    match(input,LPAREN,FOLLOW_LPAREN_in_identPrimary3095); 
-                    pushFollow(FOLLOW_argList_in_identPrimary3098);
-                    argList();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_identPrimary3100); 
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:805:5: ( options {greedy=true; } : LBRACK RBRACK )+
-                    {
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:805:5: ( options {greedy=true; } : LBRACK RBRACK )+
-                    int cnt75=0;
-                    loop75:
-                    do {
-                        int alt75=2;
-                        int LA75_0 = input.LA(1);
-
-                        if ( (LA75_0==LBRACK) ) {
-                            int LA75_2 = input.LA(2);
-
-                            if ( (LA75_2==RBRACK) ) {
-                                alt75=1;
-                            }
-
-
-                        }
-
-
-                        switch (alt75) {
-                    	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:806:15: LBRACK RBRACK
-                    	    {
-                    	    match(input,LBRACK,FOLLOW_LBRACK_in_identPrimary3133); 
-                    	    match(input,RBRACK,FOLLOW_RBRACK_in_identPrimary3136); 
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    if ( cnt75 >= 1 ) break loop75;
-                                EarlyExitException eee =
-                                    new EarlyExitException(75, input);
-                                throw eee;
-                        }
-                        cnt75++;
-                    } while (true);
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end identPrimary
-
-
-    // $ANTLR start newExpression
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:811:1: newExpression : 'new' type ( LPAREN argList RPAREN ( classBlock )? | newArrayDeclarator ( arrayInitializer )? ) ;
-    public final void newExpression() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:861:4: ( 'new' type ( LPAREN argList RPAREN ( classBlock )? | newArrayDeclarator ( arrayInitializer )? ) )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:861:4: 'new' type ( LPAREN argList RPAREN ( classBlock )? | newArrayDeclarator ( arrayInitializer )? )
-            {
-            match(input,115,FOLLOW_115_in_newExpression3172); 
-            pushFollow(FOLLOW_type_in_newExpression3174);
-            type();
-            _fsp--;
-
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:862:3: ( LPAREN argList RPAREN ( classBlock )? | newArrayDeclarator ( arrayInitializer )? )
-            int alt79=2;
-            int LA79_0 = input.LA(1);
-
-            if ( (LA79_0==LPAREN) ) {
-                alt79=1;
-            }
-            else if ( (LA79_0==LBRACK) ) {
-                alt79=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("862:3: ( LPAREN argList RPAREN ( classBlock )? | newArrayDeclarator ( arrayInitializer )? )", 79, 0, input);
-
-                throw nvae;
-            }
-            switch (alt79) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:862:5: LPAREN argList RPAREN ( classBlock )?
-                    {
-                    match(input,LPAREN,FOLLOW_LPAREN_in_newExpression3180); 
-                    pushFollow(FOLLOW_argList_in_newExpression3182);
-                    argList();
-                    _fsp--;
-
-                    match(input,RPAREN,FOLLOW_RPAREN_in_newExpression3184); 
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:862:27: ( classBlock )?
-                    int alt77=2;
-                    int LA77_0 = input.LA(1);
-
-                    if ( (LA77_0==LCURLY) ) {
-                        alt77=1;
-                    }
-                    switch (alt77) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:862:28: classBlock
-                            {
-                            pushFollow(FOLLOW_classBlock_in_newExpression3187);
-                            classBlock();
-                            _fsp--;
-
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:872:5: newArrayDeclarator ( arrayInitializer )?
-                    {
-                    pushFollow(FOLLOW_newArrayDeclarator_in_newExpression3225);
-                    newArrayDeclarator();
-                    _fsp--;
-
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:872:24: ( arrayInitializer )?
-                    int alt78=2;
-                    int LA78_0 = input.LA(1);
-
-                    if ( (LA78_0==LCURLY) ) {
-                        alt78=1;
-                    }
-                    switch (alt78) {
-                        case 1 :
-                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:872:25: arrayInitializer
-                            {
-                            pushFollow(FOLLOW_arrayInitializer_in_newExpression3228);
-                            arrayInitializer();
-                            _fsp--;
-
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end newExpression
-
-
-    // $ANTLR start argList
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:876:1: argList : ( expressionList | ) ;
-    public final void argList() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:877:4: ( ( expressionList | ) )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:877:4: ( expressionList | )
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:877:4: ( expressionList | )
-            int alt80=2;
-            int LA80_0 = input.LA(1);
-
-            if ( (LA80_0==IDENT||LA80_0==LPAREN||(LA80_0>=PLUS && LA80_0<=MINUS)||(LA80_0>=INC && LA80_0<=NUM_FLOAT)||(LA80_0>=68 && LA80_0<=76)||(LA80_0>=93 && LA80_0<=94)||(LA80_0>=112 && LA80_0<=115)) ) {
-                alt80=1;
-            }
-            else if ( (LA80_0==RPAREN) ) {
-                alt80=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("877:4: ( expressionList | )", 80, 0, input);
-
-                throw nvae;
-            }
-            switch (alt80) {
-                case 1 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:877:6: expressionList
-                    {
-                    pushFollow(FOLLOW_expressionList_in_argList3247);
-                    expressionList();
-                    _fsp--;
-
-
-                    }
-                    break;
-                case 2 :
-                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:880:3: 
-                    {
-                    }
-                    break;
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end argList
-
-
-    // $ANTLR start newArrayDeclarator
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:883:1: newArrayDeclarator : ( options {k=1; } : LBRACK ( expression )? RBRACK )+ ;
-    public final void newArrayDeclarator() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:884:4: ( ( options {k=1; } : LBRACK ( expression )? RBRACK )+ )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:884:4: ( options {k=1; } : LBRACK ( expression )? RBRACK )+
-            {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:884:4: ( options {k=1; } : LBRACK ( expression )? RBRACK )+
-            int cnt82=0;
-            loop82:
-            do {
-                int alt82=2;
-                int LA82_0 = input.LA(1);
-
-                if ( (LA82_0==LBRACK) ) {
-                    alt82=1;
-                }
-
-
-                switch (alt82) {
-            	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:893:4: LBRACK ( expression )? RBRACK
-            	    {
-            	    match(input,LBRACK,FOLLOW_LBRACK_in_newArrayDeclarator3317); 
-            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:894:5: ( expression )?
-            	    int alt81=2;
-            	    int LA81_0 = input.LA(1);
-
-            	    if ( (LA81_0==IDENT||LA81_0==LPAREN||(LA81_0>=PLUS && LA81_0<=MINUS)||(LA81_0>=INC && LA81_0<=NUM_FLOAT)||(LA81_0>=68 && LA81_0<=76)||(LA81_0>=93 && LA81_0<=94)||(LA81_0>=112 && LA81_0<=115)) ) {
-            	        alt81=1;
-            	    }
-            	    switch (alt81) {
-            	        case 1 :
-            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:894:6: expression
-            	            {
-            	            pushFollow(FOLLOW_expression_in_newArrayDeclarator3325);
-            	            expression();
-            	            _fsp--;
-
-
-            	            }
-            	            break;
-
-            	    }
-
-            	    match(input,RBRACK,FOLLOW_RBRACK_in_newArrayDeclarator3332); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt82 >= 1 ) break loop82;
-                        EarlyExitException eee =
-                            new EarlyExitException(82, input);
-                        throw eee;
-                }
-                cnt82++;
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end newArrayDeclarator
-
-
-    // $ANTLR start constant
-    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:899:1: constant : ( NUM_INT | CHAR_LITERAL | STRING_LITERAL | NUM_FLOAT );
-    public final void constant() throws RecognitionException {
-        try {
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:900:4: ( NUM_INT | CHAR_LITERAL | STRING_LITERAL | NUM_FLOAT )
-            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\semantics\\java\\parser\\JavaParser.g:
-            {
-            if ( (input.LA(1)>=NUM_INT && input.LA(1)<=NUM_FLOAT) ) {
-                input.consume();
-                errorRecovery=false;
-            }
-            else {
-                MismatchedSetException mse =
-                    new MismatchedSetException(null,input);
-                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_constant0);    throw mse;
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end constant
-
-
-    protected DFA41 dfa41 = new DFA41(this);
-    protected DFA45 dfa45 = new DFA45(this);
-    protected DFA65 dfa65 = new DFA65(this);
-    static final String DFA41_eotS =
-        "\34\uffff";
-    static final String DFA41_eofS =
-        "\34\uffff";
-    static final String DFA41_minS =
-        "\1\6\1\uffff\1\6\2\4\14\uffff\1\6\4\uffff\1\6\2\5\3\4";
-    static final String DFA41_maxS =
-        "\1\163\1\uffff\1\131\1\157\1\7\14\uffff\1\131\4\uffff\2\163\1\5"+
-        "\2\157\1\7";
-    static final String DFA41_acceptS =
-        "\1\uffff\1\1\3\uffff\1\3\1\4\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+
-        "\15\1\16\1\17\1\uffff\1\21\1\20\1\2\1\5\6\uffff";
-    static final String DFA41_specialS =
-        "\34\uffff}>";
-    static final String[] DFA41_transitionS = {
-            "\1\3\2\uffff\1\1\1\22\2\uffff\1\5\35\uffff\2\5\2\uffff\10\5"+
-            "\15\uffff\11\4\11\21\1\2\2\21\1\6\3\uffff\2\5\1\uffff\1\7\1"+
-            "\uffff\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\20\2\uffff\1\17"+
-            "\3\uffff\4\5",
-            "",
-            "\1\24\6\uffff\1\23\66\uffff\11\24\14\21\1\6",
-            "\1\27\1\uffff\1\24\1\26\1\5\1\uffff\1\5\2\uffff\1\5\1\uffff"+
-            "\1\5\1\25\40\5\76\uffff\1\5",
-            "\1\30\1\uffff\1\24\1\5",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "\1\24\75\uffff\11\24\14\21\1\6",
-            "",
-            "",
-            "",
-            "",
-            "\1\31\122\uffff\1\5\3\uffff\2\5\24\uffff\1\5",
-            "\1\32\1\5\6\uffff\1\5\35\uffff\2\5\2\uffff\10\5\15\uffff\11"+
-            "\5\20\uffff\2\5\21\uffff\4\5",
-            "\1\33",
-            "\1\27\1\uffff\1\24\1\26\1\5\1\uffff\1\5\2\uffff\1\5\1\uffff"+
-            "\1\5\1\uffff\40\5\76\uffff\1\5",
-            "\1\27\1\uffff\1\24\2\5\1\uffff\1\5\4\uffff\1\5\1\uffff\40\5"+
-            "\76\uffff\1\5",
-            "\1\30\1\uffff\1\24\1\5"
-    };
-
-    static final short[] DFA41_eot = DFA.unpackEncodedString(DFA41_eotS);
-    static final short[] DFA41_eof = DFA.unpackEncodedString(DFA41_eofS);
-    static final char[] DFA41_min = DFA.unpackEncodedStringToUnsignedChars(DFA41_minS);
-    static final char[] DFA41_max = DFA.unpackEncodedStringToUnsignedChars(DFA41_maxS);
-    static final short[] DFA41_accept = DFA.unpackEncodedString(DFA41_acceptS);
-    static final short[] DFA41_special = DFA.unpackEncodedString(DFA41_specialS);
-    static final short[][] DFA41_transition;
-
-    static {
-        int numStates = DFA41_transitionS.length;
-        DFA41_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA41_transition[i] = DFA.unpackEncodedString(DFA41_transitionS[i]);
-        }
-    }
-
-    class DFA41 extends DFA {
-
-        public DFA41(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 41;
-            this.eot = DFA41_eot;
-            this.eof = DFA41_eof;
-            this.min = DFA41_min;
-            this.max = DFA41_max;
-            this.accept = DFA41_accept;
-            this.special = DFA41_special;
-            this.transition = DFA41_transition;
-        }
-        public String getDescription() {
-            return "434:1: statement : ( compoundStatement | declaration SEMI | expression SEMI | modifiers classDefinition | IDENT COLON statement | 'if' LPAREN expression RPAREN statement ( 'else' statement )? | 'for' LPAREN forInit SEMI forCond SEMI forIter RPAREN statement | 'while' LPAREN expression RPAREN statement | 'do' statement 'while' LPAREN expression RPAREN SEMI | 'break' ( IDENT )? SEMI | 'continue' ( IDENT )? SEMI | 'return' ( expression )? SEMI | 'switch' LPAREN expression RPAREN LCURLY ( casesGroup )* RCURLY | tryBlock | 'throw' expression SEMI | 'synchronized' LPAREN expression RPAREN compoundStatement | SEMI );";
-        }
-    }
-    static final String DFA45_eotS =
-        "\14\uffff";
-    static final String DFA45_eofS =
-        "\14\uffff";
-    static final String DFA45_minS =
-        "\1\6\1\uffff\2\4\2\uffff\1\6\2\5\3\4";
-    static final String DFA45_maxS =
-        "\1\163\1\uffff\1\157\1\7\2\uffff\2\163\1\5\2\157\1\7";
-    static final String DFA45_acceptS =
-        "\1\uffff\1\1\2\uffff\1\2\1\3\6\uffff";
-    static final String DFA45_specialS =
-        "\14\uffff}>";
-    static final String[] DFA45_transitionS = {
-            "\1\2\3\uffff\1\5\2\uffff\1\4\35\uffff\2\4\2\uffff\10\4\15\uffff"+
-            "\11\3\14\1\4\uffff\2\4\21\uffff\4\4",
-            "",
-            "\1\7\1\uffff\1\1\1\6\1\4\1\uffff\1\4\1\uffff\2\4\1\uffff\1\4"+
-            "\1\uffff\40\4\76\uffff\1\4",
-            "\1\10\1\uffff\1\1\1\4",
-            "",
-            "",
-            "\1\11\122\uffff\1\4\3\uffff\2\4\24\uffff\1\4",
-            "\1\12\1\4\6\uffff\1\4\35\uffff\2\4\2\uffff\10\4\15\uffff\11"+
-            "\4\20\uffff\2\4\21\uffff\4\4",
-            "\1\13",
-            "\1\7\1\uffff\1\1\1\6\1\4\1\uffff\1\4\1\uffff\2\4\1\uffff\1\4"+
-            "\1\uffff\40\4\76\uffff\1\4",
-            "\1\7\1\uffff\1\1\2\4\1\uffff\1\4\1\uffff\1\4\2\uffff\1\4\1\uffff"+
-            "\40\4\76\uffff\1\4",
-            "\1\10\1\uffff\1\1\1\4"
-    };
-
-    static final short[] DFA45_eot = DFA.unpackEncodedString(DFA45_eotS);
-    static final short[] DFA45_eof = DFA.unpackEncodedString(DFA45_eofS);
-    static final char[] DFA45_min = DFA.unpackEncodedStringToUnsignedChars(DFA45_minS);
-    static final char[] DFA45_max = DFA.unpackEncodedStringToUnsignedChars(DFA45_maxS);
-    static final short[] DFA45_accept = DFA.unpackEncodedString(DFA45_acceptS);
-    static final short[] DFA45_special = DFA.unpackEncodedString(DFA45_specialS);
-    static final short[][] DFA45_transition;
-
-    static {
-        int numStates = DFA45_transitionS.length;
-        DFA45_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA45_transition[i] = DFA.unpackEncodedString(DFA45_transitionS[i]);
-        }
-    }
-
-    class DFA45 extends DFA {
-
-        public DFA45(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 45;
-            this.eot = DFA45_eot;
-            this.eof = DFA45_eof;
-            this.min = DFA45_min;
-            this.max = DFA45_max;
-            this.accept = DFA45_accept;
-            this.special = DFA45_special;
-            this.transition = DFA45_transition;
-        }
-        public String getDescription() {
-            return "536:4: ( declaration | expressionList )?";
-        }
-    }
-    static final String DFA65_eotS =
-        "\20\uffff";
-    static final String DFA65_eofS =
-        "\20\uffff";
-    static final String DFA65_minS =
-        "\1\6\2\uffff\1\6\1\uffff\2\4\1\6\1\5\1\4\1\5\1\uffff\2\4\1\uffff"+
-        "\1\4";
-    static final String DFA65_maxS =
-        "\1\163\2\uffff\1\163\1\uffff\1\157\1\16\3\163\1\5\1\uffff\2\157"+
-        "\1\uffff\1\16";
-    static final String DFA65_acceptS =
-        "\1\uffff\1\1\1\2\1\uffff\1\5\6\uffff\1\3\2\uffff\1\4\1\uffff";
-    static final String DFA65_specialS =
-        "\20\uffff}>";
-    static final String[] DFA65_transitionS = {
-            "\1\4\6\uffff\1\3\43\uffff\1\1\1\2\4\4\15\uffff\11\4\20\uffff"+
-            "\2\4\21\uffff\4\4",
-            "",
-            "",
-            "\1\5\6\uffff\1\4\35\uffff\2\4\2\uffff\10\4\15\uffff\11\6\20"+
-            "\uffff\2\4\21\uffff\4\4",
-            "",
-            "\1\10\2\uffff\1\7\1\4\4\uffff\1\4\1\11\1\4\1\uffff\40\4\76\uffff"+
-            "\1\4",
-            "\1\12\2\uffff\1\4\6\uffff\1\13",
-            "\1\14\122\uffff\1\4\3\uffff\2\4\24\uffff\1\4",
-            "\1\15\1\4\6\uffff\1\4\35\uffff\2\4\2\uffff\10\4\15\uffff\11"+
-            "\4\20\uffff\2\4\21\uffff\4\4",
-            "\2\4\1\16\2\4\1\uffff\3\4\1\16\43\4\6\16\15\uffff\11\16\20\uffff"+
-            "\2\16\20\uffff\1\4\4\16",
-            "\1\17",
-            "",
-            "\1\10\2\uffff\1\7\1\4\4\uffff\1\4\1\11\1\4\1\uffff\40\4\76\uffff"+
-            "\1\4",
-            "\1\10\2\uffff\2\4\5\uffff\1\11\1\4\1\uffff\40\4\76\uffff\1\4",
-            "",
-            "\1\12\2\uffff\1\4\6\uffff\1\13"
-    };
-
-    static final short[] DFA65_eot = DFA.unpackEncodedString(DFA65_eotS);
-    static final short[] DFA65_eof = DFA.unpackEncodedString(DFA65_eofS);
-    static final char[] DFA65_min = DFA.unpackEncodedStringToUnsignedChars(DFA65_minS);
-    static final char[] DFA65_max = DFA.unpackEncodedStringToUnsignedChars(DFA65_maxS);
-    static final short[] DFA65_accept = DFA.unpackEncodedString(DFA65_acceptS);
-    static final short[] DFA65_special = DFA.unpackEncodedString(DFA65_specialS);
-    static final short[][] DFA65_transition;
-
-    static {
-        int numStates = DFA65_transitionS.length;
-        DFA65_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA65_transition[i] = DFA.unpackEncodedString(DFA65_transitionS[i]);
-        }
-    }
-
-    class DFA65 extends DFA {
-
-        public DFA65(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 65;
-            this.eot = DFA65_eot;
-            this.eof = DFA65_eof;
-            this.min = DFA65_min;
-            this.max = DFA65_max;
-            this.accept = DFA65_accept;
-            this.special = DFA65_special;
-            this.transition = DFA65_transition;
-        }
-        public String getDescription() {
-            return "722:1: unaryExpressionNotPlusMinus : ( BNOT unaryExpression | LNOT unaryExpression | LPAREN builtInTypeSpec RPAREN unaryExpression | LPAREN classTypeSpec RPAREN unaryExpressionNotPlusMinus | postfixExpression );";
-        }
-    }
- 
-
-    public static final BitSet FOLLOW_modifiers_in_declaration59 = new BitSet(new long[]{0x0000000000000040L,0x0000000000001FF0L});
-    public static final BitSet FOLLOW_typeSpec_in_declaration61 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_variableDefinitions_in_declaration63 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_classTypeSpec_in_typeSpec79 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_builtInTypeSpec_in_typeSpec84 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_classTypeSpec97 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_LBRACK_in_classTypeSpec100 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RBRACK_in_classTypeSpec103 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_builtInType_in_builtInTypeSpec118 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_LBRACK_in_builtInTypeSpec121 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RBRACK_in_builtInTypeSpec124 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_identifier_in_type139 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_builtInType_in_type144 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_builtInType0 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IDENT_in_identifier209 = new BitSet(new long[]{0x0000000000000082L});
-    public static final BitSet FOLLOW_DOT_in_identifier214 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_identifier216 = new BitSet(new long[]{0x0000000000000082L});
-    public static final BitSet FOLLOW_IDENT_in_identifierStar230 = new BitSet(new long[]{0x0000000000000082L});
-    public static final BitSet FOLLOW_DOT_in_identifierStar236 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_identifierStar238 = new BitSet(new long[]{0x0000000000000082L});
-    public static final BitSet FOLLOW_DOT_in_identifierStar247 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_STAR_in_identifierStar249 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_modifier_in_modifiers270 = new BitSet(new long[]{0x0000000000000002L,0x0000000001FFE000L});
-    public static final BitSet FOLLOW_set_in_modifier0 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_89_in_classDefinition356 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_classDefinition358 = new BitSet(new long[]{0x0000000000000200L,0x0000000014000000L});
-    public static final BitSet FOLLOW_superClassClause_in_classDefinition365 = new BitSet(new long[]{0x0000000000000200L,0x0000000010000000L});
-    public static final BitSet FOLLOW_implementsClause_in_classDefinition372 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_classBlock_in_classDefinition379 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_90_in_superClassClause392 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_superClassClause394 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_91_in_interfaceDefinition412 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_interfaceDefinition414 = new BitSet(new long[]{0x0000000000000200L,0x0000000004000000L});
-    public static final BitSet FOLLOW_interfaceExtends_in_interfaceDefinition421 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_classBlock_in_interfaceDefinition428 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LCURLY_in_classBlock442 = new BitSet(new long[]{0x0000000000000E40L,0x000000000BFFFFF0L});
-    public static final BitSet FOLLOW_field_in_classBlock449 = new BitSet(new long[]{0x0000000000000E40L,0x000000000BFFFFF0L});
-    public static final BitSet FOLLOW_SEMI_in_classBlock453 = new BitSet(new long[]{0x0000000000000E40L,0x000000000BFFFFF0L});
-    public static final BitSet FOLLOW_RCURLY_in_classBlock460 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_90_in_interfaceExtends479 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_interfaceExtends483 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_COMMA_in_interfaceExtends487 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_interfaceExtends489 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_92_in_implementsClause514 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_implementsClause516 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_COMMA_in_implementsClause520 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_implementsClause522 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_modifiers_in_field548 = new BitSet(new long[]{0x0000000000000040L,0x000000000A001FF0L});
-    public static final BitSet FOLLOW_ctorHead_in_field554 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_constructorBody_in_field556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_classDefinition_in_field568 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_interfaceDefinition_in_field586 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_typeSpec_in_field600 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_field609 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_field623 = new BitSet(new long[]{0x0000000000004040L,0x0000000000041FF0L});
-    public static final BitSet FOLLOW_parameterDeclarationList_in_field625 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_field627 = new BitSet(new long[]{0x0000000000000610L,0x0000000080000000L});
-    public static final BitSet FOLLOW_declaratorBrackets_in_field634 = new BitSet(new long[]{0x0000000000000600L,0x0000000080000000L});
-    public static final BitSet FOLLOW_throwsClause_in_field652 = new BitSet(new long[]{0x0000000000000600L});
-    public static final BitSet FOLLOW_compoundStatement_in_field663 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMI_in_field667 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_variableDefinitions_in_field676 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_field678 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_80_in_field704 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_compoundStatement_in_field706 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_compoundStatement_in_field720 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LCURLY_in_constructorBody739 = new BitSet(new long[]{0x007F980000002E40L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_explicitConstructorInvocation_in_constructorBody765 = new BitSet(new long[]{0x007F980000002E40L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_constructorBody782 = new BitSet(new long[]{0x007F980000002E40L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_RCURLY_in_constructorBody794 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_93_in_explicitConstructorInvocation815 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_explicitConstructorInvocation817 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_argList_in_explicitConstructorInvocation819 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_explicitConstructorInvocation821 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_explicitConstructorInvocation823 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_94_in_explicitConstructorInvocation836 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_explicitConstructorInvocation838 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_argList_in_explicitConstructorInvocation840 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_explicitConstructorInvocation842 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_explicitConstructorInvocation844 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_variableDeclarator_in_variableDefinitions861 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_COMMA_in_variableDefinitions867 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_variableDeclarator_in_variableDefinitions872 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_IDENT_in_variableDeclarator890 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_declaratorBrackets_in_variableDeclarator892 = new BitSet(new long[]{0x0000000000008002L});
-    public static final BitSet FOLLOW_varInitializer_in_variableDeclarator894 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACK_in_declaratorBrackets912 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RBRACK_in_declaratorBrackets915 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_ASSIGN_in_varInitializer930 = new BitSet(new long[]{0x007F980000002240L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_initializer_in_varInitializer932 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LCURLY_in_arrayInitializer947 = new BitSet(new long[]{0x007F980000002A40L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_initializer_in_arrayInitializer955 = new BitSet(new long[]{0x0000000000001800L});
-    public static final BitSet FOLLOW_COMMA_in_arrayInitializer992 = new BitSet(new long[]{0x007F980000002240L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_initializer_in_arrayInitializer994 = new BitSet(new long[]{0x0000000000001800L});
-    public static final BitSet FOLLOW_COMMA_in_arrayInitializer1008 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_RCURLY_in_arrayInitializer1020 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_initializer1034 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_arrayInitializer_in_initializer1039 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IDENT_in_ctorHead1053 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_ctorHead1063 = new BitSet(new long[]{0x0000000000004040L,0x0000000000041FF0L});
-    public static final BitSet FOLLOW_parameterDeclarationList_in_ctorHead1065 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_ctorHead1067 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
-    public static final BitSet FOLLOW_throwsClause_in_ctorHead1076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_95_in_throwsClause1090 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_throwsClause1092 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_COMMA_in_throwsClause1096 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_identifier_in_throwsClause1098 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_parameterDeclaration_in_parameterDeclarationList1116 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_COMMA_in_parameterDeclarationList1120 = new BitSet(new long[]{0x0000000000000040L,0x0000000000041FF0L});
-    public static final BitSet FOLLOW_parameterDeclaration_in_parameterDeclarationList1122 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_parameterModifier_in_parameterDeclaration1140 = new BitSet(new long[]{0x0000000000000040L,0x0000000000001FF0L});
-    public static final BitSet FOLLOW_typeSpec_in_parameterDeclaration1142 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_parameterDeclaration1144 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_declaratorBrackets_in_parameterDeclaration1148 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_82_in_parameterModifier1160 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LCURLY_in_compoundStatement1185 = new BitSet(new long[]{0x007F980000002E40L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_compoundStatement1196 = new BitSet(new long[]{0x007F980000002E40L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_RCURLY_in_compoundStatement1202 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_compoundStatement_in_statement1216 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_declaration_in_statement1232 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1234 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_statement1246 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1248 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_modifiers_in_statement1256 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_classDefinition_in_statement1258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IDENT_in_statement1266 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_COLON_in_statement1268 = new BitSet(new long[]{0x007F980000002640L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_statement1271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_96_in_statement1279 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_statement1281 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_statement1283 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_statement1285 = new BitSet(new long[]{0x007F980000002640L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_statement1287 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_97_in_statement1308 = new BitSet(new long[]{0x007F980000002640L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_statement1310 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_98_in_statement1323 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_statement1328 = new BitSet(new long[]{0x007F980000002440L,0x000F000061FFFFF0L});
-    public static final BitSet FOLLOW_forInit_in_statement1334 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1336 = new BitSet(new long[]{0x007F980000002440L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_forCond_in_statement1345 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1347 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_forIter_in_statement1356 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_statement1370 = new BitSet(new long[]{0x007F980000002640L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_statement1375 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_99_in_statement1404 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_statement1406 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_statement1408 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_statement1410 = new BitSet(new long[]{0x007F980000002640L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_statement1412 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_100_in_statement1420 = new BitSet(new long[]{0x007F980000002640L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_statement_in_statement1422 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
-    public static final BitSet FOLLOW_99_in_statement1424 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_statement1426 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_statement1428 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_statement1430 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1432 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_101_in_statement1440 = new BitSet(new long[]{0x0000000000000440L});
-    public static final BitSet FOLLOW_IDENT_in_statement1443 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1447 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_102_in_statement1455 = new BitSet(new long[]{0x0000000000000440L});
-    public static final BitSet FOLLOW_IDENT_in_statement1458 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1462 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_103_in_statement1470 = new BitSet(new long[]{0x007F980000002440L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_statement1473 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1477 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_104_in_statement1485 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_statement1487 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_statement1489 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_statement1491 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_LCURLY_in_statement1493 = new BitSet(new long[]{0x0000000000000800L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_casesGroup_in_statement1500 = new BitSet(new long[]{0x0000000000000800L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_RCURLY_in_statement1507 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_tryBlock_in_statement1515 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_statement1523 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_statement1525 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_SEMI_in_statement1527 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_86_in_statement1535 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_statement1537 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_statement1539 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_statement1541 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_compoundStatement_in_statement1543 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMI_in_statement1556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_aCase_in_casesGroup1602 = new BitSet(new long[]{0x007F980000002642L,0x000F1FFD61FFFFF0L});
-    public static final BitSet FOLLOW_caseSList_in_casesGroup1611 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_106_in_aCase1626 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_aCase1628 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_107_in_aCase1632 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_COLON_in_aCase1635 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_statement_in_caseSList1647 = new BitSet(new long[]{0x007F980000002642L,0x000F13FD61FFFFF0L});
-    public static final BitSet FOLLOW_declaration_in_forInit1678 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionList_in_forInit1687 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_forCond1707 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionList_in_forIter1724 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_108_in_tryBlock1741 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_compoundStatement_in_tryBlock1743 = new BitSet(new long[]{0x0000000000000002L,0x0000600000000000L});
-    public static final BitSet FOLLOW_handler_in_tryBlock1748 = new BitSet(new long[]{0x0000000000000002L,0x0000600000000000L});
-    public static final BitSet FOLLOW_finallyClause_in_tryBlock1756 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_109_in_finallyClause1770 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_compoundStatement_in_finallyClause1772 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_110_in_handler1784 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_LPAREN_in_handler1786 = new BitSet(new long[]{0x0000000000000040L,0x0000000000041FF0L});
-    public static final BitSet FOLLOW_parameterDeclaration_in_handler1788 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_handler1790 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_compoundStatement_in_handler1792 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_assignmentExpression_in_expression1839 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_expressionList1855 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_COMMA_in_expressionList1858 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_expressionList1860 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_conditionalExpression_in_assignmentExpression1878 = new BitSet(new long[]{0x000000000FFE8002L});
-    public static final BitSet FOLLOW_set_in_assignmentExpression1884 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_assignmentExpression_in_assignmentExpression2103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_logicalOrExpression_in_conditionalExpression2121 = new BitSet(new long[]{0x0000000010000002L});
-    public static final BitSet FOLLOW_QUESTION_in_conditionalExpression2127 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_assignmentExpression_in_conditionalExpression2129 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_COLON_in_conditionalExpression2131 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_conditionalExpression_in_conditionalExpression2133 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_logicalAndExpression_in_logicalOrExpression2149 = new BitSet(new long[]{0x0000000020000002L});
-    public static final BitSet FOLLOW_LOR_in_logicalOrExpression2152 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_logicalAndExpression_in_logicalOrExpression2154 = new BitSet(new long[]{0x0000000020000002L});
-    public static final BitSet FOLLOW_inclusiveOrExpression_in_logicalAndExpression2169 = new BitSet(new long[]{0x0000000040000002L});
-    public static final BitSet FOLLOW_LAND_in_logicalAndExpression2172 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_inclusiveOrExpression_in_logicalAndExpression2174 = new BitSet(new long[]{0x0000000040000002L});
-    public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression2189 = new BitSet(new long[]{0x0000000080000002L});
-    public static final BitSet FOLLOW_BOR_in_inclusiveOrExpression2192 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression2194 = new BitSet(new long[]{0x0000000080000002L});
-    public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression2209 = new BitSet(new long[]{0x0000000100000002L});
-    public static final BitSet FOLLOW_BXOR_in_exclusiveOrExpression2212 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_andExpression_in_exclusiveOrExpression2214 = new BitSet(new long[]{0x0000000100000002L});
-    public static final BitSet FOLLOW_equalityExpression_in_andExpression2229 = new BitSet(new long[]{0x0000000200000002L});
-    public static final BitSet FOLLOW_BAND_in_andExpression2232 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_equalityExpression_in_andExpression2234 = new BitSet(new long[]{0x0000000200000002L});
-    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression2249 = new BitSet(new long[]{0x0000000C00000002L});
-    public static final BitSet FOLLOW_set_in_equalityExpression2252 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_relationalExpression_in_equalityExpression2260 = new BitSet(new long[]{0x0000000C00000002L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression2275 = new BitSet(new long[]{0x000000F000000002L,0x0000800000000000L});
-    public static final BitSet FOLLOW_set_in_relationalExpression2283 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_shiftExpression_in_relationalExpression2321 = new BitSet(new long[]{0x000000F000000002L});
-    public static final BitSet FOLLOW_111_in_relationalExpression2333 = new BitSet(new long[]{0x0000000000000040L,0x0000000000001FF0L});
-    public static final BitSet FOLLOW_typeSpec_in_relationalExpression2335 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression2352 = new BitSet(new long[]{0x0000070000000002L});
-    public static final BitSet FOLLOW_set_in_shiftExpression2355 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_additiveExpression_in_shiftExpression2367 = new BitSet(new long[]{0x0000070000000002L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression2382 = new BitSet(new long[]{0x0000180000000002L});
-    public static final BitSet FOLLOW_set_in_additiveExpression2385 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression2393 = new BitSet(new long[]{0x0000180000000002L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression2408 = new BitSet(new long[]{0x0000600000000102L});
-    public static final BitSet FOLLOW_set_in_multiplicativeExpression2411 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression2424 = new BitSet(new long[]{0x0000600000000102L});
-    public static final BitSet FOLLOW_INC_in_unaryExpression2437 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2439 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DEC_in_unaryExpression2444 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2446 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MINUS_in_unaryExpression2451 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2454 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_PLUS_in_unaryExpression2459 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_unaryExpression2463 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression2468 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BNOT_in_unaryExpressionNotPlusMinus2479 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2481 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LNOT_in_unaryExpressionNotPlusMinus2486 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2488 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus2499 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001FF0L});
-    public static final BitSet FOLLOW_builtInTypeSpec_in_unaryExpressionNotPlusMinus2501 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus2503 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus2513 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus2549 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_classTypeSpec_in_unaryExpressionNotPlusMinus2551 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus2553 = new BitSet(new long[]{0x007E000000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpressionNotPlusMinus2563 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_postfixExpression_in_unaryExpressionNotPlusMinus2572 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_primaryExpression_in_postfixExpression2586 = new BitSet(new long[]{0x0001800000000092L});
-    public static final BitSet FOLLOW_DOT_in_postfixExpression2594 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_postfixExpression2596 = new BitSet(new long[]{0x0001800000002092L});
-    public static final BitSet FOLLOW_LPAREN_in_postfixExpression2603 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_argList_in_postfixExpression2610 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_postfixExpression2616 = new BitSet(new long[]{0x0001800000000092L});
-    public static final BitSet FOLLOW_DOT_in_postfixExpression2628 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_93_in_postfixExpression2630 = new BitSet(new long[]{0x0001800000000092L});
-    public static final BitSet FOLLOW_DOT_in_postfixExpression2637 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_94_in_postfixExpression2639 = new BitSet(new long[]{0x0000000000002080L});
-    public static final BitSet FOLLOW_LPAREN_in_postfixExpression2674 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_argList_in_postfixExpression2676 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_postfixExpression2678 = new BitSet(new long[]{0x0001800000000092L});
-    public static final BitSet FOLLOW_DOT_in_postfixExpression2704 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_postfixExpression2706 = new BitSet(new long[]{0x0001800000002092L});
-    public static final BitSet FOLLOW_LPAREN_in_postfixExpression2726 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_argList_in_postfixExpression2749 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_postfixExpression2771 = new BitSet(new long[]{0x0001800000000092L});
-    public static final BitSet FOLLOW_DOT_in_postfixExpression2810 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
-    public static final BitSet FOLLOW_newExpression_in_postfixExpression2812 = new BitSet(new long[]{0x0001800000000092L});
-    public static final BitSet FOLLOW_LBRACK_in_postfixExpression2818 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_postfixExpression2821 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RBRACK_in_postfixExpression2823 = new BitSet(new long[]{0x0001800000000092L});
-    public static final BitSet FOLLOW_set_in_postfixExpression2833 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identPrimary_in_primaryExpression2881 = new BitSet(new long[]{0x0000000000000082L});
-    public static final BitSet FOLLOW_DOT_in_primaryExpression2893 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_89_in_primaryExpression2895 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_constant_in_primaryExpression2908 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_112_in_primaryExpression2913 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_113_in_primaryExpression2918 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_114_in_primaryExpression2923 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_newExpression_in_primaryExpression2933 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_93_in_primaryExpression2938 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_94_in_primaryExpression2943 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LPAREN_in_primaryExpression2948 = new BitSet(new long[]{0x007F980000002040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_assignmentExpression_in_primaryExpression2950 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_primaryExpression2952 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_builtInType_in_primaryExpression2960 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_LBRACK_in_primaryExpression2966 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RBRACK_in_primaryExpression2969 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_DOT_in_primaryExpression2976 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_89_in_primaryExpression2978 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IDENT_in_identPrimary2993 = new BitSet(new long[]{0x0000000000002092L});
-    public static final BitSet FOLLOW_DOT_in_identPrimary3031 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_IDENT_in_identPrimary3033 = new BitSet(new long[]{0x0000000000002092L});
-    public static final BitSet FOLLOW_LPAREN_in_identPrimary3095 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_argList_in_identPrimary3098 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_identPrimary3100 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACK_in_identPrimary3133 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RBRACK_in_identPrimary3136 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_115_in_newExpression3172 = new BitSet(new long[]{0x0000000000000040L,0x0000000000001FF0L});
-    public static final BitSet FOLLOW_type_in_newExpression3174 = new BitSet(new long[]{0x0000000000002010L});
-    public static final BitSet FOLLOW_LPAREN_in_newExpression3180 = new BitSet(new long[]{0x007F980000006040L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_argList_in_newExpression3182 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_RPAREN_in_newExpression3184 = new BitSet(new long[]{0x0000000000000202L});
-    public static final BitSet FOLLOW_classBlock_in_newExpression3187 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_newArrayDeclarator_in_newExpression3225 = new BitSet(new long[]{0x0000000000000202L});
-    public static final BitSet FOLLOW_arrayInitializer_in_newExpression3228 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionList_in_argList3247 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LBRACK_in_newArrayDeclarator3317 = new BitSet(new long[]{0x007F980000002060L,0x000F000060001FF0L});
-    public static final BitSet FOLLOW_expression_in_newArrayDeclarator3325 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RBRACK_in_newArrayDeclarator3332 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_set_in_constant0 = new BitSet(new long[]{0x0000000000000002L});
-
-}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/Java.g	2007-06-14 16:46:08 UTC (rev 12579)
@@ -0,0 +1,984 @@
+/** A Java 1.5 grammar for ANTLR v3 derived from the spec
+ *
+ *  This is a very close representation of the spec; the changes
+ *  are comestic (remove left recursion) and also fixes (the spec
+ *  isn't exactly perfect).  I have run this on the 1.4.2 source
+ *  and some nasty looking enums from 1.5, but have not really
+ *  tested for 1.5 compatibility.
+ *
+ *  I built this with: java -Xmx100M org.antlr.Tool java.g 
+ *  and got two errors that are ok (for now):
+ *  java.g:691:9: Decision can match input such as
+ *    "'0'..'9'{'E', 'e'}{'+', '-'}'0'..'9'{'D', 'F', 'd', 'f'}"
+ *    using multiple alternatives: 3, 4
+ *  As a result, alternative(s) 4 were disabled for that input
+ *  java.g:734:35: Decision can match input such as "{'$', 'A'..'Z',
+ *    '_', 'a'..'z', '\u00C0'..'\u00D6', '\u00D8'..'\u00F6',
+ *    '\u00F8'..'\u1FFF', '\u3040'..'\u318F', '\u3300'..'\u337F',
+ *    '\u3400'..'\u3D2D', '\u4E00'..'\u9FFF', '\uF900'..'\uFAFF'}"
+ *    using multiple alternatives: 1, 2
+ *  As a result, alternative(s) 2 were disabled for that input
+ *
+ *  You can turn enum on/off as a keyword :)
+ *
+ *  Version 1.0 -- initial release July 5, 2006 (requires 3.0b2 or higher)
+ *
+ *  Primary author: Terence Parr, July 2006
+ *
+ *  Version 1.0.1 -- corrections by Koen Vanderkimpen & Marko van Dooren,
+ *      October 25, 2006;
+ *      fixed normalInterfaceDeclaration: now uses typeParameters instead
+ *          of typeParameter (according to JLS, 3rd edition)
+ *      fixed castExpression: no longer allows expression next to type
+ *          (according to semantics in JLS, in contrast with syntax in JLS)
+ *
+ *  Version 1.0.2 -- Terence Parr, Nov 27, 2006
+ *      java spec I built this from had some bizarre for-loop control.
+ *          Looked weird and so I looked elsewhere...Yep, it's messed up.
+ *          simplified.
+ *
+ *  Version 1.0.3 -- Chris Hogue, Feb 26, 2007
+ *      Factored out an annotationName rule and used it in the annotation rule.
+ *          Not sure why, but typeName wasn't recognizing references to inner
+ *          annotations (e.g. @InterfaceName.InnerAnnotation())
+ *      Factored out the elementValue section of an annotation reference.  Created 
+ *          elementValuePair and elementValuePairs rules, then used them in the 
+ *          annotation rule.  Allows it to recognize annotation references with 
+ *          multiple, comma separated attributes.
+ *      Updated elementValueArrayInitializer so that it allows multiple elements.
+ *          (It was only allowing 0 or 1 element).
+ *      Updated localVariableDeclaration to allow annotations.  Interestingly the JLS
+ *          doesn't appear to indicate this is legal, but it does work as of at least
+ *          JDK 1.5.0_06.
+ *      Moved the Identifier portion of annotationTypeElementRest to annotationMethodRest.
+ *          Because annotationConstantRest already references variableDeclarator which 
+ *          has the Identifier portion in it, the parser would fail on constants in 
+ *          annotation definitions because it expected two identifiers.  
+ *      Added optional trailing ';' to the alternatives in annotationTypeElementRest.
+ *          Wouldn't handle an inner interface that has a trailing ';'.
+ *      Swapped the expression and type rule reference order in castExpression to 
+ *          make it check for genericized casts first.  It was failing to recognize a
+ *          statement like  "Class<Byte> TYPE = (Class<Byte>)...;" because it was seeing
+ *          'Class<Byte' in the cast expression as a less than expression, then failing 
+ *          on the '>'.
+ *      Changed createdName to use typeArguments instead of nonWildcardTypeArguments.
+ *          Again, JLS doesn't seem to allow this, but java.lang.Class has an example of
+ *          of this construct.
+ *      Changed the 'this' alternative in primary to allow 'identifierSuffix' rather than
+ *          just 'arguments'.  The case it couldn't handle was a call to an explicit
+ *          generic method invocation (e.g. this.<E>doSomething()).  Using identifierSuffix
+ *          may be overly aggressive--perhaps should create a more constrained thisSuffix rule?
+ * 		
+ *  Version 1.0.4 -- Hiroaki Nakamura, May 3, 2007
+ *
+ *	Fixed formalParameterDecls, localVariableDeclaration, forInit,
+ *	and forVarControl to use variableModifier* not 'final'? (annotation)?
+ */
+grammar Java;
+options {k=2; backtrack=true; memoize=true;}
+
+ at parser::header {
+	package org.drools.rule.builder.dialect.java.parser;
+	import java.util.Iterator;
+}
+
+ at parser::members {
+	private List identifiers = new ArrayList();
+	public List getIdentifiers() { return identifiers; }
+	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
+	private List errors = new ArrayList();
+	
+	private String source = "unknown";
+	
+	public void setSource(String source) {
+		this.source = source;
+	}
+	
+	public String getSource() {
+		return this.source;
+	}
+		
+	public void reportError(RecognitionException ex) {
+	        // if we've already reported an error and have not matched a token
+                // yet successfully, don't report any errors.
+                if ( errorRecovery ) {
+                        //System.err.print("[SPURIOUS] ");
+                        return;
+                }
+                errorRecovery = true;
+
+		errors.add( ex ); 
+	}
+     	
+     	/** return the raw RecognitionException errors */
+     	public List getErrors() {
+     		return errors;
+     	}
+     	
+     	/** Return a list of pretty strings summarising the errors */
+     	public List getErrorMessages() {
+     		List messages = new ArrayList();
+ 		for ( Iterator errorIter = errors.iterator() ; errorIter.hasNext() ; ) {
+     	     		messages.add( createErrorMessage( (RecognitionException) errorIter.next() ) );
+     	     	}
+     	     	return messages;
+     	}
+     	
+     	/** return true if any parser errors were accumulated */
+     	public boolean hasErrors() {
+  		return ! errors.isEmpty();
+     	}
+     	
+     	/** This will take a RecognitionException, and create a sensible error message out of it */
+     	public String createErrorMessage(RecognitionException e)
+        {
+		StringBuffer message = new StringBuffer();		
+                message.append( source + ":"+e.line+":"+e.charPositionInLine+" ");
+                if ( e instanceof MismatchedTokenException ) {
+                        MismatchedTokenException mte = (MismatchedTokenException)e;
+                        message.append("mismatched token: "+
+                                                           e.token+
+                                                           "; expecting type "+
+                                                           tokenNames[mte.expecting]);
+                }
+                else if ( e instanceof MismatchedTreeNodeException ) {
+                        MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e;
+                        message.append("mismatched tree node: "+
+                                                           mtne.foundNode+
+                                                           "; expecting type "+
+                                                           tokenNames[mtne.expecting]);
+                }
+                else if ( e instanceof NoViableAltException ) {
+                        NoViableAltException nvae = (NoViableAltException)e;
+			message.append( "Unexpected token '" + e.token.getText() + "'" );
+                        /*
+                        message.append("decision=<<"+nvae.grammarDecisionDescription+">>"+
+                                                           " state "+nvae.stateNumber+
+                                                           " (decision="+nvae.decisionNumber+
+                                                           ") no viable alt; token="+
+                                                           e.token);
+                                                           */
+                }
+                else if ( e instanceof EarlyExitException ) {
+                        EarlyExitException eee = (EarlyExitException)e;
+                        message.append("required (...)+ loop (decision="+
+                                                           eee.decisionNumber+
+                                                           ") did not match anything; token="+
+                                                           e.token);
+                }
+                else if ( e instanceof MismatchedSetException ) {
+                        MismatchedSetException mse = (MismatchedSetException)e;
+                        message.append("mismatched token '"+
+                                                           e.token+
+                                                           "' expecting set "+mse.expecting);
+                }
+                else if ( e instanceof MismatchedNotSetException ) {
+                        MismatchedNotSetException mse = (MismatchedNotSetException)e;
+                        message.append("mismatched token '"+
+                                                           e.token+
+                                                           "' expecting set "+mse.expecting);
+                }
+                else if ( e instanceof FailedPredicateException ) {
+                        FailedPredicateException fpe = (FailedPredicateException)e;
+                        message.append("rule "+fpe.ruleName+" failed predicate: {"+
+                                                           fpe.predicateText+"}?");
+		}
+               	return message.toString();
+        }   
+} 
+
+ at lexer::header {
+	package org.drools.rule.builder.dialect.java.parser;
+}
+
+ at lexer::members {
+	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
+	protected boolean enumIsKeyword = true;
+}
+ 
+
+// starting point for parsing a java file
+compilationUnit
+	:	annotations?
+		packageDeclaration?
+        importDeclaration*
+        typeDeclaration*
+	;
+
+packageDeclaration
+	:	'package' qualifiedName ';'
+	;
+	
+importDeclaration
+	:	'import' 'static'? Identifier ('.' Identifier)* ('.' '*')? ';'
+	;
+	
+typeDeclaration
+	:	classOrInterfaceDeclaration
+    |   ';'
+	;
+	
+classOrInterfaceDeclaration
+	:	modifier* (classDeclaration | interfaceDeclaration)
+	;
+	
+classDeclaration
+	:	normalClassDeclaration
+    |   enumDeclaration
+	;
+	
+normalClassDeclaration
+	:	'class' Identifier (typeParameters)?
+        ('extends' type)?
+        ('implements' typeList)?
+        classBody
+	;
+	
+typeParameters
+	:	'<' typeParameter (',' typeParameter)* '>'
+	;
+
+typeParameter
+	:	Identifier ('extends' bound)?
+	;
+		
+bound
+	:	type ('&' type)*
+	;
+
+enumDeclaration
+	:	ENUM Identifier ('implements' typeList)? enumBody
+	;
+	
+enumBody
+	:	'{' enumConstants? ','? enumBodyDeclarations? '}'
+	;
+
+enumConstants
+	:	enumConstant (',' enumConstant)*
+	;
+	
+enumConstant
+	:	annotations? Identifier (arguments)? (classBody)?
+	;
+	
+enumBodyDeclarations
+	:	';' (classBodyDeclaration)*
+	;
+	
+interfaceDeclaration
+	:	normalInterfaceDeclaration
+		| annotationTypeDeclaration
+	;
+	
+normalInterfaceDeclaration
+	:	'interface' Identifier typeParameters? ('extends' typeList)? interfaceBody
+	;
+	
+typeList
+	:	type (',' type)*
+	;
+	
+classBody
+	:	'{' classBodyDeclaration* '}'
+	;
+	
+interfaceBody
+	:	'{' interfaceBodyDeclaration* '}'
+	;
+
+classBodyDeclaration
+	:	';'
+	|	'static'? block
+	|	modifier* memberDecl
+	;
+	
+memberDecl
+	:	genericMethodOrConstructorDecl
+	|	methodDeclaration
+	|	fieldDeclaration
+	|	'void' Identifier voidMethodDeclaratorRest
+	|	Identifier constructorDeclaratorRest
+	|	interfaceDeclaration
+	|	classDeclaration
+	;
+	
+genericMethodOrConstructorDecl
+	:	typeParameters genericMethodOrConstructorRest
+	;
+	
+genericMethodOrConstructorRest
+	:	(type | 'void') Identifier methodDeclaratorRest
+	|	Identifier constructorDeclaratorRest
+	;
+
+methodDeclaration
+	:	type Identifier methodDeclaratorRest
+	;
+
+fieldDeclaration
+	:	type variableDeclarators ';'
+	;
+		
+interfaceBodyDeclaration
+	:	modifier* interfaceMemberDecl
+	|   ';'
+	;
+
+interfaceMemberDecl
+	:	interfaceMethodOrFieldDecl
+	|   interfaceGenericMethodDecl
+    |   'void' Identifier voidInterfaceMethodDeclaratorRest
+    |   interfaceDeclaration
+    |   classDeclaration
+	;
+	
+interfaceMethodOrFieldDecl
+	:	type Identifier interfaceMethodOrFieldRest
+	;
+	
+interfaceMethodOrFieldRest
+	:	constantDeclaratorsRest ';'
+	|	interfaceMethodDeclaratorRest
+	;
+	
+methodDeclaratorRest
+	:	formalParameters ('[' ']')*
+        ('throws' qualifiedNameList)?
+        (   methodBody
+        |   ';'
+        )
+	;
+	
+voidMethodDeclaratorRest
+	:	formalParameters ('throws' qualifiedNameList)?
+        (   methodBody
+        |   ';'
+        )
+	;
+	
+interfaceMethodDeclaratorRest
+	:	formalParameters ('[' ']')* ('throws' qualifiedNameList)? ';'
+	;
+	
+interfaceGenericMethodDecl
+	:	typeParameters (type | 'void') Identifier
+        interfaceMethodDeclaratorRest
+	;
+	
+voidInterfaceMethodDeclaratorRest
+	:	formalParameters ('throws' qualifiedNameList)? ';'
+	;
+	
+constructorDeclaratorRest
+	:	formalParameters ('throws' qualifiedNameList)? methodBody
+	;
+
+constantDeclarator
+	:	Identifier constantDeclaratorRest
+	;
+	
+variableDeclarators
+	:	variableDeclarator (',' variableDeclarator)*
+	;
+
+variableDeclarator
+	:	Identifier variableDeclaratorRest
+	;
+	
+variableDeclaratorRest
+	:	('[' ']')+ ('=' variableInitializer)?
+	|	'=' variableInitializer
+	|
+	;
+	
+constantDeclaratorsRest
+    :   constantDeclaratorRest (',' constantDeclarator)*
+    ;
+
+constantDeclaratorRest
+	:	('[' ']')* '=' variableInitializer
+	;
+	
+variableDeclaratorId
+	:	Identifier ('[' ']')*
+	;
+
+variableInitializer
+	:	arrayInitializer
+    |   expression
+	;
+	
+arrayInitializer
+	:	'{' (variableInitializer (',' variableInitializer)* (',')? )? '}'
+	;
+
+modifier
+    :   annotation
+    |   'public'
+    |   'protected'
+    |   'private'
+    |   'static'
+    |   'abstract'
+    |   'final'
+    |   'native'
+    |   'synchronized'
+    |   'transient'
+    |   'volatile'
+    |   'strictfp'
+    ;
+
+packageOrTypeName
+	:	Identifier ('.' Identifier)*
+	;
+
+enumConstantName
+    :   Identifier
+    ;
+
+typeName
+	:   Identifier
+    |   packageOrTypeName '.' Identifier
+	;
+
+type
+	:	Identifier (typeArguments)? ('.' Identifier (typeArguments)? )* ('[' ']')*
+	|	primitiveType ('[' ']')*
+	;
+
+primitiveType
+    :   'boolean'
+    |	'char'
+    |	'byte'
+    |	'short'
+    |	'int'
+    |	'long'
+    |	'float'
+    |	'double'
+    ;
+
+variableModifier
+	:	'final'
+    |   annotation
+	;
+
+typeArguments
+	:	'<' typeArgument (',' typeArgument)* '>'
+	;
+	
+typeArgument
+	:	type
+	|	'?' (('extends' | 'super') type)?
+	;
+	
+qualifiedNameList
+	:	qualifiedName (',' qualifiedName)*
+	;
+	
+formalParameters
+	:	'(' formalParameterDecls? ')'
+	;
+	
+formalParameterDecls
+	:	variableModifier* type formalParameterDeclsRest?
+	;
+	
+formalParameterDeclsRest
+	:	variableDeclaratorId (',' formalParameterDecls)?
+	|   '...' variableDeclaratorId
+	;
+	
+methodBody
+	:	block
+	;
+
+qualifiedName
+	:	Identifier ('.' Identifier)*
+	;
+	
+literal	
+	:   integerLiteral
+    |   FloatingPointLiteral
+    |   CharacterLiteral
+    |   StringLiteral
+    |   booleanLiteral
+    |   'null'
+	;
+
+integerLiteral
+    :   HexLiteral
+    |   OctalLiteral
+    |   DecimalLiteral
+    ;
+
+booleanLiteral
+    :   'true'
+    |   'false'
+    ;
+
+// ANNOTATIONS
+
+annotations
+	:	annotation+
+	;
+
+annotation
+	:	'@' annotationName ('(' elementValuePairs? ')')?
+	;
+	
+annotationName
+	: Identifier ('.' Identifier)*
+	;
+	
+elementValuePairs
+	: elementValuePair (',' elementValuePair)*
+	;
+	
+elementValuePair
+	: (Identifier '=')? elementValue
+	;
+	
+elementValue
+	:	conditionalExpression
+	|   annotation
+	|   elementValueArrayInitializer
+	;
+	
+elementValueArrayInitializer
+	:	'{' (elementValue (',' elementValue )*)? '}'
+	;
+	
+annotationTypeDeclaration
+	:	'@' 'interface' Identifier annotationTypeBody
+	;
+	
+annotationTypeBody
+	:	'{' (annotationTypeElementDeclarations)? '}'
+	;
+	
+annotationTypeElementDeclarations
+	:	(annotationTypeElementDeclaration) (annotationTypeElementDeclaration)*
+	;
+	
+annotationTypeElementDeclaration
+	:	(modifier)* annotationTypeElementRest
+	;
+	
+annotationTypeElementRest
+	:	type annotationMethodOrConstantRest ';'
+	|   classDeclaration ';'?
+	|   interfaceDeclaration ';'?
+	|   enumDeclaration ';'?
+	|   annotationTypeDeclaration ';'?
+	;
+	
+annotationMethodOrConstantRest
+	:	annotationMethodRest
+	|   annotationConstantRest
+	;
+	
+annotationMethodRest
+ 	:	Identifier '(' ')' (defaultValue)?
+ 	;
+ 	
+annotationConstantRest
+ 	:	variableDeclarators
+ 	;
+ 	
+defaultValue
+ 	:	'default' elementValue
+ 	;
+
+// STATEMENTS / BLOCKS
+
+block
+	:	'{' blockStatement* '}'
+	;
+	
+blockStatement
+	:	localVariableDeclaration
+	|	classOrInterfaceDeclaration
+    	|	statement
+	;
+	
+localVariableDeclaration
+	:	variableModifier* type variableDeclarators ';'
+	;
+	
+statement
+	: block
+    | 'assert' expression (':' expression)? ';'
+    | 'if' parExpression statement (options {k=1;}:'else' statement)?
+    | 'for' '(' forControl ')' statement
+    | 'while' parExpression statement
+    | 'do' statement 'while' parExpression ';'
+    | 'try' block
+      (	catches 'finally' block
+      | catches
+      | 'finally' block
+      )
+    | 'switch' parExpression '{' switchBlockStatementGroups '}'
+    | 'synchronized' parExpression block
+    | 'return' expression? ';'
+    | 'throw' expression ';'
+    | 'break' Identifier? ';'
+    | 'continue' Identifier? ';'
+    | ';'
+    | statementExpression ';'
+    | Identifier ':' statement
+	;
+	
+catches
+	:	catchClause (catchClause)*
+	;
+	
+catchClause
+	:	'catch' '(' formalParameter ')' block
+	;
+
+formalParameter
+	:	variableModifier* type variableDeclaratorId
+	;
+		
+switchBlockStatementGroups
+	:	(switchBlockStatementGroup)*
+	;
+	
+switchBlockStatementGroup
+	:	switchLabel blockStatement*
+	;
+	
+switchLabel
+	:	'case' constantExpression ':'
+	|   'case' enumConstantName ':'
+	|   'default' ':'
+	;
+	
+moreStatementExpressions
+	:	(',' statementExpression)*
+	;
+
+forControl
+options {k=3;} // be efficient for common case: for (ID ID : ID) ...
+	:	forVarControl
+	|	forInit? ';' expression? ';' forUpdate?
+	;
+
+forInit
+	:	variableModifier* type variableDeclarators
+	|	expressionList
+	;
+	
+forVarControl
+	:	variableModifier* type Identifier ':' expression
+	;
+
+forUpdate
+	:	expressionList
+	;
+
+// EXPRESSIONS
+
+parExpression
+	:	'(' expression ')'
+	;
+	
+expressionList
+    :   expression (',' expression)*
+    ;
+
+statementExpression
+	:	expression
+	;
+	
+constantExpression
+	:	expression
+	;
+	
+expression
+	:	conditionalExpression (assignmentOperator expression)?
+	;
+	
+assignmentOperator
+	:	'='
+    |   '+='
+    |   '-='
+    |   '*='
+    |   '/='
+    |   '&='
+    |   '|='
+    |   '^='
+    |   '%='
+    |   '<' '<' '='
+    |   '>' '>' '='
+    |   '>' '>' '>' '='
+	;
+
+conditionalExpression
+    :   conditionalOrExpression ( '?' expression ':' expression )?
+	;
+
+conditionalOrExpression
+    :   conditionalAndExpression ( '||' conditionalAndExpression )*
+	;
+
+conditionalAndExpression
+    :   inclusiveOrExpression ( '&&' inclusiveOrExpression )*
+	;
+
+inclusiveOrExpression
+    :   exclusiveOrExpression ( '|' exclusiveOrExpression )*
+	;
+
+exclusiveOrExpression
+    :   andExpression ( '^' andExpression )*
+	;
+
+andExpression
+    :   equalityExpression ( '&' equalityExpression )*
+	;
+
+equalityExpression
+    :   instanceOfExpression ( ('==' | '!=') instanceOfExpression )*
+	;
+
+instanceOfExpression
+    :   relationalExpression ('instanceof' type)?
+	;
+
+relationalExpression
+    :   shiftExpression ( relationalOp shiftExpression )*
+	;
+	
+relationalOp
+	:	('<' '=' | '>' '=' | '<' | '>')
+	;
+
+shiftExpression
+    :   additiveExpression ( shiftOp additiveExpression )*
+	;
+
+        // TODO: need a sem pred to check column on these >>>
+shiftOp
+	:	('<' '<' | '>' '>' '>' | '>' '>')
+	;
+
+
+additiveExpression
+    :   multiplicativeExpression ( ('+' | '-') multiplicativeExpression )*
+	;
+
+multiplicativeExpression
+    :   unaryExpression ( ( '*' | '/' | '%' ) unaryExpression )*
+	;
+	
+unaryExpression
+    :   '+' unaryExpression
+    |	'-' unaryExpression
+    |   '++' primary
+    |   '--' primary
+    |   unaryExpressionNotPlusMinus
+    ;
+
+unaryExpressionNotPlusMinus
+    :   '~' unaryExpression
+    | 	'!' unaryExpression
+    |   castExpression
+    |   primary selector* ('++'|'--')?
+    ;
+
+castExpression
+    :  '(' primitiveType ')' unaryExpression
+    |  '(' (type | expression) ')' unaryExpressionNotPlusMinus
+    ;
+
+primary
+    :	parExpression
+    |   nonWildcardTypeArguments
+        (explicitGenericInvocationSuffix | 'this' arguments)
+    |   'this' ('.' Identifier)* (identifierSuffix)?
+    |   'super' superSuffix
+    |   literal
+    |   'new' creator
+    |   i=Identifier { identifiers.add( $i.text );  } ('.' Identifier)* (identifierSuffix)?
+    |   primitiveType ('[' ']')* '.' 'class'
+    |   'void' '.' 'class'
+	;
+
+identifierSuffix
+	:	('[' ']')+ '.' 'class'
+	|	('[' expression ']')+ // can also be matched by selector, but do here
+    |   arguments
+    |   '.' 'class'
+    |   '.' explicitGenericInvocation
+    |   '.' 'this'
+    |   '.' 'super' arguments
+    |   '.' 'new' (nonWildcardTypeArguments)? innerCreator
+	;
+	
+creator
+	:	nonWildcardTypeArguments? createdName
+        (arrayCreatorRest | classCreatorRest)
+	;
+
+createdName
+	:	Identifier typeArguments?
+        ('.' Identifier typeArguments?)*
+    |	primitiveType
+	;
+	
+innerCreator
+	:	Identifier classCreatorRest
+	;
+
+arrayCreatorRest
+	:	'['
+        (   ']' ('[' ']')* arrayInitializer
+        |   expression ']' ('[' expression ']')* ('[' ']')*
+        )
+	;
+
+classCreatorRest
+	:	arguments classBody?
+	;
+	
+explicitGenericInvocation
+	:	nonWildcardTypeArguments explicitGenericInvocationSuffix
+	;
+	
+nonWildcardTypeArguments
+	:	'<' typeList '>'
+	;
+	
+explicitGenericInvocationSuffix
+	:	'super' superSuffix
+	|   Identifier arguments
+	;
+	
+selector
+	:	'.' Identifier (arguments)?
+	|   '.' 'this'
+	|   '.' 'super' superSuffix
+	|   '.' 'new' (nonWildcardTypeArguments)? innerCreator
+	|   '[' expression ']'
+	;
+	
+superSuffix
+	:	arguments
+	|   '.' Identifier (arguments)?
+    ;
+
+arguments
+	:	'(' expressionList? ')'
+	;
+
+// LEXER
+
+HexLiteral : '0' ('x'|'X') HexDigit+ IntegerTypeSuffix? ;
+
+DecimalLiteral : ('0' | '1'..'9' '0'..'9'*) IntegerTypeSuffix? ;
+
+OctalLiteral : '0' ('0'..'7')+ IntegerTypeSuffix? ;
+
+fragment
+HexDigit : ('0'..'9'|'a'..'f'|'A'..'F') ;
+
+fragment
+IntegerTypeSuffix : ('l'|'L') ;
+
+FloatingPointLiteral
+    :   ('0'..'9')+ '.' ('0'..'9')* Exponent? FloatTypeSuffix?
+    |   '.' ('0'..'9')+ Exponent? FloatTypeSuffix?
+    |   ('0'..'9')+ Exponent FloatTypeSuffix?
+    |   ('0'..'9')+ Exponent? FloatTypeSuffix
+	;
+
+fragment
+Exponent : ('e'|'E') ('+'|'-')? ('0'..'9')+ ;
+
+fragment
+FloatTypeSuffix : ('f'|'F'|'d'|'D') ;
+
+CharacterLiteral
+    :   '\'' ( EscapeSequence | ~('\''|'\\') ) '\''
+    ;
+
+StringLiteral
+    :  '"' ( EscapeSequence | ~('\\'|'"') )* '"'
+    ;
+
+fragment
+EscapeSequence
+    :   '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
+    |   UnicodeEscape
+    |   OctalEscape
+    ;
+
+fragment
+OctalEscape
+    :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7')
+    ;
+
+fragment
+UnicodeEscape
+    :   '\\' 'u' HexDigit HexDigit HexDigit HexDigit
+    ;
+
+ENUM:	'enum' {if ( !enumIsKeyword ) $type=Identifier;}
+	;
+	
+Identifier 
+    :   Letter (Letter|JavaIDDigit)*
+    ;
+
+/**I found this char range in JavaCC's grammar, but Letter and Digit overlap.
+   Still works, but...
+ */
+fragment
+Letter
+    :  '\u0024' |
+       '\u0041'..'\u005a' |
+       '\u005f' |
+       '\u0061'..'\u007a' |
+       '\u00c0'..'\u00d6' |
+       '\u00d8'..'\u00f6' |
+       '\u00f8'..'\u00ff' |
+       '\u0100'..'\u1fff' |
+       '\u3040'..'\u318f' |
+       '\u3300'..'\u337f' |
+       '\u3400'..'\u3d2d' |
+       '\u4e00'..'\u9fff' |
+       '\uf900'..'\ufaff'
+    ;
+
+fragment
+JavaIDDigit
+    :  '\u0030'..'\u0039' |
+       '\u0660'..'\u0669' |
+       '\u06f0'..'\u06f9' |
+       '\u0966'..'\u096f' |
+       '\u09e6'..'\u09ef' |
+       '\u0a66'..'\u0a6f' |
+       '\u0ae6'..'\u0aef' |
+       '\u0b66'..'\u0b6f' |
+       '\u0be7'..'\u0bef' |
+       '\u0c66'..'\u0c6f' |
+       '\u0ce6'..'\u0cef' |
+       '\u0d66'..'\u0d6f' |
+       '\u0e50'..'\u0e59' |
+       '\u0ed0'..'\u0ed9' |
+       '\u1040'..'\u1049'
+   ;
+
+WS  :  (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;}
+    ;
+
+COMMENT
+    :   '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
+    ;
+
+LINE_COMMENT
+    : '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
+    ;

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/JavaParser.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/JavaParser.g	2007-06-14 14:10:42 UTC (rev 12578)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/parser/JavaParser.g	2007-06-14 16:46:08 UTC (rev 12579)
@@ -1,1174 +0,0 @@
-grammar JavaParser;
-
-/*
-tokens {
-	BLOCK; MODIFIERS; OBJBLOCK; SLIST; CTOR_DEF; METHOD_DEF; VARIABLE_DEF;
-	INSTANCE_INIT; STATIC_INIT; TYPE; CLASS_DEF; INTERFACE_DEF;
-	PACKAGE_DEF; ARRAY_DECLARATOR; EXTENDS_CLAUSE; IMPLEMENTS_CLAUSE;
-	PARAMETERS; PARAMETER_DEF; LABELED_STAT; TYPECAST; INDEX_OP;
-	POST_INC; POST_DEC; METHOD_CALL; EXPR; ARRAY_INIT;
-	UNARY_MINUS; UNARY_PLUS; CASE_GROUP; ELIST; FOR_INIT; FOR_CONDITION;
-	FOR_ITERATOR; EMPTY_STAT; SUPER_CTOR_CALL; CTOR_CALL;
-}
-
-*/
-
- at parser::header {
-	package org.drools.rule.builder.dialect.java.parser;
-	import java.util.Iterator;
-}
-
- at parser::members {
-	private List identifiers = new ArrayList();
-	public List getIdentifiers() { return identifiers; }
-	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
-	private List errors = new ArrayList();
-	
-	private String source = "unknown";
-	
-	public void setSource(String source) {
-		this.source = source;
-	}
-	
-	public String getSource() {
-		return this.source;
-	}
-		
-	public void reportError(RecognitionException ex) {
-	        // if we've already reported an error and have not matched a token
-                // yet successfully, don't report any errors.
-                if ( errorRecovery ) {
-                        //System.err.print("[SPURIOUS] ");
-                        return;
-                }
-                errorRecovery = true;
-
-		errors.add( ex ); 
-	}
-     	
-     	/** return the raw RecognitionException errors */
-     	public List getErrors() {
-     		return errors;
-     	}
-     	
-     	/** Return a list of pretty strings summarising the errors */
-     	public List getErrorMessages() {
-     		List messages = new ArrayList();
- 		for ( Iterator errorIter = errors.iterator() ; errorIter.hasNext() ; ) {
-     	     		messages.add( createErrorMessage( (RecognitionException) errorIter.next() ) );
-     	     	}
-     	     	return messages;
-     	}
-     	
-     	/** return true if any parser errors were accumulated */
-     	public boolean hasErrors() {
-  		return ! errors.isEmpty();
-     	}
-     	
-     	/** This will take a RecognitionException, and create a sensible error message out of it */
-     	public String createErrorMessage(RecognitionException e)
-        {
-		StringBuffer message = new StringBuffer();		
-                message.append( source + ":"+e.line+":"+e.charPositionInLine+" ");
-                if ( e instanceof MismatchedTokenException ) {
-                        MismatchedTokenException mte = (MismatchedTokenException)e;
-                        message.append("mismatched token: "+
-                                                           e.token+
-                                                           "; expecting type "+
-                                                           tokenNames[mte.expecting]);
-                }
-                else if ( e instanceof MismatchedTreeNodeException ) {
-                        MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e;
-                        message.append("mismatched tree node: "+
-                                                           mtne.foundNode+
-                                                           "; expecting type "+
-                                                           tokenNames[mtne.expecting]);
-                }
-                else if ( e instanceof NoViableAltException ) {
-                        NoViableAltException nvae = (NoViableAltException)e;
-			message.append( "Unexpected token '" + e.token.getText() + "'" );
-                        /*
-                        message.append("decision=<<"+nvae.grammarDecisionDescription+">>"+
-                                                           " state "+nvae.stateNumber+
-                                                           " (decision="+nvae.decisionNumber+
-                                                           ") no viable alt; token="+
-                                                           e.token);
-                                                           */
-                }
-                else if ( e instanceof EarlyExitException ) {
-                        EarlyExitException eee = (EarlyExitException)e;
-                        message.append("required (...)+ loop (decision="+
-                                                           eee.decisionNumber+
-                                                           ") did not match anything; token="+
-                                                           e.token);
-                }
-                else if ( e instanceof MismatchedSetException ) {
-                        MismatchedSetException mse = (MismatchedSetException)e;
-                        message.append("mismatched token '"+
-                                                           e.token+
-                                                           "' expecting set "+mse.expecting);
-                }
-                else if ( e instanceof MismatchedNotSetException ) {
-                        MismatchedNotSetException mse = (MismatchedNotSetException)e;
-                        message.append("mismatched token '"+
-                                                           e.token+
-                                                           "' expecting set "+mse.expecting);
-                }
-                else if ( e instanceof FailedPredicateException ) {
-                        FailedPredicateException fpe = (FailedPredicateException)e;
-                        message.append("rule "+fpe.ruleName+" failed predicate: {"+
-                                                           fpe.predicateText+"}?");
-		}
-               	return message.toString();
-        }   
-} 
-
- at lexer::header {
-	package org.drools.rule.builder.dialect.java.parser;
-}
-
- at lexer::members {
-	public static final CommonToken IGNORE_TOKEN = new CommonToken(null,0,99,0,0);
-}
- 
-
-
-
-
-
-/** A declaration is the creation of a reference or primitive-type variable
- *  Create a separate Type/Var tree for each var in the var list.
- */
-declaration
-	:	modifiers typeSpec variableDefinitions
-		
-	;
-
-// A type specification is a type name with possible brackets afterwards
-//   (which would make it an array type).
-typeSpec
-	: classTypeSpec
-	| builtInTypeSpec
-	;
-
-// A class type specification is a class type with possible brackets afterwards
-//   (which would make it an array type).
-classTypeSpec
-	:	identifier (LBRACK  RBRACK)*
-	;
-
-// A builtin type specification is a builtin type with possible brackets
-// afterwards (which would make it an array type).
-builtInTypeSpec
-	:	builtInType (LBRACK  RBRACK)*
-	;
-
-// A type name. which is either a (possibly qualified) class name or
-//   a primitive (builtin) type
-type
-	:	identifier
-	|	builtInType
-	;
-
-// The primitive types.
-builtInType
-	:	'void'
-	|	'boolean'
-	|	'byte'
-	|	'char'
-	|	'short'
-	|	'int'
-	|	'float'
-	|	'long'
-	|	'double'
-	;
-
-// A (possibly-qualified) java identifier.  We start with the first IDENT
-//   and expand its name by adding dots and following IDENTS
-identifier
-	:	IDENT  ( DOT IDENT )*
-	;
-
-identifierStar
-	:	IDENT
-		( DOT IDENT )*
-		( DOT STAR  )?
-	;
-
-// A list of zero or more modifiers.  We could have used (modifier)* in
-//   place of a call to modifiers, but I thought it was a good idea to keep
-//   this rule separate so they can easily be collected in a Vector if
-//   someone so desires
-modifiers
-	:	( modifier )*
-		
-	;
-
-// modifiers for Java classes, interfaces, class/instance vars and methods
-modifier
-	:	'private'
-	|	'public'
-	|	'protected'
-	|	'static'
-	|	'transient'
-	|	'final'
-	|	'abstract'
-	|	'native'
-	|	'threadsafe'
-	|	'synchronized'
-//	|	'const'			// reserved word, but not valid
-	|	'volatile'
-	|	'strictfp'
-	;
-
-// Definition of a Java class
-classDefinition
-	:	'class' IDENT
-		// it _might_ have a superclass...
-		superClassClause
-		// it might implement some interfaces...
-		implementsClause
-		// now parse the body of the class
-		classBlock
-	;
-
-superClassClause
-	:	( 'extends' identifier )?
-		
-	;
-
-// Definition of a Java Interface
-interfaceDefinition
-	:	'interface' IDENT
-		// it might extend some other interfaces
-		interfaceExtends
-		// now parse the body of the interface (looks like a class...)
-		classBlock
-	;
-
-
-// This is the body of a class.  You can have fields and extra semicolons,
-// That's about it (until you see what a field is...)
-classBlock
-	:	LCURLY
-			( field | SEMI )*
-		RCURLY
-		
-	;
-
-// An interface can extend several other interfaces...
-interfaceExtends
-	:	(
-		'extends'
-		identifier ( COMMA identifier )*
-		)?
-	;
-
-// A class can implement several interfaces...
-implementsClause
-	:	(
-			'implements' identifier ( COMMA identifier )*
-		)?
-	;
-
-// Now the various things that can be defined inside a class or interface...
-// Note that not all of these are really valid in an interface (constructors,
-//   for example), and if this grammar were used for a compiler there would
-//   need to be some semantic checks to make sure we're doing the right thing...
-field
-	:	// method, constructor, or variable declaration
-		modifiers
-		(	ctorHead constructorBody // constructor
-			
-
-		|	classDefinition       // inner class
-			
-
-		|	interfaceDefinition   // inner interface
-			
-
-		|	typeSpec  // method or variable declaration(s)
-			(	IDENT  // the name of the method
-
-				// parse the formal parameter declarations.
-				LPAREN parameterDeclarationList RPAREN
-
-				declaratorBrackets
-
-				// get the list of exceptions that this method is
-				// declared to throw
-				(throwsClause)?
-
-				( compoundStatement | SEMI )
-			|	variableDefinitions SEMI
-//				
-				
-			)
-		)
-
-    // 'static { ... }' class initializer
-	|	'static' compoundStatement
-		
-
-    // '{ ... }' instance initializer
-	|	compoundStatement
-		
-	;
-
-constructorBody
-    :   LCURLY 
-            ( options {greedy=true;} : explicitConstructorInvocation)?
-            (statement)*
-        RCURLY
-    ;
-
-/** Catch obvious constructor calls, but not the expr.super(...) calls */
-explicitConstructorInvocation
-    :   'this' LPAREN argList RPAREN SEMI
-		
-    |   'super' LPAREN argList RPAREN SEMI
-		
-    ;
-
-variableDefinitions
-	:	variableDeclarator
-		(	COMMA
-			variableDeclarator
-		)*
-	;
-
-/** Declaration of a variable.  This can be a class/instance variable,
- *   or a local variable in a method
- * It can also include possible initialization.
- */
-variableDeclarator
-	:	IDENT declaratorBrackets varInitializer
-		
-	;
-
-declaratorBrackets
-	:	
-		(LBRACK  RBRACK)*
-	;
-
-varInitializer
-	:	( ASSIGN initializer )?
-	;
-
-// This is an initializer used to set up an array.
-arrayInitializer
-	:	LCURLY 
-			(	initializer
-				(
-					// CONFLICT: does a COMMA after an initializer start a new
-					//           initializer or start the option ',' at end?
-					//           ANTLR generates proper code by matching
-					//			 the comma as soon as possible.
-					COMMA initializer
-				)*
-				(COMMA)?
-			)?
-		RCURLY
-	;
-
-
-// The two 'things' that can initialize an array element are an expression
-//   and another (nested) array initializer.
-initializer
-	:	expression
-	|	arrayInitializer
-	;
-
-// This is the header of a method.  It includes the name and parameters
-//   for the method.
-//   This also watches for a list of exception classes in a 'throws' clause.
-ctorHead
-	:	IDENT  // the name of the method
-
-		// parse the formal parameter declarations.
-		LPAREN parameterDeclarationList RPAREN
-
-		// get the list of exceptions that this method is declared to throw
-		(throwsClause)?
-	;
-
-// This is a list of exception classes that the method is declared to throw
-throwsClause
-	:	'throws' identifier ( COMMA identifier )*
-	;
-
-
-// A list of formal parameters
-parameterDeclarationList
-	:	( parameterDeclaration ( COMMA parameterDeclaration )* )?
-	;
-
-// A formal parameter.
-parameterDeclaration
-	:	parameterModifier typeSpec IDENT
-		declaratorBrackets
-	;
-
-parameterModifier
-	:	('final')?
-		
-	;
-
-// Compound statement.  This is used in many contexts:
-//   Inside a class definition prefixed with 'static':
-//      it is a class initializer
-//   Inside a class definition without 'static':
-//      it is an instance initializer
-//   As the body of a method
-//   As a completely indepdent braced block of code inside a method
-//      it starts a new scope for variable definitions
-
-compoundStatement
-	:	LCURLY 
-			// include the (possibly-empty) list of statements
-			(statement)*
-		RCURLY
-	;
-
-
-statement
-	// A list of statements in curly braces -- start a new scope
-	:	compoundStatement
-
-	// declarations are ambiguous with 'ID DOT' relative to expression
-	// statements.  Must backtrack to be sure.  Could use a semantic
-	// predicate to test symbol table to see what the type was coming
-	// up, but that's pretty hard without a symbol table ;)
-	// remove (declaration)=>
-	|	declaration SEMI
-
-	// An expression statement.  This could be a method call,
-	// assignment statement, or any other expression evaluated for
-	// side-effects.
-	|	expression SEMI
-
-	// class definition
-	|	modifiers classDefinition
-
-	// Attach a label to the front of a statement
-	|	IDENT COLON  statement
-
-	// If-else statement
-	|	'if' LPAREN expression RPAREN statement
-		(
-			// CONFLICT: the old "dangling-else" problem...
-			//           ANTLR generates proper code matching
-			//			 as soon as possible.  Hush warning.
-			'else' statement
-		)?
-
-	// For statement
-	|	'for'
-			LPAREN
-				forInit SEMI   // initializer
-				forCond	SEMI   // condition test
-				forIter         // updater
-			RPAREN
-			statement                     // statement to loop over
-
-	// While statement
-	|	'while' LPAREN expression RPAREN statement
-
-	// do-while statement
-	|	'do' statement 'while' LPAREN expression RPAREN SEMI
-
-	// get out of a loop (or switch)
-	|	'break' (IDENT)? SEMI
-
-	// do next iteration of a loop
-	|	'continue' (IDENT)? SEMI
-
-	// Return an expression
-	|	'return' (expression)? SEMI
-
-	// switch/case statement
-	|	'switch' LPAREN expression RPAREN LCURLY
-			( casesGroup )*
-		RCURLY
-
-	// exception try-catch block
-	|	tryBlock
-
-	// throw an exception
-	|	'throw' expression SEMI
-
-	// synchronize a statement
-	|	'synchronized' LPAREN expression RPAREN compoundStatement
-
-	// asserts (uncomment if you want 1.4 compatibility)
-	// |	'assert' expression ( COLON expression )? SEMI
-
-	// empty statement
-	|	SEMI 
-	;
-
-casesGroup
-	:	(	// CONFLICT: to which case group do the statements bind?
-			//           ANTLR generates proper code: it groups the
-			//           many 'case'/'default' labels together then
-			//           follows them with the statements
-				options {greedy=true;}
-			:
-			aCase
-		)+
-		caseSList
-		
-	;
-
-aCase
-	:	('case' expression | 'default') COLON
-	;
-
-caseSList
-	:	(statement)*
-		
-	;
-
-// The initializer for a for loop
-forInit
-		// if it looks like a declaration, it is
-        // remove (declaration)=> 
-	:	(	declaration
-		// otherwise it could be an expression list...
-		|	expressionList
-		)?
-		
-	;
-
-forCond
-	:	(expression)?
-		
-	;
-
-forIter
-	:	(expressionList)?
-		
-	;
-
-// an exception handler try/catch block
-tryBlock
-	:	'try' compoundStatement
-		(handler)*
-		( finallyClause )?
-	;
-
-finallyClause
-	:	'finally' compoundStatement
-	;
-
-// an exception handler
-handler
-	:	'catch' LPAREN parameterDeclaration RPAREN compoundStatement
-	;
-
-
-// expressions
-// Note that most of these expressions follow the pattern
-//   thisLevelExpression :
-//       nextHigherPrecedenceExpression
-//           (OPERATOR nextHigherPrecedenceExpression)*
-// which is a standard recursive definition for a parsing an expression.
-// The operators in java have the following precedences:
-//    lowest  (13)  = *= /= %= += -= <<= >>= >>>= &= = |=
-//            (12)  ?:
-//            (11)  ||
-//            (10)  &&
-//            ( 9)  |
-//            ( 8)  
-//            ( 7)  &
-//            ( 6)  == =
-//            ( 5)  < <= > >=
-//            ( 4)  << >>
-//            ( 3)  +(binary) -(binary)
-//            ( 2)  * / %
-//            ( 1)  ++ -- +(unary) -(unary)  ~    (type)
-//                  []   () (method call)  . (dot -- identifier qualification)
-//                  new   ()  (explicit parenthesis)
-//
-// the last two are not usually on a precedence chart; I put them in
-// to point out that new has a higher precedence than '.', so you
-// can validy use
-//     new Frame().show()
-//
-// Note that the above precedence levels map to the rules below...
-// Once you have a precedence chart, writing the appropriate rules as below
-//   is usually very straightfoward
-
-
-
-// the mother of all expressions
-expression
-	:	assignmentExpression
-		
-	;
-
-
-// This is a list of expressions.
-expressionList
-	:	expression (COMMA expression)*
-		
-	;
-
-
-// assignment expression (level 13)
-assignmentExpression
-	:	conditionalExpression
-		(	(	ASSIGN
-            |   PLUS_ASSIGN
-            |   MINUS_ASSIGN
-            |   STAR_ASSIGN
-            |   DIV_ASSIGN
-            |   MOD_ASSIGN
-            |   SR_ASSIGN
-            |   BSR_ASSIGN
-            |   SL_ASSIGN
-            |   BAND_ASSIGN
-            |   BXOR_ASSIGN
-            |   BOR_ASSIGN
-            )
-			assignmentExpression
-		)?
-	;
-
-
-// conditional test (level 12)
-conditionalExpression
-	:	logicalOrExpression
-		( QUESTION assignmentExpression COLON conditionalExpression )?
-	;
-
-
-// logical or (||)  (level 11)
-logicalOrExpression
-	:	logicalAndExpression (LOR logicalAndExpression)*
-	;
-
-
-// logical and (&&)  (level 10)
-logicalAndExpression
-	:	inclusiveOrExpression (LAND inclusiveOrExpression)*
-	;
-
-
-// bitwise or non-short-circuiting or (|)  (level 9)
-inclusiveOrExpression
-	:	exclusiveOrExpression (BOR exclusiveOrExpression)*
-	;
-
-
-// exclusive or ()  (level 8)
-exclusiveOrExpression
-	:	andExpression (BXOR andExpression)*
-	;
-
-
-// bitwise or non-short-circuiting and (&)  (level 7)
-andExpression
-	:	equalityExpression (BAND equalityExpression)*
-	;
-
-
-// equality/inequality (==/=) (level 6)
-equalityExpression
-	:	relationalExpression ((NOT_EQUAL | EQUAL) relationalExpression)*
-	;
-
-
-// boolean relational expressions (level 5)
-relationalExpression
-	:	shiftExpression
-		(	(	(	LT
-				|	GT
-				|	LE
-				|	GE
-				)
-				shiftExpression
-			)*
-		|	'instanceof' typeSpec
-		)
-	;
-
-
-// bit shift expressions (level 4)
-shiftExpression
-	:	additiveExpression ((SL | SR | BSR) additiveExpression)*
-	;
-
-
-// binary addition/subtraction (level 3)
-additiveExpression
-	:	multiplicativeExpression ((PLUS | MINUS) multiplicativeExpression)*
-	;
-
-
-// multiplication/division/modulo (level 2)
-multiplicativeExpression
-	:	unaryExpression ((STAR | DIV | MOD ) unaryExpression)*
-	;
-
-unaryExpression
-	:	INC unaryExpression
-	|	DEC unaryExpression
-	|	MINUS  unaryExpression
-	|	PLUS   unaryExpression
-	|	unaryExpressionNotPlusMinus
-	;
-
-unaryExpressionNotPlusMinus
-	:	BNOT unaryExpression
-	|	LNOT unaryExpression
-
-    |   LPAREN builtInTypeSpec RPAREN
-        unaryExpression
-
-        // Have to backtrack to see if operator follows.  If no operator
-        // follows, it's a typecast.  No semantic checking needed to parse.
-        // if it _looks_ like a cast, it _is_ a cast; else it's a '(expr)'
-    |	LPAREN classTypeSpec RPAREN
-        unaryExpressionNotPlusMinus
-
-    |	postfixExpression
-	;
-
-// qualified names, array expressions, method invocation, post inc/dec
-postfixExpression
-	:   primaryExpression
-		(   DOT IDENT
-			(	LPAREN 
-				argList
-				RPAREN
-			)?
-		|	DOT 'this'
-
-		|	DOT 'super'
-            (   // (new Outer()).super()  (create enclosing instance)
-                LPAREN argList RPAREN
-                
-			|   DOT IDENT
-                (	LPAREN 
-                    argList
-                    RPAREN
-                )?
-            )
-		|	DOT newExpression
-		|	LBRACK  expression RBRACK
-		)*
-
-		(   // possibly add on a post-increment or post-decrement.
-            // allows INC/DEC on too much, but semantics can check
-			INC 
-	 	|	DEC 
-		)?
- 	;
-
-// the basic element of an expression
-primaryExpression
-	:	identPrimary ( options {greedy=true;}: DOT 'class' )?
-    |   constant
-	|	'true'
-	|	'false'
-	|	'null'
-    |   newExpression
-	|	'this'
-	|	'super'
-	|	LPAREN assignmentExpression RPAREN
-		// look for int.class and int[].class
-	|	builtInType
-		( LBRACK  RBRACK )*
-		DOT 'class'
-	;
-
-/** Match a, a.b.c refs, a.b.c(...) refs, a.b.c[], a.b.c[].class,
- *  and a.b.c.class refs.  Also this(...) and super(...).  Match
- *  this or super.
- */
-identPrimary
-	:	i=IDENT { identifiers.add( i.getText() );  }
-		(
-				// .ident could match here or in postfixExpression.
-				// We do want to match here.  Turn off warning.
-				options {greedy=true; k=2;}
-		:	DOT IDENT
-		)*
-		(
-				// ARRAY_DECLARATOR here conflicts with INDEX_OP in
-				// postfixExpression on LBRACK RBRACK.
-				// We want to match [] here, so greedy.  This overcomes
-                // limitation of linear approximate lookahead.
-				options {greedy=true;}
-		:   ( LPAREN  argList RPAREN )
-		|	( options {greedy=true;} :
-              LBRACK  RBRACK
-            )+
-		)?
-    ;
-
-/** object instantiation.
- *  Trees are built as illustrated by the following input/tree pairs:
- *
- *  new T()
- *
- *  new
- *   |
- *   T --  ELIST
- *           |
- *          arg1 -- arg2 -- .. -- argn
- *
- *  new int[]
- *
- *  new
- *   |
- *  int -- ARRAY_DECLARATOR
- *
- *  new int[] {1,2}
- *
- *  new
- *   |
- *  int -- ARRAY_DECLARATOR -- ARRAY_INIT
- *                                  |
- *                                EXPR -- EXPR
- *                                  |      |
- *                                  1      2
- *
- *  new int[3]
- *  new
- *   |
- *  int -- ARRAY_DECLARATOR
- *                |
- *              EXPR
- *                |
- *                3
- *
- *  new int[1][2]
- *
- *  new
- *   |
- *  int -- ARRAY_DECLARATOR
- *               |
- *         ARRAY_DECLARATOR -- EXPR
- *               |              |
- *             EXPR             1
- *               |
- *               2
- *
- */
-newExpression
-	:	'new' type
-		(	LPAREN argList RPAREN (classBlock)?
-
-			//java 1.1
-			// Note: This will allow bad constructs like
-			//    new int[4][][3] {exp,exp}.
-			//    There needs to be a semantic check here...
-			// to make sure:
-			//   a) [ expr ] and [ ] are not mixed
-			//   b) [ expr ] and an init are not used together
-
-		|	newArrayDeclarator (arrayInitializer)?
-		)
-	;
-
-argList
-	:	(	expressionList
-		|	/*nothing*/
-			
-		)
-	;
-
-newArrayDeclarator
-	:	(
-			// CONFLICT:
-			// newExpression is a primaryExpression which can be
-			// followed by an array index reference.  This is ok,
-			// as the generated code will stay in this loop as
-			// long as it sees an LBRACK (proper behavior)
-				options {k=1;}
-				//options {warnWhenFollowAmbig = false;}
-		:
-			LBRACK 
-				(expression)?
-			RBRACK
-		)+
-	;
-
-constant
-	:	NUM_INT
-	|	CHAR_LITERAL
-	|	STRING_LITERAL
-	|	NUM_FLOAT
-	;
-
-
-//----------------------------------------------------------------------------
-// The Java scanner
-//----------------------------------------------------------------------------
-
-// OPERATORS
-
-
-QUESTION		:	'?'		;
-
-
-LPAREN			:	'('		;
-
-
-RPAREN			:	')'		;
-
-
-LBRACK			:	'['		;
-
-
-RBRACK			:	']'		;
-
-
-LCURLY			:	'{'		;
-
-
-RCURLY			:	'}'		;
-
-
-COLON			:	':'		;
-
-
-COMMA			:	','		;
-
-DOT				:	'.'		;
-
-ASSIGN			:	'='		;
-
-
-EQUAL			:	'=='	;
-
-
-LNOT			:	'!'		;
-
-
-BNOT			:	'~'		;
-
-
-NOT_EQUAL		:	'!='	;
-
-
-DIV				:	'/'		;
-
-
-DIV_ASSIGN		:	'/='	;
-
-
-PLUS			:	'+'		;
-
-
-PLUS_ASSIGN		:	'+='	;
-
-
-INC				:	'++'	;
-
-
-MINUS			:	'-'		;
-
-
-MINUS_ASSIGN	:	'-='	;
-
-
-DEC				:	'--'	;
-
-
-STAR			:	'*'		;
-
-
-STAR_ASSIGN		:	'*='	;
-
-
-MOD				:	'%'		;
-
-
-MOD_ASSIGN		:	'%='	;
-
-
-SR				:	'>>'	;
-
-
-SR_ASSIGN		:	'>>='	;
-
-
-BSR				:	'>>>'	;
-
-
-BSR_ASSIGN		:	'>>>='	;
-
-
-GE				:	'>='	;
-
-
-GT				:	'>'		;
-
-
-SL				:	'<<'	;
-
-
-SL_ASSIGN		:	'<<='	;
-
-
-LE				:	'<='	;
-
-
-LT				:	'<'		;
-
-
-BXOR			:	'^'		;
-
-
-BXOR_ASSIGN		:	'^='	;
-
-
-BOR				:	'|'		;
-
-
-BOR_ASSIGN		:	'|='	;
-
-
-LOR				:	'||'	;
-
-
-BAND			:	'&'		;
-
-
-BAND_ASSIGN		:	'&='	;
-
-
-LAND			:	'&&'	;
-
-
-SEMI			:	';'		;
-
-
-// Whitespace -- ignored
-
-
-WS	:	(	' '
-		|	'\t'
-		|	'\f'
-			// handle newlines
-		|	(	'\r\n'  // Evil DOS
-			|	'\r'    // Macintosh
-			|	'\n'    // Unix (the right way)
-			)
-		)+
-		{ $channel=HIDDEN; /*token = JavaParser.IGNORE_TOKEN;*/ }
-	;
-
-// Single-line comments
-
-
-SL_COMMENT
-	:	'//' (options {greedy=false;} : .)* ('\r')? '\n'
-		{$channel=HIDDEN; /*token = JavaParser.IGNORE_TOKEN;*/}
-	;
-
-// multiple-line comments
-
-
-ML_COMMENT
-	:	'/*'
-		( options {greedy=false;} : . )*
-		'*/'
-		{$channel=HIDDEN;/*token = JavaParser.IGNORE_TOKEN;*/}
-	;
-
-IDENT
-	:	('a'..'z'|'A'..'Z'|'_'|'$') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'$')*
-	;
-
-// From the java language spec
-
-NUM_INT
-    : DECIMAL_LITERAL 
-    | HEX_LITERAL
-    | OCTAL_LITERAL
-    ;
-
-fragment
-DECIMAL_LITERAL: '1'..'9' ('0'..'9')* ('l'|'L')? ;
-
-fragment
-HEX_LITERAL: '0' ('x'|'X') ('0'..'9'|'a'..'f'|'A'..'F')+ ('l'|'L')? ;
-
-fragment
-OCTAL_LITERAL: '0' ('0'..'7')* ('l'|'L')? ;
-
-NUM_FLOAT
-    :     DIGITS '.' (DIGITS)? (EXPONENT_PART)? (FLOAT_TYPE_SUFFIX)?
-    | '.' DIGITS (EXPONENT_PART)? (FLOAT_TYPE_SUFFIX)?
-    |     DIGITS EXPONENT_PART FLOAT_TYPE_SUFFIX
-    |     DIGITS EXPONENT_PART
-    |     DIGITS FLOAT_TYPE_SUFFIX
-    ;
-
-
-fragment
-DIGITS : ('0'..'9')+ ;
-
-/*
-fragment
-EXPONENT_PART: ('e'|'E') ('+'|'-')? DIGITS ;
-*/
-
-fragment
-EXPONENT_PART: ('e'|'E') ('+'|'-')? DIGITS ;
-
-fragment
-FLOAT_TYPE_SUFFIX :   ('f'|'F'|'d'|'D') ;
-
-CHAR_LITERAL
-    :
-      '\''
-      ( ~('\''|'\\')
-      | ESCAPE_SEQUENCE
-      )
-      '\''
-    ;
-
-STRING_LITERAL
-    :
-      '\"'
-      ( ~('\"'|'\\')
-      | ESCAPE_SEQUENCE
-      )*
-      '\"'
-        ;
-
-fragment
-ESCAPE_SEQUENCE
-    :	'\\' 'b'
-    |   '\\' 't'
-    |   '\\' 'n'
-    |   '\\' 'f'
-    |   '\\' 'r'
-    |   '\\' '\"'
-    |   '\\' '\''
-    |   '\\' '\\'
-    |	'\\' '0'..'3' OCTAL_DIGIT OCTAL_DIGIT
-    |   '\\' OCTAL_DIGIT OCTAL_DIGIT
-    |   '\\' OCTAL_DIGIT
-	|	UNICODE_CHAR
-	;
-
-fragment
-UNICODE_CHAR
-	:	'\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
-	;
-
-fragment
-HEX_DIGIT
-	:	'0'..'9'|'a'..'f'|'A'..'F'
-	;
-
-fragment
-OCTAL_DIGIT
-	:	'0'..'7'
-	;




More information about the jboss-svn-commits mailing list