[jboss-svn-commits] JBL Code SVN: r6232 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/compiler main/java/org/drools/lang main/java/org/drools/lang/descr main/java/org/drools/semantics/java main/resources/org/drools/lang test/java/org/drools test/java/org/drools/compiler test/java/org/drools/integrationtests test/java/org/drools/lang test/java/org/drools/semantics/java test/resources/org/drools/integrationtests test/resources/org/drools/lang

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 14 14:11:27 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-09-14 14:10:43 -0400 (Thu, 14 Sep 2006)
New Revision: 6232

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccessorDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From2.drl
Removed:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternDescr.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FactTemplateError.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FieldTemplateError.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleError.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ColumnDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DeclarativeInvokerDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FactTemplateDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldAccessDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldBindingDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldTemplateDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/Restriction.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionFixer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/StaticMethodFunctionResolver.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/StaticMethodFunctionResolverTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/from.drl
Log:
JBRULES-496
-Sequential Accessor for the Action Language.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FactTemplateError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FactTemplateError.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FactTemplateError.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -17,18 +17,18 @@
  */
 
 import org.apache.commons.jci.problems.CompilationProblem;
-import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.BaseDescr;
 import org.drools.rule.Rule;
 import org.drools.rule.Package;
 
 public class FactTemplateError extends DroolsError {
     private Package pkg;
-    private PatternDescr descr;
+    private BaseDescr descr;
     private Object       object;
     private String       message;
 
     public FactTemplateError(final Package pkg,
-                     final PatternDescr descr,
+                     final BaseDescr descr,
                      final Object object,
                      final String message) {
         super();
@@ -42,7 +42,7 @@
         return this.pkg;
     }
 
-    public PatternDescr getDescr() {
+    public BaseDescr getDescr() {
         return this.descr;
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FieldTemplateError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FieldTemplateError.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/FieldTemplateError.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -17,18 +17,18 @@
  */
 
 import org.apache.commons.jci.problems.CompilationProblem;
-import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.BaseDescr;
 import org.drools.rule.Rule;
 import org.drools.rule.Package;
 
 public class FieldTemplateError extends DroolsError {
     private Package      pkg;
-    private PatternDescr descr;
+    private BaseDescr descr;
     private Object       object;
     private String       message;
 
     public FieldTemplateError(final Package pkg,
-                              final PatternDescr descr,
+                              final BaseDescr descr,
                               final Object object,
                               final String message) {
         this.pkg = pkg;
@@ -41,7 +41,7 @@
         return this.pkg;
     }
 
-    public PatternDescr getDescr() {
+    public BaseDescr getDescr() {
         return this.descr;
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -45,7 +45,7 @@
 import org.drools.lang.descr.FieldTemplateDescr;
 import org.drools.lang.descr.FunctionDescr;
 import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.RuleDescr;
 import org.drools.rule.LineMappings;
 import org.drools.rule.Package;
@@ -67,7 +67,8 @@
  * This can be done by merging into existing binary packages, or totally from source.
  */
 public class PackageBuilder {
-
+    private static final JavaCompiler cachedJavaCompiler = null;
+    
     private JavaCompiler                compiler;
     private Package                     pkg;
     private List                        results;
@@ -75,13 +76,13 @@
     private MemoryResourceReader        src;
     private PackageBuilderConfiguration configuration;
     private Map                         errorHandlers;
-    private List                        generatedClassList;
+    private List                         generatedClassList;
     private TypeResolver                typeResolver;
     private FunctionFixer               functionFixer;
     private FunctionResolver            functionResolver;
     private ClassFieldExtractorCache    classFieldExtractorCache;
     private Map                         lineMappings;
-
+    
     /**
      * Use this when package is starting from scratch. 
      */
@@ -293,12 +294,14 @@
      * element that caused it.
      */
     private void addClassCompileTask(final String className,
+                                     final BaseDescr descr,
                                      final String text,
                                      final MemoryResourceReader src,
                                      final ErrorHandler handler) {
 
         final String fileName = className.replace( '.',
                                                    '/' ) + ".java";
+                
         src.add( fileName,
                  text.getBytes() );
 
@@ -308,13 +311,15 @@
     }
 
     private void addFunction(final FunctionDescr functionDescr) {
-        final FunctionBuilder buidler = new FunctionBuilder();
+        final FunctionBuilder builder = new FunctionBuilder();
         this.pkg.addFunction( functionDescr.getName() );
 
         addClassCompileTask( this.pkg.getName() + "." + ucFirst( functionDescr.getName() ),
-                             buidler.build( this.pkg,
-                                            functionDescr,
+                             functionDescr,
+                             builder.build( this.pkg,
+                                            functionDescr,                                            
                                             getFunctionFixer(),
+                                            getTypeResolver(),
                                             lineMappings ),
                              this.src,
                              new FunctionErrorHandler( functionDescr,
@@ -423,6 +428,7 @@
                                   final RuleDescr ruleDescr) {
         // The compilation result is for th entire rule, so difficult to associate with any descr
         addClassCompileTask( this.pkg.getName() + "." + ruleDescr.getClassName(),
+                             ruleDescr,
                              builder.getRuleClass(),
                              this.src,
                              new RuleErrorHandler( ruleDescr,
@@ -442,8 +448,9 @@
             final String text = (String) builder.getInvokers().get( className );
 
             //System.out.println( className + ":\n" + text );
-            final PatternDescr descr = (PatternDescr) builder.getDescrLookups().get( className );
+            final BaseDescr descr = (BaseDescr) builder.getDescrLookups().get( className );
             addClassCompileTask( className,
+                                 descr,
                                  text,
                                  this.src,
                                  new RuleInvokerErrorHandler( descr,
@@ -660,10 +667,10 @@
 
     public static class RuleErrorHandler extends ErrorHandler {
 
-        private PatternDescr descr;
+        private BaseDescr descr;
         private Rule         rule;
 
-        public RuleErrorHandler(final PatternDescr ruleDescr,
+        public RuleErrorHandler(final BaseDescr ruleDescr,
                                 final Rule rule,
                                 final String message) {
             this.descr = ruleDescr;
@@ -686,7 +693,7 @@
      */
     public static class RuleInvokerErrorHandler extends RuleErrorHandler {
 
-        public RuleInvokerErrorHandler(final PatternDescr ruleDescr,
+        public RuleInvokerErrorHandler(final BaseDescr ruleDescr,
                                        final Rule rule,
                                        final String message) {
             super( ruleDescr,
@@ -713,6 +720,4 @@
 
     }
 
-    private static final JavaCompiler cachedJavaCompiler = null;
-
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleError.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/RuleError.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -17,17 +17,17 @@
  */
 
 import org.apache.commons.jci.problems.CompilationProblem;
-import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.BaseDescr;
 import org.drools.rule.Rule;
 
 public class RuleError extends DroolsError {
     private Rule         rule;
-    private PatternDescr descr;
+    private BaseDescr descr;
     private Object       object;
     private String       message;
 
     public RuleError(final Rule rule,
-                     final PatternDescr descr,
+                     final BaseDescr descr,
                      final Object object,
                      final String message) {
         super();
@@ -41,7 +41,7 @@
         return this.rule;
     }
 
-    public PatternDescr getDescr() {
+    public BaseDescr getDescr() {
         return this.descr;
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParser.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0ea8 D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g 2006-09-11 08:58:37
+// $ANTLR 3.0ea8 D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g 2006-09-14 18:21:10
 
 	package org.drools.lang;
 	import java.util.List;
@@ -17,7 +17,7 @@
 
 public class RuleParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "EOL", "ID", "INT", "BOOL", "STRING", "FLOAT", "MISC", "WS", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "\';\'", "\'package\'", "\'import\'", "\'function\'", "\'.\'", "\'.*\'", "\'expander\'", "\'global\'", "\'(\'", "\',\'", "\')\'", "\'{\'", "\'}\'", "\'query\'", "\'end\'", "\'template\'", "\'rule\'", "\'when\'", "\':\'", "\'then\'", "\'attributes\'", "\'salience\'", "\'no-loop\'", "\'auto-focus\'", "\'activation-group\'", "\'agenda-group\'", "\'duration\'", "\'from\'", "\'accumulate\'", "\'init\'", "\'action\'", "\'result\'", "\'collect\'", "\'null\'", "\'=>\'", "\'[\'", "\']\'", "\'or\'", "\'||\'", "\'&\'", "\'|\'", "\'->\'", "\'and\'", "\'&&\'", "\'exists\'", "\'not\'", "\'eval\'", "\'use\'", "\'==\'", "\'=\'", "\'>\'", "\'>=\'", "\'<\'", "\'<=\'", "\'!=\'", "\'contains\'", "\'matches\'", "\'excludes\'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "EOL", "ID", "INT", "BOOL", "STRING", "FLOAT", "MISC", "WS", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "\';\'", "\'package\'", "\'import\'", "\'function\'", "\'.\'", "\'.*\'", "\'expander\'", "\'global\'", "\'(\'", "\',\'", "\')\'", "\'{\'", "\'}\'", "\'query\'", "\'end\'", "\'template\'", "\'rule\'", "\'when\'", "\':\'", "\'then\'", "\'attributes\'", "\'salience\'", "\'no-loop\'", "\'auto-focus\'", "\'activation-group\'", "\'agenda-group\'", "\'duration\'", "\'from\'", "\'[\'", "\']\'", "\'accumulate\'", "\'init\'", "\'action\'", "\'result\'", "\'collect\'", "\'null\'", "\'=>\'", "\'or\'", "\'||\'", "\'&\'", "\'|\'", "\'->\'", "\'and\'", "\'&&\'", "\'exists\'", "\'not\'", "\'eval\'", "\'use\'", "\'==\'", "\'=\'", "\'>\'", "\'>=\'", "\'<\'", "\'<=\'", "\'!=\'", "\'contains\'", "\'matches\'", "\'excludes\'"
     };
     public static final int BOOL=7;
     public static final int INT=6;
@@ -311,13 +311,13 @@
 
 
     // $ANTLR start opt_eol
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:289:1: opt_eol : ( (';'|EOL))* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:289:1: opt_eol : ( (';'|EOL))* ;
     public void opt_eol() throws RecognitionException {   
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:17: ( ( (';'|EOL))* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:17: ( (';'|EOL))*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:17: ( ( (';'|EOL))* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:17: ( (';'|EOL))*
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:17: ( (';'|EOL))*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:17: ( (';'|EOL))*
             loop1:
             do {
                 int alt1=2;
@@ -332,7 +332,7 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:18: (';'|EOL)
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:290:18: (';'|EOL)
             	    {
             	    if ( input.LA(1)==EOL||input.LA(1)==15 ) {
             	        input.consume();
@@ -369,7 +369,7 @@
 
 
     // $ANTLR start compilation_unit
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:293:1: compilation_unit : opt_eol prolog (r= rule | q= query | t= template | extra_statement )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:293:1: compilation_unit : opt_eol prolog (r= rule | q= query | t= template | extra_statement )* ;
     public void compilation_unit() throws RecognitionException {   
         RuleDescr r = null;
 
@@ -379,8 +379,8 @@
 
 
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:294:17: ( opt_eol prolog (r= rule | q= query | t= template | extra_statement )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:294:17: opt_eol prolog (r= rule | q= query | t= template | extra_statement )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:294:17: ( opt_eol prolog (r= rule | q= query | t= template | extra_statement )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:294:17: opt_eol prolog (r= rule | q= query | t= template | extra_statement )*
             {
             following.push(FOLLOW_opt_eol_in_compilation_unit57);
             opt_eol();
@@ -390,14 +390,14 @@
             prolog();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:296:17: (r= rule | q= query | t= template | extra_statement )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:296:17: (r= rule | q= query | t= template | extra_statement )*
             loop2:
             do {
                 int alt2=5;
                 alt2 = dfa2.predict(input); 
                 switch (alt2) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:296:25: r= rule
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:296:25: r= rule
             	    {
             	    following.push(FOLLOW_rule_in_compilation_unit70);
             	    r=rule();
@@ -408,7 +408,7 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:297:25: q= query
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:297:25: q= query
             	    {
             	    following.push(FOLLOW_query_in_compilation_unit83);
             	    q=query();
@@ -419,7 +419,7 @@
             	    }
             	    break;
             	case 3 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:298:25: t= template
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:298:25: t= template
             	    {
             	    following.push(FOLLOW_template_in_compilation_unit93);
             	    t=template();
@@ -430,7 +430,7 @@
             	    }
             	    break;
             	case 4 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:299:25: extra_statement
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:299:25: extra_statement
             	    {
             	    following.push(FOLLOW_extra_statement_in_compilation_unit101);
             	    extra_statement();
@@ -461,7 +461,7 @@
 
 
     // $ANTLR start prolog
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:303:1: prolog : opt_eol (name= package_statement )? ( extra_statement | expander )* opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:303:1: prolog : opt_eol (name= package_statement )? ( extra_statement | expander )* opt_eol ;
     public void prolog() throws RecognitionException {   
         String name = null;
 
@@ -470,14 +470,14 @@
         		String packageName = "";
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:307:17: ( opt_eol (name= package_statement )? ( extra_statement | expander )* opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:307:17: opt_eol (name= package_statement )? ( extra_statement | expander )* opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:307:17: ( opt_eol (name= package_statement )? ( extra_statement | expander )* opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:307:17: opt_eol (name= package_statement )? ( extra_statement | expander )* opt_eol
             {
             following.push(FOLLOW_opt_eol_in_prolog125);
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:308:17: (name= package_statement )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:308:17: (name= package_statement )?
             int alt3=2;
             int LA3_0 = input.LA(1);
             if ( LA3_0==16 ) {
@@ -494,7 +494,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:308:19: name= package_statement
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:308:19: name= package_statement
                     {
                     following.push(FOLLOW_package_statement_in_prolog133);
                     name=package_statement();
@@ -510,14 +510,14 @@
              
             			this.packageDescr = new PackageDescr( name ); 
             		
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:312:17: ( extra_statement | expander )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:312:17: ( extra_statement | expander )*
             loop4:
             do {
                 int alt4=3;
                 alt4 = dfa4.predict(input); 
                 switch (alt4) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:312:25: extra_statement
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:312:25: extra_statement
             	    {
             	    following.push(FOLLOW_extra_statement_in_prolog148);
             	    extra_statement();
@@ -527,7 +527,7 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:313:25: expander
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:313:25: expander
             	    {
             	    following.push(FOLLOW_expander_in_prolog154);
             	    expander();
@@ -562,7 +562,7 @@
 
 
     // $ANTLR start package_statement
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:319:1: package_statement returns [String packageName] : 'package' opt_eol name= dotted_name ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:319:1: package_statement returns [String packageName] : 'package' opt_eol name= dotted_name ( ';' )? opt_eol ;
     public String package_statement() throws RecognitionException {   
         String packageName;
         String name = null;
@@ -572,8 +572,8 @@
         		packageName = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:17: ( 'package' opt_eol name= dotted_name ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:17: 'package' opt_eol name= dotted_name ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:17: ( 'package' opt_eol name= dotted_name ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:17: 'package' opt_eol name= dotted_name ( ';' )? opt_eol
             {
             match(input,16,FOLLOW_16_in_package_statement190); 
             following.push(FOLLOW_opt_eol_in_package_statement192);
@@ -584,7 +584,7 @@
             name=dotted_name();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:52: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:52: ( ';' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
             if ( LA5_0==15 ) {
@@ -601,7 +601,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:52: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:324:52: ';'
                     {
                     match(input,15,FOLLOW_15_in_package_statement198); 
 
@@ -633,14 +633,14 @@
 
 
     // $ANTLR start import_statement
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:330:1: import_statement : 'import' opt_eol name= import_name ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:330:1: import_statement : 'import' opt_eol name= import_name ( ';' )? opt_eol ;
     public void import_statement() throws RecognitionException {   
         String name = null;
 
 
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:17: ( 'import' opt_eol name= import_name ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:17: 'import' opt_eol name= import_name ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:17: ( 'import' opt_eol name= import_name ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:17: 'import' opt_eol name= import_name ( ';' )? opt_eol
             {
             match(input,17,FOLLOW_17_in_import_statement217); 
             following.push(FOLLOW_opt_eol_in_import_statement219);
@@ -651,7 +651,7 @@
             name=import_name();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:51: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:51: ( ';' )?
             int alt6=2;
             int LA6_0 = input.LA(1);
             if ( LA6_0==15 ) {
@@ -668,7 +668,7 @@
             }
             switch (alt6) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:51: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:331:51: ';'
                     {
                     match(input,15,FOLLOW_15_in_import_statement225); 
 
@@ -701,14 +701,14 @@
 
 
     // $ANTLR start function_import_statement
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:338:1: function_import_statement : 'import' 'function' opt_eol name= import_name ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:338:1: function_import_statement : 'import' 'function' opt_eol name= import_name ( ';' )? opt_eol ;
     public void function_import_statement() throws RecognitionException {   
         String name = null;
 
 
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:17: ( 'import' 'function' opt_eol name= import_name ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:17: 'import' 'function' opt_eol name= import_name ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:17: ( 'import' 'function' opt_eol name= import_name ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:17: 'import' 'function' opt_eol name= import_name ( ';' )? opt_eol
             {
             match(input,17,FOLLOW_17_in_function_import_statement244); 
             match(input,18,FOLLOW_18_in_function_import_statement246); 
@@ -720,7 +720,7 @@
             name=import_name();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:62: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:62: ( ';' )?
             int alt7=2;
             int LA7_0 = input.LA(1);
             if ( LA7_0==15 ) {
@@ -737,7 +737,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:62: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:339:62: ';'
                     {
                     match(input,15,FOLLOW_15_in_function_import_statement254); 
 
@@ -770,7 +770,7 @@
 
 
     // $ANTLR start import_name
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:347:1: import_name returns [String name] : id= ID ( '.' id= ID )* (star= '.*' )? ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:347:1: import_name returns [String name] : id= ID ( '.' id= ID )* (star= '.*' )? ;
     public String import_name() throws RecognitionException {   
         String name;
         Token id=null;
@@ -780,13 +780,13 @@
         		name = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:17: (id= ID ( '.' id= ID )* (star= '.*' )? )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:17: id= ID ( '.' id= ID )* (star= '.*' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:17: (id= ID ( '.' id= ID )* (star= '.*' )? )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:17: id= ID ( '.' id= ID )* (star= '.*' )?
             {
             id=(Token)input.LT(1);
             match(input,ID,FOLLOW_ID_in_import_name289); 
              name=id.getText(); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:46: ( '.' id= ID )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:46: ( '.' id= ID )*
             loop8:
             do {
                 int alt8=2;
@@ -798,7 +798,7 @@
 
                 switch (alt8) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:48: '.' id= ID
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:48: '.' id= ID
             	    {
             	    match(input,19,FOLLOW_19_in_import_name295); 
             	    id=(Token)input.LT(1);
@@ -813,7 +813,7 @@
                 }
             } while (true);
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:99: (star= '.*' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:99: (star= '.*' )?
             int alt9=2;
             int LA9_0 = input.LA(1);
             if ( LA9_0==20 ) {
@@ -830,7 +830,7 @@
             }
             switch (alt9) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:100: star= '.*'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:352:100: star= '.*'
                     {
                     star=(Token)input.LT(1);
                     match(input,20,FOLLOW_20_in_import_name309); 
@@ -857,7 +857,7 @@
 
 
     // $ANTLR start expander
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:354:1: expander : 'expander' (name= dotted_name )? ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:354:1: expander : 'expander' (name= dotted_name )? ( ';' )? opt_eol ;
     public void expander() throws RecognitionException {   
         String name = null;
 
@@ -866,11 +866,11 @@
         		String config=null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:17: ( 'expander' (name= dotted_name )? ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:17: 'expander' (name= dotted_name )? ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:17: ( 'expander' (name= dotted_name )? ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:17: 'expander' (name= dotted_name )? ( ';' )? opt_eol
             {
             match(input,21,FOLLOW_21_in_expander329); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:28: (name= dotted_name )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:28: (name= dotted_name )?
             int alt10=2;
             int LA10_0 = input.LA(1);
             if ( LA10_0==ID ) {
@@ -887,7 +887,7 @@
             }
             switch (alt10) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:29: name= dotted_name
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:29: name= dotted_name
                     {
                     following.push(FOLLOW_dotted_name_in_expander334);
                     name=dotted_name();
@@ -899,7 +899,7 @@
 
             }
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:48: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:48: ( ';' )?
             int alt11=2;
             int LA11_0 = input.LA(1);
             if ( LA11_0==15 ) {
@@ -916,7 +916,7 @@
             }
             switch (alt11) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:48: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:358:48: ';'
                     {
                     match(input,15,FOLLOW_15_in_expander338); 
 
@@ -952,7 +952,7 @@
 
 
     // $ANTLR start global
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:368:1: global : 'global' type= dotted_name id= ID ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:368:1: global : 'global' type= dotted_name id= ID ( ';' )? opt_eol ;
     public void global() throws RecognitionException {   
         Token id=null;
         String type = null;
@@ -961,8 +961,8 @@
         
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:17: ( 'global' type= dotted_name id= ID ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:17: 'global' type= dotted_name id= ID ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:17: ( 'global' type= dotted_name id= ID ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:17: 'global' type= dotted_name id= ID ( ';' )? opt_eol
             {
             match(input,22,FOLLOW_22_in_global365); 
             following.push(FOLLOW_dotted_name_in_global369);
@@ -971,7 +971,7 @@
 
             id=(Token)input.LT(1);
             match(input,ID,FOLLOW_ID_in_global373); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:49: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:49: ( ';' )?
             int alt12=2;
             int LA12_0 = input.LA(1);
             if ( LA12_0==15 ) {
@@ -988,7 +988,7 @@
             }
             switch (alt12) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:49: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:372:49: ';'
                     {
                     match(input,15,FOLLOW_15_in_global375); 
 
@@ -1020,7 +1020,7 @@
 
 
     // $ANTLR start function
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:378:1: function : loc= 'function' opt_eol (retType= dotted_name )? opt_eol name= ID opt_eol '(' opt_eol ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )? ')' opt_eol '{' body= curly_chunk '}' opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:378:1: function : loc= 'function' opt_eol (retType= dotted_name )? opt_eol name= ID opt_eol '(' opt_eol ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )? ')' opt_eol '{' body= curly_chunk '}' opt_eol ;
     public void function() throws RecognitionException {   
         Token loc=null;
         Token name=null;
@@ -1037,8 +1037,8 @@
         		FunctionDescr f = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:17: (loc= 'function' opt_eol (retType= dotted_name )? opt_eol name= ID opt_eol '(' opt_eol ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )? ')' opt_eol '{' body= curly_chunk '}' opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:17: loc= 'function' opt_eol (retType= dotted_name )? opt_eol name= ID opt_eol '(' opt_eol ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )? ')' opt_eol '{' body= curly_chunk '}' opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:17: (loc= 'function' opt_eol (retType= dotted_name )? opt_eol name= ID opt_eol '(' opt_eol ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )? ')' opt_eol '{' body= curly_chunk '}' opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:17: loc= 'function' opt_eol (retType= dotted_name )? opt_eol name= ID opt_eol '(' opt_eol ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )? ')' opt_eol '{' body= curly_chunk '}' opt_eol
             {
             loc=(Token)input.LT(1);
             match(input,18,FOLLOW_18_in_function404); 
@@ -1046,12 +1046,12 @@
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:40: (retType= dotted_name )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:40: (retType= dotted_name )?
             int alt13=2;
             alt13 = dfa13.predict(input); 
             switch (alt13) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:41: retType= dotted_name
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:383:41: retType= dotted_name
                     {
                     following.push(FOLLOW_dotted_name_in_function411);
                     retType=dotted_name();
@@ -1083,7 +1083,7 @@
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:25: ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:25: ( (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )* )?
             int alt17=2;
             int LA17_0 = input.LA(1);
             if ( (LA17_0>=EOL && LA17_0<=ID)||LA17_0==15 ) {
@@ -1100,14 +1100,14 @@
             }
             switch (alt17) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:33: (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )*
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:33: (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )*
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:33: (paramType= dotted_name )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:33: (paramType= dotted_name )?
                     int alt14=2;
                     alt14 = dfa14.predict(input); 
                     switch (alt14) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:34: paramType= dotted_name
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:390:34: paramType= dotted_name
                             {
                             following.push(FOLLOW_dotted_name_in_function442);
                             paramType=dotted_name();
@@ -1134,7 +1134,7 @@
                     
                     					f.addParameter( paramType, paramName );
                     				
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:33: ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )*
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:33: ( ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol )*
                     loop16:
                     do {
                         int alt16=2;
@@ -1146,19 +1146,19 @@
 
                         switch (alt16) {
                     	case 1 :
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:41: ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:41: ',' opt_eol (paramType= dotted_name )? opt_eol paramName= argument_name opt_eol
                     	    {
                     	    match(input,24,FOLLOW_24_in_function466); 
                     	    following.push(FOLLOW_opt_eol_in_function468);
                     	    opt_eol();
                     	    following.pop();
 
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:53: (paramType= dotted_name )?
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:53: (paramType= dotted_name )?
                     	    int alt15=2;
                     	    alt15 = dfa15.predict(input); 
                     	    switch (alt15) {
                     	        case 1 :
-                    	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:54: paramType= dotted_name
+                    	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:394:54: paramType= dotted_name
                     	            {
                     	            following.push(FOLLOW_dotted_name_in_function473);
                     	            paramType=dotted_name();
@@ -1237,7 +1237,7 @@
 
 
     // $ANTLR start query
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:415:1: query returns [QueryDescr query] : opt_eol loc= 'query' queryName= word opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) 'end' opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:415:1: query returns [QueryDescr query] : opt_eol loc= 'query' queryName= word opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) 'end' opt_eol ;
     public QueryDescr query() throws RecognitionException {   
         QueryDescr query;
         Token loc=null;
@@ -1248,8 +1248,8 @@
         		query = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:420:17: ( opt_eol loc= 'query' queryName= word opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) 'end' opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:420:17: opt_eol loc= 'query' queryName= word opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) 'end' opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:420:17: ( opt_eol loc= 'query' queryName= word opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) 'end' opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:420:17: opt_eol loc= 'query' queryName= word opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) 'end' opt_eol
             {
             following.push(FOLLOW_opt_eol_in_query564);
             opt_eol();
@@ -1271,7 +1271,7 @@
             			AndDescr lhs = new AndDescr(); query.setLhs( lhs ); 
             			lhs.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
             		
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:428:17: ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:428:17: ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] )
             int alt18=2;
             switch ( input.LA(1) ) {
             case 23:
@@ -1466,7 +1466,7 @@
 
             switch (alt18) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:429:25: {...}? expander_lhs_block[lhs]
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:429:25: {...}? expander_lhs_block[lhs]
                     {
                     if ( !( expander != null ) ) {
                         throw new FailedPredicateException(input, "query", " expander != null ");
@@ -1479,7 +1479,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:430:27: normal_lhs_block[lhs]
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:430:27: normal_lhs_block[lhs]
                     {
                     following.push(FOLLOW_normal_lhs_block_in_query600);
                     normal_lhs_block(lhs);
@@ -1512,7 +1512,7 @@
 
 
     // $ANTLR start template
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:436:1: template returns [FactTemplateDescr template] : opt_eol loc= 'template' templateName= ID EOL (slot= template_slot )+ 'end' EOL ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:436:1: template returns [FactTemplateDescr template] : opt_eol loc= 'template' templateName= ID EOL (slot= template_slot )+ 'end' EOL ;
     public FactTemplateDescr template() throws RecognitionException {   
         FactTemplateDescr template;
         Token loc=null;
@@ -1524,8 +1524,8 @@
         		template = null;		
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:441:17: ( opt_eol loc= 'template' templateName= ID EOL (slot= template_slot )+ 'end' EOL )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:441:17: opt_eol loc= 'template' templateName= ID EOL (slot= template_slot )+ 'end' EOL
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:441:17: ( opt_eol loc= 'template' templateName= ID EOL (slot= template_slot )+ 'end' EOL )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:441:17: opt_eol loc= 'template' templateName= ID EOL (slot= template_slot )+ 'end' EOL
             {
             following.push(FOLLOW_opt_eol_in_template641);
             opt_eol();
@@ -1540,7 +1540,7 @@
             			template = new FactTemplateDescr(templateName.getText());
             			template.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );			
             		
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:447:17: (slot= template_slot )+
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:447:17: (slot= template_slot )+
             int cnt19=0;
             loop19:
             do {
@@ -1553,7 +1553,7 @@
 
                 switch (alt19) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:448:25: slot= template_slot
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:448:25: slot= template_slot
             	    {
             	    following.push(FOLLOW_template_slot_in_template668);
             	    slot=template_slot();
@@ -1593,7 +1593,7 @@
 
 
     // $ANTLR start template_slot
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:456:1: template_slot returns [FieldTemplateDescr field] : fieldType= dotted_name name= ID (EOL|';');
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:456:1: template_slot returns [FieldTemplateDescr field] : fieldType= dotted_name name= ID (EOL|';');
     public FieldTemplateDescr template_slot() throws RecognitionException {   
         FieldTemplateDescr field;
         Token name=null;
@@ -1604,8 +1604,8 @@
         		field = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:462:18: (fieldType= dotted_name name= ID (EOL|';'))
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:462:18: fieldType= dotted_name name= ID (EOL|';')
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:462:18: (fieldType= dotted_name name= ID (EOL|';'))
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:462:18: fieldType= dotted_name name= ID (EOL|';')
             {
             following.push(FOLLOW_dotted_name_in_template_slot717);
             fieldType=dotted_name();
@@ -1645,7 +1645,7 @@
 
 
     // $ANTLR start rule
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:471:1: rule returns [RuleDescr rule] : opt_eol loc= 'rule' ruleName= word opt_eol ( rule_attributes[rule] )? opt_eol ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )? 'end' opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:471:1: rule returns [RuleDescr rule] : opt_eol loc= 'rule' ruleName= word opt_eol ( rule_attributes[rule] )? opt_eol ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )? 'end' opt_eol ;
     public RuleDescr rule() throws RecognitionException {   
         RuleDescr rule;
         Token loc=null;
@@ -1658,8 +1658,8 @@
         		String consequence = "";
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:477:17: ( opt_eol loc= 'rule' ruleName= word opt_eol ( rule_attributes[rule] )? opt_eol ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )? 'end' opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:477:17: opt_eol loc= 'rule' ruleName= word opt_eol ( rule_attributes[rule] )? opt_eol ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )? 'end' opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:477:17: ( opt_eol loc= 'rule' ruleName= word opt_eol ( rule_attributes[rule] )? opt_eol ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )? 'end' opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:477:17: opt_eol loc= 'rule' ruleName= word opt_eol ( rule_attributes[rule] )? opt_eol ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )? 'end' opt_eol
             {
             following.push(FOLLOW_opt_eol_in_rule760);
             opt_eol();
@@ -1680,7 +1680,7 @@
             			rule = new RuleDescr( ruleName, null ); 
             			rule.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
             		
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:484:17: ( rule_attributes[rule] )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:484:17: ( rule_attributes[rule] )?
             int alt20=2;
             switch ( input.LA(1) ) {
             case 33:
@@ -1716,7 +1716,7 @@
 
             switch (alt20) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:484:25: rule_attributes[rule]
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:484:25: rule_attributes[rule]
                     {
                     following.push(FOLLOW_rule_attributes_in_rule783);
                     rule_attributes(rule);
@@ -1732,7 +1732,7 @@
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:17: ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:17: ( (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )? )?
             int alt28=2;
             int LA28_0 = input.LA(1);
             if ( LA28_0==EOL||LA28_0==15||LA28_0==32||LA28_0==34 ) {
@@ -1749,9 +1749,9 @@
             }
             switch (alt28) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:18: (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:18: (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )? ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )?
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:18: (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:18: (loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] ) )?
                     int alt23=2;
                     int LA23_0 = input.LA(1);
                     if ( LA23_0==32 ) {
@@ -1768,11 +1768,11 @@
                     }
                     switch (alt23) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:25: loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:25: loc= 'when' ( ':' )? opt_eol ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] )
                             {
                             loc=(Token)input.LT(1);
                             match(input,32,FOLLOW_32_in_rule802); 
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:36: ( ':' )?
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:36: ( ':' )?
                             int alt21=2;
                             int LA21_0 = input.LA(1);
                             if ( LA21_0==33 ) {
@@ -1801,7 +1801,7 @@
                             }
                             switch (alt21) {
                                 case 1 :
-                                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:36: ':'
+                                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:487:36: ':'
                                     {
                                     match(input,33,FOLLOW_33_in_rule804); 
 
@@ -1818,7 +1818,7 @@
                             				AndDescr lhs = new AndDescr(); rule.setLhs( lhs ); 
                             				lhs.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
                             			
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:492:25: ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:492:25: ({...}? expander_lhs_block[lhs] | normal_lhs_block[lhs] )
                             int alt22=2;
                             switch ( input.LA(1) ) {
                             case 23:
@@ -2027,7 +2027,7 @@
 
                             switch (alt22) {
                                 case 1 :
-                                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:493:33: {...}? expander_lhs_block[lhs]
+                                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:493:33: {...}? expander_lhs_block[lhs]
                                     {
                                     if ( !( expander != null ) ) {
                                         throw new FailedPredicateException(input, "rule", " expander != null ");
@@ -2040,7 +2040,7 @@
                                     }
                                     break;
                                 case 2 :
-                                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:494:35: normal_lhs_block[lhs]
+                                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:494:35: normal_lhs_block[lhs]
                                     {
                                     following.push(FOLLOW_normal_lhs_block_in_rule834);
                                     normal_lhs_block(lhs);
@@ -2058,7 +2058,7 @@
 
                     }
 
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:17: ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:17: ( opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )* )?
                     int alt27=2;
                     int LA27_0 = input.LA(1);
                     if ( LA27_0==EOL||LA27_0==15||LA27_0==34 ) {
@@ -2075,7 +2075,7 @@
                     }
                     switch (alt27) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:19: opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )*
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:19: opt_eol loc= 'then' ( ':' )? opt_eol ( options {greedy=false; } : any= . ( EOL )* )*
                             {
                             following.push(FOLLOW_opt_eol_in_rule857);
                             opt_eol();
@@ -2083,7 +2083,7 @@
 
                             loc=(Token)input.LT(1);
                             match(input,34,FOLLOW_34_in_rule861); 
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:38: ( ':' )?
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:38: ( ':' )?
                             int alt24=2;
                             int LA24_0 = input.LA(1);
                             if ( LA24_0==33 ) {
@@ -2100,7 +2100,7 @@
                             }
                             switch (alt24) {
                                 case 1 :
-                                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:38: ':'
+                                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:498:38: ':'
                                     {
                                     match(input,33,FOLLOW_33_in_rule863); 
 
@@ -2114,7 +2114,7 @@
                             following.pop();
 
                             int prevLine = loc.getLine()+1; 
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:25: ( options {greedy=false; } : any= . ( EOL )* )*
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:25: ( options {greedy=false; } : any= . ( EOL )* )*
                             loop26:
                             do {
                                 int alt26=2;
@@ -2129,11 +2129,11 @@
 
                                 switch (alt26) {
                             	case 1 :
-                            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:52: any= . ( EOL )*
+                            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:52: any= . ( EOL )*
                             	    {
                             	    any=(Token)input.LT(1);
                             	    matchAny(input); 
-                            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:58: ( EOL )*
+                            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:58: ( EOL )*
                             	    loop25:
                             	    do {
                             	        int alt25=2;
@@ -2145,7 +2145,7 @@
 
                             	        switch (alt25) {
                             	    	case 1 :
-                            	    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:59: EOL
+                            	    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:500:59: EOL
                             	    	    {
                             	    	    match(input,EOL,FOLLOW_EOL_in_rule894); 
 
@@ -2223,13 +2223,13 @@
 
 
     // $ANTLR start extra_statement
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:530:1: extra_statement : ( import_statement | function_import_statement | global | function ) ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:530:1: extra_statement : ( import_statement | function_import_statement | global | function ) ;
     public void extra_statement() throws RecognitionException {   
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:9: ( ( import_statement | function_import_statement | global | function ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:9: ( import_statement | function_import_statement | global | function )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:9: ( ( import_statement | function_import_statement | global | function ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:9: ( import_statement | function_import_statement | global | function )
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:9: ( import_statement | function_import_statement | global | function )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:9: ( import_statement | function_import_statement | global | function )
             int alt29=4;
             switch ( input.LA(1) ) {
             case 17:
@@ -2262,7 +2262,7 @@
 
             switch (alt29) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:17: import_statement
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:532:17: import_statement
                     {
                     following.push(FOLLOW_import_statement_in_extra_statement946);
                     import_statement();
@@ -2272,7 +2272,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:533:17: function_import_statement
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:533:17: function_import_statement
                     {
                     following.push(FOLLOW_function_import_statement_in_extra_statement951);
                     function_import_statement();
@@ -2282,7 +2282,7 @@
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:534:17: global
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:534:17: global
                     {
                     following.push(FOLLOW_global_in_extra_statement956);
                     global();
@@ -2292,7 +2292,7 @@
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:535:17: function
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:535:17: function
                     {
                     following.push(FOLLOW_function_in_extra_statement961);
                     function();
@@ -2320,16 +2320,16 @@
 
 
     // $ANTLR start rule_attributes
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:539:1: rule_attributes[RuleDescr rule] : ( 'attributes' )? ( ':' )? opt_eol ( ( ',' )? a= rule_attribute opt_eol )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:539:1: rule_attributes[RuleDescr rule] : ( 'attributes' )? ( ':' )? opt_eol ( ( ',' )? a= rule_attribute opt_eol )* ;
     public void rule_attributes(RuleDescr rule) throws RecognitionException {   
         AttributeDescr a = null;
 
 
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: ( ( 'attributes' )? ( ':' )? opt_eol ( ( ',' )? a= rule_attribute opt_eol )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: ( 'attributes' )? ( ':' )? opt_eol ( ( ',' )? a= rule_attribute opt_eol )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: ( ( 'attributes' )? ( ':' )? opt_eol ( ( ',' )? a= rule_attribute opt_eol )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: ( 'attributes' )? ( ':' )? opt_eol ( ( ',' )? a= rule_attribute opt_eol )*
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: ( 'attributes' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: ( 'attributes' )?
             int alt30=2;
             int LA30_0 = input.LA(1);
             if ( LA30_0==35 ) {
@@ -2346,7 +2346,7 @@
             }
             switch (alt30) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: 'attributes'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:25: 'attributes'
                     {
                     match(input,35,FOLLOW_35_in_rule_attributes980); 
 
@@ -2355,7 +2355,7 @@
 
             }
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:39: ( ':' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:39: ( ':' )?
             int alt31=2;
             int LA31_0 = input.LA(1);
             if ( LA31_0==33 ) {
@@ -2372,7 +2372,7 @@
             }
             switch (alt31) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:39: ':'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:541:39: ':'
                     {
                     match(input,33,FOLLOW_33_in_rule_attributes983); 
 
@@ -2385,7 +2385,7 @@
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:25: ( ( ',' )? a= rule_attribute opt_eol )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:25: ( ( ',' )? a= rule_attribute opt_eol )*
             loop33:
             do {
                 int alt33=2;
@@ -2397,9 +2397,9 @@
 
                 switch (alt33) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:33: ( ',' )? a= rule_attribute opt_eol
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:33: ( ',' )? a= rule_attribute opt_eol
             	    {
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:33: ( ',' )?
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:33: ( ',' )?
             	    int alt32=2;
             	    int LA32_0 = input.LA(1);
             	    if ( LA32_0==24 ) {
@@ -2416,7 +2416,7 @@
             	    }
             	    switch (alt32) {
             	        case 1 :
-            	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:33: ','
+            	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:542:33: ','
             	            {
             	            match(input,24,FOLLOW_24_in_rule_attributes993); 
 
@@ -2461,7 +2461,7 @@
 
 
     // $ANTLR start rule_attribute
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:549:1: rule_attribute returns [AttributeDescr d] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus );
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:549:1: rule_attribute returns [AttributeDescr d] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus );
     public AttributeDescr rule_attribute() throws RecognitionException {   
         AttributeDescr d;
         AttributeDescr a = null;
@@ -2471,7 +2471,7 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:554:25: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:554:25: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus )
             int alt34=6;
             switch ( input.LA(1) ) {
             case 36:
@@ -2501,7 +2501,7 @@
 
             switch (alt34) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:554:25: a= salience
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:554:25: a= salience
                     {
                     following.push(FOLLOW_salience_in_rule_attribute1039);
                     a=salience();
@@ -2512,7 +2512,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:555:25: a= no_loop
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:555:25: a= no_loop
                     {
                     following.push(FOLLOW_no_loop_in_rule_attribute1049);
                     a=no_loop();
@@ -2523,7 +2523,7 @@
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:556:25: a= agenda_group
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:556:25: a= agenda_group
                     {
                     following.push(FOLLOW_agenda_group_in_rule_attribute1060);
                     a=agenda_group();
@@ -2534,7 +2534,7 @@
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:557:25: a= duration
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:557:25: a= duration
                     {
                     following.push(FOLLOW_duration_in_rule_attribute1073);
                     a=duration();
@@ -2545,7 +2545,7 @@
                     }
                     break;
                 case 5 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:558:25: a= activation_group
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:558:25: a= activation_group
                     {
                     following.push(FOLLOW_activation_group_in_rule_attribute1087);
                     a=activation_group();
@@ -2556,7 +2556,7 @@
                     }
                     break;
                 case 6 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:559:25: a= auto_focus
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:559:25: a= auto_focus
                     {
                     following.push(FOLLOW_auto_focus_in_rule_attribute1098);
                     a=auto_focus();
@@ -2581,7 +2581,7 @@
 
 
     // $ANTLR start salience
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:563:1: salience returns [AttributeDescr d ] : loc= 'salience' opt_eol i= INT ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:563:1: salience returns [AttributeDescr d ] : loc= 'salience' opt_eol i= INT ( ';' )? opt_eol ;
     public AttributeDescr salience() throws RecognitionException {   
         AttributeDescr d;
         Token loc=null;
@@ -2591,8 +2591,8 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:17: (loc= 'salience' opt_eol i= INT ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:17: loc= 'salience' opt_eol i= INT ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:17: (loc= 'salience' opt_eol i= INT ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:17: loc= 'salience' opt_eol i= INT ( ';' )? opt_eol
             {
             loc=(Token)input.LT(1);
             match(input,36,FOLLOW_36_in_salience1131); 
@@ -2602,7 +2602,7 @@
 
             i=(Token)input.LT(1);
             match(input,INT,FOLLOW_INT_in_salience1137); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:46: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:46: ( ';' )?
             int alt35=2;
             int LA35_0 = input.LA(1);
             if ( LA35_0==15 ) {
@@ -2619,7 +2619,7 @@
             }
             switch (alt35) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:46: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:568:46: ';'
                     {
                     match(input,15,FOLLOW_15_in_salience1139); 
 
@@ -2652,7 +2652,7 @@
 
 
     // $ANTLR start no_loop
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:575:1: no_loop returns [AttributeDescr d] : ( (loc= 'no-loop' opt_eol ( ';' )? opt_eol ) | (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol ) );
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:575:1: no_loop returns [AttributeDescr d] : ( (loc= 'no-loop' opt_eol ( ';' )? opt_eol ) | (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol ) );
     public AttributeDescr no_loop() throws RecognitionException {   
         AttributeDescr d;
         Token loc=null;
@@ -2662,7 +2662,7 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:580:17: ( (loc= 'no-loop' opt_eol ( ';' )? opt_eol ) | (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:580:17: ( (loc= 'no-loop' opt_eol ( ';' )? opt_eol ) | (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol ) )
             int alt38=2;
             int LA38_0 = input.LA(1);
             if ( LA38_0==37 ) {
@@ -2688,10 +2688,10 @@
             }
             switch (alt38) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:580:17: (loc= 'no-loop' opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:580:17: (loc= 'no-loop' opt_eol ( ';' )? opt_eol )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:580:17: (loc= 'no-loop' opt_eol ( ';' )? opt_eol )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:581:25: loc= 'no-loop' opt_eol ( ';' )? opt_eol
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:580:17: (loc= 'no-loop' opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:581:25: loc= 'no-loop' opt_eol ( ';' )? opt_eol
                     {
                     loc=(Token)input.LT(1);
                     match(input,37,FOLLOW_37_in_no_loop1177); 
@@ -2699,7 +2699,7 @@
                     opt_eol();
                     following.pop();
 
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:581:47: ( ';' )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:581:47: ( ';' )?
                     int alt36=2;
                     int LA36_0 = input.LA(1);
                     if ( LA36_0==15 ) {
@@ -2716,7 +2716,7 @@
                     }
                     switch (alt36) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:581:47: ';'
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:581:47: ';'
                             {
                             match(input,15,FOLLOW_15_in_no_loop1181); 
 
@@ -2740,10 +2740,10 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:588:17: (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:588:17: (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:588:17: (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:589:25: loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:588:17: (loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:589:25: loc= 'no-loop' t= BOOL opt_eol ( ';' )? opt_eol
                     {
                     loc=(Token)input.LT(1);
                     match(input,37,FOLLOW_37_in_no_loop1209); 
@@ -2753,7 +2753,7 @@
                     opt_eol();
                     following.pop();
 
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:589:54: ( ';' )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:589:54: ( ';' )?
                     int alt37=2;
                     int LA37_0 = input.LA(1);
                     if ( LA37_0==15 ) {
@@ -2770,7 +2770,7 @@
                     }
                     switch (alt37) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:589:54: ';'
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:589:54: ';'
                             {
                             match(input,15,FOLLOW_15_in_no_loop1217); 
 
@@ -2808,7 +2808,7 @@
 
 
     // $ANTLR start auto_focus
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:599:1: auto_focus returns [AttributeDescr d] : ( (loc= 'auto-focus' opt_eol ( ';' )? opt_eol ) | (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol ) );
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:599:1: auto_focus returns [AttributeDescr d] : ( (loc= 'auto-focus' opt_eol ( ';' )? opt_eol ) | (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol ) );
     public AttributeDescr auto_focus() throws RecognitionException {   
         AttributeDescr d;
         Token loc=null;
@@ -2818,7 +2818,7 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:604:17: ( (loc= 'auto-focus' opt_eol ( ';' )? opt_eol ) | (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:604:17: ( (loc= 'auto-focus' opt_eol ( ';' )? opt_eol ) | (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol ) )
             int alt41=2;
             int LA41_0 = input.LA(1);
             if ( LA41_0==38 ) {
@@ -2844,10 +2844,10 @@
             }
             switch (alt41) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:604:17: (loc= 'auto-focus' opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:604:17: (loc= 'auto-focus' opt_eol ( ';' )? opt_eol )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:604:17: (loc= 'auto-focus' opt_eol ( ';' )? opt_eol )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:605:25: loc= 'auto-focus' opt_eol ( ';' )? opt_eol
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:604:17: (loc= 'auto-focus' opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:605:25: loc= 'auto-focus' opt_eol ( ';' )? opt_eol
                     {
                     loc=(Token)input.LT(1);
                     match(input,38,FOLLOW_38_in_auto_focus1266); 
@@ -2855,7 +2855,7 @@
                     opt_eol();
                     following.pop();
 
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:605:50: ( ';' )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:605:50: ( ';' )?
                     int alt39=2;
                     int LA39_0 = input.LA(1);
                     if ( LA39_0==15 ) {
@@ -2872,7 +2872,7 @@
                     }
                     switch (alt39) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:605:50: ';'
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:605:50: ';'
                             {
                             match(input,15,FOLLOW_15_in_auto_focus1270); 
 
@@ -2896,10 +2896,10 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:612:17: (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:612:17: (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:612:17: (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:613:25: loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:612:17: (loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:613:25: loc= 'auto-focus' t= BOOL opt_eol ( ';' )? opt_eol
                     {
                     loc=(Token)input.LT(1);
                     match(input,38,FOLLOW_38_in_auto_focus1298); 
@@ -2909,7 +2909,7 @@
                     opt_eol();
                     following.pop();
 
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:613:57: ( ';' )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:613:57: ( ';' )?
                     int alt40=2;
                     int LA40_0 = input.LA(1);
                     if ( LA40_0==15 ) {
@@ -2926,7 +2926,7 @@
                     }
                     switch (alt40) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:613:57: ';'
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:613:57: ';'
                             {
                             match(input,15,FOLLOW_15_in_auto_focus1306); 
 
@@ -2964,7 +2964,7 @@
 
 
     // $ANTLR start activation_group
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:623:1: activation_group returns [AttributeDescr d] : loc= 'activation-group' opt_eol name= STRING ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:623:1: activation_group returns [AttributeDescr d] : loc= 'activation-group' opt_eol name= STRING ( ';' )? opt_eol ;
     public AttributeDescr activation_group() throws RecognitionException {   
         AttributeDescr d;
         Token loc=null;
@@ -2974,8 +2974,8 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:17: (loc= 'activation-group' opt_eol name= STRING ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:17: loc= 'activation-group' opt_eol name= STRING ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:17: (loc= 'activation-group' opt_eol name= STRING ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:17: loc= 'activation-group' opt_eol name= STRING ( ';' )? opt_eol
             {
             loc=(Token)input.LT(1);
             match(input,39,FOLLOW_39_in_activation_group1351); 
@@ -2985,7 +2985,7 @@
 
             name=(Token)input.LT(1);
             match(input,STRING,FOLLOW_STRING_in_activation_group1357); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:60: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:60: ( ';' )?
             int alt42=2;
             int LA42_0 = input.LA(1);
             if ( LA42_0==15 ) {
@@ -3002,7 +3002,7 @@
             }
             switch (alt42) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:60: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:628:60: ';'
                     {
                     match(input,15,FOLLOW_15_in_activation_group1359); 
 
@@ -3035,7 +3035,7 @@
 
 
     // $ANTLR start agenda_group
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:635:1: agenda_group returns [AttributeDescr d] : loc= 'agenda-group' opt_eol name= STRING ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:635:1: agenda_group returns [AttributeDescr d] : loc= 'agenda-group' opt_eol name= STRING ( ';' )? opt_eol ;
     public AttributeDescr agenda_group() throws RecognitionException {   
         AttributeDescr d;
         Token loc=null;
@@ -3045,8 +3045,8 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:17: (loc= 'agenda-group' opt_eol name= STRING ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:17: loc= 'agenda-group' opt_eol name= STRING ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:17: (loc= 'agenda-group' opt_eol name= STRING ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:17: loc= 'agenda-group' opt_eol name= STRING ( ';' )? opt_eol
             {
             loc=(Token)input.LT(1);
             match(input,40,FOLLOW_40_in_agenda_group1391); 
@@ -3056,7 +3056,7 @@
 
             name=(Token)input.LT(1);
             match(input,STRING,FOLLOW_STRING_in_agenda_group1397); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:56: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:56: ( ';' )?
             int alt43=2;
             int LA43_0 = input.LA(1);
             if ( LA43_0==15 ) {
@@ -3073,7 +3073,7 @@
             }
             switch (alt43) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:56: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:640:56: ';'
                     {
                     match(input,15,FOLLOW_15_in_agenda_group1399); 
 
@@ -3106,7 +3106,7 @@
 
 
     // $ANTLR start duration
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:648:1: duration returns [AttributeDescr d] : loc= 'duration' opt_eol i= INT ( ';' )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:648:1: duration returns [AttributeDescr d] : loc= 'duration' opt_eol i= INT ( ';' )? opt_eol ;
     public AttributeDescr duration() throws RecognitionException {   
         AttributeDescr d;
         Token loc=null;
@@ -3116,8 +3116,8 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:17: (loc= 'duration' opt_eol i= INT ( ';' )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:17: loc= 'duration' opt_eol i= INT ( ';' )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:17: (loc= 'duration' opt_eol i= INT ( ';' )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:17: loc= 'duration' opt_eol i= INT ( ';' )? opt_eol
             {
             loc=(Token)input.LT(1);
             match(input,41,FOLLOW_41_in_duration1434); 
@@ -3127,7 +3127,7 @@
 
             i=(Token)input.LT(1);
             match(input,INT,FOLLOW_INT_in_duration1440); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:46: ( ';' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:46: ( ';' )?
             int alt44=2;
             int LA44_0 = input.LA(1);
             if ( LA44_0==15 ) {
@@ -3144,7 +3144,7 @@
             }
             switch (alt44) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:46: ';'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:653:46: ';'
                     {
                     match(input,15,FOLLOW_15_in_duration1442); 
 
@@ -3177,16 +3177,16 @@
 
 
     // $ANTLR start normal_lhs_block
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:661:1: normal_lhs_block[AndDescr descrs] : (d= lhs opt_eol )* opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:661:1: normal_lhs_block[AndDescr descrs] : (d= lhs opt_eol )* opt_eol ;
     public void normal_lhs_block(AndDescr descrs) throws RecognitionException {   
-        PatternDescr d = null;
+        BaseDescr d = null;
 
 
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:17: ( (d= lhs opt_eol )* opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:17: (d= lhs opt_eol )* opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:17: ( (d= lhs opt_eol )* opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:17: (d= lhs opt_eol )* opt_eol
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:17: (d= lhs opt_eol )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:17: (d= lhs opt_eol )*
             loop45:
             do {
                 int alt45=2;
@@ -3198,7 +3198,7 @@
 
                 switch (alt45) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:25: d= lhs opt_eol
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:663:25: d= lhs opt_eol
             	    {
             	    following.push(FOLLOW_lhs_in_normal_lhs_block1471);
             	    d=lhs();
@@ -3238,7 +3238,7 @@
 
 
     // $ANTLR start expander_lhs_block
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:671:1: expander_lhs_block[AndDescr descrs] : ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:671:1: expander_lhs_block[AndDescr descrs] : ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )* ;
     public void expander_lhs_block(AndDescr descrs) throws RecognitionException {   
         Token loc=null;
         String text = null;
@@ -3250,10 +3250,10 @@
         		List constraints = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:678:17: ( ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:678:17: ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:678:17: ( ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:678:17: ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )*
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:678:17: ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:678:17: ( options {greedy=false; } : text= paren_chunk loc= EOL ( EOL )* )*
             loop47:
             do {
                 int alt47=2;
@@ -3342,7 +3342,7 @@
 
                 switch (alt47) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:679:25: text= paren_chunk loc= EOL ( EOL )*
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:679:25: text= paren_chunk loc= EOL ( EOL )*
             	    {
             	    following.push(FOLLOW_paren_chunk_in_expander_lhs_block1526);
             	    text=paren_chunk();
@@ -3374,7 +3374,7 @@
             	    					text = null;
             	    				}
             	    			
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:705:17: ( EOL )*
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:705:17: ( EOL )*
             	    loop46:
             	    do {
             	        int alt46=2;
@@ -3386,7 +3386,7 @@
 
             	        switch (alt46) {
             	    	case 1 :
-            	    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:705:18: EOL
+            	    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:705:18: EOL
             	    	    {
             	    	    match(input,EOL,FOLLOW_EOL_in_expander_lhs_block1545); 
 
@@ -3430,18 +3430,18 @@
 
 
     // $ANTLR start lhs
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:719:1: lhs returns [PatternDescr d] : l= lhs_or ;
-    public PatternDescr lhs() throws RecognitionException {   
-        PatternDescr d;
-        PatternDescr l = null;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:719:1: lhs returns [BaseDescr d] : l= lhs_or ;
+    public BaseDescr lhs() throws RecognitionException {   
+        BaseDescr d;
+        BaseDescr l = null;
 
 
         
         		d=null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:723:17: (l= lhs_or )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:723:17: l= lhs_or
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:723:17: (l= lhs_or )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:723:17: l= lhs_or
             {
             following.push(FOLLOW_lhs_or_in_lhs1587);
             l=lhs_or();
@@ -3464,22 +3464,22 @@
 
 
     // $ANTLR start lhs_column
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:727:1: lhs_column returns [PatternDescr d] : (f= fact_binding | f= fact );
-    public PatternDescr lhs_column() throws RecognitionException {   
-        PatternDescr d;
-        PatternDescr f = null;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:727:1: lhs_column returns [BaseDescr d] : (f= fact_binding | f= fact );
+    public BaseDescr lhs_column() throws RecognitionException {   
+        BaseDescr d;
+        BaseDescr f = null;
 
 
         
         		d=null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:731:17: (f= fact_binding | f= fact )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:731:17: (f= fact_binding | f= fact )
             int alt48=2;
             alt48 = dfa48.predict(input); 
             switch (alt48) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:731:17: f= fact_binding
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:731:17: f= fact_binding
                     {
                     following.push(FOLLOW_fact_binding_in_lhs_column1615);
                     f=fact_binding();
@@ -3490,7 +3490,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:732:17: f= fact
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:732:17: f= fact
                     {
                     following.push(FOLLOW_fact_in_lhs_column1624);
                     f=fact();
@@ -3515,7 +3515,7 @@
 
 
     // $ANTLR start from_statement
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:735:1: from_statement returns [FromDescr d] : 'from' opt_eol ds= from_source ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:735:1: from_statement returns [FromDescr d] : 'from' opt_eol ds= from_source ;
     public FromDescr from_statement() throws RecognitionException {   
         FromDescr d;
         DeclarativeInvokerDescr ds = null;
@@ -3525,8 +3525,8 @@
         		d=factory.createFrom();
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:740:17: ( 'from' opt_eol ds= from_source )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:740:17: 'from' opt_eol ds= from_source
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:740:17: ( 'from' opt_eol ds= from_source )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:740:17: 'from' opt_eol ds= from_source
             {
             match(input,42,FOLLOW_42_in_from_statement1652); 
             following.push(FOLLOW_opt_eol_in_from_statement1654);
@@ -3557,13 +3557,15 @@
 
 
     // $ANTLR start from_source
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:750:1: from_source returns [DeclarativeInvokerDescr ds] : ( (var= ID '.' field= ID ) | (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) | (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) );
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:750:1: from_source returns [DeclarativeInvokerDescr ds] : ( (var= ID '.' field= ID ( '[' arg= argument_value ']' )? ) | (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) | (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) );
     public DeclarativeInvokerDescr from_source() throws RecognitionException {   
         DeclarativeInvokerDescr ds;
         Token var=null;
         Token field=null;
         Token method=null;
         Token functionName=null;
+        ArgumentValueDescr arg = null;
+
         ArrayList args = null;
 
 
@@ -3571,24 +3573,60 @@
         		ds = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:17: ( (var= ID '.' field= ID ) | (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) | (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) )
-            int alt49=3;
-            alt49 = dfa49.predict(input); 
-            switch (alt49) {
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:17: ( (var= ID '.' field= ID ( '[' arg= argument_value ']' )? ) | (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) | (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' ) )
+            int alt50=3;
+            alt50 = dfa50.predict(input); 
+            switch (alt50) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:17: (var= ID '.' field= ID )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:17: (var= ID '.' field= ID ( '[' arg= argument_value ']' )? )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:17: (var= ID '.' field= ID )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:18: var= ID '.' field= ID
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:17: (var= ID '.' field= ID ( '[' arg= argument_value ']' )? )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:18: var= ID '.' field= ID ( '[' arg= argument_value ']' )?
                     {
                     var=(Token)input.LT(1);
                     match(input,ID,FOLLOW_ID_in_from_source1702); 
                     match(input,19,FOLLOW_19_in_from_source1704); 
                     field=(Token)input.LT(1);
                     match(input,ID,FOLLOW_ID_in_from_source1708); 
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:39: ( '[' arg= argument_value ']' )?
+                    int alt49=2;
+                    int LA49_0 = input.LA(1);
+                    if ( LA49_0==43 ) {
+                        alt49=1;
+                    }
+                    else if ( (LA49_0>=EOL && LA49_0<=ID)||LA49_0==15||LA49_0==23||LA49_0==25||LA49_0==29||LA49_0==34||(LA49_0>=52 && LA49_0<=53)||(LA49_0>=57 && LA49_0<=61) ) {
+                        alt49=2;
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("755:39: ( \'[\' arg= argument_value \']\' )?", 49, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt49) {
+                        case 1 :
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:755:40: '[' arg= argument_value ']'
+                            {
+                            match(input,43,FOLLOW_43_in_from_source1712); 
+                            following.push(FOLLOW_argument_value_in_from_source1716);
+                            arg=argument_value();
+                            following.pop();
+
+                            match(input,44,FOLLOW_44_in_from_source1718); 
+
+                            }
+                            break;
+
+                    }
+
                     
-                    			  FieldAccessDescr fa = new FieldAccessDescr(var.getText(), field.getText());	
-                    			  fa.setLine(var.getLine());
+                              		 FieldAccessDescr fa;
+                    			  if ( arg == null )   {
+                    				  fa = new FieldAccessDescr(var.getText(), field.getText());	
+                    			  } else {
+                    				  fa = new FieldAccessDescr(var.getText(), field.getText(), arg);				  
+                    			  }
+                    			  fa.setLocation( offset(var.getLine()), var.getCharPositionInLine() );
                     			  ds = fa;
                     			 
 
@@ -3598,39 +3636,38 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:765:17: (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:770:17: (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:765:17: (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:765:18: var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:770:17: (var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:770:18: var= ID '.' method= ID opt_eol '(' opt_eol args= argument_list opt_eol ')'
                     {
                     var=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_from_source1735); 
-                    match(input,19,FOLLOW_19_in_from_source1737); 
+                    match(input,ID,FOLLOW_ID_in_from_source1747); 
+                    match(input,19,FOLLOW_19_in_from_source1749); 
                     method=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_from_source1741); 
-                    following.push(FOLLOW_opt_eol_in_from_source1743);
+                    match(input,ID,FOLLOW_ID_in_from_source1753); 
+                    following.push(FOLLOW_opt_eol_in_from_source1755);
                     opt_eol();
                     following.pop();
 
-                    match(input,23,FOLLOW_23_in_from_source1746); 
-                    following.push(FOLLOW_opt_eol_in_from_source1748);
+                    match(input,23,FOLLOW_23_in_from_source1758); 
+                    following.push(FOLLOW_opt_eol_in_from_source1760);
                     opt_eol();
                     following.pop();
 
-                    following.push(FOLLOW_argument_list_in_from_source1752);
+                    following.push(FOLLOW_argument_list_in_from_source1764);
                     args=argument_list();
                     following.pop();
 
-                    following.push(FOLLOW_opt_eol_in_from_source1754);
+                    following.push(FOLLOW_opt_eol_in_from_source1766);
                     opt_eol();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_from_source1756); 
+                    match(input,25,FOLLOW_25_in_from_source1768); 
                     
-                    			MethodAccessDescr mc = new MethodAccessDescr(var.getText(), method.getText());
-                    			mc.setArguments(args);
-                    			mc.setLine(var.getLine());
-                    			ds = mc;
+                    			  FieldAccessDescr fa = new FieldAccessDescr(var.getText(), field.getText());	
+                    			  fa.setLocation( offset(var.getLine()), var.getCharPositionInLine() );
+                    			  ds = fa;
                     			
 
                     }
@@ -3639,34 +3676,34 @@
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:774:17: (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:778:17: (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:774:17: (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:774:18: functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:778:17: (functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:778:18: functionName= ID opt_eol '(' opt_eol args= argument_list opt_eol ')'
                     {
                     functionName=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_from_source1778); 
-                    following.push(FOLLOW_opt_eol_in_from_source1780);
+                    match(input,ID,FOLLOW_ID_in_from_source1790); 
+                    following.push(FOLLOW_opt_eol_in_from_source1792);
                     opt_eol();
                     following.pop();
 
-                    match(input,23,FOLLOW_23_in_from_source1782); 
-                    following.push(FOLLOW_opt_eol_in_from_source1784);
+                    match(input,23,FOLLOW_23_in_from_source1794); 
+                    following.push(FOLLOW_opt_eol_in_from_source1796);
                     opt_eol();
                     following.pop();
 
-                    following.push(FOLLOW_argument_list_in_from_source1788);
+                    following.push(FOLLOW_argument_list_in_from_source1800);
                     args=argument_list();
                     following.pop();
 
-                    following.push(FOLLOW_opt_eol_in_from_source1790);
+                    following.push(FOLLOW_opt_eol_in_from_source1802);
                     opt_eol();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_from_source1792); 
+                    match(input,25,FOLLOW_25_in_from_source1804); 
                     
                     			FunctionCallDescr fc = new FunctionCallDescr(functionName.getText());
-                    			fc.setLine(functionName.getLine());
+                    			fc.setLocation( offset(functionName.getLine()), functionName.getCharPositionInLine() );			
                     			fc.setArguments(args);
                     			ds = fc;
                     			
@@ -3691,11 +3728,11 @@
 
 
     // $ANTLR start accumulate_statement
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:787:1: accumulate_statement returns [AccumulateDescr d] : loc= 'from' opt_eol 'accumulate' opt_eol '(' opt_eol column= lhs_column opt_eol ',' opt_eol 'init' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'action' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'result' opt_eol '(' c= paren_chunk2 ')' opt_eol ')' ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:791:1: accumulate_statement returns [AccumulateDescr d] : loc= 'from' opt_eol 'accumulate' opt_eol '(' opt_eol column= lhs_column opt_eol ',' opt_eol 'init' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'action' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'result' opt_eol '(' c= paren_chunk2 ')' opt_eol ')' ;
     public AccumulateDescr accumulate_statement() throws RecognitionException {   
         AccumulateDescr d;
         Token loc=null;
-        PatternDescr column = null;
+        BaseDescr column = null;
 
         String c = null;
 
@@ -3704,106 +3741,106 @@
         		d = factory.createAccumulate();
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:792:17: (loc= 'from' opt_eol 'accumulate' opt_eol '(' opt_eol column= lhs_column opt_eol ',' opt_eol 'init' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'action' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'result' opt_eol '(' c= paren_chunk2 ')' opt_eol ')' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:792:17: loc= 'from' opt_eol 'accumulate' opt_eol '(' opt_eol column= lhs_column opt_eol ',' opt_eol 'init' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'action' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'result' opt_eol '(' c= paren_chunk2 ')' opt_eol ')'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:796:17: (loc= 'from' opt_eol 'accumulate' opt_eol '(' opt_eol column= lhs_column opt_eol ',' opt_eol 'init' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'action' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'result' opt_eol '(' c= paren_chunk2 ')' opt_eol ')' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:796:17: loc= 'from' opt_eol 'accumulate' opt_eol '(' opt_eol column= lhs_column opt_eol ',' opt_eol 'init' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'action' opt_eol '(' c= paren_chunk2 ')' opt_eol ',' opt_eol 'result' opt_eol '(' c= paren_chunk2 ')' opt_eol ')'
             {
             loc=(Token)input.LT(1);
-            match(input,42,FOLLOW_42_in_accumulate_statement1841); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1843);
+            match(input,42,FOLLOW_42_in_accumulate_statement1853); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1855);
             opt_eol();
             following.pop();
 
-            match(input,43,FOLLOW_43_in_accumulate_statement1845); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1847);
+            match(input,45,FOLLOW_45_in_accumulate_statement1857); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1859);
             opt_eol();
             following.pop();
 
              
             			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
             		
-            match(input,23,FOLLOW_23_in_accumulate_statement1857); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1859);
+            match(input,23,FOLLOW_23_in_accumulate_statement1869); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1871);
             opt_eol();
             following.pop();
 
-            following.push(FOLLOW_lhs_column_in_accumulate_statement1863);
+            following.push(FOLLOW_lhs_column_in_accumulate_statement1875);
             column=lhs_column();
             following.pop();
 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1865);
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1877);
             opt_eol();
             following.pop();
 
-            match(input,24,FOLLOW_24_in_accumulate_statement1867); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1869);
+            match(input,24,FOLLOW_24_in_accumulate_statement1879); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1881);
             opt_eol();
             following.pop();
 
             
             		        d.setSourceColumn( (ColumnDescr)column );
             		
-            match(input,44,FOLLOW_44_in_accumulate_statement1877); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1879);
+            match(input,46,FOLLOW_46_in_accumulate_statement1889); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1891);
             opt_eol();
             following.pop();
 
-            match(input,23,FOLLOW_23_in_accumulate_statement1881); 
-            following.push(FOLLOW_paren_chunk2_in_accumulate_statement1885);
+            match(input,23,FOLLOW_23_in_accumulate_statement1893); 
+            following.push(FOLLOW_paren_chunk2_in_accumulate_statement1897);
             c=paren_chunk2();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_accumulate_statement1887); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1889);
+            match(input,25,FOLLOW_25_in_accumulate_statement1899); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1901);
             opt_eol();
             following.pop();
 
-            match(input,24,FOLLOW_24_in_accumulate_statement1891); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1893);
+            match(input,24,FOLLOW_24_in_accumulate_statement1903); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1905);
             opt_eol();
             following.pop();
 
             
             		        d.setInitCode( c );
             		
-            match(input,45,FOLLOW_45_in_accumulate_statement1901); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1903);
+            match(input,47,FOLLOW_47_in_accumulate_statement1913); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1915);
             opt_eol();
             following.pop();
 
-            match(input,23,FOLLOW_23_in_accumulate_statement1905); 
-            following.push(FOLLOW_paren_chunk2_in_accumulate_statement1909);
+            match(input,23,FOLLOW_23_in_accumulate_statement1917); 
+            following.push(FOLLOW_paren_chunk2_in_accumulate_statement1921);
             c=paren_chunk2();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_accumulate_statement1911); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1913);
+            match(input,25,FOLLOW_25_in_accumulate_statement1923); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1925);
             opt_eol();
             following.pop();
 
-            match(input,24,FOLLOW_24_in_accumulate_statement1915); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1917);
+            match(input,24,FOLLOW_24_in_accumulate_statement1927); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1929);
             opt_eol();
             following.pop();
 
             
             		        d.setActionCode( c );
             		
-            match(input,46,FOLLOW_46_in_accumulate_statement1925); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1927);
+            match(input,48,FOLLOW_48_in_accumulate_statement1937); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1939);
             opt_eol();
             following.pop();
 
-            match(input,23,FOLLOW_23_in_accumulate_statement1929); 
-            following.push(FOLLOW_paren_chunk2_in_accumulate_statement1933);
+            match(input,23,FOLLOW_23_in_accumulate_statement1941); 
+            following.push(FOLLOW_paren_chunk2_in_accumulate_statement1945);
             c=paren_chunk2();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_accumulate_statement1935); 
-            following.push(FOLLOW_opt_eol_in_accumulate_statement1937);
+            match(input,25,FOLLOW_25_in_accumulate_statement1947); 
+            following.push(FOLLOW_opt_eol_in_accumulate_statement1949);
             opt_eol();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_accumulate_statement1939); 
+            match(input,25,FOLLOW_25_in_accumulate_statement1951); 
             
             		        d.setResultCode( c );
             		
@@ -3823,48 +3860,48 @@
 
 
     // $ANTLR start collect_statement
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:814:1: collect_statement returns [CollectDescr d] : loc= 'from' opt_eol 'collect' opt_eol '(' opt_eol column= lhs_column opt_eol ')' ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:818:1: collect_statement returns [CollectDescr d] : loc= 'from' opt_eol 'collect' opt_eol '(' opt_eol column= lhs_column opt_eol ')' ;
     public CollectDescr collect_statement() throws RecognitionException {   
         CollectDescr d;
         Token loc=null;
-        PatternDescr column = null;
+        BaseDescr column = null;
 
 
         
         		d = factory.createCollect();
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:819:17: (loc= 'from' opt_eol 'collect' opt_eol '(' opt_eol column= lhs_column opt_eol ')' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:819:17: loc= 'from' opt_eol 'collect' opt_eol '(' opt_eol column= lhs_column opt_eol ')'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:823:17: (loc= 'from' opt_eol 'collect' opt_eol '(' opt_eol column= lhs_column opt_eol ')' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:823:17: loc= 'from' opt_eol 'collect' opt_eol '(' opt_eol column= lhs_column opt_eol ')'
             {
             loc=(Token)input.LT(1);
-            match(input,42,FOLLOW_42_in_collect_statement1982); 
-            following.push(FOLLOW_opt_eol_in_collect_statement1984);
+            match(input,42,FOLLOW_42_in_collect_statement1994); 
+            following.push(FOLLOW_opt_eol_in_collect_statement1996);
             opt_eol();
             following.pop();
 
-            match(input,47,FOLLOW_47_in_collect_statement1986); 
-            following.push(FOLLOW_opt_eol_in_collect_statement1988);
+            match(input,49,FOLLOW_49_in_collect_statement1998); 
+            following.push(FOLLOW_opt_eol_in_collect_statement2000);
             opt_eol();
             following.pop();
 
              
             			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
             		
-            match(input,23,FOLLOW_23_in_collect_statement1998); 
-            following.push(FOLLOW_opt_eol_in_collect_statement2000);
+            match(input,23,FOLLOW_23_in_collect_statement2010); 
+            following.push(FOLLOW_opt_eol_in_collect_statement2012);
             opt_eol();
             following.pop();
 
-            following.push(FOLLOW_lhs_column_in_collect_statement2004);
+            following.push(FOLLOW_lhs_column_in_collect_statement2016);
             column=lhs_column();
             following.pop();
 
-            following.push(FOLLOW_opt_eol_in_collect_statement2006);
+            following.push(FOLLOW_opt_eol_in_collect_statement2018);
             opt_eol();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_collect_statement2008); 
+            match(input,25,FOLLOW_25_in_collect_statement2020); 
             
             		        d.setSourceColumn( (ColumnDescr)column );
             		
@@ -3884,7 +3921,7 @@
 
 
     // $ANTLR start argument_list
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:829:1: argument_list returns [ArrayList args] : (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )? ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:833:1: argument_list returns [ArrayList args] : (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )? ;
     public ArrayList argument_list() throws RecognitionException {   
         ArrayList args;
         ArgumentValueDescr param = null;
@@ -3894,29 +3931,29 @@
         		args = new ArrayList();
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:834:17: ( (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )? )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:834:17: (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:838:17: ( (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )? )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:838:17: (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )?
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:834:17: (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )?
-            int alt51=2;
-            int LA51_0 = input.LA(1);
-            if ( (LA51_0>=ID && LA51_0<=FLOAT)||LA51_0==26||LA51_0==48||LA51_0==50 ) {
-                alt51=1;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:838:17: (param= argument_value ( opt_eol ',' opt_eol param= argument_value )* )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
+            if ( (LA52_0>=ID && LA52_0<=FLOAT)||LA52_0==26||LA52_0==43||LA52_0==50 ) {
+                alt52=1;
             }
-            else if ( LA51_0==EOL||LA51_0==15||LA51_0==25 ) {
-                alt51=2;
+            else if ( LA52_0==EOL||LA52_0==15||LA52_0==25 ) {
+                alt52=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("834:17: (param= argument_value ( opt_eol \',\' opt_eol param= argument_value )* )?", 51, 0, input);
+                    new NoViableAltException("838:17: (param= argument_value ( opt_eol \',\' opt_eol param= argument_value )* )?", 52, 0, input);
 
                 throw nvae;
             }
-            switch (alt51) {
+            switch (alt52) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:834:18: param= argument_value ( opt_eol ',' opt_eol param= argument_value )*
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:838:18: param= argument_value ( opt_eol ',' opt_eol param= argument_value )*
                     {
-                    following.push(FOLLOW_argument_value_in_argument_list2041);
+                    following.push(FOLLOW_argument_value_in_argument_list2053);
                     param=argument_value();
                     following.pop();
 
@@ -3925,25 +3962,25 @@
                     				args.add(param);
                     			}
                     		
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:840:17: ( opt_eol ',' opt_eol param= argument_value )*
-                    loop50:
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:844:17: ( opt_eol ',' opt_eol param= argument_value )*
+                    loop51:
                     do {
-                        int alt50=2;
-                        alt50 = dfa50.predict(input); 
-                        switch (alt50) {
+                        int alt51=2;
+                        alt51 = dfa51.predict(input); 
+                        switch (alt51) {
                     	case 1 :
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:841:25: opt_eol ',' opt_eol param= argument_value
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:845:25: opt_eol ',' opt_eol param= argument_value
                     	    {
-                    	    following.push(FOLLOW_opt_eol_in_argument_list2057);
+                    	    following.push(FOLLOW_opt_eol_in_argument_list2069);
                     	    opt_eol();
                     	    following.pop();
 
-                    	    match(input,24,FOLLOW_24_in_argument_list2059); 
-                    	    following.push(FOLLOW_opt_eol_in_argument_list2061);
+                    	    match(input,24,FOLLOW_24_in_argument_list2071); 
+                    	    following.push(FOLLOW_opt_eol_in_argument_list2073);
                     	    opt_eol();
                     	    following.pop();
 
-                    	    following.push(FOLLOW_argument_value_in_argument_list2065);
+                    	    following.push(FOLLOW_argument_value_in_argument_list2077);
                     	    param=argument_value();
                     	    following.pop();
 
@@ -3957,7 +3994,7 @@
                     	    break;
 
                     	default :
-                    	    break loop50;
+                    	    break loop51;
                         }
                     } while (true);
 
@@ -3983,7 +4020,7 @@
 
 
     // $ANTLR start argument_value
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:850:1: argument_value returns [ArgumentValueDescr value] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array ) ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:854:1: argument_value returns [ArgumentValueDescr value] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array ) ;
     public ArgumentValueDescr argument_value() throws RecognitionException {   
         ArgumentValueDescr value;
         Token t=null;
@@ -3997,111 +4034,111 @@
         		String text = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:855:17: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:855:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:859:17: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:859:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array )
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:855:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array )
-            int alt52=9;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:859:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= 'null' | t= 'null' | m= inline_map | a= inline_array )
+            int alt53=9;
             switch ( input.LA(1) ) {
             case STRING:
-                alt52=1;
+                alt53=1;
                 break;
             case INT:
-                alt52=2;
+                alt53=2;
                 break;
             case FLOAT:
-                alt52=3;
+                alt53=3;
                 break;
             case BOOL:
-                alt52=4;
+                alt53=4;
                 break;
             case ID:
-                alt52=5;
+                alt53=5;
                 break;
-            case 48:
-                alt52=6;
+            case 50:
+                alt53=6;
                 break;
             case 26:
-                alt52=8;
+                alt53=8;
                 break;
-            case 50:
-                alt52=9;
+            case 43:
+                alt53=9;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("855:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= \'null\' | t= \'null\' | m= inline_map | a= inline_array )", 52, 0, input);
+                    new NoViableAltException("859:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= ID | t= \'null\' | t= \'null\' | m= inline_map | a= inline_array )", 53, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt52) {
+            switch (alt53) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:855:25: t= STRING
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:859:25: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_argument_value2105); 
+                    match(input,STRING,FOLLOW_STRING_in_argument_value2117); 
                      text = getString( t );  value=new ArgumentValueDescr(ArgumentValueDescr.STRING, text);
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:856:25: t= INT
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:860:25: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_argument_value2116); 
+                    match(input,INT,FOLLOW_INT_in_argument_value2128); 
                      text = t.getText();  value=new ArgumentValueDescr(ArgumentValueDescr.INTEGRAL, text);
 
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:857:25: t= FLOAT
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:861:25: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_argument_value2129); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_argument_value2141); 
                      text = t.getText(); value=new ArgumentValueDescr(ArgumentValueDescr.DECIMAL, text); 
 
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:858:25: t= BOOL
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:862:25: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_argument_value2140); 
+                    match(input,BOOL,FOLLOW_BOOL_in_argument_value2152); 
                      text = t.getText(); value=new ArgumentValueDescr(ArgumentValueDescr.BOOLEAN, text); 
 
                     }
                     break;
                 case 5 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:859:25: t= ID
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:863:25: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_argument_value2152); 
+                    match(input,ID,FOLLOW_ID_in_argument_value2164); 
                      text = t.getText(); value=new ArgumentValueDescr(ArgumentValueDescr.VARIABLE, text);
 
                     }
                     break;
                 case 6 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:860:25: t= 'null'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:864:25: t= 'null'
                     {
                     t=(Token)input.LT(1);
-                    match(input,48,FOLLOW_48_in_argument_value2163); 
+                    match(input,50,FOLLOW_50_in_argument_value2175); 
                      text = "null"; value=new ArgumentValueDescr(ArgumentValueDescr.NULL, text);
 
                     }
                     break;
                 case 7 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:861:25: t= 'null'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:865:25: t= 'null'
                     {
                     t=(Token)input.LT(1);
-                    match(input,48,FOLLOW_48_in_argument_value2174); 
+                    match(input,50,FOLLOW_50_in_argument_value2186); 
                      text = "null"; value=new ArgumentValueDescr(ArgumentValueDescr.NULL, text);
 
                     }
                     break;
                 case 8 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:862:25: m= inline_map
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:866:25: m= inline_map
                     {
-                    following.push(FOLLOW_inline_map_in_argument_value2193);
+                    following.push(FOLLOW_inline_map_in_argument_value2205);
                     m=inline_map();
                     following.pop();
 
@@ -4110,9 +4147,9 @@
                     }
                     break;
                 case 9 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:863:25: a= inline_array
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:867:25: a= inline_array
                     {
-                    following.push(FOLLOW_inline_array_in_argument_value2209);
+                    following.push(FOLLOW_inline_array_in_argument_value2221);
                     a=inline_array();
                     following.pop();
 
@@ -4139,7 +4176,7 @@
 
 
     // $ANTLR start inline_map
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:867:1: inline_map returns [ArgumentValueDescr.MapDescr mapDescr] : '{' (key= argument_value '=>' value= argument_value ) ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )* '}' ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:871:1: inline_map returns [ArgumentValueDescr.MapDescr mapDescr] : '{' (key= argument_value '=>' value= argument_value ) ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )* '}' ;
     public ArgumentValueDescr.MapDescr inline_map() throws RecognitionException {   
         ArgumentValueDescr.MapDescr mapDescr;
         ArgumentValueDescr key = null;
@@ -4151,19 +4188,19 @@
                 mapDescr = new ArgumentValueDescr.MapDescr();
             
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:871:8: ( '{' (key= argument_value '=>' value= argument_value ) ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )* '}' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:871:8: '{' (key= argument_value '=>' value= argument_value ) ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )* '}'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:875:8: ( '{' (key= argument_value '=>' value= argument_value ) ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )* '}' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:875:8: '{' (key= argument_value '=>' value= argument_value ) ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )* '}'
             {
-            match(input,26,FOLLOW_26_in_inline_map2249); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:872:12: (key= argument_value '=>' value= argument_value )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:872:14: key= argument_value '=>' value= argument_value
+            match(input,26,FOLLOW_26_in_inline_map2261); 
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:876:12: (key= argument_value '=>' value= argument_value )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:876:14: key= argument_value '=>' value= argument_value
             {
-            following.push(FOLLOW_argument_value_in_inline_map2267);
+            following.push(FOLLOW_argument_value_in_inline_map2279);
             key=argument_value();
             following.pop();
 
-            match(input,49,FOLLOW_49_in_inline_map2269); 
-            following.push(FOLLOW_argument_value_in_inline_map2273);
+            match(input,51,FOLLOW_51_in_inline_map2281); 
+            following.push(FOLLOW_argument_value_in_inline_map2285);
             value=argument_value();
             following.pop();
 
@@ -4175,79 +4212,79 @@
 
             }
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:879:12: ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )*
-            loop55:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:883:12: ( ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value )*
+            loop56:
             do {
-                int alt55=2;
-                int LA55_0 = input.LA(1);
-                if ( LA55_0==EOL||LA55_0==24 ) {
-                    alt55=1;
+                int alt56=2;
+                int LA56_0 = input.LA(1);
+                if ( LA56_0==EOL||LA56_0==24 ) {
+                    alt56=1;
                 }
 
 
-                switch (alt55) {
+                switch (alt56) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:879:14: ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:883:14: ( EOL )? ',' ( EOL )? key= argument_value '=>' value= argument_value
             	    {
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:879:14: ( EOL )?
-            	    int alt53=2;
-            	    int LA53_0 = input.LA(1);
-            	    if ( LA53_0==EOL ) {
-            	        alt53=1;
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:883:14: ( EOL )?
+            	    int alt54=2;
+            	    int LA54_0 = input.LA(1);
+            	    if ( LA54_0==EOL ) {
+            	        alt54=1;
             	    }
-            	    else if ( LA53_0==24 ) {
-            	        alt53=2;
+            	    else if ( LA54_0==24 ) {
+            	        alt54=2;
             	    }
             	    else {
             	        NoViableAltException nvae =
-            	            new NoViableAltException("879:14: ( EOL )?", 53, 0, input);
+            	            new NoViableAltException("883:14: ( EOL )?", 54, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt53) {
+            	    switch (alt54) {
             	        case 1 :
-            	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:879:15: EOL
+            	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:883:15: EOL
             	            {
-            	            match(input,EOL,FOLLOW_EOL_in_inline_map2316); 
+            	            match(input,EOL,FOLLOW_EOL_in_inline_map2328); 
 
             	            }
             	            break;
 
             	    }
 
-            	    match(input,24,FOLLOW_24_in_inline_map2320); 
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:879:25: ( EOL )?
-            	    int alt54=2;
-            	    int LA54_0 = input.LA(1);
-            	    if ( LA54_0==EOL ) {
-            	        alt54=1;
+            	    match(input,24,FOLLOW_24_in_inline_map2332); 
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:883:25: ( EOL )?
+            	    int alt55=2;
+            	    int LA55_0 = input.LA(1);
+            	    if ( LA55_0==EOL ) {
+            	        alt55=1;
             	    }
-            	    else if ( (LA54_0>=ID && LA54_0<=FLOAT)||LA54_0==26||LA54_0==48||LA54_0==50 ) {
-            	        alt54=2;
+            	    else if ( (LA55_0>=ID && LA55_0<=FLOAT)||LA55_0==26||LA55_0==43||LA55_0==50 ) {
+            	        alt55=2;
             	    }
             	    else {
             	        NoViableAltException nvae =
-            	            new NoViableAltException("879:25: ( EOL )?", 54, 0, input);
+            	            new NoViableAltException("883:25: ( EOL )?", 55, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt54) {
+            	    switch (alt55) {
             	        case 1 :
-            	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:879:26: EOL
+            	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:883:26: EOL
             	            {
-            	            match(input,EOL,FOLLOW_EOL_in_inline_map2323); 
+            	            match(input,EOL,FOLLOW_EOL_in_inline_map2335); 
 
             	            }
             	            break;
 
             	    }
 
-            	    following.push(FOLLOW_argument_value_in_inline_map2329);
+            	    following.push(FOLLOW_argument_value_in_inline_map2341);
             	    key=argument_value();
             	    following.pop();
 
-            	    match(input,49,FOLLOW_49_in_inline_map2331); 
-            	    following.push(FOLLOW_argument_value_in_inline_map2335);
+            	    match(input,51,FOLLOW_51_in_inline_map2343); 
+            	    following.push(FOLLOW_argument_value_in_inline_map2347);
             	    value=argument_value();
             	    following.pop();
 
@@ -4261,11 +4298,11 @@
             	    break;
 
             	default :
-            	    break loop55;
+            	    break loop56;
                 }
             } while (true);
 
-            match(input,27,FOLLOW_27_in_inline_map2371); 
+            match(input,27,FOLLOW_27_in_inline_map2383); 
 
             }
 
@@ -4282,7 +4319,7 @@
 
 
     // $ANTLR start inline_array
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:888:1: inline_array returns [List list] : '[' arg= argument_value ( ( EOL )? ',' ( EOL )? arg= argument_value )* ']' ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:892:1: inline_array returns [List list] : '[' arg= argument_value ( ( EOL )? ',' ( EOL )? arg= argument_value )* ']' ;
     public List inline_array() throws RecognitionException {   
         List list;
         ArgumentValueDescr arg = null;
@@ -4292,83 +4329,83 @@
             	list = new ArrayList();
             
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:893:5: ( '[' arg= argument_value ( ( EOL )? ',' ( EOL )? arg= argument_value )* ']' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:893:5: '[' arg= argument_value ( ( EOL )? ',' ( EOL )? arg= argument_value )* ']'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:897:5: ( '[' arg= argument_value ( ( EOL )? ',' ( EOL )? arg= argument_value )* ']' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:897:5: '[' arg= argument_value ( ( EOL )? ',' ( EOL )? arg= argument_value )* ']'
             {
-            match(input,50,FOLLOW_50_in_inline_array2415); 
-            following.push(FOLLOW_argument_value_in_inline_array2419);
+            match(input,43,FOLLOW_43_in_inline_array2427); 
+            following.push(FOLLOW_argument_value_in_inline_array2431);
             arg=argument_value();
             following.pop();
 
              list.add(arg); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:895:10: ( ( EOL )? ',' ( EOL )? arg= argument_value )*
-            loop58:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:899:10: ( ( EOL )? ',' ( EOL )? arg= argument_value )*
+            loop59:
             do {
-                int alt58=2;
-                int LA58_0 = input.LA(1);
-                if ( LA58_0==EOL||LA58_0==24 ) {
-                    alt58=1;
+                int alt59=2;
+                int LA59_0 = input.LA(1);
+                if ( LA59_0==EOL||LA59_0==24 ) {
+                    alt59=1;
                 }
 
 
-                switch (alt58) {
+                switch (alt59) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:895:12: ( EOL )? ',' ( EOL )? arg= argument_value
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:899:12: ( EOL )? ',' ( EOL )? arg= argument_value
             	    {
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:895:12: ( EOL )?
-            	    int alt56=2;
-            	    int LA56_0 = input.LA(1);
-            	    if ( LA56_0==EOL ) {
-            	        alt56=1;
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:899:12: ( EOL )?
+            	    int alt57=2;
+            	    int LA57_0 = input.LA(1);
+            	    if ( LA57_0==EOL ) {
+            	        alt57=1;
             	    }
-            	    else if ( LA56_0==24 ) {
-            	        alt56=2;
+            	    else if ( LA57_0==24 ) {
+            	        alt57=2;
             	    }
             	    else {
             	        NoViableAltException nvae =
-            	            new NoViableAltException("895:12: ( EOL )?", 56, 0, input);
+            	            new NoViableAltException("899:12: ( EOL )?", 57, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt56) {
+            	    switch (alt57) {
             	        case 1 :
-            	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:895:12: EOL
+            	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:899:12: EOL
             	            {
-            	            match(input,EOL,FOLLOW_EOL_in_inline_array2437); 
+            	            match(input,EOL,FOLLOW_EOL_in_inline_array2449); 
 
             	            }
             	            break;
 
             	    }
 
-            	    match(input,24,FOLLOW_24_in_inline_array2440); 
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:895:21: ( EOL )?
-            	    int alt57=2;
-            	    int LA57_0 = input.LA(1);
-            	    if ( LA57_0==EOL ) {
-            	        alt57=1;
+            	    match(input,24,FOLLOW_24_in_inline_array2452); 
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:899:21: ( EOL )?
+            	    int alt58=2;
+            	    int LA58_0 = input.LA(1);
+            	    if ( LA58_0==EOL ) {
+            	        alt58=1;
             	    }
-            	    else if ( (LA57_0>=ID && LA57_0<=FLOAT)||LA57_0==26||LA57_0==48||LA57_0==50 ) {
-            	        alt57=2;
+            	    else if ( (LA58_0>=ID && LA58_0<=FLOAT)||LA58_0==26||LA58_0==43||LA58_0==50 ) {
+            	        alt58=2;
             	    }
             	    else {
             	        NoViableAltException nvae =
-            	            new NoViableAltException("895:21: ( EOL )?", 57, 0, input);
+            	            new NoViableAltException("899:21: ( EOL )?", 58, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt57) {
+            	    switch (alt58) {
             	        case 1 :
-            	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:895:21: EOL
+            	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:899:21: EOL
             	            {
-            	            match(input,EOL,FOLLOW_EOL_in_inline_array2442); 
+            	            match(input,EOL,FOLLOW_EOL_in_inline_array2454); 
 
             	            }
             	            break;
 
             	    }
 
-            	    following.push(FOLLOW_argument_value_in_inline_array2447);
+            	    following.push(FOLLOW_argument_value_in_inline_array2459);
             	    arg=argument_value();
             	    following.pop();
 
@@ -4378,11 +4415,11 @@
             	    break;
 
             	default :
-            	    break loop58;
+            	    break loop59;
                 }
             } while (true);
 
-            match(input,51,FOLLOW_51_in_inline_array2460); 
+            match(input,44,FOLLOW_44_in_inline_array2472); 
 
             }
 
@@ -4399,11 +4436,11 @@
 
 
     // $ANTLR start fact_binding
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:900:1: fact_binding returns [PatternDescr d] : id= ID opt_eol ':' opt_eol fe= fact_expression[id.getText()] ;
-    public PatternDescr fact_binding() throws RecognitionException {   
-        PatternDescr d;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:904:1: fact_binding returns [BaseDescr d] : id= ID opt_eol ':' opt_eol fe= fact_expression[id.getText()] ;
+    public BaseDescr fact_binding() throws RecognitionException {   
+        BaseDescr d;
         Token id=null;
-        PatternDescr fe = null;
+        BaseDescr fe = null;
 
 
         
@@ -4411,21 +4448,21 @@
         		boolean multi=false;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:906:17: (id= ID opt_eol ':' opt_eol fe= fact_expression[id.getText()] )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:906:17: id= ID opt_eol ':' opt_eol fe= fact_expression[id.getText()]
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:910:17: (id= ID opt_eol ':' opt_eol fe= fact_expression[id.getText()] )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:910:17: id= ID opt_eol ':' opt_eol fe= fact_expression[id.getText()]
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_fact_binding2503); 
-            following.push(FOLLOW_opt_eol_in_fact_binding2513);
+            match(input,ID,FOLLOW_ID_in_fact_binding2515); 
+            following.push(FOLLOW_opt_eol_in_fact_binding2525);
             opt_eol();
             following.pop();
 
-            match(input,33,FOLLOW_33_in_fact_binding2515); 
-            following.push(FOLLOW_opt_eol_in_fact_binding2517);
+            match(input,33,FOLLOW_33_in_fact_binding2527); 
+            following.push(FOLLOW_opt_eol_in_fact_binding2529);
             opt_eol();
             following.pop();
 
-            following.push(FOLLOW_fact_expression_in_fact_binding2521);
+            following.push(FOLLOW_fact_expression_in_fact_binding2533);
             fe=fact_expression(id.getText());
             following.pop();
 
@@ -4448,12 +4485,12 @@
 
 
     // $ANTLR start fact_expression
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:914:2: fact_expression[String id] returns [PatternDescr pd] : ( '(' opt_eol fe= fact_expression[id] opt_eol ')' | f= fact opt_eol ( ('or'|'||') opt_eol f= fact )* );
-    public PatternDescr fact_expression(String id) throws RecognitionException {   
-        PatternDescr pd;
-        PatternDescr fe = null;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:918:2: fact_expression[String id] returns [BaseDescr pd] : ( '(' opt_eol fe= fact_expression[id] opt_eol ')' | f= fact opt_eol ( ('or'|'||') opt_eol f= fact )* );
+    public BaseDescr fact_expression(String id) throws RecognitionException {   
+        BaseDescr pd;
+        BaseDescr fe = null;
 
-        PatternDescr f = null;
+        BaseDescr f = null;
 
 
         
@@ -4461,51 +4498,51 @@
          		boolean multi = false;
          	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:919:17: ( '(' opt_eol fe= fact_expression[id] opt_eol ')' | f= fact opt_eol ( ('or'|'||') opt_eol f= fact )* )
-            int alt60=2;
-            int LA60_0 = input.LA(1);
-            if ( LA60_0==23 ) {
-                alt60=1;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:923:17: ( '(' opt_eol fe= fact_expression[id] opt_eol ')' | f= fact opt_eol ( ('or'|'||') opt_eol f= fact )* )
+            int alt61=2;
+            int LA61_0 = input.LA(1);
+            if ( LA61_0==23 ) {
+                alt61=1;
             }
-            else if ( LA60_0==ID ) {
-                alt60=2;
+            else if ( LA61_0==ID ) {
+                alt61=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("914:2: fact_expression[String id] returns [PatternDescr pd] : ( \'(\' opt_eol fe= fact_expression[id] opt_eol \')\' | f= fact opt_eol ( (\'or\'|\'||\') opt_eol f= fact )* );", 60, 0, input);
+                    new NoViableAltException("918:2: fact_expression[String id] returns [BaseDescr pd] : ( \'(\' opt_eol fe= fact_expression[id] opt_eol \')\' | f= fact opt_eol ( (\'or\'|\'||\') opt_eol f= fact )* );", 61, 0, input);
 
                 throw nvae;
             }
-            switch (alt60) {
+            switch (alt61) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:919:17: '(' opt_eol fe= fact_expression[id] opt_eol ')'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:923:17: '(' opt_eol fe= fact_expression[id] opt_eol ')'
                     {
-                    match(input,23,FOLLOW_23_in_fact_expression2553); 
-                    following.push(FOLLOW_opt_eol_in_fact_expression2555);
+                    match(input,23,FOLLOW_23_in_fact_expression2565); 
+                    following.push(FOLLOW_opt_eol_in_fact_expression2567);
                     opt_eol();
                     following.pop();
 
-                    following.push(FOLLOW_fact_expression_in_fact_expression2559);
+                    following.push(FOLLOW_fact_expression_in_fact_expression2571);
                     fe=fact_expression(id);
                     following.pop();
 
-                    following.push(FOLLOW_opt_eol_in_fact_expression2561);
+                    following.push(FOLLOW_opt_eol_in_fact_expression2573);
                     opt_eol();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_fact_expression2563); 
+                    match(input,25,FOLLOW_25_in_fact_expression2575); 
                      pd=fe; 
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:920:17: f= fact opt_eol ( ('or'|'||') opt_eol f= fact )*
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:924:17: f= fact opt_eol ( ('or'|'||') opt_eol f= fact )*
                     {
-                    following.push(FOLLOW_fact_in_fact_expression2574);
+                    following.push(FOLLOW_fact_in_fact_expression2586);
                     f=fact();
                     following.pop();
 
-                    following.push(FOLLOW_opt_eol_in_fact_expression2576);
+                    following.push(FOLLOW_opt_eol_in_fact_expression2588);
                     opt_eol();
                     following.pop();
 
@@ -4513,19 +4550,19 @@
                      			((ColumnDescr)f).setIdentifier( id );
                      			pd = f;
                      		
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:925:17: ( ('or'|'||') opt_eol f= fact )*
-                    loop59:
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:929:17: ( ('or'|'||') opt_eol f= fact )*
+                    loop60:
                     do {
-                        int alt59=2;
-                        int LA59_0 = input.LA(1);
-                        if ( (LA59_0>=52 && LA59_0<=53) ) {
-                            alt59=1;
+                        int alt60=2;
+                        int LA60_0 = input.LA(1);
+                        if ( (LA60_0>=52 && LA60_0<=53) ) {
+                            alt60=1;
                         }
 
 
-                        switch (alt59) {
+                        switch (alt60) {
                     	case 1 :
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:925:25: ('or'|'||') opt_eol f= fact
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:929:25: ('or'|'||') opt_eol f= fact
                     	    {
                     	    if ( (input.LA(1)>=52 && input.LA(1)<=53) ) {
                     	        input.consume();
@@ -4534,21 +4571,21 @@
                     	    else {
                     	        MismatchedSetException mse =
                     	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_expression2589);    throw mse;
+                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_expression2601);    throw mse;
                     	    }
 
-                    	    following.push(FOLLOW_opt_eol_in_fact_expression2594);
+                    	    following.push(FOLLOW_opt_eol_in_fact_expression2606);
                     	    opt_eol();
                     	    following.pop();
 
                     	    	if ( ! multi ) {
-                    	     					PatternDescr first = pd;
+                    	     					BaseDescr first = pd;
                     	     					pd = new OrDescr();
                     	     					((OrDescr)pd).addDescr( first );
                     	     					multi=true;
                     	     				}
                     	     			
-                    	    following.push(FOLLOW_fact_in_fact_expression2608);
+                    	    following.push(FOLLOW_fact_in_fact_expression2620);
                     	    f=fact();
                     	    following.pop();
 
@@ -4561,7 +4598,7 @@
                     	    break;
 
                     	default :
-                    	    break loop59;
+                    	    break loop60;
                         }
                     } while (true);
 
@@ -4583,9 +4620,9 @@
 
 
     // $ANTLR start fact
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:941:1: fact returns [PatternDescr d] : id= dotted_name opt_eol loc= '(' opt_eol (c= constraints )? opt_eol endLoc= ')' opt_eol ;
-    public PatternDescr fact() throws RecognitionException {   
-        PatternDescr d;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:945:1: fact returns [BaseDescr d] : id= dotted_name opt_eol loc= '(' opt_eol (c= constraints )? opt_eol endLoc= ')' opt_eol ;
+    public BaseDescr fact() throws RecognitionException {   
+        BaseDescr d;
         Token loc=null;
         Token endLoc=null;
         String id = null;
@@ -4597,43 +4634,43 @@
         		d=null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:945:17: (id= dotted_name opt_eol loc= '(' opt_eol (c= constraints )? opt_eol endLoc= ')' opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:945:17: id= dotted_name opt_eol loc= '(' opt_eol (c= constraints )? opt_eol endLoc= ')' opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:949:17: (id= dotted_name opt_eol loc= '(' opt_eol (c= constraints )? opt_eol endLoc= ')' opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:949:17: id= dotted_name opt_eol loc= '(' opt_eol (c= constraints )? opt_eol endLoc= ')' opt_eol
             {
-            following.push(FOLLOW_dotted_name_in_fact2647);
+            following.push(FOLLOW_dotted_name_in_fact2659);
             id=dotted_name();
             following.pop();
 
              
              			d = new ColumnDescr( id ); 
              		
-            following.push(FOLLOW_opt_eol_in_fact2655);
+            following.push(FOLLOW_opt_eol_in_fact2667);
             opt_eol();
             following.pop();
 
             loc=(Token)input.LT(1);
-            match(input,23,FOLLOW_23_in_fact2663); 
+            match(input,23,FOLLOW_23_in_fact2675); 
             
              				d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
              			
-            following.push(FOLLOW_opt_eol_in_fact2666);
+            following.push(FOLLOW_opt_eol_in_fact2678);
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:951:34: (c= constraints )?
-            int alt61=2;
-            alt61 = dfa61.predict(input); 
-            switch (alt61) {
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:955:34: (c= constraints )?
+            int alt62=2;
+            alt62 = dfa62.predict(input); 
+            switch (alt62) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:951:41: c= constraints
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:955:41: c= constraints
                     {
-                    following.push(FOLLOW_constraints_in_fact2672);
+                    following.push(FOLLOW_constraints_in_fact2684);
                     c=constraints();
                     following.pop();
 
                     
                     		 			for ( Iterator cIter = c.iterator() ; cIter.hasNext() ; ) {
-                     						((ColumnDescr)d).addDescr( (PatternDescr) cIter.next() );
+                     						((ColumnDescr)d).addDescr( (BaseDescr) cIter.next() );
                      					}
                      				
 
@@ -4642,13 +4679,13 @@
 
             }
 
-            following.push(FOLLOW_opt_eol_in_fact2691);
+            following.push(FOLLOW_opt_eol_in_fact2703);
             opt_eol();
             following.pop();
 
             endLoc=(Token)input.LT(1);
-            match(input,25,FOLLOW_25_in_fact2695); 
-            following.push(FOLLOW_opt_eol_in_fact2697);
+            match(input,25,FOLLOW_25_in_fact2707); 
+            following.push(FOLLOW_opt_eol_in_fact2709);
             opt_eol();
             following.pop();
 
@@ -4671,76 +4708,76 @@
 
 
     // $ANTLR start constraints
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:965:1: constraints returns [List constraints] : opt_eol ( constraint[constraints] | predicate[constraints] ) ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )* opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:969:1: constraints returns [List constraints] : opt_eol ( constraint[constraints] | predicate[constraints] ) ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )* opt_eol ;
     public List constraints() throws RecognitionException {   
         List constraints;
         
         		constraints = new ArrayList();
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:969:17: ( opt_eol ( constraint[constraints] | predicate[constraints] ) ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )* opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:969:17: opt_eol ( constraint[constraints] | predicate[constraints] ) ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )* opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:973:17: ( opt_eol ( constraint[constraints] | predicate[constraints] ) ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )* opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:973:17: opt_eol ( constraint[constraints] | predicate[constraints] ) ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )* opt_eol
             {
-            following.push(FOLLOW_opt_eol_in_constraints2729);
+            following.push(FOLLOW_opt_eol_in_constraints2741);
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:970:17: ( constraint[constraints] | predicate[constraints] )
-            int alt62=2;
-            int LA62_0 = input.LA(1);
-            if ( LA62_0==EOL||LA62_0==15 ) {
-                alt62=1;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:974:17: ( constraint[constraints] | predicate[constraints] )
+            int alt63=2;
+            int LA63_0 = input.LA(1);
+            if ( LA63_0==EOL||LA63_0==15 ) {
+                alt63=1;
             }
-            else if ( LA62_0==ID ) {
-                int LA62_2 = input.LA(2);
-                if ( LA62_2==33 ) {
-                    int LA62_3 = input.LA(3);
-                    if ( LA62_3==ID ) {
-                        int LA62_17 = input.LA(4);
-                        if ( LA62_17==56 ) {
-                            alt62=2;
+            else if ( LA63_0==ID ) {
+                int LA63_2 = input.LA(2);
+                if ( LA63_2==33 ) {
+                    int LA63_3 = input.LA(3);
+                    if ( LA63_3==ID ) {
+                        int LA63_17 = input.LA(4);
+                        if ( LA63_17==56 ) {
+                            alt63=2;
                         }
-                        else if ( LA62_17==EOL||LA62_17==15||(LA62_17>=24 && LA62_17<=25)||(LA62_17>=63 && LA62_17<=72) ) {
-                            alt62=1;
+                        else if ( LA63_17==EOL||LA63_17==15||(LA63_17>=24 && LA63_17<=25)||(LA63_17>=63 && LA63_17<=72) ) {
+                            alt63=1;
                         }
                         else {
                             NoViableAltException nvae =
-                                new NoViableAltException("970:17: ( constraint[constraints] | predicate[constraints] )", 62, 17, input);
+                                new NoViableAltException("974:17: ( constraint[constraints] | predicate[constraints] )", 63, 17, input);
 
                             throw nvae;
                         }
                     }
-                    else if ( LA62_3==EOL||LA62_3==15 ) {
-                        alt62=1;
+                    else if ( LA63_3==EOL||LA63_3==15 ) {
+                        alt63=1;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("970:17: ( constraint[constraints] | predicate[constraints] )", 62, 3, input);
+                            new NoViableAltException("974:17: ( constraint[constraints] | predicate[constraints] )", 63, 3, input);
 
                         throw nvae;
                     }
                 }
-                else if ( LA62_2==EOL||LA62_2==15||(LA62_2>=24 && LA62_2<=25)||(LA62_2>=63 && LA62_2<=72) ) {
-                    alt62=1;
+                else if ( LA63_2==EOL||LA63_2==15||(LA63_2>=24 && LA63_2<=25)||(LA63_2>=63 && LA63_2<=72) ) {
+                    alt63=1;
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("970:17: ( constraint[constraints] | predicate[constraints] )", 62, 2, input);
+                        new NoViableAltException("974:17: ( constraint[constraints] | predicate[constraints] )", 63, 2, input);
 
                     throw nvae;
                 }
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("970:17: ( constraint[constraints] | predicate[constraints] )", 62, 0, input);
+                    new NoViableAltException("974:17: ( constraint[constraints] | predicate[constraints] )", 63, 0, input);
 
                 throw nvae;
             }
-            switch (alt62) {
+            switch (alt63) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:970:18: constraint[constraints]
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:974:18: constraint[constraints]
                     {
-                    following.push(FOLLOW_constraint_in_constraints2734);
+                    following.push(FOLLOW_constraint_in_constraints2746);
                     constraint(constraints);
                     following.pop();
 
@@ -4748,9 +4785,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:970:42: predicate[constraints]
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:974:42: predicate[constraints]
                     {
-                    following.push(FOLLOW_predicate_in_constraints2737);
+                    following.push(FOLLOW_predicate_in_constraints2749);
                     predicate(constraints);
                     following.pop();
 
@@ -4760,80 +4797,80 @@
 
             }
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:971:17: ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )*
-            loop64:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:975:17: ( opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] ) )*
+            loop65:
             do {
-                int alt64=2;
-                alt64 = dfa64.predict(input); 
-                switch (alt64) {
+                int alt65=2;
+                alt65 = dfa65.predict(input); 
+                switch (alt65) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:971:19: opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] )
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:975:19: opt_eol ',' opt_eol ( constraint[constraints] | predicate[constraints] )
             	    {
-            	    following.push(FOLLOW_opt_eol_in_constraints2745);
+            	    following.push(FOLLOW_opt_eol_in_constraints2757);
             	    opt_eol();
             	    following.pop();
 
-            	    match(input,24,FOLLOW_24_in_constraints2747); 
-            	    following.push(FOLLOW_opt_eol_in_constraints2749);
+            	    match(input,24,FOLLOW_24_in_constraints2759); 
+            	    following.push(FOLLOW_opt_eol_in_constraints2761);
             	    opt_eol();
             	    following.pop();
 
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:971:39: ( constraint[constraints] | predicate[constraints] )
-            	    int alt63=2;
-            	    int LA63_0 = input.LA(1);
-            	    if ( LA63_0==EOL||LA63_0==15 ) {
-            	        alt63=1;
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:975:39: ( constraint[constraints] | predicate[constraints] )
+            	    int alt64=2;
+            	    int LA64_0 = input.LA(1);
+            	    if ( LA64_0==EOL||LA64_0==15 ) {
+            	        alt64=1;
             	    }
-            	    else if ( LA63_0==ID ) {
-            	        int LA63_2 = input.LA(2);
-            	        if ( LA63_2==33 ) {
-            	            int LA63_3 = input.LA(3);
-            	            if ( LA63_3==ID ) {
-            	                int LA63_17 = input.LA(4);
-            	                if ( LA63_17==56 ) {
-            	                    alt63=2;
+            	    else if ( LA64_0==ID ) {
+            	        int LA64_2 = input.LA(2);
+            	        if ( LA64_2==33 ) {
+            	            int LA64_3 = input.LA(3);
+            	            if ( LA64_3==ID ) {
+            	                int LA64_17 = input.LA(4);
+            	                if ( LA64_17==56 ) {
+            	                    alt64=2;
             	                }
-            	                else if ( LA63_17==EOL||LA63_17==15||(LA63_17>=24 && LA63_17<=25)||(LA63_17>=63 && LA63_17<=72) ) {
-            	                    alt63=1;
+            	                else if ( LA64_17==EOL||LA64_17==15||(LA64_17>=24 && LA64_17<=25)||(LA64_17>=63 && LA64_17<=72) ) {
+            	                    alt64=1;
             	                }
             	                else {
             	                    NoViableAltException nvae =
-            	                        new NoViableAltException("971:39: ( constraint[constraints] | predicate[constraints] )", 63, 17, input);
+            	                        new NoViableAltException("975:39: ( constraint[constraints] | predicate[constraints] )", 64, 17, input);
 
             	                    throw nvae;
             	                }
             	            }
-            	            else if ( LA63_3==EOL||LA63_3==15 ) {
-            	                alt63=1;
+            	            else if ( LA64_3==EOL||LA64_3==15 ) {
+            	                alt64=1;
             	            }
             	            else {
             	                NoViableAltException nvae =
-            	                    new NoViableAltException("971:39: ( constraint[constraints] | predicate[constraints] )", 63, 3, input);
+            	                    new NoViableAltException("975:39: ( constraint[constraints] | predicate[constraints] )", 64, 3, input);
 
             	                throw nvae;
             	            }
             	        }
-            	        else if ( LA63_2==EOL||LA63_2==15||(LA63_2>=24 && LA63_2<=25)||(LA63_2>=63 && LA63_2<=72) ) {
-            	            alt63=1;
+            	        else if ( LA64_2==EOL||LA64_2==15||(LA64_2>=24 && LA64_2<=25)||(LA64_2>=63 && LA64_2<=72) ) {
+            	            alt64=1;
             	        }
             	        else {
             	            NoViableAltException nvae =
-            	                new NoViableAltException("971:39: ( constraint[constraints] | predicate[constraints] )", 63, 2, input);
+            	                new NoViableAltException("975:39: ( constraint[constraints] | predicate[constraints] )", 64, 2, input);
 
             	            throw nvae;
             	        }
             	    }
             	    else {
             	        NoViableAltException nvae =
-            	            new NoViableAltException("971:39: ( constraint[constraints] | predicate[constraints] )", 63, 0, input);
+            	            new NoViableAltException("975:39: ( constraint[constraints] | predicate[constraints] )", 64, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt63) {
+            	    switch (alt64) {
             	        case 1 :
-            	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:971:40: constraint[constraints]
+            	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:975:40: constraint[constraints]
             	            {
-            	            following.push(FOLLOW_constraint_in_constraints2752);
+            	            following.push(FOLLOW_constraint_in_constraints2764);
             	            constraint(constraints);
             	            following.pop();
 
@@ -4841,9 +4878,9 @@
             	            }
             	            break;
             	        case 2 :
-            	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:971:64: predicate[constraints]
+            	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:975:64: predicate[constraints]
             	            {
-            	            following.push(FOLLOW_predicate_in_constraints2755);
+            	            following.push(FOLLOW_predicate_in_constraints2767);
             	            predicate(constraints);
             	            following.pop();
 
@@ -4858,11 +4895,11 @@
             	    break;
 
             	default :
-            	    break loop64;
+            	    break loop65;
                 }
             } while (true);
 
-            following.push(FOLLOW_opt_eol_in_constraints2763);
+            following.push(FOLLOW_opt_eol_in_constraints2775);
             opt_eol();
             following.pop();
 
@@ -4882,7 +4919,7 @@
 
 
     // $ANTLR start constraint
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:975:1: constraint[List constraints] : opt_eol (fb= ID opt_eol ':' opt_eol )? f= ID opt_eol (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )? opt_eol ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:979:1: constraint[List constraints] : opt_eol (fb= ID opt_eol ':' opt_eol )? f= ID opt_eol (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )? opt_eol ;
     public void constraint(List constraints) throws RecognitionException {   
         Token fb=null;
         Token f=null;
@@ -4896,31 +4933,31 @@
 
 
         
-        		PatternDescr d = null;
+        		BaseDescr d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:979:17: ( opt_eol (fb= ID opt_eol ':' opt_eol )? f= ID opt_eol (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )? opt_eol )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:979:17: opt_eol (fb= ID opt_eol ':' opt_eol )? f= ID opt_eol (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )? opt_eol
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:983:17: ( opt_eol (fb= ID opt_eol ':' opt_eol )? f= ID opt_eol (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )? opt_eol )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:983:17: opt_eol (fb= ID opt_eol ':' opt_eol )? f= ID opt_eol (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )? opt_eol
             {
-            following.push(FOLLOW_opt_eol_in_constraint2782);
+            following.push(FOLLOW_opt_eol_in_constraint2794);
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:980:17: (fb= ID opt_eol ':' opt_eol )?
-            int alt65=2;
-            alt65 = dfa65.predict(input); 
-            switch (alt65) {
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:984:17: (fb= ID opt_eol ':' opt_eol )?
+            int alt66=2;
+            alt66 = dfa66.predict(input); 
+            switch (alt66) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:980:19: fb= ID opt_eol ':' opt_eol
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:984:19: fb= ID opt_eol ':' opt_eol
                     {
                     fb=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_constraint2790); 
-                    following.push(FOLLOW_opt_eol_in_constraint2792);
+                    match(input,ID,FOLLOW_ID_in_constraint2802); 
+                    following.push(FOLLOW_opt_eol_in_constraint2804);
                     opt_eol();
                     following.pop();
 
-                    match(input,33,FOLLOW_33_in_constraint2794); 
-                    following.push(FOLLOW_opt_eol_in_constraint2796);
+                    match(input,33,FOLLOW_33_in_constraint2806); 
+                    following.push(FOLLOW_opt_eol_in_constraint2808);
                     opt_eol();
                     following.pop();
 
@@ -4931,7 +4968,7 @@
             }
 
             f=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_constraint2806); 
+            match(input,ID,FOLLOW_ID_in_constraint2818); 
             
             
             			if ( fb != null ) {
@@ -4948,51 +4985,51 @@
             									
             			
             		
-            following.push(FOLLOW_opt_eol_in_constraint2820);
+            following.push(FOLLOW_opt_eol_in_constraint2832);
             opt_eol();
             following.pop();
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:998:33: (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )?
-            int alt69=2;
-            int LA69_0 = input.LA(1);
-            if ( (LA69_0>=63 && LA69_0<=72) ) {
-                alt69=1;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1002:33: (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )?
+            int alt70=2;
+            int LA70_0 = input.LA(1);
+            if ( (LA70_0>=63 && LA70_0<=72) ) {
+                alt70=1;
             }
-            else if ( LA69_0==EOL||LA69_0==15||(LA69_0>=24 && LA69_0<=25) ) {
-                alt69=2;
+            else if ( LA70_0==EOL||LA70_0==15||(LA70_0>=24 && LA70_0<=25) ) {
+                alt70=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("998:33: (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= (\'&\'|\'|\')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )?", 69, 0, input);
+                    new NoViableAltException("1002:33: (op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= (\'&\'|\'|\')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )* )?", 70, 0, input);
 
                 throw nvae;
             }
-            switch (alt69) {
+            switch (alt70) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:998:41: op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )*
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1002:41: op= operator opt_eol (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )*
                     {
-                    following.push(FOLLOW_operator_in_constraint2826);
+                    following.push(FOLLOW_operator_in_constraint2838);
                     op=operator();
                     following.pop();
 
-                    following.push(FOLLOW_opt_eol_in_constraint2828);
+                    following.push(FOLLOW_opt_eol_in_constraint2840);
                     opt_eol();
                     following.pop();
 
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1000:41: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )
-                    int alt66=4;
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1004:41: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )
+                    int alt67=4;
                     switch ( input.LA(1) ) {
                     case ID:
-                        int LA66_1 = input.LA(2);
-                        if ( LA66_1==19 ) {
-                            alt66=2;
+                        int LA67_1 = input.LA(2);
+                        if ( LA67_1==19 ) {
+                            alt67=2;
                         }
-                        else if ( LA66_1==EOL||LA66_1==15||(LA66_1>=24 && LA66_1<=25)||(LA66_1>=54 && LA66_1<=55) ) {
-                            alt66=1;
+                        else if ( LA67_1==EOL||LA67_1==15||(LA67_1>=24 && LA67_1<=25)||(LA67_1>=54 && LA67_1<=55) ) {
+                            alt67=1;
                         }
                         else {
                             NoViableAltException nvae =
-                                new NoViableAltException("1000:41: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 66, 1, input);
+                                new NoViableAltException("1004:41: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 67, 1, input);
 
                             throw nvae;
                         }
@@ -5001,25 +5038,25 @@
                     case BOOL:
                     case STRING:
                     case FLOAT:
-                    case 48:
-                        alt66=3;
+                    case 50:
+                        alt67=3;
                         break;
                     case 23:
-                        alt66=4;
+                        alt67=4;
                         break;
                     default:
                         NoViableAltException nvae =
-                            new NoViableAltException("1000:41: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 66, 0, input);
+                            new NoViableAltException("1004:41: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 67, 0, input);
 
                         throw nvae;
                     }
 
-                    switch (alt66) {
+                    switch (alt67) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1000:49: bvc= ID
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1004:49: bvc= ID
                             {
                             bvc=(Token)input.LT(1);
-                            match(input,ID,FOLLOW_ID_in_constraint2846); 
+                            match(input,ID,FOLLOW_ID_in_constraint2858); 
                             
                             							
                             														
@@ -5033,9 +5070,9 @@
                             }
                             break;
                         case 2 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1011:49: lc= enum_constraint
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1015:49: lc= enum_constraint
                             {
-                            following.push(FOLLOW_enum_constraint_in_constraint2871);
+                            following.push(FOLLOW_enum_constraint_in_constraint2883);
                             lc=enum_constraint();
                             following.pop();
 
@@ -5050,9 +5087,9 @@
                             }
                             break;
                         case 3 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1020:49: lc= literal_constraint
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1024:49: lc= literal_constraint
                             {
-                            following.push(FOLLOW_literal_constraint_in_constraint2903);
+                            following.push(FOLLOW_literal_constraint_in_constraint2915);
                             lc=literal_constraint();
                             following.pop();
 
@@ -5067,9 +5104,9 @@
                             }
                             break;
                         case 4 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1028:49: rvc= retval_constraint
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1032:49: rvc= retval_constraint
                             {
-                            following.push(FOLLOW_retval_constraint_in_constraint2923);
+                            following.push(FOLLOW_retval_constraint_in_constraint2935);
                             rvc=retval_constraint();
                             following.pop();
 
@@ -5088,19 +5125,19 @@
 
                     }
 
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1039:41: (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )*
-                    loop68:
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1043:41: (con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint ) )*
+                    loop69:
                     do {
-                        int alt68=2;
-                        int LA68_0 = input.LA(1);
-                        if ( (LA68_0>=54 && LA68_0<=55) ) {
-                            alt68=1;
+                        int alt69=2;
+                        int LA69_0 = input.LA(1);
+                        if ( (LA69_0>=54 && LA69_0<=55) ) {
+                            alt69=1;
                         }
 
 
-                        switch (alt68) {
+                        switch (alt69) {
                     	case 1 :
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1040:49: con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1044:49: con= ('&'|'|')op= operator (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )
                     	    {
                     	    con=(Token)input.LT(1);
                     	    if ( (input.LA(1)>=54 && input.LA(1)<=55) ) {
@@ -5110,7 +5147,7 @@
                     	    else {
                     	        MismatchedSetException mse =
                     	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_constraint2958);    throw mse;
+                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_constraint2970);    throw mse;
                     	    }
 
                     	    
@@ -5120,24 +5157,24 @@
                     	    								fc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR));	
                     	    							}							
                     	    						
-                    	    following.push(FOLLOW_operator_in_constraint2980);
+                    	    following.push(FOLLOW_operator_in_constraint2992);
                     	    op=operator();
                     	    following.pop();
 
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1050:49: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )
-                    	    int alt67=4;
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1054:49: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )
+                    	    int alt68=4;
                     	    switch ( input.LA(1) ) {
                     	    case ID:
-                    	        int LA67_1 = input.LA(2);
-                    	        if ( LA67_1==19 ) {
-                    	            alt67=2;
+                    	        int LA68_1 = input.LA(2);
+                    	        if ( LA68_1==19 ) {
+                    	            alt68=2;
                     	        }
-                    	        else if ( LA67_1==EOL||LA67_1==15||(LA67_1>=24 && LA67_1<=25)||(LA67_1>=54 && LA67_1<=55) ) {
-                    	            alt67=1;
+                    	        else if ( LA68_1==EOL||LA68_1==15||(LA68_1>=24 && LA68_1<=25)||(LA68_1>=54 && LA68_1<=55) ) {
+                    	            alt68=1;
                     	        }
                     	        else {
                     	            NoViableAltException nvae =
-                    	                new NoViableAltException("1050:49: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 67, 1, input);
+                    	                new NoViableAltException("1054:49: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 68, 1, input);
 
                     	            throw nvae;
                     	        }
@@ -5146,25 +5183,25 @@
                     	    case BOOL:
                     	    case STRING:
                     	    case FLOAT:
-                    	    case 48:
-                    	        alt67=3;
+                    	    case 50:
+                    	        alt68=3;
                     	        break;
                     	    case 23:
-                    	        alt67=4;
+                    	        alt68=4;
                     	        break;
                     	    default:
                     	        NoViableAltException nvae =
-                    	            new NoViableAltException("1050:49: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 67, 0, input);
+                    	            new NoViableAltException("1054:49: (bvc= ID | lc= enum_constraint | lc= literal_constraint | rvc= retval_constraint )", 68, 0, input);
 
                     	        throw nvae;
                     	    }
 
-                    	    switch (alt67) {
+                    	    switch (alt68) {
                     	        case 1 :
-                    	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1050:57: bvc= ID
+                    	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1054:57: bvc= ID
                     	            {
                     	            bvc=(Token)input.LT(1);
-                    	            match(input,ID,FOLLOW_ID_in_constraint2992); 
+                    	            match(input,ID,FOLLOW_ID_in_constraint3004); 
                     	            
                     	            								VariableRestrictionDescr vd = new VariableRestrictionDescr(op, bvc.getText());
                     	            								fc.addRestriction(vd);
@@ -5173,9 +5210,9 @@
                     	            }
                     	            break;
                     	        case 2 :
-                    	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1056:57: lc= enum_constraint
+                    	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1060:57: lc= enum_constraint
                     	            {
-                    	            following.push(FOLLOW_enum_constraint_in_constraint3020);
+                    	            following.push(FOLLOW_enum_constraint_in_constraint3032);
                     	            lc=enum_constraint();
                     	            following.pop();
 
@@ -5188,9 +5225,9 @@
                     	            }
                     	            break;
                     	        case 3 :
-                    	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1063:57: lc= literal_constraint
+                    	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1067:57: lc= literal_constraint
                     	            {
-                    	            following.push(FOLLOW_literal_constraint_in_constraint3055);
+                    	            following.push(FOLLOW_literal_constraint_in_constraint3067);
                     	            lc=literal_constraint();
                     	            following.pop();
 
@@ -5203,9 +5240,9 @@
                     	            }
                     	            break;
                     	        case 4 :
-                    	            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1069:57: rvc= retval_constraint
+                    	            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1073:57: rvc= retval_constraint
                     	            {
-                    	            following.push(FOLLOW_retval_constraint_in_constraint3077);
+                    	            following.push(FOLLOW_retval_constraint_in_constraint3089);
                     	            rvc=retval_constraint();
                     	            following.pop();
 
@@ -5225,7 +5262,7 @@
                     	    break;
 
                     	default :
-                    	    break loop68;
+                    	    break loop69;
                         }
                     } while (true);
 
@@ -5235,7 +5272,7 @@
 
             }
 
-            following.push(FOLLOW_opt_eol_in_constraint3133);
+            following.push(FOLLOW_opt_eol_in_constraint3145);
             opt_eol();
             following.pop();
 
@@ -5255,7 +5292,7 @@
 
 
     // $ANTLR start literal_constraint
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1082:1: literal_constraint returns [String text] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' ) ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1086:1: literal_constraint returns [String text] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' ) ;
     public String literal_constraint() throws RecognitionException {   
         String text;
         Token t=null;
@@ -5264,76 +5301,76 @@
         		text = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1086:17: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1086:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1090:17: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1090:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' )
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1086:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' )
-            int alt70=5;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1090:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= 'null' )
+            int alt71=5;
             switch ( input.LA(1) ) {
             case STRING:
-                alt70=1;
+                alt71=1;
                 break;
             case INT:
-                alt70=2;
+                alt71=2;
                 break;
             case FLOAT:
-                alt70=3;
+                alt71=3;
                 break;
             case BOOL:
-                alt70=4;
+                alt71=4;
                 break;
-            case 48:
-                alt70=5;
+            case 50:
+                alt71=5;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("1086:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= \'null\' )", 70, 0, input);
+                    new NoViableAltException("1090:17: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= \'null\' )", 71, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt70) {
+            switch (alt71) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1086:25: t= STRING
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1090:25: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_literal_constraint3160); 
+                    match(input,STRING,FOLLOW_STRING_in_literal_constraint3172); 
                      text = getString( t ); 
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1087:25: t= INT
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1091:25: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_literal_constraint3171); 
+                    match(input,INT,FOLLOW_INT_in_literal_constraint3183); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1088:25: t= FLOAT
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1092:25: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint3184); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint3196); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1089:25: t= BOOL
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1093:25: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_literal_constraint3195); 
+                    match(input,BOOL,FOLLOW_BOOL_in_literal_constraint3207); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 5 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1090:25: t= 'null'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1094:25: t= 'null'
                     {
                     t=(Token)input.LT(1);
-                    match(input,48,FOLLOW_48_in_literal_constraint3207); 
+                    match(input,50,FOLLOW_50_in_literal_constraint3219); 
                      text = null; 
 
                     }
@@ -5357,7 +5394,7 @@
 
 
     // $ANTLR start enum_constraint
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1094:1: enum_constraint returns [String text] : (cls= ID '.' en= ID ) ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1098:1: enum_constraint returns [String text] : (cls= ID '.' en= ID ) ;
     public String enum_constraint() throws RecognitionException {   
         String text;
         Token cls=null;
@@ -5367,17 +5404,17 @@
         		text = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1098:17: ( (cls= ID '.' en= ID ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1098:17: (cls= ID '.' en= ID )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1102:17: ( (cls= ID '.' en= ID ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1102:17: (cls= ID '.' en= ID )
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1098:17: (cls= ID '.' en= ID )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1098:18: cls= ID '.' en= ID
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1102:17: (cls= ID '.' en= ID )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1102:18: cls= ID '.' en= ID
             {
             cls=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_enum_constraint3238); 
-            match(input,19,FOLLOW_19_in_enum_constraint3240); 
+            match(input,ID,FOLLOW_ID_in_enum_constraint3250); 
+            match(input,19,FOLLOW_19_in_enum_constraint3252); 
             en=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_enum_constraint3244); 
+            match(input,ID,FOLLOW_ID_in_enum_constraint3256); 
 
             }
 
@@ -5398,7 +5435,7 @@
 
 
     // $ANTLR start retval_constraint
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1101:1: retval_constraint returns [String text] : '(' c= paren_chunk ')' ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1105:1: retval_constraint returns [String text] : '(' c= paren_chunk ')' ;
     public String retval_constraint() throws RecognitionException {   
         String text;
         String c = null;
@@ -5408,15 +5445,15 @@
         		text = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1106:17: ( '(' c= paren_chunk ')' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1106:17: '(' c= paren_chunk ')'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1110:17: ( '(' c= paren_chunk ')' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1110:17: '(' c= paren_chunk ')'
             {
-            match(input,23,FOLLOW_23_in_retval_constraint3273); 
-            following.push(FOLLOW_paren_chunk_in_retval_constraint3278);
+            match(input,23,FOLLOW_23_in_retval_constraint3285); 
+            following.push(FOLLOW_paren_chunk_in_retval_constraint3290);
             c=paren_chunk();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_retval_constraint3281); 
+            match(input,25,FOLLOW_25_in_retval_constraint3293); 
              text = c; 
 
             }
@@ -5434,7 +5471,7 @@
 
 
     // $ANTLR start predicate
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1109:1: predicate[List constraints] : decl= ID ':' field= ID '->' '(' text= paren_chunk ')' ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1113:1: predicate[List constraints] : decl= ID ':' field= ID '->' '(' text= paren_chunk ')' ;
     public void predicate(List constraints) throws RecognitionException {   
         Token decl=null;
         Token field=null;
@@ -5442,21 +5479,21 @@
 
 
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1111:17: (decl= ID ':' field= ID '->' '(' text= paren_chunk ')' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1111:17: decl= ID ':' field= ID '->' '(' text= paren_chunk ')'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1115:17: (decl= ID ':' field= ID '->' '(' text= paren_chunk ')' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1115:17: decl= ID ':' field= ID '->' '(' text= paren_chunk ')'
             {
             decl=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_predicate3299); 
-            match(input,33,FOLLOW_33_in_predicate3301); 
+            match(input,ID,FOLLOW_ID_in_predicate3311); 
+            match(input,33,FOLLOW_33_in_predicate3313); 
             field=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_predicate3305); 
-            match(input,56,FOLLOW_56_in_predicate3307); 
-            match(input,23,FOLLOW_23_in_predicate3309); 
-            following.push(FOLLOW_paren_chunk_in_predicate3313);
+            match(input,ID,FOLLOW_ID_in_predicate3317); 
+            match(input,56,FOLLOW_56_in_predicate3319); 
+            match(input,23,FOLLOW_23_in_predicate3321); 
+            following.push(FOLLOW_paren_chunk_in_predicate3325);
             text=paren_chunk();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_predicate3315); 
+            match(input,25,FOLLOW_25_in_predicate3327); 
             
             			PredicateDescr d = new PredicateDescr(field.getText(), decl.getText(), text );
             			constraints.add( d );
@@ -5477,7 +5514,7 @@
 
 
     // $ANTLR start paren_chunk
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1118:1: paren_chunk returns [String text] : ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1122:1: paren_chunk returns [String text] : ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )* ;
     public String paren_chunk() throws RecognitionException {   
         String text;
         Token any=null;
@@ -5488,22 +5525,22 @@
         		text = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1124:18: ( ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1124:18: ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1128:18: ( ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1128:18: ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )*
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1124:18: ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )*
-            loop71:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1128:18: ( options {greedy=false; } : '(' c= paren_chunk ')' | any= . )*
+            loop72:
             do {
-                int alt71=3;
+                int alt72=3;
                 switch ( input.LA(1) ) {
                 case EOL:
-                    alt71=3;
+                    alt72=3;
                     break;
                 case 25:
-                    alt71=3;
+                    alt72=3;
                     break;
                 case 23:
-                    alt71=1;
+                    alt72=1;
                     break;
                 case ID:
                 case INT:
@@ -5571,21 +5608,21 @@
                 case 70:
                 case 71:
                 case 72:
-                    alt71=2;
+                    alt72=2;
                     break;
 
                 }
 
-                switch (alt71) {
+                switch (alt72) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1125:25: '(' c= paren_chunk ')'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1129:25: '(' c= paren_chunk ')'
             	    {
-            	    match(input,23,FOLLOW_23_in_paren_chunk3361); 
-            	    following.push(FOLLOW_paren_chunk_in_paren_chunk3365);
+            	    match(input,23,FOLLOW_23_in_paren_chunk3373); 
+            	    following.push(FOLLOW_paren_chunk_in_paren_chunk3377);
             	    c=paren_chunk();
             	    following.pop();
 
-            	    match(input,25,FOLLOW_25_in_paren_chunk3367); 
+            	    match(input,25,FOLLOW_25_in_paren_chunk3379); 
             	    
             	    				if ( c == null ) {
             	    					c = "";
@@ -5600,7 +5637,7 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1136:19: any= .
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1140:19: any= .
             	    {
             	    any=(Token)input.LT(1);
             	    matchAny(input); 
@@ -5616,7 +5653,7 @@
             	    break;
 
             	default :
-            	    break loop71;
+            	    break loop72;
                 }
             } while (true);
 
@@ -5636,7 +5673,7 @@
 
 
     // $ANTLR start paren_chunk2
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1148:1: paren_chunk2 returns [String text] : ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1152:1: paren_chunk2 returns [String text] : ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )* ;
     public String paren_chunk2() throws RecognitionException {   
         String text;
         Token any=null;
@@ -5647,19 +5684,19 @@
         		text = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1154:18: ( ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1154:18: ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1158:18: ( ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1158:18: ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )*
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1154:18: ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )*
-            loop72:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1158:18: ( options {greedy=false; } : '(' c= paren_chunk2 ')' | any= . )*
+            loop73:
             do {
-                int alt72=3;
+                int alt73=3;
                 switch ( input.LA(1) ) {
                 case 25:
-                    alt72=3;
+                    alt73=3;
                     break;
                 case 23:
-                    alt72=1;
+                    alt73=1;
                     break;
                 case EOL:
                 case ID:
@@ -5728,21 +5765,21 @@
                 case 70:
                 case 71:
                 case 72:
-                    alt72=2;
+                    alt73=2;
                     break;
 
                 }
 
-                switch (alt72) {
+                switch (alt73) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1155:25: '(' c= paren_chunk2 ')'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1159:25: '(' c= paren_chunk2 ')'
             	    {
-            	    match(input,23,FOLLOW_23_in_paren_chunk23438); 
-            	    following.push(FOLLOW_paren_chunk2_in_paren_chunk23442);
+            	    match(input,23,FOLLOW_23_in_paren_chunk23450); 
+            	    following.push(FOLLOW_paren_chunk2_in_paren_chunk23454);
             	    c=paren_chunk2();
             	    following.pop();
 
-            	    match(input,25,FOLLOW_25_in_paren_chunk23444); 
+            	    match(input,25,FOLLOW_25_in_paren_chunk23456); 
             	    
             	    				if ( c == null ) {
             	    					c = "";
@@ -5757,7 +5794,7 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1166:19: any= .
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1170:19: any= .
             	    {
             	    any=(Token)input.LT(1);
             	    matchAny(input); 
@@ -5773,7 +5810,7 @@
             	    break;
 
             	default :
-            	    break loop72;
+            	    break loop73;
                 }
             } while (true);
 
@@ -5793,7 +5830,7 @@
 
 
     // $ANTLR start curly_chunk
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1177:1: curly_chunk returns [String text] : ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1181:1: curly_chunk returns [String text] : ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )* ;
     public String curly_chunk() throws RecognitionException {   
         String text;
         Token any=null;
@@ -5804,19 +5841,19 @@
         		text = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1183:17: ( ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1183:17: ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1187:17: ( ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1187:17: ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )*
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1183:17: ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )*
-            loop73:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1187:17: ( options {greedy=false; } : '{' c= curly_chunk '}' | any= . )*
+            loop74:
             do {
-                int alt73=3;
+                int alt74=3;
                 switch ( input.LA(1) ) {
                 case 27:
-                    alt73=3;
+                    alt74=3;
                     break;
                 case 26:
-                    alt73=1;
+                    alt74=1;
                     break;
                 case EOL:
                 case ID:
@@ -5885,21 +5922,21 @@
                 case 70:
                 case 71:
                 case 72:
-                    alt73=2;
+                    alt74=2;
                     break;
 
                 }
 
-                switch (alt73) {
+                switch (alt74) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1184:25: '{' c= curly_chunk '}'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1188:25: '{' c= curly_chunk '}'
             	    {
-            	    match(input,26,FOLLOW_26_in_curly_chunk3513); 
-            	    following.push(FOLLOW_curly_chunk_in_curly_chunk3517);
+            	    match(input,26,FOLLOW_26_in_curly_chunk3525); 
+            	    following.push(FOLLOW_curly_chunk_in_curly_chunk3529);
             	    c=curly_chunk();
             	    following.pop();
 
-            	    match(input,27,FOLLOW_27_in_curly_chunk3519); 
+            	    match(input,27,FOLLOW_27_in_curly_chunk3531); 
             	    
             	    				//System.err.println( "chunk [" + c + "]" );
             	    				if ( c == null ) {
@@ -5915,7 +5952,7 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1196:19: any= .
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1200:19: any= .
             	    {
             	    any=(Token)input.LT(1);
             	    matchAny(input); 
@@ -5932,7 +5969,7 @@
             	    break;
 
             	default :
-            	    break loop73;
+            	    break loop74;
                 }
             } while (true);
 
@@ -5952,40 +5989,40 @@
 
 
     // $ANTLR start lhs_or
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1208:1: lhs_or returns [PatternDescr d] : left= lhs_and ( ('or'|'||') opt_eol right= lhs_and )* ;
-    public PatternDescr lhs_or() throws RecognitionException {   
-        PatternDescr d;
-        PatternDescr left = null;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1212:1: lhs_or returns [BaseDescr d] : left= lhs_and ( ('or'|'||') opt_eol right= lhs_and )* ;
+    public BaseDescr lhs_or() throws RecognitionException {   
+        BaseDescr d;
+        BaseDescr left = null;
 
-        PatternDescr right = null;
+        BaseDescr right = null;
 
 
         
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1213:17: (left= lhs_and ( ('or'|'||') opt_eol right= lhs_and )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1213:17: left= lhs_and ( ('or'|'||') opt_eol right= lhs_and )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1217:17: (left= lhs_and ( ('or'|'||') opt_eol right= lhs_and )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1217:17: left= lhs_and ( ('or'|'||') opt_eol right= lhs_and )*
             {
              OrDescr or = null; 
-            following.push(FOLLOW_lhs_and_in_lhs_or3577);
+            following.push(FOLLOW_lhs_and_in_lhs_or3589);
             left=lhs_and();
             following.pop();
 
             d = left; 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1215:17: ( ('or'|'||') opt_eol right= lhs_and )*
-            loop74:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1219:17: ( ('or'|'||') opt_eol right= lhs_and )*
+            loop75:
             do {
-                int alt74=2;
-                int LA74_0 = input.LA(1);
-                if ( (LA74_0>=52 && LA74_0<=53) ) {
-                    alt74=1;
+                int alt75=2;
+                int LA75_0 = input.LA(1);
+                if ( (LA75_0>=52 && LA75_0<=53) ) {
+                    alt75=1;
                 }
 
 
-                switch (alt74) {
+                switch (alt75) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1215:19: ('or'|'||') opt_eol right= lhs_and
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1219:19: ('or'|'||') opt_eol right= lhs_and
             	    {
             	    if ( (input.LA(1)>=52 && input.LA(1)<=53) ) {
             	        input.consume();
@@ -5994,14 +6031,14 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or3586);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or3598);    throw mse;
             	    }
 
-            	    following.push(FOLLOW_opt_eol_in_lhs_or3591);
+            	    following.push(FOLLOW_opt_eol_in_lhs_or3603);
             	    opt_eol();
             	    following.pop();
 
-            	    following.push(FOLLOW_lhs_and_in_lhs_or3598);
+            	    following.push(FOLLOW_lhs_and_in_lhs_or3610);
             	    right=lhs_and();
             	    following.pop();
 
@@ -6019,7 +6056,7 @@
             	    break;
 
             	default :
-            	    break loop74;
+            	    break loop75;
                 }
             } while (true);
 
@@ -6039,40 +6076,40 @@
 
 
     // $ANTLR start lhs_and
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1229:1: lhs_and returns [PatternDescr d] : left= lhs_unary ( ('and'|'&&') opt_eol right= lhs_unary )* ;
-    public PatternDescr lhs_and() throws RecognitionException {   
-        PatternDescr d;
-        PatternDescr left = null;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1233:1: lhs_and returns [BaseDescr d] : left= lhs_unary ( ('and'|'&&') opt_eol right= lhs_unary )* ;
+    public BaseDescr lhs_and() throws RecognitionException {   
+        BaseDescr d;
+        BaseDescr left = null;
 
-        PatternDescr right = null;
+        BaseDescr right = null;
 
 
         
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1234:17: (left= lhs_unary ( ('and'|'&&') opt_eol right= lhs_unary )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1234:17: left= lhs_unary ( ('and'|'&&') opt_eol right= lhs_unary )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1238:17: (left= lhs_unary ( ('and'|'&&') opt_eol right= lhs_unary )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1238:17: left= lhs_unary ( ('and'|'&&') opt_eol right= lhs_unary )*
             {
              AndDescr and = null; 
-            following.push(FOLLOW_lhs_unary_in_lhs_and3638);
+            following.push(FOLLOW_lhs_unary_in_lhs_and3650);
             left=lhs_unary();
             following.pop();
 
              d = left; 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1236:17: ( ('and'|'&&') opt_eol right= lhs_unary )*
-            loop75:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1240:17: ( ('and'|'&&') opt_eol right= lhs_unary )*
+            loop76:
             do {
-                int alt75=2;
-                int LA75_0 = input.LA(1);
-                if ( (LA75_0>=57 && LA75_0<=58) ) {
-                    alt75=1;
+                int alt76=2;
+                int LA76_0 = input.LA(1);
+                if ( (LA76_0>=57 && LA76_0<=58) ) {
+                    alt76=1;
                 }
 
 
-                switch (alt75) {
+                switch (alt76) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1236:19: ('and'|'&&') opt_eol right= lhs_unary
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1240:19: ('and'|'&&') opt_eol right= lhs_unary
             	    {
             	    if ( (input.LA(1)>=57 && input.LA(1)<=58) ) {
             	        input.consume();
@@ -6081,14 +6118,14 @@
             	    else {
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and3647);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and3659);    throw mse;
             	    }
 
-            	    following.push(FOLLOW_opt_eol_in_lhs_and3652);
+            	    following.push(FOLLOW_opt_eol_in_lhs_and3664);
             	    opt_eol();
             	    following.pop();
 
-            	    following.push(FOLLOW_lhs_unary_in_lhs_and3659);
+            	    following.push(FOLLOW_lhs_unary_in_lhs_and3671);
             	    right=lhs_unary();
             	    following.pop();
 
@@ -6106,7 +6143,7 @@
             	    break;
 
             	default :
-            	    break loop75;
+            	    break loop76;
                 }
             } while (true);
 
@@ -6126,10 +6163,10 @@
 
 
     // $ANTLR start lhs_unary
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1250:1: lhs_unary returns [PatternDescr d] : (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' ) ;
-    public PatternDescr lhs_unary() throws RecognitionException {   
-        PatternDescr d;
-        PatternDescr u = null;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1254:1: lhs_unary returns [BaseDescr d] : (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' ) ;
+    public BaseDescr lhs_unary() throws RecognitionException {   
+        BaseDescr d;
+        BaseDescr u = null;
 
         FromDescr fm = null;
 
@@ -6142,39 +6179,39 @@
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1254:17: ( (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1254:17: (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:17: ( (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:17: (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' )
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1254:17: (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' )
-            int alt77=5;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:17: (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | '(' opt_eol u= lhs opt_eol ')' )
+            int alt78=5;
             switch ( input.LA(1) ) {
             case 59:
-                alt77=1;
+                alt78=1;
                 break;
             case 60:
-                alt77=2;
+                alt78=2;
                 break;
             case 61:
-                alt77=3;
+                alt78=3;
                 break;
             case ID:
-                alt77=4;
+                alt78=4;
                 break;
             case 23:
-                alt77=5;
+                alt78=5;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("1254:17: (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | \'(\' opt_eol u= lhs opt_eol \')\' )", 77, 0, input);
+                    new NoViableAltException("1258:17: (u= lhs_exist | u= lhs_not | u= lhs_eval | u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )? | \'(\' opt_eol u= lhs opt_eol \')\' )", 78, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt77) {
+            switch (alt78) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1254:25: u= lhs_exist
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:25: u= lhs_exist
                     {
-                    following.push(FOLLOW_lhs_exist_in_lhs_unary3697);
+                    following.push(FOLLOW_lhs_exist_in_lhs_unary3709);
                     u=lhs_exist();
                     following.pop();
 
@@ -6183,9 +6220,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1255:25: u= lhs_not
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1259:25: u= lhs_not
                     {
-                    following.push(FOLLOW_lhs_not_in_lhs_unary3707);
+                    following.push(FOLLOW_lhs_not_in_lhs_unary3719);
                     u=lhs_not();
                     following.pop();
 
@@ -6194,9 +6231,9 @@
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1256:25: u= lhs_eval
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1260:25: u= lhs_eval
                     {
-                    following.push(FOLLOW_lhs_eval_in_lhs_unary3717);
+                    following.push(FOLLOW_lhs_eval_in_lhs_unary3729);
                     u=lhs_eval();
                     following.pop();
 
@@ -6205,24 +6242,24 @@
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1257:25: u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )?
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1261:25: u= lhs_column ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )?
                     {
-                    following.push(FOLLOW_lhs_column_in_lhs_unary3731);
+                    following.push(FOLLOW_lhs_column_in_lhs_unary3743);
                     u=lhs_column();
                     following.pop();
 
                     d=u;
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:27: ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )?
-                    int alt76=4;
-                    alt76 = dfa76.predict(input); 
-                    switch (alt76) {
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1262:27: ( (fm= from_statement ) | (ac= accumulate_statement ) | (cs= collect_statement ) )?
+                    int alt77=4;
+                    alt77 = dfa77.predict(input); 
+                    switch (alt77) {
                         case 1 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:28: (fm= from_statement )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1262:28: (fm= from_statement )
                             {
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:28: (fm= from_statement )
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1258:29: fm= from_statement
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1262:28: (fm= from_statement )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1262:29: fm= from_statement
                             {
-                            following.push(FOLLOW_from_statement_in_lhs_unary3752);
+                            following.push(FOLLOW_from_statement_in_lhs_unary3764);
                             fm=from_statement();
                             following.pop();
 
@@ -6234,12 +6271,12 @@
                             }
                             break;
                         case 2 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1259:28: (ac= accumulate_statement )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1263:28: (ac= accumulate_statement )
                             {
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1259:28: (ac= accumulate_statement )
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1259:29: ac= accumulate_statement
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1263:28: (ac= accumulate_statement )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1263:29: ac= accumulate_statement
                             {
-                            following.push(FOLLOW_accumulate_statement_in_lhs_unary3774);
+                            following.push(FOLLOW_accumulate_statement_in_lhs_unary3786);
                             ac=accumulate_statement();
                             following.pop();
 
@@ -6251,12 +6288,12 @@
                             }
                             break;
                         case 3 :
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1260:28: (cs= collect_statement )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1264:28: (cs= collect_statement )
                             {
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1260:28: (cs= collect_statement )
-                            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1260:29: cs= collect_statement
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1264:28: (cs= collect_statement )
+                            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1264:29: cs= collect_statement
                             {
-                            following.push(FOLLOW_collect_statement_in_lhs_unary3795);
+                            following.push(FOLLOW_collect_statement_in_lhs_unary3807);
                             cs=collect_statement();
                             following.pop();
 
@@ -6274,22 +6311,22 @@
                     }
                     break;
                 case 5 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1261:25: '(' opt_eol u= lhs opt_eol ')'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1265:25: '(' opt_eol u= lhs opt_eol ')'
                     {
-                    match(input,23,FOLLOW_23_in_lhs_unary3807); 
-                    following.push(FOLLOW_opt_eol_in_lhs_unary3809);
+                    match(input,23,FOLLOW_23_in_lhs_unary3819); 
+                    following.push(FOLLOW_opt_eol_in_lhs_unary3821);
                     opt_eol();
                     following.pop();
 
-                    following.push(FOLLOW_lhs_in_lhs_unary3813);
+                    following.push(FOLLOW_lhs_in_lhs_unary3825);
                     u=lhs();
                     following.pop();
 
-                    following.push(FOLLOW_opt_eol_in_lhs_unary3815);
+                    following.push(FOLLOW_opt_eol_in_lhs_unary3827);
                     opt_eol();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_lhs_unary3817); 
+                    match(input,25,FOLLOW_25_in_lhs_unary3829); 
                     d = u;
 
                     }
@@ -6313,54 +6350,54 @@
 
 
     // $ANTLR start lhs_exist
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1265:1: lhs_exist returns [PatternDescr d] : loc= 'exists' ( '(' column= lhs_column ')' | column= lhs_column ) ;
-    public PatternDescr lhs_exist() throws RecognitionException {   
-        PatternDescr d;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1269:1: lhs_exist returns [BaseDescr d] : loc= 'exists' ( '(' column= lhs_column ')' | column= lhs_column ) ;
+    public BaseDescr lhs_exist() throws RecognitionException {   
+        BaseDescr d;
         Token loc=null;
-        PatternDescr column = null;
+        BaseDescr column = null;
 
 
         
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1269:17: (loc= 'exists' ( '(' column= lhs_column ')' | column= lhs_column ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1269:17: loc= 'exists' ( '(' column= lhs_column ')' | column= lhs_column )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1273:17: (loc= 'exists' ( '(' column= lhs_column ')' | column= lhs_column ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1273:17: loc= 'exists' ( '(' column= lhs_column ')' | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,59,FOLLOW_59_in_lhs_exist3848); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1269:30: ( '(' column= lhs_column ')' | column= lhs_column )
-            int alt78=2;
-            int LA78_0 = input.LA(1);
-            if ( LA78_0==23 ) {
-                alt78=1;
+            match(input,59,FOLLOW_59_in_lhs_exist3860); 
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1273:30: ( '(' column= lhs_column ')' | column= lhs_column )
+            int alt79=2;
+            int LA79_0 = input.LA(1);
+            if ( LA79_0==23 ) {
+                alt79=1;
             }
-            else if ( LA78_0==ID ) {
-                alt78=2;
+            else if ( LA79_0==ID ) {
+                alt79=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("1269:30: ( \'(\' column= lhs_column \')\' | column= lhs_column )", 78, 0, input);
+                    new NoViableAltException("1273:30: ( \'(\' column= lhs_column \')\' | column= lhs_column )", 79, 0, input);
 
                 throw nvae;
             }
-            switch (alt78) {
+            switch (alt79) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1269:31: '(' column= lhs_column ')'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1273:31: '(' column= lhs_column ')'
                     {
-                    match(input,23,FOLLOW_23_in_lhs_exist3851); 
-                    following.push(FOLLOW_lhs_column_in_lhs_exist3855);
+                    match(input,23,FOLLOW_23_in_lhs_exist3863); 
+                    following.push(FOLLOW_lhs_column_in_lhs_exist3867);
                     column=lhs_column();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_lhs_exist3857); 
+                    match(input,25,FOLLOW_25_in_lhs_exist3869); 
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1269:59: column= lhs_column
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1273:59: column= lhs_column
                     {
-                    following.push(FOLLOW_lhs_column_in_lhs_exist3863);
+                    following.push(FOLLOW_lhs_column_in_lhs_exist3875);
                     column=lhs_column();
                     following.pop();
 
@@ -6390,54 +6427,54 @@
 
 
     // $ANTLR start lhs_not
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1276:1: lhs_not returns [NotDescr d] : loc= 'not' ( '(' column= lhs_column ')' | column= lhs_column ) ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1280:1: lhs_not returns [NotDescr d] : loc= 'not' ( '(' column= lhs_column ')' | column= lhs_column ) ;
     public NotDescr lhs_not() throws RecognitionException {   
         NotDescr d;
         Token loc=null;
-        PatternDescr column = null;
+        BaseDescr column = null;
 
 
         
         		d = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1280:17: (loc= 'not' ( '(' column= lhs_column ')' | column= lhs_column ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1280:17: loc= 'not' ( '(' column= lhs_column ')' | column= lhs_column )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1284:17: (loc= 'not' ( '(' column= lhs_column ')' | column= lhs_column ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1284:17: loc= 'not' ( '(' column= lhs_column ')' | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,60,FOLLOW_60_in_lhs_not3893); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1280:27: ( '(' column= lhs_column ')' | column= lhs_column )
-            int alt79=2;
-            int LA79_0 = input.LA(1);
-            if ( LA79_0==23 ) {
-                alt79=1;
+            match(input,60,FOLLOW_60_in_lhs_not3905); 
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1284:27: ( '(' column= lhs_column ')' | column= lhs_column )
+            int alt80=2;
+            int LA80_0 = input.LA(1);
+            if ( LA80_0==23 ) {
+                alt80=1;
             }
-            else if ( LA79_0==ID ) {
-                alt79=2;
+            else if ( LA80_0==ID ) {
+                alt80=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("1280:27: ( \'(\' column= lhs_column \')\' | column= lhs_column )", 79, 0, input);
+                    new NoViableAltException("1284:27: ( \'(\' column= lhs_column \')\' | column= lhs_column )", 80, 0, input);
 
                 throw nvae;
             }
-            switch (alt79) {
+            switch (alt80) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1280:28: '(' column= lhs_column ')'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1284:28: '(' column= lhs_column ')'
                     {
-                    match(input,23,FOLLOW_23_in_lhs_not3896); 
-                    following.push(FOLLOW_lhs_column_in_lhs_not3900);
+                    match(input,23,FOLLOW_23_in_lhs_not3908); 
+                    following.push(FOLLOW_lhs_column_in_lhs_not3912);
                     column=lhs_column();
                     following.pop();
 
-                    match(input,25,FOLLOW_25_in_lhs_not3903); 
+                    match(input,25,FOLLOW_25_in_lhs_not3915); 
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1280:57: column= lhs_column
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1284:57: column= lhs_column
                     {
-                    following.push(FOLLOW_lhs_column_in_lhs_not3909);
+                    following.push(FOLLOW_lhs_column_in_lhs_not3921);
                     column=lhs_column();
                     following.pop();
 
@@ -6467,9 +6504,9 @@
 
 
     // $ANTLR start lhs_eval
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1287:1: lhs_eval returns [PatternDescr d] : 'eval' loc= '(' c= paren_chunk2 ')' ;
-    public PatternDescr lhs_eval() throws RecognitionException {   
-        PatternDescr d;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1291:1: lhs_eval returns [BaseDescr d] : 'eval' loc= '(' c= paren_chunk2 ')' ;
+    public BaseDescr lhs_eval() throws RecognitionException {   
+        BaseDescr d;
         Token loc=null;
         String c = null;
 
@@ -6479,17 +6516,17 @@
         		String text = "";
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1292:17: ( 'eval' loc= '(' c= paren_chunk2 ')' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1292:17: 'eval' loc= '(' c= paren_chunk2 ')'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1296:17: ( 'eval' loc= '(' c= paren_chunk2 ')' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1296:17: 'eval' loc= '(' c= paren_chunk2 ')'
             {
-            match(input,61,FOLLOW_61_in_lhs_eval3935); 
+            match(input,61,FOLLOW_61_in_lhs_eval3947); 
             loc=(Token)input.LT(1);
-            match(input,23,FOLLOW_23_in_lhs_eval3939); 
-            following.push(FOLLOW_paren_chunk2_in_lhs_eval3947);
+            match(input,23,FOLLOW_23_in_lhs_eval3951); 
+            following.push(FOLLOW_paren_chunk2_in_lhs_eval3959);
             c=paren_chunk2();
             following.pop();
 
-            match(input,25,FOLLOW_25_in_lhs_eval3951); 
+            match(input,25,FOLLOW_25_in_lhs_eval3963); 
              
             			checkTrailingSemicolon( c, offset(loc.getLine()) );
             			d = new EvalDescr( c ); 
@@ -6510,7 +6547,7 @@
 
 
     // $ANTLR start dotted_name
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1301:1: dotted_name returns [String name] : id= ID ( '.' id= ID )* ( '[' ']' )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1305:1: dotted_name returns [String name] : id= ID ( '.' id= ID )* ( '[' ']' )* ;
     public String dotted_name() throws RecognitionException {   
         String name;
         Token id=null;
@@ -6519,62 +6556,62 @@
         		name = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1306:17: (id= ID ( '.' id= ID )* ( '[' ']' )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1306:17: id= ID ( '.' id= ID )* ( '[' ']' )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1310:17: (id= ID ( '.' id= ID )* ( '[' ']' )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1310:17: id= ID ( '.' id= ID )* ( '[' ']' )*
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_dotted_name3983); 
+            match(input,ID,FOLLOW_ID_in_dotted_name3995); 
              name=id.getText(); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1306:46: ( '.' id= ID )*
-            loop80:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1310:46: ( '.' id= ID )*
+            loop81:
             do {
-                int alt80=2;
-                int LA80_0 = input.LA(1);
-                if ( LA80_0==19 ) {
-                    alt80=1;
+                int alt81=2;
+                int LA81_0 = input.LA(1);
+                if ( LA81_0==19 ) {
+                    alt81=1;
                 }
 
 
-                switch (alt80) {
+                switch (alt81) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1306:48: '.' id= ID
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1310:48: '.' id= ID
             	    {
-            	    match(input,19,FOLLOW_19_in_dotted_name3989); 
+            	    match(input,19,FOLLOW_19_in_dotted_name4001); 
             	    id=(Token)input.LT(1);
-            	    match(input,ID,FOLLOW_ID_in_dotted_name3993); 
+            	    match(input,ID,FOLLOW_ID_in_dotted_name4005); 
             	     name = name + "." + id.getText(); 
 
             	    }
             	    break;
 
             	default :
-            	    break loop80;
+            	    break loop81;
                 }
             } while (true);
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1306:99: ( '[' ']' )*
-            loop81:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1310:99: ( '[' ']' )*
+            loop82:
             do {
-                int alt81=2;
-                int LA81_0 = input.LA(1);
-                if ( LA81_0==50 ) {
-                    alt81=1;
+                int alt82=2;
+                int LA82_0 = input.LA(1);
+                if ( LA82_0==43 ) {
+                    alt82=1;
                 }
 
 
-                switch (alt81) {
+                switch (alt82) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1306:101: '[' ']'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1310:101: '[' ']'
             	    {
-            	    match(input,50,FOLLOW_50_in_dotted_name4002); 
-            	    match(input,51,FOLLOW_51_in_dotted_name4004); 
+            	    match(input,43,FOLLOW_43_in_dotted_name4014); 
+            	    match(input,44,FOLLOW_44_in_dotted_name4016); 
             	     name = name + "[]";
 
             	    }
             	    break;
 
             	default :
-            	    break loop81;
+            	    break loop82;
                 }
             } while (true);
 
@@ -6594,7 +6631,7 @@
 
 
     // $ANTLR start argument_name
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1309:1: argument_name returns [String name] : id= ID ( '[' ']' )* ;
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1313:1: argument_name returns [String name] : id= ID ( '[' ']' )* ;
     public String argument_name() throws RecognitionException {   
         String name;
         Token id=null;
@@ -6603,35 +6640,35 @@
         		name = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1314:17: (id= ID ( '[' ']' )* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1314:17: id= ID ( '[' ']' )*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1318:17: (id= ID ( '[' ']' )* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1318:17: id= ID ( '[' ']' )*
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_argument_name4034); 
+            match(input,ID,FOLLOW_ID_in_argument_name4046); 
              name=id.getText(); 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1314:46: ( '[' ']' )*
-            loop82:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1318:46: ( '[' ']' )*
+            loop83:
             do {
-                int alt82=2;
-                int LA82_0 = input.LA(1);
-                if ( LA82_0==50 ) {
-                    alt82=1;
+                int alt83=2;
+                int LA83_0 = input.LA(1);
+                if ( LA83_0==43 ) {
+                    alt83=1;
                 }
 
 
-                switch (alt82) {
+                switch (alt83) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1314:48: '[' ']'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1318:48: '[' ']'
             	    {
-            	    match(input,50,FOLLOW_50_in_argument_name4040); 
-            	    match(input,51,FOLLOW_51_in_argument_name4042); 
+            	    match(input,43,FOLLOW_43_in_argument_name4052); 
+            	    match(input,44,FOLLOW_44_in_argument_name4054); 
             	     name = name + "[]";
 
             	    }
             	    break;
 
             	default :
-            	    break loop82;
+            	    break loop83;
                 }
             } while (true);
 
@@ -6651,7 +6688,7 @@
 
 
     // $ANTLR start word
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1318:1: word returns [String word] : (id= ID | 'import' | 'use' | 'rule' | 'query' | 'salience' | 'no-loop' | 'when' | 'then' | 'end' | str= STRING );
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1322:1: word returns [String word] : (id= ID | 'import' | 'use' | 'rule' | 'query' | 'salience' | 'no-loop' | 'when' | 'then' | 'end' | str= STRING );
     public String word() throws RecognitionException {   
         String word;
         Token id=null;
@@ -6661,136 +6698,136 @@
         		word = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1322:17: (id= ID | 'import' | 'use' | 'rule' | 'query' | 'salience' | 'no-loop' | 'when' | 'then' | 'end' | str= STRING )
-            int alt83=11;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1326:17: (id= ID | 'import' | 'use' | 'rule' | 'query' | 'salience' | 'no-loop' | 'when' | 'then' | 'end' | str= STRING )
+            int alt84=11;
             switch ( input.LA(1) ) {
             case ID:
-                alt83=1;
+                alt84=1;
                 break;
             case 17:
-                alt83=2;
+                alt84=2;
                 break;
             case 62:
-                alt83=3;
+                alt84=3;
                 break;
             case 31:
-                alt83=4;
+                alt84=4;
                 break;
             case 28:
-                alt83=5;
+                alt84=5;
                 break;
             case 36:
-                alt83=6;
+                alt84=6;
                 break;
             case 37:
-                alt83=7;
+                alt84=7;
                 break;
             case 32:
-                alt83=8;
+                alt84=8;
                 break;
             case 34:
-                alt83=9;
+                alt84=9;
                 break;
             case 29:
-                alt83=10;
+                alt84=10;
                 break;
             case STRING:
-                alt83=11;
+                alt84=11;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("1318:1: word returns [String word] : (id= ID | \'import\' | \'use\' | \'rule\' | \'query\' | \'salience\' | \'no-loop\' | \'when\' | \'then\' | \'end\' | str= STRING );", 83, 0, input);
+                    new NoViableAltException("1322:1: word returns [String word] : (id= ID | \'import\' | \'use\' | \'rule\' | \'query\' | \'salience\' | \'no-loop\' | \'when\' | \'then\' | \'end\' | str= STRING );", 84, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt83) {
+            switch (alt84) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1322:17: id= ID
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1326:17: id= ID
                     {
                     id=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_word4070); 
+                    match(input,ID,FOLLOW_ID_in_word4082); 
                      word=id.getText(); 
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1323:17: 'import'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1327:17: 'import'
                     {
-                    match(input,17,FOLLOW_17_in_word4082); 
+                    match(input,17,FOLLOW_17_in_word4094); 
                      word="import"; 
 
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1324:17: 'use'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1328:17: 'use'
                     {
-                    match(input,62,FOLLOW_62_in_word4091); 
+                    match(input,62,FOLLOW_62_in_word4103); 
                      word="use"; 
 
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1325:17: 'rule'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1329:17: 'rule'
                     {
-                    match(input,31,FOLLOW_31_in_word4103); 
+                    match(input,31,FOLLOW_31_in_word4115); 
                      word="rule"; 
 
                     }
                     break;
                 case 5 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1326:17: 'query'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1330:17: 'query'
                     {
-                    match(input,28,FOLLOW_28_in_word4114); 
+                    match(input,28,FOLLOW_28_in_word4126); 
                      word="query"; 
 
                     }
                     break;
                 case 6 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1327:17: 'salience'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1331:17: 'salience'
                     {
-                    match(input,36,FOLLOW_36_in_word4124); 
+                    match(input,36,FOLLOW_36_in_word4136); 
                      word="salience"; 
 
                     }
                     break;
                 case 7 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1328:17: 'no-loop'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1332:17: 'no-loop'
                     {
-                    match(input,37,FOLLOW_37_in_word4132); 
+                    match(input,37,FOLLOW_37_in_word4144); 
                      word="no-loop"; 
 
                     }
                     break;
                 case 8 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1329:17: 'when'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1333:17: 'when'
                     {
-                    match(input,32,FOLLOW_32_in_word4140); 
+                    match(input,32,FOLLOW_32_in_word4152); 
                      word="when"; 
 
                     }
                     break;
                 case 9 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1330:17: 'then'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1334:17: 'then'
                     {
-                    match(input,34,FOLLOW_34_in_word4151); 
+                    match(input,34,FOLLOW_34_in_word4163); 
                      word="then"; 
 
                     }
                     break;
                 case 10 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1331:17: 'end'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1335:17: 'end'
                     {
-                    match(input,29,FOLLOW_29_in_word4162); 
+                    match(input,29,FOLLOW_29_in_word4174); 
                      word="end"; 
 
                     }
                     break;
                 case 11 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1332:17: str= STRING
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1336:17: str= STRING
                     {
                     str=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_word4176); 
+                    match(input,STRING,FOLLOW_STRING_in_word4188); 
                      word=getString(str);
 
                     }
@@ -6810,130 +6847,130 @@
 
 
     // $ANTLR start operator
-    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1335:1: operator returns [String str] : ( '==' | '=' | '>' | '>=' | '<' | '<=' | '!=' | 'contains' | 'matches' | 'excludes' );
+    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1339:1: operator returns [String str] : ( '==' | '=' | '>' | '>=' | '<' | '<=' | '!=' | 'contains' | 'matches' | 'excludes' );
     public String operator() throws RecognitionException {   
         String str;
         
         		str = null;
         	
         try {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1341:17: ( '==' | '=' | '>' | '>=' | '<' | '<=' | '!=' | 'contains' | 'matches' | 'excludes' )
-            int alt84=10;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1345:17: ( '==' | '=' | '>' | '>=' | '<' | '<=' | '!=' | 'contains' | 'matches' | 'excludes' )
+            int alt85=10;
             switch ( input.LA(1) ) {
             case 63:
-                alt84=1;
+                alt85=1;
                 break;
             case 64:
-                alt84=2;
+                alt85=2;
                 break;
             case 65:
-                alt84=3;
+                alt85=3;
                 break;
             case 66:
-                alt84=4;
+                alt85=4;
                 break;
             case 67:
-                alt84=5;
+                alt85=5;
                 break;
             case 68:
-                alt84=6;
+                alt85=6;
                 break;
             case 69:
-                alt84=7;
+                alt85=7;
                 break;
             case 70:
-                alt84=8;
+                alt85=8;
                 break;
             case 71:
-                alt84=9;
+                alt85=9;
                 break;
             case 72:
-                alt84=10;
+                alt85=10;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("1335:1: operator returns [String str] : ( \'==\' | \'=\' | \'>\' | \'>=\' | \'<\' | \'<=\' | \'!=\' | \'contains\' | \'matches\' | \'excludes\' );", 84, 0, input);
+                    new NoViableAltException("1339:1: operator returns [String str] : ( \'==\' | \'=\' | \'>\' | \'>=\' | \'<\' | \'<=\' | \'!=\' | \'contains\' | \'matches\' | \'excludes\' );", 85, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt84) {
+            switch (alt85) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1341:17: '=='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1345:17: '=='
                     {
-                    match(input,63,FOLLOW_63_in_operator4205); 
+                    match(input,63,FOLLOW_63_in_operator4217); 
                     str= "==";
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1342:18: '='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1346:18: '='
                     {
-                    match(input,64,FOLLOW_64_in_operator4212); 
+                    match(input,64,FOLLOW_64_in_operator4224); 
                     str="==";
 
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1343:18: '>'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1347:18: '>'
                     {
-                    match(input,65,FOLLOW_65_in_operator4219); 
+                    match(input,65,FOLLOW_65_in_operator4231); 
                     str=">";
 
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1344:18: '>='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1348:18: '>='
                     {
-                    match(input,66,FOLLOW_66_in_operator4226); 
+                    match(input,66,FOLLOW_66_in_operator4238); 
                     str=">=";
 
                     }
                     break;
                 case 5 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1345:18: '<'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1349:18: '<'
                     {
-                    match(input,67,FOLLOW_67_in_operator4235); 
+                    match(input,67,FOLLOW_67_in_operator4247); 
                     str="<";
 
                     }
                     break;
                 case 6 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1346:18: '<='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1350:18: '<='
                     {
-                    match(input,68,FOLLOW_68_in_operator4242); 
+                    match(input,68,FOLLOW_68_in_operator4254); 
                     str="<=";
 
                     }
                     break;
                 case 7 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1347:18: '!='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1351:18: '!='
                     {
-                    match(input,69,FOLLOW_69_in_operator4249); 
+                    match(input,69,FOLLOW_69_in_operator4261); 
                     str="!=";
 
                     }
                     break;
                 case 8 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1348:18: 'contains'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1352:18: 'contains'
                     {
-                    match(input,70,FOLLOW_70_in_operator4256); 
+                    match(input,70,FOLLOW_70_in_operator4268); 
                     str="contains";
 
                     }
                     break;
                 case 9 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1349:18: 'matches'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1353:18: 'matches'
                     {
-                    match(input,71,FOLLOW_71_in_operator4263); 
+                    match(input,71,FOLLOW_71_in_operator4275); 
                     str="matches";
 
                     }
                     break;
                 case 10 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1350:18: 'excludes'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1354:18: 'excludes'
                     {
-                    match(input,72,FOLLOW_72_in_operator4270); 
+                    match(input,72,FOLLOW_72_in_operator4282); 
                     str="excludes";
 
                     }
@@ -6952,7 +6989,7 @@
     // $ANTLR end operator
 
 
-    protected DFA2 dfa2 = new DFA2();protected DFA4 dfa4 = new DFA4();protected DFA13 dfa13 = new DFA13();protected DFA14 dfa14 = new DFA14();protected DFA15 dfa15 = new DFA15();protected DFA48 dfa48 = new DFA48();protected DFA49 dfa49 = new DFA49();protected DFA50 dfa50 = new DFA50();protected DFA61 dfa61 = new DFA61();protected DFA64 dfa64 = new DFA64();protected DFA65 dfa65 = new DFA65();protected DFA76 dfa76 = new DFA76();
+    protected DFA2 dfa2 = new DFA2();protected DFA4 dfa4 = new DFA4();protected DFA13 dfa13 = new DFA13();protected DFA14 dfa14 = new DFA14();protected DFA15 dfa15 = new DFA15();protected DFA48 dfa48 = new DFA48();protected DFA50 dfa50 = new DFA50();protected DFA51 dfa51 = new DFA51();protected DFA62 dfa62 = new DFA62();protected DFA65 dfa65 = new DFA65();protected DFA66 dfa66 = new DFA66();protected DFA77 dfa77 = new DFA77();
     class DFA2 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
@@ -7085,7 +7122,7 @@
             public DFA.State transition(IntStream input) throws RecognitionException {
                 int LA4_33 = input.LA(1);
                 if ( LA4_33==ID ) {return s22;}
-                if ( LA4_33==50 ) {return s21;}
+                if ( LA4_33==43 ) {return s21;}
 
                 NoViableAltException nvae =
         	    new NoViableAltException("", 4, 33, input);
@@ -7096,7 +7133,7 @@
         DFA.State s21 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 int LA4_21 = input.LA(1);
-                if ( LA4_21==51 ) {return s33;}
+                if ( LA4_21==44 ) {return s33;}
 
                 NoViableAltException nvae =
         	    new NoViableAltException("", 4, 21, input);
@@ -7107,7 +7144,7 @@
         DFA.State s32 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 50:
+                case 43:
                     return s21;
 
                 case ID:
@@ -7140,7 +7177,7 @@
                 case 19:
                     return s20;
 
-                case 50:
+                case 43:
                     return s21;
 
                 case ID:
@@ -7167,15 +7204,15 @@
         DFA.State s93 = new DFA.State() {{alt=1;}};
         DFA.State s111 = new DFA.State() {{alt=1;}};
         DFA.State s120 = new DFA.State() {{alt=1;}};
-        DFA.State s127 = new DFA.State() {{alt=1;}};
+        DFA.State s126 = new DFA.State() {{alt=1;}};
         DFA.State s128 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 27:
-                    return s127;
+                    return s126;
 
                 case 26:
-                    return s126;
+                    return s127;
 
                 case EOL:
                 case ID:
@@ -7253,13 +7290,13 @@
                     throw nvae;        }
             }
         };
-        DFA.State s126 = new DFA.State() {
+        DFA.State s127 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 26:
+                case 27:
                     return s126;
 
-                case 27:
+                case 26:
                     return s127;
 
                 case EOL:
@@ -7333,7 +7370,7 @@
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 126, input);
+                        new NoViableAltException("", 4, 127, input);
 
                     throw nvae;        }
             }
@@ -7341,10 +7378,10 @@
         DFA.State s121 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 26:
+                case 27:
                     return s126;
 
-                case 27:
+                case 26:
                     return s127;
 
                 case EOL:
@@ -8128,221 +8165,221 @@
                 throw nvae;
             }
         };
-        DFA.State s108 = new DFA.State() {
+        DFA.State s104 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 25:
                     return s39;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 case EOL:
                 case 15:
-                    return s108;
+                    return s104;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 108, input);
+                        new NoViableAltException("", 4, 104, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s92 = new DFA.State() {
+        DFA.State s88 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 50:
-                    return s65;
+                case 43:
+                    return s67;
 
                 case EOL:
                 case 15:
-                    return s108;
+                    return s104;
 
                 case 25:
                     return s39;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 92, input);
+                        new NoViableAltException("", 4, 88, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s88 = new DFA.State() {
+        DFA.State s84 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 25:
                     return s39;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 case EOL:
                 case 15:
-                    return s88;
+                    return s84;
 
                 case ID:
-                    return s92;
+                    return s88;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 88, input);
+                        new NoViableAltException("", 4, 84, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s70 = new DFA.State() {
+        DFA.State s66 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 50:
-                    return s51;
+                case 43:
+                    return s50;
 
                 case EOL:
                 case 15:
-                    return s88;
+                    return s84;
 
                 case 25:
                     return s39;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 case 19:
                     return s20;
 
                 case ID:
-                    return s92;
+                    return s88;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 70, input);
+                        new NoViableAltException("", 4, 66, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s69 = new DFA.State() {
+        DFA.State s65 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA4_69 = input.LA(1);
-                if ( LA4_69==ID ) {return s70;}
-                if ( LA4_69==EOL||LA4_69==15 ) {return s69;}
+                int LA4_65 = input.LA(1);
+                if ( LA4_65==ID ) {return s66;}
+                if ( LA4_65==EOL||LA4_65==15 ) {return s65;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 4, 69, input);
+        	    new NoViableAltException("", 4, 65, input);
 
                 throw nvae;
             }
         };
-        DFA.State s54 = new DFA.State() {
+        DFA.State s52 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA4_54 = input.LA(1);
-                if ( LA4_54==EOL||LA4_54==15 ) {return s69;}
-                if ( LA4_54==ID ) {return s70;}
+                int LA4_52 = input.LA(1);
+                if ( LA4_52==EOL||LA4_52==15 ) {return s65;}
+                if ( LA4_52==ID ) {return s66;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 4, 54, input);
+        	    new NoViableAltException("", 4, 52, input);
 
                 throw nvae;
             }
         };
-        DFA.State s66 = new DFA.State() {
+        DFA.State s68 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 24:
-                    return s54;
+                    return s52;
 
                 case 25:
                     return s39;
 
                 case EOL:
                 case 15:
-                    return s66;
+                    return s68;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 66, input);
+                        new NoViableAltException("", 4, 68, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s81 = new DFA.State() {
+        DFA.State s89 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case EOL:
                 case 15:
-                    return s66;
+                    return s68;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 case 25:
                     return s39;
 
-                case 50:
-                    return s65;
+                case 43:
+                    return s67;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 81, input);
+                        new NoViableAltException("", 4, 89, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s65 = new DFA.State() {
+        DFA.State s67 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA4_65 = input.LA(1);
-                if ( LA4_65==51 ) {return s81;}
+                int LA4_67 = input.LA(1);
+                if ( LA4_67==44 ) {return s89;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 4, 65, input);
+        	    new NoViableAltException("", 4, 67, input);
 
                 throw nvae;
             }
         };
-        DFA.State s53 = new DFA.State() {
+        DFA.State s55 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 50:
-                    return s65;
+                case 43:
+                    return s67;
 
                 case EOL:
                 case 15:
-                    return s66;
+                    return s68;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 case 25:
                     return s39;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 53, input);
+                        new NoViableAltException("", 4, 55, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s52 = new DFA.State() {
+        DFA.State s51 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case ID:
-                    return s53;
+                    return s55;
 
                 case EOL:
                 case 15:
-                    return s52;
+                    return s51;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 case 25:
                     return s39;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 4, 52, input);
+                        new NoViableAltException("", 4, 51, input);
 
                     throw nvae;        }
             }
@@ -8352,19 +8389,19 @@
                 switch ( input.LA(1) ) {
                 case EOL:
                 case 15:
-                    return s52;
+                    return s51;
 
                 case 24:
-                    return s54;
+                    return s52;
 
                 case 25:
                     return s39;
 
-                case 50:
-                    return s51;
+                case 43:
+                    return s50;
 
                 case ID:
-                    return s53;
+                    return s55;
 
                 default:
                     NoViableAltException nvae =
@@ -8373,13 +8410,13 @@
                     throw nvae;        }
             }
         };
-        DFA.State s51 = new DFA.State() {
+        DFA.State s50 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA4_51 = input.LA(1);
-                if ( LA4_51==51 ) {return s60;}
+                int LA4_50 = input.LA(1);
+                if ( LA4_50==44 ) {return s60;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 4, 51, input);
+        	    new NoViableAltException("", 4, 50, input);
 
                 throw nvae;
             }
@@ -8387,25 +8424,25 @@
         DFA.State s38 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 19:
-                    return s20;
+                case 43:
+                    return s50;
 
-                case 50:
-                    return s51;
-
                 case EOL:
                 case 15:
-                    return s52;
+                    return s51;
 
-                case ID:
-                    return s53;
-
                 case 24:
-                    return s54;
+                    return s52;
 
                 case 25:
                     return s39;
 
+                case 19:
+                    return s20;
+
+                case ID:
+                    return s55;
+
                 default:
                     NoViableAltException nvae =
                         new NoViableAltException("", 4, 38, input);
@@ -8510,7 +8547,7 @@
                 case 19:
                     return s20;
 
-                case 50:
+                case 43:
                     return s21;
 
                 case ID:
@@ -8610,7 +8647,7 @@
                 switch ( input.LA(1) ) {
                 case ID:
                 case 19:
-                case 50:
+                case 43:
                     return s3;
 
                 case EOL:
@@ -8644,17 +8681,17 @@
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
-        DFA.State s7 = new DFA.State() {{alt=1;}};
+        DFA.State s3 = new DFA.State() {{alt=1;}};
         DFA.State s2 = new DFA.State() {{alt=2;}};
-        DFA.State s4 = new DFA.State() {
+        DFA.State s5 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case ID:
-                    return s7;
+                    return s3;
 
                 case EOL:
                 case 15:
-                    return s4;
+                    return s5;
 
                 case 24:
                 case 25:
@@ -8662,7 +8699,7 @@
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 14, 4, input);
+                        new NoViableAltException("", 14, 5, input);
 
                     throw nvae;        }
             }
@@ -8672,14 +8709,14 @@
                 switch ( input.LA(1) ) {
                 case EOL:
                 case 15:
-                    return s4;
+                    return s5;
 
                 case ID:
-                    return s7;
-
-                case 50:
                     return s3;
 
+                case 43:
+                    return s4;
+
                 case 24:
                 case 25:
                     return s2;
@@ -8691,13 +8728,13 @@
                     throw nvae;        }
             }
         };
-        DFA.State s3 = new DFA.State() {
+        DFA.State s4 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA14_3 = input.LA(1);
-                if ( LA14_3==51 ) {return s9;}
+                int LA14_4 = input.LA(1);
+                if ( LA14_4==44 ) {return s9;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 14, 3, input);
+        	    new NoViableAltException("", 14, 4, input);
 
                 throw nvae;
             }
@@ -8705,21 +8742,21 @@
         DFA.State s1 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 50:
+                case ID:
+                case 19:
                     return s3;
 
+                case 43:
+                    return s4;
+
                 case EOL:
                 case 15:
-                    return s4;
+                    return s5;
 
                 case 24:
                 case 25:
                     return s2;
 
-                case ID:
-                case 19:
-                    return s7;
-
                 default:
                     NoViableAltException nvae =
                         new NoViableAltException("", 14, 1, input);
@@ -8744,9 +8781,9 @@
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
+        DFA.State s3 = new DFA.State() {{alt=1;}};
         DFA.State s2 = new DFA.State() {{alt=2;}};
-        DFA.State s7 = new DFA.State() {{alt=1;}};
-        DFA.State s4 = new DFA.State() {
+        DFA.State s5 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 24:
@@ -8755,14 +8792,14 @@
 
                 case EOL:
                 case 15:
-                    return s4;
+                    return s5;
 
                 case ID:
-                    return s7;
+                    return s3;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 15, 4, input);
+                        new NoViableAltException("", 15, 5, input);
 
                     throw nvae;        }
             }
@@ -8772,18 +8809,18 @@
                 switch ( input.LA(1) ) {
                 case EOL:
                 case 15:
+                    return s5;
+
+                case ID:
+                    return s3;
+
+                case 43:
                     return s4;
 
                 case 24:
                 case 25:
                     return s2;
 
-                case 50:
-                    return s3;
-
-                case ID:
-                    return s7;
-
                 default:
                     NoViableAltException nvae =
                         new NoViableAltException("", 15, 9, input);
@@ -8791,13 +8828,13 @@
                     throw nvae;        }
             }
         };
-        DFA.State s3 = new DFA.State() {
+        DFA.State s4 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA15_3 = input.LA(1);
-                if ( LA15_3==51 ) {return s9;}
+                int LA15_4 = input.LA(1);
+                if ( LA15_4==44 ) {return s9;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 15, 3, input);
+        	    new NoViableAltException("", 15, 4, input);
 
                 throw nvae;
             }
@@ -8805,21 +8842,21 @@
         DFA.State s1 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 50:
+                case ID:
+                case 19:
                     return s3;
 
+                case 43:
+                    return s4;
+
                 case EOL:
                 case 15:
-                    return s4;
+                    return s5;
 
                 case 24:
                 case 25:
                     return s2;
 
-                case ID:
-                case 19:
-                    return s7;
-
                 default:
                     NoViableAltException nvae =
                         new NoViableAltException("", 15, 1, input);
@@ -8849,15 +8886,15 @@
         DFA.State s4 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 33:
-                    return s6;
+                case 23:
+                    return s2;
 
                 case EOL:
                 case 15:
                     return s4;
 
-                case 23:
-                    return s2;
+                case 33:
+                    return s6;
 
                 default:
                     NoViableAltException nvae =
@@ -8871,7 +8908,7 @@
                 switch ( input.LA(1) ) {
                 case 19:
                 case 23:
-                case 50:
+                case 43:
                     return s2;
 
                 case EOL:
@@ -8900,87 +8937,87 @@
             }
         };
 
-    }class DFA49 extends DFA {
+    }class DFA50 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
         DFA.State s8 = new DFA.State() {{alt=1;}};
-        DFA.State s32 = new DFA.State() {{alt=2;}};
-        DFA.State s56 = new DFA.State() {
+        DFA.State s33 = new DFA.State() {{alt=2;}};
+        DFA.State s55 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 24:
-                case 25:
-                    return s32;
+                case 23:
+                case 33:
+                    return s8;
 
                 case EOL:
                 case 15:
-                    return s56;
+                    return s55;
 
-                case 23:
-                case 33:
-                    return s8;
+                case 24:
+                case 25:
+                    return s33;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 49, 56, input);
+                        new NoViableAltException("", 50, 55, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s30 = new DFA.State() {
+        DFA.State s31 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 19:
-                case 23:
-                case 33:
-                case 50:
-                    return s8;
-
                 case EOL:
                 case 15:
-                    return s56;
+                    return s55;
 
                 case 24:
                 case 25:
-                    return s32;
+                    return s33;
 
+                case 19:
+                case 23:
+                case 33:
+                case 43:
+                    return s8;
+
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 49, 30, input);
+                        new NoViableAltException("", 50, 31, input);
 
                     throw nvae;        }
             }
         };
-        DFA.State s26 = new DFA.State() {
+        DFA.State s27 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
+                case 23:
+                case 59:
+                case 60:
+                case 61:
+                    return s8;
+
+                case ID:
+                    return s31;
+
+                case EOL:
+                case 15:
+                    return s27;
+
                 case INT:
                 case BOOL:
                 case STRING:
                 case FLOAT:
                 case 25:
                 case 26:
-                case 48:
+                case 43:
                 case 50:
-                    return s32;
+                    return s33;
 
-                case EOL:
-                case 15:
-                    return s26;
-
-                case 23:
-                case 59:
-                case 60:
-                case 61:
-                    return s8;
-
-                case ID:
-                    return s30;
-
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 49, 26, input);
+                        new NoViableAltException("", 50, 27, input);
 
                     throw nvae;        }
             }
@@ -8990,7 +9027,7 @@
                 switch ( input.LA(1) ) {
                 case EOL:
                 case 15:
-                    return s26;
+                    return s27;
 
                 case 23:
                 case 59:
@@ -8999,7 +9036,7 @@
                     return s8;
 
                 case ID:
-                    return s30;
+                    return s31;
 
                 case INT:
                 case BOOL:
@@ -9007,13 +9044,13 @@
                 case FLOAT:
                 case 25:
                 case 26:
-                case 48:
+                case 43:
                 case 50:
-                    return s32;
+                    return s33;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 49, 7, input);
+                        new NoViableAltException("", 50, 7, input);
 
                     throw nvae;        }
             }
@@ -9021,6 +9058,13 @@
         DFA.State s6 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
+                case 23:
+                    return s7;
+
+                case EOL:
+                case 15:
+                    return s6;
+
                 case ID:
                 case 25:
                 case 29:
@@ -9030,16 +9074,9 @@
                 case 61:
                     return s8;
 
-                case EOL:
-                case 15:
-                    return s6;
-
-                case 23:
-                    return s7;
-
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 49, 6, input);
+                        new NoViableAltException("", 50, 6, input);
 
                     throw nvae;        }
             }
@@ -9058,6 +9095,7 @@
                 case 25:
                 case 29:
                 case 34:
+                case 43:
                 case 52:
                 case 53:
                 case 57:
@@ -9069,18 +9107,18 @@
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 49, 5, input);
+                        new NoViableAltException("", 50, 5, input);
 
                     throw nvae;        }
             }
         };
         DFA.State s2 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA49_2 = input.LA(1);
-                if ( LA49_2==ID ) {return s5;}
+                int LA50_2 = input.LA(1);
+                if ( LA50_2==ID ) {return s5;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 49, 2, input);
+        	    new NoViableAltException("", 50, 2, input);
 
                 throw nvae;
             }
@@ -9088,50 +9126,50 @@
         DFA.State s3 = new DFA.State() {{alt=3;}};
         DFA.State s1 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA49_1 = input.LA(1);
-                if ( LA49_1==19 ) {return s2;}
-                if ( LA49_1==EOL||LA49_1==15||LA49_1==23 ) {return s3;}
+                int LA50_1 = input.LA(1);
+                if ( LA50_1==19 ) {return s2;}
+                if ( LA50_1==EOL||LA50_1==15||LA50_1==23 ) {return s3;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 49, 1, input);
+        	    new NoViableAltException("", 50, 1, input);
 
                 throw nvae;
             }
         };
         DFA.State s0 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA49_0 = input.LA(1);
-                if ( LA49_0==ID ) {return s1;}
+                int LA50_0 = input.LA(1);
+                if ( LA50_0==ID ) {return s1;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 49, 0, input);
+        	    new NoViableAltException("", 50, 0, input);
 
                 throw nvae;
             }
         };
 
-    }class DFA50 extends DFA {
+    }class DFA51 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
+        DFA.State s3 = new DFA.State() {{alt=1;}};
         DFA.State s2 = new DFA.State() {{alt=2;}};
-        DFA.State s3 = new DFA.State() {{alt=1;}};
         DFA.State s1 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 25:
-                    return s2;
+                case 24:
+                    return s3;
 
                 case EOL:
                 case 15:
                     return s1;
 
-                case 24:
-                    return s3;
+                case 25:
+                    return s2;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 50, 1, input);
+                        new NoViableAltException("", 51, 1, input);
 
                     throw nvae;        }
             }
@@ -9151,13 +9189,13 @@
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 50, 0, input);
+                        new NoViableAltException("", 51, 0, input);
 
                     throw nvae;        }
             }
         };
 
-    }class DFA61 extends DFA {
+    }class DFA62 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
@@ -9178,7 +9216,7 @@
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 61, 1, input);
+                        new NoViableAltException("", 62, 1, input);
 
                     throw nvae;        }
             }
@@ -9198,21 +9236,24 @@
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 61, 0, input);
+                        new NoViableAltException("", 62, 0, input);
 
                     throw nvae;        }
             }
         };
 
-    }class DFA64 extends DFA {
+    }class DFA65 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
+        DFA.State s3 = new DFA.State() {{alt=1;}};
         DFA.State s2 = new DFA.State() {{alt=2;}};
-        DFA.State s3 = new DFA.State() {{alt=1;}};
         DFA.State s1 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
+                case 24:
+                    return s3;
+
                 case EOL:
                 case 15:
                     return s1;
@@ -9220,12 +9261,9 @@
                 case 25:
                     return s2;
 
-                case 24:
-                    return s3;
-
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 64, 1, input);
+                        new NoViableAltException("", 65, 1, input);
 
                     throw nvae;        }
             }
@@ -9245,25 +9283,21 @@
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 64, 0, input);
+                        new NoViableAltException("", 65, 0, input);
 
                     throw nvae;        }
             }
         };
 
-    }class DFA65 extends DFA {
+    }class DFA66 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
-        DFA.State s4 = new DFA.State() {{alt=2;}};
-        DFA.State s3 = new DFA.State() {{alt=1;}};
+        DFA.State s3 = new DFA.State() {{alt=2;}};
+        DFA.State s15 = new DFA.State() {{alt=1;}};
         DFA.State s2 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case EOL:
-                case 15:
-                    return s2;
-
                 case 24:
                 case 25:
                 case 63:
@@ -9276,14 +9310,18 @@
                 case 70:
                 case 71:
                 case 72:
-                    return s4;
+                    return s3;
 
+                case EOL:
+                case 15:
+                    return s2;
+
                 case 33:
-                    return s3;
+                    return s15;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 65, 2, input);
+                        new NoViableAltException("", 66, 2, input);
 
                     throw nvae;        }
             }
@@ -9295,9 +9333,6 @@
                 case 15:
                     return s2;
 
-                case 33:
-                    return s3;
-
                 case 24:
                 case 25:
                 case 63:
@@ -9310,53 +9345,56 @@
                 case 70:
                 case 71:
                 case 72:
-                    return s4;
+                    return s3;
 
+                case 33:
+                    return s15;
+
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 65, 1, input);
+                        new NoViableAltException("", 66, 1, input);
 
                     throw nvae;        }
             }
         };
         DFA.State s0 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA65_0 = input.LA(1);
-                if ( LA65_0==ID ) {return s1;}
+                int LA66_0 = input.LA(1);
+                if ( LA66_0==ID ) {return s1;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 65, 0, input);
+        	    new NoViableAltException("", 66, 0, input);
 
                 throw nvae;
             }
         };
 
-    }class DFA76 extends DFA {
+    }class DFA77 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
-        DFA.State s14 = new DFA.State() {{alt=3;}};
-        DFA.State s16 = new DFA.State() {{alt=1;}};
-        DFA.State s15 = new DFA.State() {{alt=2;}};
+        DFA.State s15 = new DFA.State() {{alt=1;}};
+        DFA.State s14 = new DFA.State() {{alt=2;}};
+        DFA.State s16 = new DFA.State() {{alt=3;}};
         DFA.State s13 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 47:
-                    return s14;
+                case ID:
+                    return s15;
 
                 case EOL:
                 case 15:
                     return s13;
 
-                case ID:
+                case 45:
+                    return s14;
+
+                case 49:
                     return s16;
 
-                case 43:
-                    return s15;
-
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 76, 13, input);
+                        new NoViableAltException("", 77, 13, input);
 
                     throw nvae;        }
             }
@@ -9368,18 +9406,18 @@
                 case 15:
                     return s13;
 
-                case 47:
+                case 45:
                     return s14;
 
-                case 43:
+                case ID:
                     return s15;
 
-                case ID:
+                case 49:
                     return s16;
 
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("", 76, 1, input);
+                        new NoViableAltException("", 77, 1, input);
 
                     throw nvae;        }
             }
@@ -9387,12 +9425,12 @@
         DFA.State s2 = new DFA.State() {{alt=4;}};
         DFA.State s0 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA76_0 = input.LA(1);
-                if ( LA76_0==42 ) {return s1;}
-                if ( (LA76_0>=EOL && LA76_0<=ID)||LA76_0==15||LA76_0==23||LA76_0==25||LA76_0==29||LA76_0==34||(LA76_0>=52 && LA76_0<=53)||(LA76_0>=57 && LA76_0<=61) ) {return s2;}
+                int LA77_0 = input.LA(1);
+                if ( LA77_0==42 ) {return s1;}
+                if ( (LA77_0>=EOL && LA77_0<=ID)||LA77_0==15||LA77_0==23||LA77_0==25||LA77_0==29||LA77_0==34||(LA77_0>=52 && LA77_0<=53)||(LA77_0>=57 && LA77_0<=61) ) {return s2;}
 
                 NoViableAltException nvae =
-        	    new NoViableAltException("", 76, 0, input);
+        	    new NoViableAltException("", 77, 0, input);
 
                 throw nvae;
             }
@@ -9570,238 +9608,241 @@
     public static final BitSet FOLLOW_from_source_in_from_statement1658 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_ID_in_from_source1702 = new BitSet(new long[]{0x0000000000080000L});
     public static final BitSet FOLLOW_19_in_from_source1704 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_from_source1708 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_from_source1735 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_from_source1737 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_from_source1741 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_from_source1743 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_from_source1746 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_from_source1748 = new BitSet(new long[]{0x00050000040003E2L});
-    public static final BitSet FOLLOW_argument_list_in_from_source1752 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_from_source1754 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_from_source1756 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_from_source1778 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_from_source1780 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_from_source1782 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_from_source1784 = new BitSet(new long[]{0x00050000040003E2L});
-    public static final BitSet FOLLOW_argument_list_in_from_source1788 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_from_source1790 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_from_source1792 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_accumulate_statement1841 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1843 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_43_in_accumulate_statement1845 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1847 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_accumulate_statement1857 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1859 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_lhs_column_in_accumulate_statement1863 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1865 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_accumulate_statement1867 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1869 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_44_in_accumulate_statement1877 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1879 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_accumulate_statement1881 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk2_in_accumulate_statement1885 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_accumulate_statement1887 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1889 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_accumulate_statement1891 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1893 = new BitSet(new long[]{0x0000200000000000L});
-    public static final BitSet FOLLOW_45_in_accumulate_statement1901 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1903 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_accumulate_statement1905 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk2_in_accumulate_statement1909 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_accumulate_statement1911 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1913 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_accumulate_statement1915 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1917 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_46_in_accumulate_statement1925 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1927 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_accumulate_statement1929 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk2_in_accumulate_statement1933 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_accumulate_statement1935 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1937 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_accumulate_statement1939 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_collect_statement1982 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_collect_statement1984 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_47_in_collect_statement1986 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_collect_statement1988 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_collect_statement1998 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_collect_statement2000 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_lhs_column_in_collect_statement2004 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_collect_statement2006 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_collect_statement2008 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_argument_value_in_argument_list2041 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_argument_list2057 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_argument_list2059 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_argument_list2061 = new BitSet(new long[]{0x00050000040003E0L});
-    public static final BitSet FOLLOW_argument_value_in_argument_list2065 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_STRING_in_argument_value2105 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_argument_value2116 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_argument_value2129 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_argument_value2140 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_argument_value2152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_48_in_argument_value2163 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_48_in_argument_value2174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_inline_map_in_argument_value2193 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_inline_array_in_argument_value2209 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_26_in_inline_map2249 = new BitSet(new long[]{0x00050000040003E0L});
-    public static final BitSet FOLLOW_argument_value_in_inline_map2267 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_49_in_inline_map2269 = new BitSet(new long[]{0x00050000040003E0L});
-    public static final BitSet FOLLOW_argument_value_in_inline_map2273 = new BitSet(new long[]{0x0000000009000010L});
-    public static final BitSet FOLLOW_EOL_in_inline_map2316 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_inline_map2320 = new BitSet(new long[]{0x00050000040003F0L});
-    public static final BitSet FOLLOW_EOL_in_inline_map2323 = new BitSet(new long[]{0x00050000040003E0L});
-    public static final BitSet FOLLOW_argument_value_in_inline_map2329 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_49_in_inline_map2331 = new BitSet(new long[]{0x00050000040003E0L});
-    public static final BitSet FOLLOW_argument_value_in_inline_map2335 = new BitSet(new long[]{0x0000000009000010L});
-    public static final BitSet FOLLOW_27_in_inline_map2371 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_inline_array2415 = new BitSet(new long[]{0x00050000040003E0L});
-    public static final BitSet FOLLOW_argument_value_in_inline_array2419 = new BitSet(new long[]{0x0008000001000010L});
-    public static final BitSet FOLLOW_EOL_in_inline_array2437 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_inline_array2440 = new BitSet(new long[]{0x00050000040003F0L});
-    public static final BitSet FOLLOW_EOL_in_inline_array2442 = new BitSet(new long[]{0x00050000040003E0L});
-    public static final BitSet FOLLOW_argument_value_in_inline_array2447 = new BitSet(new long[]{0x0008000001000010L});
-    public static final BitSet FOLLOW_51_in_inline_array2460 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_fact_binding2503 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact_binding2513 = new BitSet(new long[]{0x0000000200000000L});
-    public static final BitSet FOLLOW_33_in_fact_binding2515 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact_binding2517 = new BitSet(new long[]{0x0000000000800020L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_binding2521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_fact_expression2553 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact_expression2555 = new BitSet(new long[]{0x0000000000800020L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2559 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact_expression2561 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_fact_expression2563 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_fact_expression2574 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact_expression2576 = new BitSet(new long[]{0x0030000000000002L});
-    public static final BitSet FOLLOW_set_in_fact_expression2589 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact_expression2594 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_fact_in_fact_expression2608 = new BitSet(new long[]{0x0030000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_fact2647 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact2655 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_fact2663 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact2666 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_constraints_in_fact2672 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact2691 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_fact2695 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_fact2697 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_opt_eol_in_constraints2729 = new BitSet(new long[]{0x0000000000008032L});
-    public static final BitSet FOLLOW_constraint_in_constraints2734 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_predicate_in_constraints2737 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraints2745 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_constraints2747 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraints2749 = new BitSet(new long[]{0x0000000000008032L});
-    public static final BitSet FOLLOW_constraint_in_constraints2752 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_predicate_in_constraints2755 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraints2763 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_opt_eol_in_constraint2782 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_constraint2790 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraint2792 = new BitSet(new long[]{0x0000000200000000L});
-    public static final BitSet FOLLOW_33_in_constraint2794 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraint2796 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_constraint2806 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraint2820 = new BitSet(new long[]{0x8000000000008012L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_operator_in_constraint2826 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraint2828 = new BitSet(new long[]{0x00010000008003E0L});
-    public static final BitSet FOLLOW_ID_in_constraint2846 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_enum_constraint_in_constraint2871 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_literal_constraint_in_constraint2903 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_retval_constraint_in_constraint2923 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_set_in_constraint2958 = new BitSet(new long[]{0x8000000000000000L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_operator_in_constraint2980 = new BitSet(new long[]{0x00010000008003E0L});
-    public static final BitSet FOLLOW_ID_in_constraint2992 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_enum_constraint_in_constraint3020 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_literal_constraint_in_constraint3055 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_retval_constraint_in_constraint3077 = new BitSet(new long[]{0x00C0000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_constraint3133 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_literal_constraint3160 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_literal_constraint3171 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_literal_constraint3184 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_literal_constraint3195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_48_in_literal_constraint3207 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_enum_constraint3238 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_enum_constraint3240 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_enum_constraint3244 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_retval_constraint3273 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk_in_retval_constraint3278 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_retval_constraint3281 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_predicate3299 = new BitSet(new long[]{0x0000000200000000L});
-    public static final BitSet FOLLOW_33_in_predicate3301 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_predicate3305 = new BitSet(new long[]{0x0100000000000000L});
-    public static final BitSet FOLLOW_56_in_predicate3307 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_predicate3309 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk_in_predicate3313 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_predicate3315 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_paren_chunk3361 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk3365 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_paren_chunk3367 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_23_in_paren_chunk23438 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk2_in_paren_chunk23442 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_paren_chunk23444 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_26_in_curly_chunk3513 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk3517 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_27_in_curly_chunk3519 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or3577 = new BitSet(new long[]{0x0030000000000002L});
-    public static final BitSet FOLLOW_set_in_lhs_or3586 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_lhs_or3591 = new BitSet(new long[]{0x3800000000800020L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or3598 = new BitSet(new long[]{0x0030000000000002L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3638 = new BitSet(new long[]{0x0600000000000002L});
-    public static final BitSet FOLLOW_set_in_lhs_and3647 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_lhs_and3652 = new BitSet(new long[]{0x3800000000800020L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3659 = new BitSet(new long[]{0x0600000000000002L});
-    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3697 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3707 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3717 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3731 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_from_statement_in_lhs_unary3752 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accumulate_statement_in_lhs_unary3774 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_collect_statement_in_lhs_unary3795 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_lhs_unary3807 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3809 = new BitSet(new long[]{0x3800000000800020L});
-    public static final BitSet FOLLOW_lhs_in_lhs_unary3813 = new BitSet(new long[]{0x0000000000008012L});
-    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3815 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_unary3817 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_59_in_lhs_exist3848 = new BitSet(new long[]{0x0000000000800020L});
-    public static final BitSet FOLLOW_23_in_lhs_exist3851 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3855 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_exist3857 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_60_in_lhs_not3893 = new BitSet(new long[]{0x0000000000800020L});
-    public static final BitSet FOLLOW_23_in_lhs_not3896 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_not3900 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_not3903 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_not3909 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_61_in_lhs_eval3935 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_lhs_eval3939 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
-    public static final BitSet FOLLOW_paren_chunk2_in_lhs_eval3947 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_lhs_eval3951 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_dotted_name3983 = new BitSet(new long[]{0x0004000000080002L});
-    public static final BitSet FOLLOW_19_in_dotted_name3989 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_dotted_name3993 = new BitSet(new long[]{0x0004000000080002L});
-    public static final BitSet FOLLOW_50_in_dotted_name4002 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_51_in_dotted_name4004 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_ID_in_argument_name4034 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_50_in_argument_name4040 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_51_in_argument_name4042 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_ID_in_word4070 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_word4082 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_62_in_word4091 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_31_in_word4103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_28_in_word4114 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_36_in_word4124 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_37_in_word4132 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_32_in_word4140 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_34_in_word4151 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_29_in_word4162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_word4176 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_63_in_operator4205 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_64_in_operator4212 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_operator4219 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_66_in_operator4226 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_67_in_operator4235 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_68_in_operator4242 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_69_in_operator4249 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_70_in_operator4256 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_71_in_operator4263 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_72_in_operator4270 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_from_source1708 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_43_in_from_source1712 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_from_source1716 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_from_source1718 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_from_source1747 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_from_source1749 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_from_source1753 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_from_source1755 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_from_source1758 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_from_source1760 = new BitSet(new long[]{0x00040800040003E2L});
+    public static final BitSet FOLLOW_argument_list_in_from_source1764 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_from_source1766 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_from_source1768 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_from_source1790 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_from_source1792 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_from_source1794 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_from_source1796 = new BitSet(new long[]{0x00040800040003E2L});
+    public static final BitSet FOLLOW_argument_list_in_from_source1800 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_from_source1802 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_from_source1804 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_accumulate_statement1853 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1855 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_45_in_accumulate_statement1857 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1859 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_accumulate_statement1869 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1871 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_lhs_column_in_accumulate_statement1875 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1877 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_accumulate_statement1879 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1881 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_46_in_accumulate_statement1889 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1891 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_accumulate_statement1893 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk2_in_accumulate_statement1897 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_accumulate_statement1899 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1901 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_accumulate_statement1903 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1905 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_47_in_accumulate_statement1913 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1915 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_accumulate_statement1917 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk2_in_accumulate_statement1921 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_accumulate_statement1923 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1925 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_accumulate_statement1927 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1929 = new BitSet(new long[]{0x0001000000000000L});
+    public static final BitSet FOLLOW_48_in_accumulate_statement1937 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1939 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_accumulate_statement1941 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk2_in_accumulate_statement1945 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_accumulate_statement1947 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_accumulate_statement1949 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_accumulate_statement1951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_collect_statement1994 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_collect_statement1996 = new BitSet(new long[]{0x0002000000000000L});
+    public static final BitSet FOLLOW_49_in_collect_statement1998 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_collect_statement2000 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_collect_statement2010 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_collect_statement2012 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_lhs_column_in_collect_statement2016 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_collect_statement2018 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_collect_statement2020 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_argument_value_in_argument_list2053 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_argument_list2069 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_argument_list2071 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_argument_list2073 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_argument_list2077 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_STRING_in_argument_value2117 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_argument_value2128 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_argument_value2141 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_argument_value2152 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_argument_value2164 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_argument_value2175 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_argument_value2186 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_inline_map_in_argument_value2205 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_inline_array_in_argument_value2221 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_26_in_inline_map2261 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_inline_map2279 = new BitSet(new long[]{0x0008000000000000L});
+    public static final BitSet FOLLOW_51_in_inline_map2281 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_inline_map2285 = new BitSet(new long[]{0x0000000009000010L});
+    public static final BitSet FOLLOW_EOL_in_inline_map2328 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_inline_map2332 = new BitSet(new long[]{0x00040800040003F0L});
+    public static final BitSet FOLLOW_EOL_in_inline_map2335 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_inline_map2341 = new BitSet(new long[]{0x0008000000000000L});
+    public static final BitSet FOLLOW_51_in_inline_map2343 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_inline_map2347 = new BitSet(new long[]{0x0000000009000010L});
+    public static final BitSet FOLLOW_27_in_inline_map2383 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_43_in_inline_array2427 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_inline_array2431 = new BitSet(new long[]{0x0000100001000010L});
+    public static final BitSet FOLLOW_EOL_in_inline_array2449 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_inline_array2452 = new BitSet(new long[]{0x00040800040003F0L});
+    public static final BitSet FOLLOW_EOL_in_inline_array2454 = new BitSet(new long[]{0x00040800040003E0L});
+    public static final BitSet FOLLOW_argument_value_in_inline_array2459 = new BitSet(new long[]{0x0000100001000010L});
+    public static final BitSet FOLLOW_44_in_inline_array2472 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_fact_binding2515 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact_binding2525 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_33_in_fact_binding2527 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact_binding2529 = new BitSet(new long[]{0x0000000000800020L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_binding2533 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_fact_expression2565 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact_expression2567 = new BitSet(new long[]{0x0000000000800020L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression2571 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact_expression2573 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_fact_expression2575 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_fact_expression2586 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact_expression2588 = new BitSet(new long[]{0x0030000000000002L});
+    public static final BitSet FOLLOW_set_in_fact_expression2601 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact_expression2606 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_fact_in_fact_expression2620 = new BitSet(new long[]{0x0030000000000002L});
+    public static final BitSet FOLLOW_dotted_name_in_fact2659 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact2667 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_fact2675 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact2678 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_constraints_in_fact2684 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact2703 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_fact2707 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_fact2709 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_opt_eol_in_constraints2741 = new BitSet(new long[]{0x0000000000008032L});
+    public static final BitSet FOLLOW_constraint_in_constraints2746 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_predicate_in_constraints2749 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraints2757 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_constraints2759 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraints2761 = new BitSet(new long[]{0x0000000000008032L});
+    public static final BitSet FOLLOW_constraint_in_constraints2764 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_predicate_in_constraints2767 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraints2775 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_opt_eol_in_constraint2794 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_constraint2802 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraint2804 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_33_in_constraint2806 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraint2808 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_constraint2818 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraint2832 = new BitSet(new long[]{0x8000000000008012L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_operator_in_constraint2838 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraint2840 = new BitSet(new long[]{0x00040000008003E0L});
+    public static final BitSet FOLLOW_ID_in_constraint2858 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_enum_constraint_in_constraint2883 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_literal_constraint_in_constraint2915 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_retval_constraint_in_constraint2935 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_set_in_constraint2970 = new BitSet(new long[]{0x8000000000000000L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_operator_in_constraint2992 = new BitSet(new long[]{0x00040000008003E0L});
+    public static final BitSet FOLLOW_ID_in_constraint3004 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_enum_constraint_in_constraint3032 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_literal_constraint_in_constraint3067 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_retval_constraint_in_constraint3089 = new BitSet(new long[]{0x00C0000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_constraint3145 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal_constraint3172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal_constraint3183 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal_constraint3196 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal_constraint3207 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_literal_constraint3219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_enum_constraint3250 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_enum_constraint3252 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_enum_constraint3256 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_retval_constraint3285 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk_in_retval_constraint3290 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_retval_constraint3293 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_predicate3311 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_33_in_predicate3313 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_predicate3317 = new BitSet(new long[]{0x0100000000000000L});
+    public static final BitSet FOLLOW_56_in_predicate3319 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_predicate3321 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk_in_predicate3325 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_predicate3327 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_paren_chunk3373 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk3377 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_paren_chunk3379 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_23_in_paren_chunk23450 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk2_in_paren_chunk23454 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_paren_chunk23456 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_26_in_curly_chunk3525 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk3529 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_27_in_curly_chunk3531 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or3589 = new BitSet(new long[]{0x0030000000000002L});
+    public static final BitSet FOLLOW_set_in_lhs_or3598 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_lhs_or3603 = new BitSet(new long[]{0x3800000000800020L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or3610 = new BitSet(new long[]{0x0030000000000002L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3650 = new BitSet(new long[]{0x0600000000000002L});
+    public static final BitSet FOLLOW_set_in_lhs_and3659 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_lhs_and3664 = new BitSet(new long[]{0x3800000000800020L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3671 = new BitSet(new long[]{0x0600000000000002L});
+    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3709 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3719 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3729 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3743 = new BitSet(new long[]{0x0000040000000002L});
+    public static final BitSet FOLLOW_from_statement_in_lhs_unary3764 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accumulate_statement_in_lhs_unary3786 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_collect_statement_in_lhs_unary3807 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_lhs_unary3819 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3821 = new BitSet(new long[]{0x3800000000800020L});
+    public static final BitSet FOLLOW_lhs_in_lhs_unary3825 = new BitSet(new long[]{0x0000000000008012L});
+    public static final BitSet FOLLOW_opt_eol_in_lhs_unary3827 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_unary3829 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_59_in_lhs_exist3860 = new BitSet(new long[]{0x0000000000800020L});
+    public static final BitSet FOLLOW_23_in_lhs_exist3863 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3867 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_exist3869 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3875 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_60_in_lhs_not3905 = new BitSet(new long[]{0x0000000000800020L});
+    public static final BitSet FOLLOW_23_in_lhs_not3908 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_not3912 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_not3915 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_not3921 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_61_in_lhs_eval3947 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_23_in_lhs_eval3951 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF2L,0x00000000000001FFL});
+    public static final BitSet FOLLOW_paren_chunk2_in_lhs_eval3959 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_lhs_eval3963 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_dotted_name3995 = new BitSet(new long[]{0x0000080000080002L});
+    public static final BitSet FOLLOW_19_in_dotted_name4001 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_dotted_name4005 = new BitSet(new long[]{0x0000080000080002L});
+    public static final BitSet FOLLOW_43_in_dotted_name4014 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_dotted_name4016 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_ID_in_argument_name4046 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_43_in_argument_name4052 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_argument_name4054 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_ID_in_word4082 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_word4094 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_62_in_word4103 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_31_in_word4115 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_word4126 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_36_in_word4136 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_word4144 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_32_in_word4152 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_word4163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_29_in_word4174 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_word4188 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_63_in_operator4217 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_operator4224 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_operator4231 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_66_in_operator4238 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_67_in_operator4247 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_68_in_operator4254 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_69_in_operator4261 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_70_in_operator4268 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_71_in_operator4275 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_72_in_operator4282 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/RuleParserLexer.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0ea8 D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g 2006-09-11 08:58:38
+// $ANTLR 3.0ea8 D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g 2006-09-14 18:21:11
 
 	package org.drools.lang;
 
@@ -99,8 +99,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 1) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:6:7: ( ';' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:6:7: ';'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:6:7: ( ';' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:6:7: ';'
             {
             match(';'); if (failed) return ;
 
@@ -125,8 +125,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 2) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:7:7: ( 'package' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:7:7: 'package'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:7:7: ( 'package' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:7:7: 'package'
             {
             match("package"); if (failed) return ;
 
@@ -152,8 +152,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 3) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:8:7: ( 'import' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:8:7: 'import'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:8:7: ( 'import' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:8:7: 'import'
             {
             match("import"); if (failed) return ;
 
@@ -179,8 +179,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 4) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:9:7: ( 'function' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:9:7: 'function'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:9:7: ( 'function' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:9:7: 'function'
             {
             match("function"); if (failed) return ;
 
@@ -206,8 +206,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 5) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:10:7: ( '.' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:10:7: '.'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:10:7: ( '.' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:10:7: '.'
             {
             match('.'); if (failed) return ;
 
@@ -232,8 +232,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 6) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:11:7: ( '.*' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:11:7: '.*'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:11:7: ( '.*' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:11:7: '.*'
             {
             match(".*"); if (failed) return ;
 
@@ -259,8 +259,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 7) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:12:7: ( 'expander' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:12:7: 'expander'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:12:7: ( 'expander' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:12:7: 'expander'
             {
             match("expander"); if (failed) return ;
 
@@ -286,8 +286,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 8) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:13:7: ( 'global' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:13:7: 'global'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:13:7: ( 'global' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:13:7: 'global'
             {
             match("global"); if (failed) return ;
 
@@ -313,8 +313,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 9) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:14:7: ( '(' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:14:7: '('
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:14:7: ( '(' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:14:7: '('
             {
             match('('); if (failed) return ;
 
@@ -339,8 +339,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 10) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:15:7: ( ',' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:15:7: ','
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:15:7: ( ',' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:15:7: ','
             {
             match(','); if (failed) return ;
 
@@ -365,8 +365,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 11) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:16:7: ( ')' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:16:7: ')'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:16:7: ( ')' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:16:7: ')'
             {
             match(')'); if (failed) return ;
 
@@ -391,8 +391,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 12) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:17:7: ( '{' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:17:7: '{'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:17:7: ( '{' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:17:7: '{'
             {
             match('{'); if (failed) return ;
 
@@ -417,8 +417,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 13) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:18:7: ( '}' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:18:7: '}'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:18:7: ( '}' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:18:7: '}'
             {
             match('}'); if (failed) return ;
 
@@ -443,8 +443,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 14) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:19:7: ( 'query' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:19:7: 'query'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:19:7: ( 'query' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:19:7: 'query'
             {
             match("query"); if (failed) return ;
 
@@ -470,8 +470,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 15) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:20:7: ( 'end' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:20:7: 'end'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:20:7: ( 'end' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:20:7: 'end'
             {
             match("end"); if (failed) return ;
 
@@ -497,8 +497,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 16) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:21:7: ( 'template' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:21:7: 'template'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:21:7: ( 'template' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:21:7: 'template'
             {
             match("template"); if (failed) return ;
 
@@ -524,8 +524,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 17) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:22:7: ( 'rule' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:22:7: 'rule'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:22:7: ( 'rule' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:22:7: 'rule'
             {
             match("rule"); if (failed) return ;
 
@@ -551,8 +551,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 18) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:23:7: ( 'when' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:23:7: 'when'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:23:7: ( 'when' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:23:7: 'when'
             {
             match("when"); if (failed) return ;
 
@@ -578,8 +578,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 19) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:24:7: ( ':' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:24:7: ':'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:24:7: ( ':' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:24:7: ':'
             {
             match(':'); if (failed) return ;
 
@@ -604,8 +604,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 20) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:25:7: ( 'then' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:25:7: 'then'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:25:7: ( 'then' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:25:7: 'then'
             {
             match("then"); if (failed) return ;
 
@@ -631,8 +631,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 21) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:26:7: ( 'attributes' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:26:7: 'attributes'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:26:7: ( 'attributes' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:26:7: 'attributes'
             {
             match("attributes"); if (failed) return ;
 
@@ -658,8 +658,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 22) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:27:7: ( 'salience' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:27:7: 'salience'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:27:7: ( 'salience' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:27:7: 'salience'
             {
             match("salience"); if (failed) return ;
 
@@ -685,8 +685,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 23) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:28:7: ( 'no-loop' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:28:7: 'no-loop'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:28:7: ( 'no-loop' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:28:7: 'no-loop'
             {
             match("no-loop"); if (failed) return ;
 
@@ -712,8 +712,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 24) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:29:7: ( 'auto-focus' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:29:7: 'auto-focus'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:29:7: ( 'auto-focus' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:29:7: 'auto-focus'
             {
             match("auto-focus"); if (failed) return ;
 
@@ -739,8 +739,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 25) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:30:7: ( 'activation-group' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:30:7: 'activation-group'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:30:7: ( 'activation-group' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:30:7: 'activation-group'
             {
             match("activation-group"); if (failed) return ;
 
@@ -766,8 +766,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 26) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:31:7: ( 'agenda-group' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:31:7: 'agenda-group'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:31:7: ( 'agenda-group' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:31:7: 'agenda-group'
             {
             match("agenda-group"); if (failed) return ;
 
@@ -793,8 +793,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 27) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:32:7: ( 'duration' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:32:7: 'duration'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:32:7: ( 'duration' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:32:7: 'duration'
             {
             match("duration"); if (failed) return ;
 
@@ -820,8 +820,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 28) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:33:7: ( 'from' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:33:7: 'from'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:33:7: ( 'from' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:33:7: 'from'
             {
             match("from"); if (failed) return ;
 
@@ -847,12 +847,11 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 29) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:34:7: ( 'accumulate' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:34:7: 'accumulate'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:34:7: ( '[' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:34:7: '['
             {
-            match("accumulate"); if (failed) return ;
+            match('['); if (failed) return ;
 
-
             }
 
             if ( token==null ) {emit(type,line,charPosition,channel,start,getCharIndex()-1);}
@@ -874,12 +873,11 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 30) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:35:7: ( 'init' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:35:7: 'init'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:35:7: ( ']' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:35:7: ']'
             {
-            match("init"); if (failed) return ;
+            match(']'); if (failed) return ;
 
-
             }
 
             if ( token==null ) {emit(type,line,charPosition,channel,start,getCharIndex()-1);}
@@ -901,10 +899,10 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 31) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:36:7: ( 'action' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:36:7: 'action'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:36:7: ( 'accumulate' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:36:7: 'accumulate'
             {
-            match("action"); if (failed) return ;
+            match("accumulate"); if (failed) return ;
 
 
             }
@@ -928,10 +926,10 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 32) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:37:7: ( 'result' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:37:7: 'result'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:37:7: ( 'init' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:37:7: 'init'
             {
-            match("result"); if (failed) return ;
+            match("init"); if (failed) return ;
 
 
             }
@@ -955,10 +953,10 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 33) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:38:7: ( 'collect' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:38:7: 'collect'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:38:7: ( 'action' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:38:7: 'action'
             {
-            match("collect"); if (failed) return ;
+            match("action"); if (failed) return ;
 
 
             }
@@ -982,10 +980,10 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 34) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:39:7: ( 'null' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:39:7: 'null'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:39:7: ( 'result' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:39:7: 'result'
             {
-            match("null"); if (failed) return ;
+            match("result"); if (failed) return ;
 
 
             }
@@ -1009,10 +1007,10 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 35) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:40:7: ( '=>' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:40:7: '=>'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:40:7: ( 'collect' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:40:7: 'collect'
             {
-            match("=>"); if (failed) return ;
+            match("collect"); if (failed) return ;
 
 
             }
@@ -1036,11 +1034,12 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 36) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:41:7: ( '[' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:41:7: '['
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:41:7: ( 'null' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:41:7: 'null'
             {
-            match('['); if (failed) return ;
+            match("null"); if (failed) return ;
 
+
             }
 
             if ( token==null ) {emit(type,line,charPosition,channel,start,getCharIndex()-1);}
@@ -1062,11 +1061,12 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 37) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:42:7: ( ']' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:42:7: ']'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:42:7: ( '=>' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:42:7: '=>'
             {
-            match(']'); if (failed) return ;
+            match("=>"); if (failed) return ;
 
+
             }
 
             if ( token==null ) {emit(type,line,charPosition,channel,start,getCharIndex()-1);}
@@ -1088,8 +1088,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 38) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:43:7: ( 'or' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:43:7: 'or'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:43:7: ( 'or' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:43:7: 'or'
             {
             match("or"); if (failed) return ;
 
@@ -1115,8 +1115,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 39) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:44:7: ( '||' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:44:7: '||'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:44:7: ( '||' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:44:7: '||'
             {
             match("||"); if (failed) return ;
 
@@ -1142,8 +1142,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 40) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:45:7: ( '&' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:45:7: '&'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:45:7: ( '&' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:45:7: '&'
             {
             match('&'); if (failed) return ;
 
@@ -1168,8 +1168,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 41) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:46:7: ( '|' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:46:7: '|'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:46:7: ( '|' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:46:7: '|'
             {
             match('|'); if (failed) return ;
 
@@ -1194,8 +1194,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 42) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:47:7: ( '->' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:47:7: '->'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:47:7: ( '->' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:47:7: '->'
             {
             match("->"); if (failed) return ;
 
@@ -1221,8 +1221,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 43) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:48:7: ( 'and' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:48:7: 'and'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:48:7: ( 'and' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:48:7: 'and'
             {
             match("and"); if (failed) return ;
 
@@ -1248,8 +1248,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 44) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:49:7: ( '&&' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:49:7: '&&'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:49:7: ( '&&' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:49:7: '&&'
             {
             match("&&"); if (failed) return ;
 
@@ -1275,8 +1275,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 45) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:50:7: ( 'exists' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:50:7: 'exists'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:50:7: ( 'exists' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:50:7: 'exists'
             {
             match("exists"); if (failed) return ;
 
@@ -1302,8 +1302,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 46) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:51:7: ( 'not' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:51:7: 'not'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:51:7: ( 'not' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:51:7: 'not'
             {
             match("not"); if (failed) return ;
 
@@ -1329,8 +1329,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 47) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:52:7: ( 'eval' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:52:7: 'eval'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:52:7: ( 'eval' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:52:7: 'eval'
             {
             match("eval"); if (failed) return ;
 
@@ -1356,8 +1356,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 48) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:53:7: ( 'use' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:53:7: 'use'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:53:7: ( 'use' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:53:7: 'use'
             {
             match("use"); if (failed) return ;
 
@@ -1383,8 +1383,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 49) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:54:7: ( '==' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:54:7: '=='
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:54:7: ( '==' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:54:7: '=='
             {
             match("=="); if (failed) return ;
 
@@ -1410,8 +1410,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 50) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:55:7: ( '=' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:55:7: '='
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:55:7: ( '=' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:55:7: '='
             {
             match('='); if (failed) return ;
 
@@ -1436,8 +1436,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 51) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:56:7: ( '>' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:56:7: '>'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:56:7: ( '>' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:56:7: '>'
             {
             match('>'); if (failed) return ;
 
@@ -1462,8 +1462,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 52) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:57:7: ( '>=' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:57:7: '>='
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:57:7: ( '>=' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:57:7: '>='
             {
             match(">="); if (failed) return ;
 
@@ -1489,8 +1489,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 53) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:58:7: ( '<' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:58:7: '<'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:58:7: ( '<' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:58:7: '<'
             {
             match('<'); if (failed) return ;
 
@@ -1515,8 +1515,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 54) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:59:7: ( '<=' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:59:7: '<='
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:59:7: ( '<=' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:59:7: '<='
             {
             match("<="); if (failed) return ;
 
@@ -1542,8 +1542,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 55) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:60:7: ( '!=' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:60:7: '!='
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:60:7: ( '!=' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:60:7: '!='
             {
             match("!="); if (failed) return ;
 
@@ -1569,8 +1569,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 56) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:61:7: ( 'contains' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:61:7: 'contains'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:61:7: ( 'contains' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:61:7: 'contains'
             {
             match("contains"); if (failed) return ;
 
@@ -1596,8 +1596,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 57) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:62:7: ( 'matches' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:62:7: 'matches'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:62:7: ( 'matches' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:62:7: 'matches'
             {
             match("matches"); if (failed) return ;
 
@@ -1623,8 +1623,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 58) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:63:7: ( 'excludes' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:63:7: 'excludes'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:63:7: ( 'excludes' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:63:7: 'excludes'
             {
             match("excludes"); if (failed) return ;
 
@@ -1650,7 +1650,7 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 59) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:17: ( '!' | '@' | '$' | '%' | '^' | '&' | '*' | '_' | '-' | '+' | '?' | '|' | ',' | '{' | '}' | '[' | ']' | '=' | '/' | '(' | ')' | '\'' | '\\' | '||' | '&&' | '<<<' | '++' | '--' | '>>>' | '==' | '+=' | '=+' | '-=' | '=-' | '*=' | '=*' | '/=' | '=/' | '>>=' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:17: ( '!' | '@' | '$' | '%' | '^' | '&' | '*' | '_' | '-' | '+' | '?' | '|' | ',' | '{' | '}' | '[' | ']' | '=' | '/' | '(' | ')' | '\'' | '\\' | '||' | '&&' | '<<<' | '++' | '--' | '>>>' | '==' | '+=' | '=+' | '-=' | '=-' | '*=' | '=*' | '/=' | '=/' | '>>=' )
             int alt1=39;
             switch ( input.LA(1) ) {
             case '!':
@@ -1794,7 +1794,7 @@
                     else {
                         if (backtracking>0) {failed=true; return ;}
                         NoViableAltException nvae =
-                            new NoViableAltException("1357:1: MISC : ( \'!\' | \'@\' | \'$\' | \'%\' | \'^\' | \'&\' | \'*\' | \'_\' | \'-\' | \'+\' | \'?\' | \'|\' | \',\' | \'{\' | \'}\' | \'[\' | \']\' | \'=\' | \'/\' | \'(\' | \')\' | \'\\\'\' | \'\\\\\' | \'||\' | \'&&\' | \'<<<\' | \'++\' | \'--\' | \'>>>\' | \'==\' | \'+=\' | \'=+\' | \'-=\' | \'=-\' | \'*=\' | \'=*\' | \'/=\' | \'=/\' | \'>>=\' );", 1, 46, input);
+                            new NoViableAltException("1361:1: MISC : ( \'!\' | \'@\' | \'$\' | \'%\' | \'^\' | \'&\' | \'*\' | \'_\' | \'-\' | \'+\' | \'?\' | \'|\' | \',\' | \'{\' | \'}\' | \'[\' | \']\' | \'=\' | \'/\' | \'(\' | \')\' | \'\\\'\' | \'\\\\\' | \'||\' | \'&&\' | \'<<<\' | \'++\' | \'--\' | \'>>>\' | \'==\' | \'+=\' | \'=+\' | \'-=\' | \'=-\' | \'*=\' | \'=*\' | \'/=\' | \'=/\' | \'>>=\' );", 1, 46, input);
 
                         throw nvae;
                     }
@@ -1802,7 +1802,7 @@
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1357:1: MISC : ( \'!\' | \'@\' | \'$\' | \'%\' | \'^\' | \'&\' | \'*\' | \'_\' | \'-\' | \'+\' | \'?\' | \'|\' | \',\' | \'{\' | \'}\' | \'[\' | \']\' | \'=\' | \'/\' | \'(\' | \')\' | \'\\\'\' | \'\\\\\' | \'||\' | \'&&\' | \'<<<\' | \'++\' | \'--\' | \'>>>\' | \'==\' | \'+=\' | \'=+\' | \'-=\' | \'=-\' | \'*=\' | \'=*\' | \'/=\' | \'=/\' | \'>>=\' );", 1, 25, input);
+                        new NoViableAltException("1361:1: MISC : ( \'!\' | \'@\' | \'$\' | \'%\' | \'^\' | \'&\' | \'*\' | \'_\' | \'-\' | \'+\' | \'?\' | \'|\' | \',\' | \'{\' | \'}\' | \'[\' | \']\' | \'=\' | \'/\' | \'(\' | \')\' | \'\\\'\' | \'\\\\\' | \'||\' | \'&&\' | \'<<<\' | \'++\' | \'--\' | \'>>>\' | \'==\' | \'+=\' | \'=+\' | \'-=\' | \'=-\' | \'*=\' | \'=*\' | \'/=\' | \'=/\' | \'>>=\' );", 1, 25, input);
 
                     throw nvae;
                 }
@@ -1810,175 +1810,175 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1357:1: MISC : ( \'!\' | \'@\' | \'$\' | \'%\' | \'^\' | \'&\' | \'*\' | \'_\' | \'-\' | \'+\' | \'?\' | \'|\' | \',\' | \'{\' | \'}\' | \'[\' | \']\' | \'=\' | \'/\' | \'(\' | \')\' | \'\\\'\' | \'\\\\\' | \'||\' | \'&&\' | \'<<<\' | \'++\' | \'--\' | \'>>>\' | \'==\' | \'+=\' | \'=+\' | \'-=\' | \'=-\' | \'*=\' | \'=*\' | \'/=\' | \'=/\' | \'>>=\' );", 1, 0, input);
+                    new NoViableAltException("1361:1: MISC : ( \'!\' | \'@\' | \'$\' | \'%\' | \'^\' | \'&\' | \'*\' | \'_\' | \'-\' | \'+\' | \'?\' | \'|\' | \',\' | \'{\' | \'}\' | \'[\' | \']\' | \'=\' | \'/\' | \'(\' | \')\' | \'\\\'\' | \'\\\\\' | \'||\' | \'&&\' | \'<<<\' | \'++\' | \'--\' | \'>>>\' | \'==\' | \'+=\' | \'=+\' | \'-=\' | \'=-\' | \'*=\' | \'=*\' | \'/=\' | \'=/\' | \'>>=\' );", 1, 0, input);
 
                 throw nvae;
             }
 
             switch (alt1) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:17: '!'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:17: '!'
                     {
                     match('!'); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:23: '@'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:23: '@'
                     {
                     match('@'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:29: '$'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:29: '$'
                     {
                     match('$'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:35: '%'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:35: '%'
                     {
                     match('%'); if (failed) return ;
 
                     }
                     break;
                 case 5 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:41: '^'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:41: '^'
                     {
                     match('^'); if (failed) return ;
 
                     }
                     break;
                 case 6 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:47: '&'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:47: '&'
                     {
                     match('&'); if (failed) return ;
 
                     }
                     break;
                 case 7 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:53: '*'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:53: '*'
                     {
                     match('*'); if (failed) return ;
 
                     }
                     break;
                 case 8 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:59: '_'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:59: '_'
                     {
                     match('_'); if (failed) return ;
 
                     }
                     break;
                 case 9 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:65: '-'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:65: '-'
                     {
                     match('-'); if (failed) return ;
 
                     }
                     break;
                 case 10 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:71: '+'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:71: '+'
                     {
                     match('+'); if (failed) return ;
 
                     }
                     break;
                 case 11 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1358:78: '?'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1362:78: '?'
                     {
                     match('?'); if (failed) return ;
 
                     }
                     break;
                 case 12 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:19: '|'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:19: '|'
                     {
                     match('|'); if (failed) return ;
 
                     }
                     break;
                 case 13 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:25: ','
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:25: ','
                     {
                     match(','); if (failed) return ;
 
                     }
                     break;
                 case 14 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:31: '{'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:31: '{'
                     {
                     match('{'); if (failed) return ;
 
                     }
                     break;
                 case 15 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:37: '}'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:37: '}'
                     {
                     match('}'); if (failed) return ;
 
                     }
                     break;
                 case 16 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:43: '['
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:43: '['
                     {
                     match('['); if (failed) return ;
 
                     }
                     break;
                 case 17 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:49: ']'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:49: ']'
                     {
                     match(']'); if (failed) return ;
 
                     }
                     break;
                 case 18 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:55: '='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:55: '='
                     {
                     match('='); if (failed) return ;
 
                     }
                     break;
                 case 19 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:61: '/'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:61: '/'
                     {
                     match('/'); if (failed) return ;
 
                     }
                     break;
                 case 20 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:67: '('
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:67: '('
                     {
                     match('('); if (failed) return ;
 
                     }
                     break;
                 case 21 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:73: ')'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:73: ')'
                     {
                     match(')'); if (failed) return ;
 
                     }
                     break;
                 case 22 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:79: '\''
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:79: '\''
                     {
                     match('\''); if (failed) return ;
 
                     }
                     break;
                 case 23 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1359:86: '\\'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1363:86: '\\'
                     {
                     match('\\'); if (failed) return ;
 
                     }
                     break;
                 case 24 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:19: '||'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:19: '||'
                     {
                     match("||"); if (failed) return ;
 
@@ -1986,7 +1986,7 @@
                     }
                     break;
                 case 25 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:26: '&&'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:26: '&&'
                     {
                     match("&&"); if (failed) return ;
 
@@ -1994,7 +1994,7 @@
                     }
                     break;
                 case 26 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:33: '<<<'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:33: '<<<'
                     {
                     match("<<<"); if (failed) return ;
 
@@ -2002,7 +2002,7 @@
                     }
                     break;
                 case 27 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:41: '++'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:41: '++'
                     {
                     match("++"); if (failed) return ;
 
@@ -2010,7 +2010,7 @@
                     }
                     break;
                 case 28 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:48: '--'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:48: '--'
                     {
                     match("--"); if (failed) return ;
 
@@ -2018,7 +2018,7 @@
                     }
                     break;
                 case 29 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:55: '>>>'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:55: '>>>'
                     {
                     match(">>>"); if (failed) return ;
 
@@ -2026,7 +2026,7 @@
                     }
                     break;
                 case 30 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:63: '=='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:63: '=='
                     {
                     match("=="); if (failed) return ;
 
@@ -2034,7 +2034,7 @@
                     }
                     break;
                 case 31 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:70: '+='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:70: '+='
                     {
                     match("+="); if (failed) return ;
 
@@ -2042,7 +2042,7 @@
                     }
                     break;
                 case 32 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:77: '=+'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:77: '=+'
                     {
                     match("=+"); if (failed) return ;
 
@@ -2050,7 +2050,7 @@
                     }
                     break;
                 case 33 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:84: '-='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:84: '-='
                     {
                     match("-="); if (failed) return ;
 
@@ -2058,7 +2058,7 @@
                     }
                     break;
                 case 34 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:91: '=-'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:91: '=-'
                     {
                     match("=-"); if (failed) return ;
 
@@ -2066,7 +2066,7 @@
                     }
                     break;
                 case 35 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:97: '*='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:97: '*='
                     {
                     match("*="); if (failed) return ;
 
@@ -2074,7 +2074,7 @@
                     }
                     break;
                 case 36 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1360:104: '=*'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1364:104: '=*'
                     {
                     match("=*"); if (failed) return ;
 
@@ -2082,7 +2082,7 @@
                     }
                     break;
                 case 37 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1361:19: '/='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1365:19: '/='
                     {
                     match("/="); if (failed) return ;
 
@@ -2090,7 +2090,7 @@
                     }
                     break;
                 case 38 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1361:26: '=/'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1365:26: '=/'
                     {
                     match("=/"); if (failed) return ;
 
@@ -2098,7 +2098,7 @@
                     }
                     break;
                 case 39 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1361:33: '>>='
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1365:33: '>>='
                     {
                     match(">>="); if (failed) return ;
 
@@ -2126,8 +2126,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 60) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1365:17: ( (' '|'\t'|'\f'))
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1365:17: (' '|'\t'|'\f')
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1369:17: ( (' '|'\t'|'\f'))
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1369:17: (' '|'\t'|'\f')
             {
             if ( input.LA(1)=='\t'||input.LA(1)=='\f'||input.LA(1)==' ' ) {
                 input.consume();
@@ -2165,10 +2165,10 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 61) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1373:17: ( ( ( '\r\n' )=> '\r\n' | '\r' | '\n' ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1373:17: ( ( '\r\n' )=> '\r\n' | '\r' | '\n' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1377:17: ( ( ( '\r\n' )=> '\r\n' | '\r' | '\n' ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1377:17: ( ( '\r\n' )=> '\r\n' | '\r' | '\n' )
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1373:17: ( ( '\r\n' )=> '\r\n' | '\r' | '\n' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1377:17: ( ( '\r\n' )=> '\r\n' | '\r' | '\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
             if ( LA2_0=='\r' ) {
@@ -2185,13 +2185,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1373:17: ( ( \'\\r\\n\' )=> \'\\r\\n\' | \'\\r\' | \'\\n\' )", 2, 0, input);
+                    new NoViableAltException("1377:17: ( ( \'\\r\\n\' )=> \'\\r\\n\' | \'\\r\' | \'\\n\' )", 2, 0, input);
 
                 throw nvae;
             }
             switch (alt2) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1373:25: ( '\r\n' )=> '\r\n'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1377:25: ( '\r\n' )=> '\r\n'
                     {
 
                     match("\r\n"); if (failed) return ;
@@ -2200,14 +2200,14 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1374:25: '\r'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1378:25: '\r'
                     {
                     match('\r'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1375:25: '\n'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1379:25: '\n'
                     {
                     match('\n'); if (failed) return ;
 
@@ -2238,10 +2238,10 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 62) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1380:17: ( ( '-' )? ( '0' .. '9' )+ )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1380:17: ( '-' )? ( '0' .. '9' )+
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:17: ( ( '-' )? ( '0' .. '9' )+ ( ('l'|'L'))? )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:17: ( '-' )? ( '0' .. '9' )+ ( ('l'|'L'))?
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1380:17: ( '-' )?
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:17: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
             if ( LA3_0=='-' ) {
@@ -2253,13 +2253,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1380:17: ( \'-\' )?", 3, 0, input);
+                    new NoViableAltException("1384:17: ( \'-\' )?", 3, 0, input);
 
                 throw nvae;
             }
             switch (alt3) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1380:18: '-'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:18: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -2268,7 +2268,7 @@
 
             }
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1380:23: ( '0' .. '9' )+
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:23: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -2281,7 +2281,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1380:24: '0' .. '9'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:24: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -2298,9 +2298,38 @@
                 cnt4++;
             } while (true);
 
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:34: ( ('l'|'L'))?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+            if ( LA5_0=='L'||LA5_0=='l' ) {
+                alt5=1;
+            }
+            else {
+                alt5=2;}
+            switch (alt5) {
+                case 1 :
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:35: ('l'|'L')
+                    {
+                    if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+                        input.consume();
+                    failed=false;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        MismatchedSetException mse =
+                            new MismatchedSetException(null,input);
+                        recover(mse);    throw mse;
+                    }
 
+
+                    }
+                    break;
+
             }
 
+
+            }
+
             if ( token==null ) {emit(type,line,charPosition,channel,start,getCharIndex()-1);}
         }
         finally {
@@ -2320,28 +2349,28 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 63) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:17: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:17: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:17: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:17: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:17: ( '-' )?
-            int alt5=2;
-            int LA5_0 = input.LA(1);
-            if ( LA5_0=='-' ) {
-                alt5=1;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:17: ( '-' )?
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+            if ( LA6_0=='-' ) {
+                alt6=1;
             }
-            else if ( (LA5_0>='0' && LA5_0<='9') ) {
-                alt5=2;
+            else if ( (LA6_0>='0' && LA6_0<='9') ) {
+                alt6=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1384:17: ( \'-\' )?", 5, 0, input);
+                    new NoViableAltException("1388:17: ( \'-\' )?", 6, 0, input);
 
                 throw nvae;
             }
-            switch (alt5) {
+            switch (alt6) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:18: '-'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:18: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -2350,20 +2379,20 @@
 
             }
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:23: ( '0' .. '9' )+
-            int cnt6=0;
-            loop6:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:23: ( '0' .. '9' )+
+            int cnt7=0;
+            loop7:
             do {
-                int alt6=2;
-                int LA6_0 = input.LA(1);
-                if ( (LA6_0>='0' && LA6_0<='9') ) {
-                    alt6=1;
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+                if ( (LA7_0>='0' && LA7_0<='9') ) {
+                    alt7=1;
                 }
 
 
-                switch (alt6) {
+                switch (alt7) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:24: '0' .. '9'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:24: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -2371,30 +2400,30 @@
             	    break;
 
             	default :
-            	    if ( cnt6 >= 1 ) break loop6;
+            	    if ( cnt7 >= 1 ) break loop7;
             	    if (backtracking>0) {failed=true; return ;}
                         EarlyExitException eee =
-                            new EarlyExitException(6, input);
+                            new EarlyExitException(7, input);
                         throw eee;
                 }
-                cnt6++;
+                cnt7++;
             } while (true);
 
             match('.'); if (failed) return ;
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:39: ( '0' .. '9' )+
-            int cnt7=0;
-            loop7:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:39: ( '0' .. '9' )+
+            int cnt8=0;
+            loop8:
             do {
-                int alt7=2;
-                int LA7_0 = input.LA(1);
-                if ( (LA7_0>='0' && LA7_0<='9') ) {
-                    alt7=1;
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+                if ( (LA8_0>='0' && LA8_0<='9') ) {
+                    alt8=1;
                 }
 
 
-                switch (alt7) {
+                switch (alt8) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1384:40: '0' .. '9'
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:40: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -2402,13 +2431,13 @@
             	    break;
 
             	default :
-            	    if ( cnt7 >= 1 ) break loop7;
+            	    if ( cnt8 >= 1 ) break loop8;
             	    if (backtracking>0) {failed=true; return ;}
                         EarlyExitException eee =
-                            new EarlyExitException(7, input);
+                            new EarlyExitException(8, input);
                         throw eee;
                 }
-                cnt7++;
+                cnt8++;
             } while (true);
 
 
@@ -2433,46 +2462,46 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 64) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:17: ( ( '"' ( options {greedy=false; } : . )* '"' ) | ( '\'' ( options {greedy=false; } : . )* '\'' ) )
-            int alt10=2;
-            int LA10_0 = input.LA(1);
-            if ( LA10_0=='"' ) {
-                alt10=1;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:17: ( ( '"' ( options {greedy=false; } : . )* '"' ) | ( '\'' ( options {greedy=false; } : . )* '\'' ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+            if ( LA11_0=='"' ) {
+                alt11=1;
             }
-            else if ( LA10_0=='\'' ) {
-                alt10=2;
+            else if ( LA11_0=='\'' ) {
+                alt11=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1387:1: STRING : ( ( \'\"\' ( options {greedy=false; } : . )* \'\"\' ) | ( \'\\\'\' ( options {greedy=false; } : . )* \'\\\'\' ) );", 10, 0, input);
+                    new NoViableAltException("1391:1: STRING : ( ( \'\"\' ( options {greedy=false; } : . )* \'\"\' ) | ( \'\\\'\' ( options {greedy=false; } : . )* \'\\\'\' ) );", 11, 0, input);
 
                 throw nvae;
             }
-            switch (alt10) {
+            switch (alt11) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:17: ( '"' ( options {greedy=false; } : . )* '"' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:17: ( '"' ( options {greedy=false; } : . )* '"' )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:17: ( '"' ( options {greedy=false; } : . )* '"' )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:18: '"' ( options {greedy=false; } : . )* '"'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:17: ( '"' ( options {greedy=false; } : . )* '"' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:18: '"' ( options {greedy=false; } : . )* '"'
                     {
                     match('"'); if (failed) return ;
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:22: ( options {greedy=false; } : . )*
-                    loop8:
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:22: ( options {greedy=false; } : . )*
+                    loop9:
                     do {
-                        int alt8=2;
-                        int LA8_0 = input.LA(1);
-                        if ( LA8_0=='"' ) {
-                            alt8=2;
+                        int alt9=2;
+                        int LA9_0 = input.LA(1);
+                        if ( LA9_0=='"' ) {
+                            alt9=2;
                         }
-                        else if ( (LA8_0>='\u0000' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='\uFFFE') ) {
-                            alt8=1;
+                        else if ( (LA9_0>='\u0000' && LA9_0<='!')||(LA9_0>='#' && LA9_0<='\uFFFE') ) {
+                            alt9=1;
                         }
 
 
-                        switch (alt8) {
+                        switch (alt9) {
                     	case 1 :
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:49: .
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:49: .
                     	    {
                     	    matchAny(); if (failed) return ;
 
@@ -2480,7 +2509,7 @@
                     	    break;
 
                     	default :
-                    	    break loop8;
+                    	    break loop9;
                         }
                     } while (true);
 
@@ -2492,28 +2521,28 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:61: ( '\'' ( options {greedy=false; } : . )* '\'' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:61: ( '\'' ( options {greedy=false; } : . )* '\'' )
                     {
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:61: ( '\'' ( options {greedy=false; } : . )* '\'' )
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:62: '\'' ( options {greedy=false; } : . )* '\''
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:61: ( '\'' ( options {greedy=false; } : . )* '\'' )
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:62: '\'' ( options {greedy=false; } : . )* '\''
                     {
                     match('\''); if (failed) return ;
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:67: ( options {greedy=false; } : . )*
-                    loop9:
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:67: ( options {greedy=false; } : . )*
+                    loop10:
                     do {
-                        int alt9=2;
-                        int LA9_0 = input.LA(1);
-                        if ( LA9_0=='\'' ) {
-                            alt9=2;
+                        int alt10=2;
+                        int LA10_0 = input.LA(1);
+                        if ( LA10_0=='\'' ) {
+                            alt10=2;
                         }
-                        else if ( (LA9_0>='\u0000' && LA9_0<='&')||(LA9_0>='(' && LA9_0<='\uFFFE') ) {
-                            alt9=1;
+                        else if ( (LA10_0>='\u0000' && LA10_0<='&')||(LA10_0>='(' && LA10_0<='\uFFFE') ) {
+                            alt10=1;
                         }
 
 
-                        switch (alt9) {
+                        switch (alt10) {
                     	case 1 :
-                    	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1388:94: .
+                    	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:94: .
                     	    {
                     	    matchAny(); if (failed) return ;
 
@@ -2521,7 +2550,7 @@
                     	    break;
 
                     	default :
-                    	    break loop9;
+                    	    break loop10;
                         }
                     } while (true);
 
@@ -2553,28 +2582,28 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 65) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:17: ( ( 'true' | 'false' ) )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:17: ( 'true' | 'false' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:17: ( ( 'true' | 'false' ) )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:17: ( 'true' | 'false' )
             {
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:17: ( 'true' | 'false' )
-            int alt11=2;
-            int LA11_0 = input.LA(1);
-            if ( LA11_0=='t' ) {
-                alt11=1;
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:17: ( 'true' | 'false' )
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+            if ( LA12_0=='t' ) {
+                alt12=1;
             }
-            else if ( LA11_0=='f' ) {
-                alt11=2;
+            else if ( LA12_0=='f' ) {
+                alt12=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1392:17: ( \'true\' | \'false\' )", 11, 0, input);
+                    new NoViableAltException("1396:17: ( \'true\' | \'false\' )", 12, 0, input);
 
                 throw nvae;
             }
-            switch (alt11) {
+            switch (alt12) {
                 case 1 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:18: 'true'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:18: 'true'
                     {
                     match("true"); if (failed) return ;
 
@@ -2582,7 +2611,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1392:25: 'false'
+                    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:25: 'false'
                     {
                     match("false"); if (failed) return ;
 
@@ -2614,8 +2643,8 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 66) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:17: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff'))* )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:17: ('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff'))*
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1400:17: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff'))* )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1400:17: ('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff'))*
             {
             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)<='\u00FF') ) {
                 input.consume();
@@ -2628,19 +2657,19 @@
                 recover(mse);    throw mse;
             }
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:65: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff'))*
-            loop12:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1400:65: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff'))*
+            loop13:
             do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
-                if ( (LA12_0>='0' && LA12_0<='9')||(LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='z')||(LA12_0>='\u00C0' && LA12_0<='\u00FF') ) {
-                    alt12=1;
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+                if ( (LA13_0>='0' && LA13_0<='9')||(LA13_0>='A' && LA13_0<='Z')||LA13_0=='_'||(LA13_0>='a' && LA13_0<='z')||(LA13_0>='\u00C0' && LA13_0<='\u00FF') ) {
+                    alt13=1;
                 }
 
 
-                switch (alt12) {
+                switch (alt13) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1396:66: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff')
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1400:66: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff')
             	    {
             	    if ( (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)<='\u00FF') ) {
             	        input.consume();
@@ -2658,7 +2687,7 @@
             	    break;
 
             	default :
-            	    break loop12;
+            	    break loop13;
                 }
             } while (true);
 
@@ -2684,29 +2713,29 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 67) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1402:17: ( '#' ( options {greedy=false; } : . )* EOL )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1402:17: '#' ( options {greedy=false; } : . )* EOL
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1406:17: ( '#' ( options {greedy=false; } : . )* EOL )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1406:17: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (failed) return ;
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1402:21: ( options {greedy=false; } : . )*
-            loop13:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1406:21: ( options {greedy=false; } : . )*
+            loop14:
             do {
-                int alt13=2;
-                int LA13_0 = input.LA(1);
-                if ( LA13_0=='\r' ) {
-                    alt13=2;
+                int alt14=2;
+                int LA14_0 = input.LA(1);
+                if ( LA14_0=='\r' ) {
+                    alt14=2;
                 }
-                else if ( LA13_0=='\n' ) {
-                    alt13=2;
+                else if ( LA14_0=='\n' ) {
+                    alt14=2;
                 }
-                else if ( (LA13_0>='\u0000' && LA13_0<='\t')||(LA13_0>='\u000B' && LA13_0<='\f')||(LA13_0>='\u000E' && LA13_0<='\uFFFE') ) {
-                    alt13=1;
+                else if ( (LA14_0>='\u0000' && LA14_0<='\t')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\uFFFE') ) {
+                    alt14=1;
                 }
 
 
-                switch (alt13) {
+                switch (alt14) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1402:48: .
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1406:48: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2714,7 +2743,7 @@
             	    break;
 
             	default :
-            	    break loop13;
+            	    break loop14;
                 }
             } while (true);
 
@@ -2744,30 +2773,30 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 68) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1408:17: ( '//' ( options {greedy=false; } : . )* EOL )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1408:17: '//' ( options {greedy=false; } : . )* EOL
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1412:17: ( '//' ( options {greedy=false; } : . )* EOL )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1412:17: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (failed) return ;
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1408:22: ( options {greedy=false; } : . )*
-            loop14:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1412:22: ( options {greedy=false; } : . )*
+            loop15:
             do {
-                int alt14=2;
-                int LA14_0 = input.LA(1);
-                if ( LA14_0=='\r' ) {
-                    alt14=2;
+                int alt15=2;
+                int LA15_0 = input.LA(1);
+                if ( LA15_0=='\r' ) {
+                    alt15=2;
                 }
-                else if ( LA14_0=='\n' ) {
-                    alt14=2;
+                else if ( LA15_0=='\n' ) {
+                    alt15=2;
                 }
-                else if ( (LA14_0>='\u0000' && LA14_0<='\t')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\uFFFE') ) {
-                    alt14=1;
+                else if ( (LA15_0>='\u0000' && LA15_0<='\t')||(LA15_0>='\u000B' && LA15_0<='\f')||(LA15_0>='\u000E' && LA15_0<='\uFFFE') ) {
+                    alt15=1;
                 }
 
 
-                switch (alt14) {
+                switch (alt15) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1408:49: .
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1412:49: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2775,7 +2804,7 @@
             	    break;
 
             	default :
-            	    break loop14;
+            	    break loop15;
                 }
             } while (true);
 
@@ -2805,35 +2834,35 @@
             int charPosition = getCharPositionInLine();
             int channel = Token.DEFAULT_CHANNEL;
             if ( backtracking>0 && alreadyParsedRule(input, 69) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1413:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1413:17: '/*' ( options {greedy=false; } : . )* '*/'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1417:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1417:17: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (failed) return ;
 
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1413:22: ( options {greedy=false; } : . )*
-            loop15:
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1417:22: ( options {greedy=false; } : . )*
+            loop16:
             do {
-                int alt15=2;
-                int LA15_0 = input.LA(1);
-                if ( LA15_0=='*' ) {
-                    int LA15_1 = input.LA(2);
-                    if ( LA15_1=='/' ) {
-                        alt15=2;
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+                if ( LA16_0=='*' ) {
+                    int LA16_1 = input.LA(2);
+                    if ( LA16_1=='/' ) {
+                        alt16=2;
                     }
-                    else if ( (LA15_1>='\u0000' && LA15_1<='.')||(LA15_1>='0' && LA15_1<='\uFFFE') ) {
-                        alt15=1;
+                    else if ( (LA16_1>='\u0000' && LA16_1<='.')||(LA16_1>='0' && LA16_1<='\uFFFE') ) {
+                        alt16=1;
                     }
 
 
                 }
-                else if ( (LA15_0>='\u0000' && LA15_0<=')')||(LA15_0>='+' && LA15_0<='\uFFFE') ) {
-                    alt15=1;
+                else if ( (LA16_0>='\u0000' && LA16_0<=')')||(LA16_0>='+' && LA16_0<='\uFFFE') ) {
+                    alt16=1;
                 }
 
 
-                switch (alt15) {
+                switch (alt16) {
             	case 1 :
-            	    // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1413:48: .
+            	    // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1417:48: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2841,7 +2870,7 @@
             	    break;
 
             	default :
-            	    break loop15;
+            	    break loop16;
                 }
             } while (true);
 
@@ -2862,488 +2891,488 @@
     // $ANTLR end MULTI_LINE_COMMENT
 
     public void mTokens() throws RecognitionException {
-        // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:10: ( T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | 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 | MISC | WS | EOL | INT | FLOAT | STRING | BOOL | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT )
-        int alt16=69;
-        alt16 = dfa16.predict(input); if (failed) return ;
-        switch (alt16) {
+        // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:10: ( T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | 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 | MISC | WS | EOL | INT | FLOAT | STRING | BOOL | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT )
+        int alt17=69;
+        alt17 = dfa17.predict(input); if (failed) return ;
+        switch (alt17) {
             case 1 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:10: T15
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:10: T15
                 {
                 mT15(); if (failed) return ;
 
                 }
                 break;
             case 2 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:14: T16
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:14: T16
                 {
                 mT16(); if (failed) return ;
 
                 }
                 break;
             case 3 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:18: T17
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:18: T17
                 {
                 mT17(); if (failed) return ;
 
                 }
                 break;
             case 4 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:22: T18
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:22: T18
                 {
                 mT18(); if (failed) return ;
 
                 }
                 break;
             case 5 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:26: T19
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:26: T19
                 {
                 mT19(); if (failed) return ;
 
                 }
                 break;
             case 6 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:30: T20
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:30: T20
                 {
                 mT20(); if (failed) return ;
 
                 }
                 break;
             case 7 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:34: T21
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:34: T21
                 {
                 mT21(); if (failed) return ;
 
                 }
                 break;
             case 8 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:38: T22
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:38: T22
                 {
                 mT22(); if (failed) return ;
 
                 }
                 break;
             case 9 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:42: T23
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:42: T23
                 {
                 mT23(); if (failed) return ;
 
                 }
                 break;
             case 10 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:46: T24
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:46: T24
                 {
                 mT24(); if (failed) return ;
 
                 }
                 break;
             case 11 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:50: T25
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:50: T25
                 {
                 mT25(); if (failed) return ;
 
                 }
                 break;
             case 12 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:54: T26
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:54: T26
                 {
                 mT26(); if (failed) return ;
 
                 }
                 break;
             case 13 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:58: T27
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:58: T27
                 {
                 mT27(); if (failed) return ;
 
                 }
                 break;
             case 14 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:62: T28
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:62: T28
                 {
                 mT28(); if (failed) return ;
 
                 }
                 break;
             case 15 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:66: T29
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:66: T29
                 {
                 mT29(); if (failed) return ;
 
                 }
                 break;
             case 16 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:70: T30
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:70: T30
                 {
                 mT30(); if (failed) return ;
 
                 }
                 break;
             case 17 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:74: T31
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:74: T31
                 {
                 mT31(); if (failed) return ;
 
                 }
                 break;
             case 18 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:78: T32
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:78: T32
                 {
                 mT32(); if (failed) return ;
 
                 }
                 break;
             case 19 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:82: T33
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:82: T33
                 {
                 mT33(); if (failed) return ;
 
                 }
                 break;
             case 20 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:86: T34
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:86: T34
                 {
                 mT34(); if (failed) return ;
 
                 }
                 break;
             case 21 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:90: T35
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:90: T35
                 {
                 mT35(); if (failed) return ;
 
                 }
                 break;
             case 22 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:94: T36
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:94: T36
                 {
                 mT36(); if (failed) return ;
 
                 }
                 break;
             case 23 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:98: T37
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:98: T37
                 {
                 mT37(); if (failed) return ;
 
                 }
                 break;
             case 24 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:102: T38
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:102: T38
                 {
                 mT38(); if (failed) return ;
 
                 }
                 break;
             case 25 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:106: T39
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:106: T39
                 {
                 mT39(); if (failed) return ;
 
                 }
                 break;
             case 26 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:110: T40
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:110: T40
                 {
                 mT40(); if (failed) return ;
 
                 }
                 break;
             case 27 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:114: T41
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:114: T41
                 {
                 mT41(); if (failed) return ;
 
                 }
                 break;
             case 28 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:118: T42
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:118: T42
                 {
                 mT42(); if (failed) return ;
 
                 }
                 break;
             case 29 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:122: T43
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:122: T43
                 {
                 mT43(); if (failed) return ;
 
                 }
                 break;
             case 30 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:126: T44
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:126: T44
                 {
                 mT44(); if (failed) return ;
 
                 }
                 break;
             case 31 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:130: T45
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:130: T45
                 {
                 mT45(); if (failed) return ;
 
                 }
                 break;
             case 32 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:134: T46
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:134: T46
                 {
                 mT46(); if (failed) return ;
 
                 }
                 break;
             case 33 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:138: T47
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:138: T47
                 {
                 mT47(); if (failed) return ;
 
                 }
                 break;
             case 34 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:142: T48
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:142: T48
                 {
                 mT48(); if (failed) return ;
 
                 }
                 break;
             case 35 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:146: T49
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:146: T49
                 {
                 mT49(); if (failed) return ;
 
                 }
                 break;
             case 36 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:150: T50
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:150: T50
                 {
                 mT50(); if (failed) return ;
 
                 }
                 break;
             case 37 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:154: T51
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:154: T51
                 {
                 mT51(); if (failed) return ;
 
                 }
                 break;
             case 38 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:158: T52
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:158: T52
                 {
                 mT52(); if (failed) return ;
 
                 }
                 break;
             case 39 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:162: T53
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:162: T53
                 {
                 mT53(); if (failed) return ;
 
                 }
                 break;
             case 40 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:166: T54
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:166: T54
                 {
                 mT54(); if (failed) return ;
 
                 }
                 break;
             case 41 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:170: T55
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:170: T55
                 {
                 mT55(); if (failed) return ;
 
                 }
                 break;
             case 42 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:174: T56
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:174: T56
                 {
                 mT56(); if (failed) return ;
 
                 }
                 break;
             case 43 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:178: T57
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:178: T57
                 {
                 mT57(); if (failed) return ;
 
                 }
                 break;
             case 44 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:182: T58
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:182: T58
                 {
                 mT58(); if (failed) return ;
 
                 }
                 break;
             case 45 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:186: T59
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:186: T59
                 {
                 mT59(); if (failed) return ;
 
                 }
                 break;
             case 46 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:190: T60
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:190: T60
                 {
                 mT60(); if (failed) return ;
 
                 }
                 break;
             case 47 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:194: T61
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:194: T61
                 {
                 mT61(); if (failed) return ;
 
                 }
                 break;
             case 48 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:198: T62
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:198: T62
                 {
                 mT62(); if (failed) return ;
 
                 }
                 break;
             case 49 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:202: T63
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:202: T63
                 {
                 mT63(); if (failed) return ;
 
                 }
                 break;
             case 50 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:206: T64
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:206: T64
                 {
                 mT64(); if (failed) return ;
 
                 }
                 break;
             case 51 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:210: T65
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:210: T65
                 {
                 mT65(); if (failed) return ;
 
                 }
                 break;
             case 52 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:214: T66
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:214: T66
                 {
                 mT66(); if (failed) return ;
 
                 }
                 break;
             case 53 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:218: T67
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:218: T67
                 {
                 mT67(); if (failed) return ;
 
                 }
                 break;
             case 54 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:222: T68
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:222: T68
                 {
                 mT68(); if (failed) return ;
 
                 }
                 break;
             case 55 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:226: T69
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:226: T69
                 {
                 mT69(); if (failed) return ;
 
                 }
                 break;
             case 56 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:230: T70
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:230: T70
                 {
                 mT70(); if (failed) return ;
 
                 }
                 break;
             case 57 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:234: T71
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:234: T71
                 {
                 mT71(); if (failed) return ;
 
                 }
                 break;
             case 58 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:238: T72
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:238: T72
                 {
                 mT72(); if (failed) return ;
 
                 }
                 break;
             case 59 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:242: MISC
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:242: MISC
                 {
                 mMISC(); if (failed) return ;
 
                 }
                 break;
             case 60 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:247: WS
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:247: WS
                 {
                 mWS(); if (failed) return ;
 
                 }
                 break;
             case 61 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:250: EOL
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:250: EOL
                 {
                 mEOL(); if (failed) return ;
 
                 }
                 break;
             case 62 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:254: INT
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:254: INT
                 {
                 mINT(); if (failed) return ;
 
                 }
                 break;
             case 63 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:258: FLOAT
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:258: FLOAT
                 {
                 mFLOAT(); if (failed) return ;
 
                 }
                 break;
             case 64 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:264: STRING
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:264: STRING
                 {
                 mSTRING(); if (failed) return ;
 
                 }
                 break;
             case 65 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:271: BOOL
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:271: BOOL
                 {
                 mBOOL(); if (failed) return ;
 
                 }
                 break;
             case 66 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:276: ID
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:276: ID
                 {
                 mID(); if (failed) return ;
 
                 }
                 break;
             case 67 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:279: SH_STYLE_SINGLE_LINE_COMMENT
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:279: SH_STYLE_SINGLE_LINE_COMMENT
                 {
                 mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 68 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:308: C_STYLE_SINGLE_LINE_COMMENT
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:308: C_STYLE_SINGLE_LINE_COMMENT
                 {
                 mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 69 :
-                // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:336: MULTI_LINE_COMMENT
+                // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1:336: MULTI_LINE_COMMENT
                 {
                 mMULTI_LINE_COMMENT(); if (failed) return ;
 
@@ -3360,8 +3389,8 @@
         int Synpred1_fragment_StartIndex = input.index();
         try {
             if ( backtracking>0 && alreadyParsedRule(input, 71) ) { return ; }
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1373:25: ( '\r\n' )
-            // D:\workspace\jboss\jbossrules\drools-compiler\src\main\resources\org\drools\lang\drl.g:1373:27: '\r\n'
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1377:25: ( '\r\n' )
+            // D:\dev\drools-3.1\drools-compiler\src\main\resources\org\drools\lang\drl.g:1377:27: '\r\n'
             {
             match("\r\n"); if (failed) return ;
 
@@ -3381,132 +3410,132 @@
     Synpred1Ptr Synpred1 = new Synpred1Ptr();
 
 
-    protected DFA16 dfa16 = new DFA16();
-    class DFA16 extends DFA {
+    protected DFA17 dfa17 = new DFA17();
+    class DFA17 extends DFA {
         public int predict(IntStream input) throws RecognitionException {
             return predict(input, s0);
         }
         DFA.State s1 = new DFA.State() {{alt=1;}};
-        DFA.State s549 = new DFA.State() {{alt=2;}};
+        DFA.State s550 = new DFA.State() {{alt=2;}};
         DFA.State s51 = new DFA.State() {{alt=66;}};
-        DFA.State s497 = new DFA.State() {
+        DFA.State s498 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_497 = input.LA(1);
-                if ( (LA16_497>='0' && LA16_497<='9')||(LA16_497>='A' && LA16_497<='Z')||LA16_497=='_'||(LA16_497>='a' && LA16_497<='z')||(LA16_497>='\u00C0' && LA16_497<='\u00FF') ) {return s51;}
-                return s549;
+                int LA17_498 = input.LA(1);
+                if ( (LA17_498>='0' && LA17_498<='9')||(LA17_498>='A' && LA17_498<='Z')||LA17_498=='_'||(LA17_498>='a' && LA17_498<='z')||(LA17_498>='\u00C0' && LA17_498<='\u00FF') ) {return s51;}
+                return s550;
 
             }
         };
-        DFA.State s436 = new DFA.State() {
+        DFA.State s437 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_436 = input.LA(1);
-                if ( LA16_436=='e' ) {return s497;}
+                int LA17_437 = input.LA(1);
+                if ( LA17_437=='e' ) {return s498;}
                 return s51;
 
             }
         };
-        DFA.State s356 = new DFA.State() {
+        DFA.State s357 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_356 = input.LA(1);
-                if ( LA16_356=='g' ) {return s436;}
+                int LA17_357 = input.LA(1);
+                if ( LA17_357=='g' ) {return s437;}
                 return s51;
 
             }
         };
-        DFA.State s261 = new DFA.State() {
+        DFA.State s262 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_261 = input.LA(1);
-                if ( LA16_261=='a' ) {return s356;}
+                int LA17_262 = input.LA(1);
+                if ( LA17_262=='a' ) {return s357;}
                 return s51;
 
             }
         };
-        DFA.State s164 = new DFA.State() {
+        DFA.State s165 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_164 = input.LA(1);
-                if ( LA16_164=='k' ) {return s261;}
+                int LA17_165 = input.LA(1);
+                if ( LA17_165=='k' ) {return s262;}
                 return s51;
 
             }
         };
         DFA.State s53 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_53 = input.LA(1);
-                if ( LA16_53=='c' ) {return s164;}
+                int LA17_53 = input.LA(1);
+                if ( LA17_53=='c' ) {return s165;}
                 return s51;
 
             }
         };
         DFA.State s2 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_2 = input.LA(1);
-                if ( LA16_2=='a' ) {return s53;}
+                int LA17_2 = input.LA(1);
+                if ( LA17_2=='a' ) {return s53;}
                 return s51;
 
             }
         };
-        DFA.State s359 = new DFA.State() {{alt=30;}};
-        DFA.State s264 = new DFA.State() {
+        DFA.State s501 = new DFA.State() {{alt=3;}};
+        DFA.State s440 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_264 = input.LA(1);
-                if ( (LA16_264>='0' && LA16_264<='9')||(LA16_264>='A' && LA16_264<='Z')||LA16_264=='_'||(LA16_264>='a' && LA16_264<='z')||(LA16_264>='\u00C0' && LA16_264<='\u00FF') ) {return s51;}
-                return s359;
+                int LA17_440 = input.LA(1);
+                if ( (LA17_440>='0' && LA17_440<='9')||(LA17_440>='A' && LA17_440<='Z')||LA17_440=='_'||(LA17_440>='a' && LA17_440<='z')||(LA17_440>='\u00C0' && LA17_440<='\u00FF') ) {return s51;}
+                return s501;
 
             }
         };
-        DFA.State s167 = new DFA.State() {
+        DFA.State s360 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_167 = input.LA(1);
-                if ( LA16_167=='t' ) {return s264;}
+                int LA17_360 = input.LA(1);
+                if ( LA17_360=='t' ) {return s440;}
                 return s51;
 
             }
         };
-        DFA.State s56 = new DFA.State() {
+        DFA.State s265 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_56 = input.LA(1);
-                if ( LA16_56=='i' ) {return s167;}
+                int LA17_265 = input.LA(1);
+                if ( LA17_265=='r' ) {return s360;}
                 return s51;
 
             }
         };
-        DFA.State s500 = new DFA.State() {{alt=3;}};
-        DFA.State s439 = new DFA.State() {
+        DFA.State s168 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_439 = input.LA(1);
-                if ( (LA16_439>='0' && LA16_439<='9')||(LA16_439>='A' && LA16_439<='Z')||LA16_439=='_'||(LA16_439>='a' && LA16_439<='z')||(LA16_439>='\u00C0' && LA16_439<='\u00FF') ) {return s51;}
-                return s500;
+                int LA17_168 = input.LA(1);
+                if ( LA17_168=='o' ) {return s265;}
+                return s51;
 
             }
         };
-        DFA.State s361 = new DFA.State() {
+        DFA.State s56 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_361 = input.LA(1);
-                if ( LA16_361=='t' ) {return s439;}
+                int LA17_56 = input.LA(1);
+                if ( LA17_56=='p' ) {return s168;}
                 return s51;
 
             }
         };
-        DFA.State s267 = new DFA.State() {
+        DFA.State s363 = new DFA.State() {{alt=32;}};
+        DFA.State s268 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_267 = input.LA(1);
-                if ( LA16_267=='r' ) {return s361;}
-                return s51;
+                int LA17_268 = input.LA(1);
+                if ( (LA17_268>='0' && LA17_268<='9')||(LA17_268>='A' && LA17_268<='Z')||LA17_268=='_'||(LA17_268>='a' && LA17_268<='z')||(LA17_268>='\u00C0' && LA17_268<='\u00FF') ) {return s51;}
+                return s363;
 
             }
         };
-        DFA.State s170 = new DFA.State() {
+        DFA.State s171 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_170 = input.LA(1);
-                if ( LA16_170=='o' ) {return s267;}
+                int LA17_171 = input.LA(1);
+                if ( LA17_171=='t' ) {return s268;}
                 return s51;
 
             }
         };
         DFA.State s57 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_57 = input.LA(1);
-                if ( LA16_57=='p' ) {return s170;}
+                int LA17_57 = input.LA(1);
+                if ( LA17_57=='i' ) {return s171;}
                 return s51;
 
             }
@@ -3514,10 +3543,10 @@
         DFA.State s3 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 'n':
+                case 'm':
                     return s56;
 
-                case 'm':
+                case 'n':
                     return s57;
 
                 default:
@@ -3525,117 +3554,117 @@
         	        }
             }
         };
-        DFA.State s392 = new DFA.State() {{alt=65;}};
-        DFA.State s364 = new DFA.State() {
+        DFA.State s365 = new DFA.State() {{alt=28;}};
+        DFA.State s271 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_364 = input.LA(1);
-                if ( (LA16_364>='0' && LA16_364<='9')||(LA16_364>='A' && LA16_364<='Z')||LA16_364=='_'||(LA16_364>='a' && LA16_364<='z')||(LA16_364>='\u00C0' && LA16_364<='\u00FF') ) {return s51;}
-                return s392;
+                int LA17_271 = input.LA(1);
+                if ( (LA17_271>='0' && LA17_271<='9')||(LA17_271>='A' && LA17_271<='Z')||LA17_271=='_'||(LA17_271>='a' && LA17_271<='z')||(LA17_271>='\u00C0' && LA17_271<='\u00FF') ) {return s51;}
+                return s365;
 
             }
         };
-        DFA.State s270 = new DFA.State() {
+        DFA.State s174 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_270 = input.LA(1);
-                if ( LA16_270=='e' ) {return s364;}
+                int LA17_174 = input.LA(1);
+                if ( LA17_174=='m' ) {return s271;}
                 return s51;
 
             }
         };
-        DFA.State s173 = new DFA.State() {
-            public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_173 = input.LA(1);
-                if ( LA16_173=='s' ) {return s270;}
-                return s51;
-
-            }
-        };
         DFA.State s60 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_60 = input.LA(1);
-                if ( LA16_60=='l' ) {return s173;}
+                int LA17_60 = input.LA(1);
+                if ( LA17_60=='o' ) {return s174;}
                 return s51;
 
             }
         };
-        DFA.State s585 = new DFA.State() {{alt=4;}};
-        DFA.State s551 = new DFA.State() {
+        DFA.State s586 = new DFA.State() {{alt=4;}};
+        DFA.State s552 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_551 = input.LA(1);
-                if ( (LA16_551>='0' && LA16_551<='9')||(LA16_551>='A' && LA16_551<='Z')||LA16_551=='_'||(LA16_551>='a' && LA16_551<='z')||(LA16_551>='\u00C0' && LA16_551<='\u00FF') ) {return s51;}
-                return s585;
+                int LA17_552 = input.LA(1);
+                if ( (LA17_552>='0' && LA17_552<='9')||(LA17_552>='A' && LA17_552<='Z')||LA17_552=='_'||(LA17_552>='a' && LA17_552<='z')||(LA17_552>='\u00C0' && LA17_552<='\u00FF') ) {return s51;}
+                return s586;
 
             }
         };
-        DFA.State s502 = new DFA.State() {
+        DFA.State s503 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_502 = input.LA(1);
-                if ( LA16_502=='n' ) {return s551;}
+                int LA17_503 = input.LA(1);
+                if ( LA17_503=='n' ) {return s552;}
                 return s51;
 
             }
         };
-        DFA.State s444 = new DFA.State() {
+        DFA.State s443 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_444 = input.LA(1);
-                if ( LA16_444=='o' ) {return s502;}
+                int LA17_443 = input.LA(1);
+                if ( LA17_443=='o' ) {return s503;}
                 return s51;
 
             }
         };
         DFA.State s367 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_367 = input.LA(1);
-                if ( LA16_367=='i' ) {return s444;}
+                int LA17_367 = input.LA(1);
+                if ( LA17_367=='i' ) {return s443;}
                 return s51;
 
             }
         };
-        DFA.State s273 = new DFA.State() {
+        DFA.State s274 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_273 = input.LA(1);
-                if ( LA16_273=='t' ) {return s367;}
+                int LA17_274 = input.LA(1);
+                if ( LA17_274=='t' ) {return s367;}
                 return s51;
 
             }
         };
-        DFA.State s176 = new DFA.State() {
+        DFA.State s177 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_176 = input.LA(1);
-                if ( LA16_176=='c' ) {return s273;}
+                int LA17_177 = input.LA(1);
+                if ( LA17_177=='c' ) {return s274;}
                 return s51;
 
             }
         };
         DFA.State s61 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_61 = input.LA(1);
-                if ( LA16_61=='n' ) {return s176;}
+                int LA17_61 = input.LA(1);
+                if ( LA17_61=='n' ) {return s177;}
                 return s51;
 
             }
         };
-        DFA.State s370 = new DFA.State() {{alt=28;}};
-        DFA.State s276 = new DFA.State() {
+        DFA.State s395 = new DFA.State() {{alt=65;}};
+        DFA.State s370 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_276 = input.LA(1);
-                if ( (LA16_276>='0' && LA16_276<='9')||(LA16_276>='A' && LA16_276<='Z')||LA16_276=='_'||(LA16_276>='a' && LA16_276<='z')||(LA16_276>='\u00C0' && LA16_276<='\u00FF') ) {return s51;}
-                return s370;
+                int LA17_370 = input.LA(1);
+                if ( (LA17_370>='0' && LA17_370<='9')||(LA17_370>='A' && LA17_370<='Z')||LA17_370=='_'||(LA17_370>='a' && LA17_370<='z')||(LA17_370>='\u00C0' && LA17_370<='\u00FF') ) {return s51;}
+                return s395;
 
             }
         };
-        DFA.State s179 = new DFA.State() {
+        DFA.State s277 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_179 = input.LA(1);
-                if ( LA16_179=='m' ) {return s276;}
+                int LA17_277 = input.LA(1);
+                if ( LA17_277=='e' ) {return s370;}
                 return s51;
 
             }
         };
+        DFA.State s180 = new DFA.State() {
+            public DFA.State transition(IntStream input) throws RecognitionException {
+                int LA17_180 = input.LA(1);
+                if ( LA17_180=='s' ) {return s277;}
+                return s51;
+
+            }
+        };
         DFA.State s62 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_62 = input.LA(1);
-                if ( LA16_62=='o' ) {return s179;}
+                int LA17_62 = input.LA(1);
+                if ( LA17_62=='l' ) {return s180;}
                 return s51;
 
             }
@@ -3643,13 +3672,13 @@
         DFA.State s4 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 'a':
+                case 'r':
                     return s60;
 
                 case 'u':
                     return s61;
 
-                case 'r':
+                case 'a':
                     return s62;
 
                 default:
@@ -3661,156 +3690,156 @@
         DFA.State s66 = new DFA.State() {{alt=5;}};
         DFA.State s5 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_5 = input.LA(1);
-                if ( LA16_5=='*' ) {return s65;}
+                int LA17_5 = input.LA(1);
+                if ( LA17_5=='*' ) {return s65;}
                 return s66;
 
             }
         };
-        DFA.State s279 = new DFA.State() {{alt=15;}};
-        DFA.State s182 = new DFA.State() {
+        DFA.State s280 = new DFA.State() {{alt=15;}};
+        DFA.State s183 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_182 = input.LA(1);
-                if ( (LA16_182>='0' && LA16_182<='9')||(LA16_182>='A' && LA16_182<='Z')||LA16_182=='_'||(LA16_182>='a' && LA16_182<='z')||(LA16_182>='\u00C0' && LA16_182<='\u00FF') ) {return s51;}
-                return s279;
+                int LA17_183 = input.LA(1);
+                if ( (LA17_183>='0' && LA17_183<='9')||(LA17_183>='A' && LA17_183<='Z')||LA17_183=='_'||(LA17_183>='a' && LA17_183<='z')||(LA17_183>='\u00C0' && LA17_183<='\u00FF') ) {return s51;}
+                return s280;
 
             }
         };
         DFA.State s67 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_67 = input.LA(1);
-                if ( LA16_67=='d' ) {return s182;}
+                int LA17_67 = input.LA(1);
+                if ( LA17_67=='d' ) {return s183;}
                 return s51;
 
             }
         };
-        DFA.State s505 = new DFA.State() {{alt=45;}};
-        DFA.State s447 = new DFA.State() {
+        DFA.State s506 = new DFA.State() {{alt=45;}};
+        DFA.State s448 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_447 = input.LA(1);
-                if ( (LA16_447>='0' && LA16_447<='9')||(LA16_447>='A' && LA16_447<='Z')||LA16_447=='_'||(LA16_447>='a' && LA16_447<='z')||(LA16_447>='\u00C0' && LA16_447<='\u00FF') ) {return s51;}
-                return s505;
+                int LA17_448 = input.LA(1);
+                if ( (LA17_448>='0' && LA17_448<='9')||(LA17_448>='A' && LA17_448<='Z')||LA17_448=='_'||(LA17_448>='a' && LA17_448<='z')||(LA17_448>='\u00C0' && LA17_448<='\u00FF') ) {return s51;}
+                return s506;
 
             }
         };
-        DFA.State s372 = new DFA.State() {
+        DFA.State s373 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_372 = input.LA(1);
-                if ( LA16_372=='s' ) {return s447;}
+                int LA17_373 = input.LA(1);
+                if ( LA17_373=='s' ) {return s448;}
                 return s51;
 
             }
         };
-        DFA.State s281 = new DFA.State() {
+        DFA.State s282 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_281 = input.LA(1);
-                if ( LA16_281=='t' ) {return s372;}
+                int LA17_282 = input.LA(1);
+                if ( LA17_282=='t' ) {return s373;}
                 return s51;
 
             }
         };
-        DFA.State s185 = new DFA.State() {
+        DFA.State s186 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_185 = input.LA(1);
-                if ( LA16_185=='s' ) {return s281;}
+                int LA17_186 = input.LA(1);
+                if ( LA17_186=='s' ) {return s282;}
                 return s51;
 
             }
         };
-        DFA.State s587 = new DFA.State() {{alt=58;}};
-        DFA.State s554 = new DFA.State() {
+        DFA.State s588 = new DFA.State() {{alt=58;}};
+        DFA.State s555 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_554 = input.LA(1);
-                if ( (LA16_554>='0' && LA16_554<='9')||(LA16_554>='A' && LA16_554<='Z')||LA16_554=='_'||(LA16_554>='a' && LA16_554<='z')||(LA16_554>='\u00C0' && LA16_554<='\u00FF') ) {return s51;}
-                return s587;
+                int LA17_555 = input.LA(1);
+                if ( (LA17_555>='0' && LA17_555<='9')||(LA17_555>='A' && LA17_555<='Z')||LA17_555=='_'||(LA17_555>='a' && LA17_555<='z')||(LA17_555>='\u00C0' && LA17_555<='\u00FF') ) {return s51;}
+                return s588;
 
             }
         };
-        DFA.State s507 = new DFA.State() {
+        DFA.State s508 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_507 = input.LA(1);
-                if ( LA16_507=='s' ) {return s554;}
+                int LA17_508 = input.LA(1);
+                if ( LA17_508=='s' ) {return s555;}
                 return s51;
 
             }
         };
-        DFA.State s450 = new DFA.State() {
+        DFA.State s451 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_450 = input.LA(1);
-                if ( LA16_450=='e' ) {return s507;}
+                int LA17_451 = input.LA(1);
+                if ( LA17_451=='e' ) {return s508;}
                 return s51;
 
             }
         };
-        DFA.State s375 = new DFA.State() {
+        DFA.State s376 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_375 = input.LA(1);
-                if ( LA16_375=='d' ) {return s450;}
+                int LA17_376 = input.LA(1);
+                if ( LA17_376=='d' ) {return s451;}
                 return s51;
 
             }
         };
-        DFA.State s284 = new DFA.State() {
+        DFA.State s285 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_284 = input.LA(1);
-                if ( LA16_284=='u' ) {return s375;}
+                int LA17_285 = input.LA(1);
+                if ( LA17_285=='u' ) {return s376;}
                 return s51;
 
             }
         };
-        DFA.State s186 = new DFA.State() {
+        DFA.State s187 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_186 = input.LA(1);
-                if ( LA16_186=='l' ) {return s284;}
+                int LA17_187 = input.LA(1);
+                if ( LA17_187=='l' ) {return s285;}
                 return s51;
 
             }
         };
-        DFA.State s589 = new DFA.State() {{alt=7;}};
-        DFA.State s557 = new DFA.State() {
+        DFA.State s590 = new DFA.State() {{alt=7;}};
+        DFA.State s558 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_557 = input.LA(1);
-                if ( (LA16_557>='0' && LA16_557<='9')||(LA16_557>='A' && LA16_557<='Z')||LA16_557=='_'||(LA16_557>='a' && LA16_557<='z')||(LA16_557>='\u00C0' && LA16_557<='\u00FF') ) {return s51;}
-                return s589;
+                int LA17_558 = input.LA(1);
+                if ( (LA17_558>='0' && LA17_558<='9')||(LA17_558>='A' && LA17_558<='Z')||LA17_558=='_'||(LA17_558>='a' && LA17_558<='z')||(LA17_558>='\u00C0' && LA17_558<='\u00FF') ) {return s51;}
+                return s590;
 
             }
         };
-        DFA.State s510 = new DFA.State() {
+        DFA.State s511 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_510 = input.LA(1);
-                if ( LA16_510=='r' ) {return s557;}
+                int LA17_511 = input.LA(1);
+                if ( LA17_511=='r' ) {return s558;}
                 return s51;
 
             }
         };
-        DFA.State s453 = new DFA.State() {
+        DFA.State s454 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_453 = input.LA(1);
-                if ( LA16_453=='e' ) {return s510;}
+                int LA17_454 = input.LA(1);
+                if ( LA17_454=='e' ) {return s511;}
                 return s51;
 
             }
         };
-        DFA.State s378 = new DFA.State() {
+        DFA.State s379 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_378 = input.LA(1);
-                if ( LA16_378=='d' ) {return s453;}
+                int LA17_379 = input.LA(1);
+                if ( LA17_379=='d' ) {return s454;}
                 return s51;
 
             }
         };
-        DFA.State s287 = new DFA.State() {
+        DFA.State s288 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_287 = input.LA(1);
-                if ( LA16_287=='n' ) {return s378;}
+                int LA17_288 = input.LA(1);
+                if ( LA17_288=='n' ) {return s379;}
                 return s51;
 
             }
         };
-        DFA.State s187 = new DFA.State() {
+        DFA.State s188 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_187 = input.LA(1);
-                if ( LA16_187=='a' ) {return s287;}
+                int LA17_188 = input.LA(1);
+                if ( LA17_188=='a' ) {return s288;}
                 return s51;
 
             }
@@ -3819,40 +3848,40 @@
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 'i':
-                    return s185;
+                    return s186;
 
                 case 'c':
-                    return s186;
+                    return s187;
 
                 case 'p':
-                    return s187;
+                    return s188;
 
                 default:
                     return s51;
         	        }
             }
         };
-        DFA.State s381 = new DFA.State() {{alt=47;}};
-        DFA.State s290 = new DFA.State() {
+        DFA.State s382 = new DFA.State() {{alt=47;}};
+        DFA.State s291 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_290 = input.LA(1);
-                if ( (LA16_290>='0' && LA16_290<='9')||(LA16_290>='A' && LA16_290<='Z')||LA16_290=='_'||(LA16_290>='a' && LA16_290<='z')||(LA16_290>='\u00C0' && LA16_290<='\u00FF') ) {return s51;}
-                return s381;
+                int LA17_291 = input.LA(1);
+                if ( (LA17_291>='0' && LA17_291<='9')||(LA17_291>='A' && LA17_291<='Z')||LA17_291=='_'||(LA17_291>='a' && LA17_291<='z')||(LA17_291>='\u00C0' && LA17_291<='\u00FF') ) {return s51;}
+                return s382;
 
             }
         };
-        DFA.State s190 = new DFA.State() {
+        DFA.State s191 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_190 = input.LA(1);
-                if ( LA16_190=='l' ) {return s290;}
+                int LA17_191 = input.LA(1);
+                if ( LA17_191=='l' ) {return s291;}
                 return s51;
 
             }
         };
         DFA.State s69 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_69 = input.LA(1);
-                if ( LA16_69=='a' ) {return s190;}
+                int LA17_69 = input.LA(1);
+                if ( LA17_69=='a' ) {return s191;}
                 return s51;
 
             }
@@ -3874,51 +3903,51 @@
         	        }
             }
         };
-        DFA.State s513 = new DFA.State() {{alt=8;}};
-        DFA.State s456 = new DFA.State() {
+        DFA.State s514 = new DFA.State() {{alt=8;}};
+        DFA.State s457 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_456 = input.LA(1);
-                if ( (LA16_456>='0' && LA16_456<='9')||(LA16_456>='A' && LA16_456<='Z')||LA16_456=='_'||(LA16_456>='a' && LA16_456<='z')||(LA16_456>='\u00C0' && LA16_456<='\u00FF') ) {return s51;}
-                return s513;
+                int LA17_457 = input.LA(1);
+                if ( (LA17_457>='0' && LA17_457<='9')||(LA17_457>='A' && LA17_457<='Z')||LA17_457=='_'||(LA17_457>='a' && LA17_457<='z')||(LA17_457>='\u00C0' && LA17_457<='\u00FF') ) {return s51;}
+                return s514;
 
             }
         };
-        DFA.State s383 = new DFA.State() {
+        DFA.State s384 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_383 = input.LA(1);
-                if ( LA16_383=='l' ) {return s456;}
+                int LA17_384 = input.LA(1);
+                if ( LA17_384=='l' ) {return s457;}
                 return s51;
 
             }
         };
-        DFA.State s293 = new DFA.State() {
+        DFA.State s294 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_293 = input.LA(1);
-                if ( LA16_293=='a' ) {return s383;}
+                int LA17_294 = input.LA(1);
+                if ( LA17_294=='a' ) {return s384;}
                 return s51;
 
             }
         };
-        DFA.State s193 = new DFA.State() {
+        DFA.State s194 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_193 = input.LA(1);
-                if ( LA16_193=='b' ) {return s293;}
+                int LA17_194 = input.LA(1);
+                if ( LA17_194=='b' ) {return s294;}
                 return s51;
 
             }
         };
         DFA.State s72 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_72 = input.LA(1);
-                if ( LA16_72=='o' ) {return s193;}
+                int LA17_72 = input.LA(1);
+                if ( LA17_72=='o' ) {return s194;}
                 return s51;
 
             }
         };
         DFA.State s7 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_7 = input.LA(1);
-                if ( LA16_7=='l' ) {return s72;}
+                int LA17_7 = input.LA(1);
+                if ( LA17_7=='l' ) {return s72;}
                 return s51;
 
             }
@@ -3926,7 +3955,7 @@
         DFA.State s75 = new DFA.State() {{alt=9;}};
         DFA.State s8 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_8 = input.LA(1);
+                int LA17_8 = input.LA(1);
                 return s75;
 
             }
@@ -3934,7 +3963,7 @@
         DFA.State s76 = new DFA.State() {{alt=10;}};
         DFA.State s9 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_9 = input.LA(1);
+                int LA17_9 = input.LA(1);
                 return s76;
 
             }
@@ -3942,7 +3971,7 @@
         DFA.State s77 = new DFA.State() {{alt=11;}};
         DFA.State s10 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_10 = input.LA(1);
+                int LA17_10 = input.LA(1);
                 return s77;
 
             }
@@ -3950,7 +3979,7 @@
         DFA.State s78 = new DFA.State() {{alt=12;}};
         DFA.State s11 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_11 = input.LA(1);
+                int LA17_11 = input.LA(1);
                 return s78;
 
             }
@@ -3958,154 +3987,154 @@
         DFA.State s79 = new DFA.State() {{alt=13;}};
         DFA.State s12 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_12 = input.LA(1);
+                int LA17_12 = input.LA(1);
                 return s79;
 
             }
         };
-        DFA.State s459 = new DFA.State() {{alt=14;}};
-        DFA.State s386 = new DFA.State() {
+        DFA.State s460 = new DFA.State() {{alt=14;}};
+        DFA.State s387 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_386 = input.LA(1);
-                if ( (LA16_386>='0' && LA16_386<='9')||(LA16_386>='A' && LA16_386<='Z')||LA16_386=='_'||(LA16_386>='a' && LA16_386<='z')||(LA16_386>='\u00C0' && LA16_386<='\u00FF') ) {return s51;}
-                return s459;
+                int LA17_387 = input.LA(1);
+                if ( (LA17_387>='0' && LA17_387<='9')||(LA17_387>='A' && LA17_387<='Z')||LA17_387=='_'||(LA17_387>='a' && LA17_387<='z')||(LA17_387>='\u00C0' && LA17_387<='\u00FF') ) {return s51;}
+                return s460;
 
             }
         };
-        DFA.State s296 = new DFA.State() {
+        DFA.State s297 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_296 = input.LA(1);
-                if ( LA16_296=='y' ) {return s386;}
+                int LA17_297 = input.LA(1);
+                if ( LA17_297=='y' ) {return s387;}
                 return s51;
 
             }
         };
-        DFA.State s196 = new DFA.State() {
+        DFA.State s197 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_196 = input.LA(1);
-                if ( LA16_196=='r' ) {return s296;}
+                int LA17_197 = input.LA(1);
+                if ( LA17_197=='r' ) {return s297;}
                 return s51;
 
             }
         };
         DFA.State s80 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_80 = input.LA(1);
-                if ( LA16_80=='e' ) {return s196;}
+                int LA17_80 = input.LA(1);
+                if ( LA17_80=='e' ) {return s197;}
                 return s51;
 
             }
         };
         DFA.State s13 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_13 = input.LA(1);
-                if ( LA16_13=='u' ) {return s80;}
+                int LA17_13 = input.LA(1);
+                if ( LA17_13=='u' ) {return s80;}
                 return s51;
 
             }
         };
-        DFA.State s591 = new DFA.State() {{alt=16;}};
-        DFA.State s560 = new DFA.State() {
+        DFA.State s592 = new DFA.State() {{alt=16;}};
+        DFA.State s561 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_560 = input.LA(1);
-                if ( (LA16_560>='0' && LA16_560<='9')||(LA16_560>='A' && LA16_560<='Z')||LA16_560=='_'||(LA16_560>='a' && LA16_560<='z')||(LA16_560>='\u00C0' && LA16_560<='\u00FF') ) {return s51;}
-                return s591;
+                int LA17_561 = input.LA(1);
+                if ( (LA17_561>='0' && LA17_561<='9')||(LA17_561>='A' && LA17_561<='Z')||LA17_561=='_'||(LA17_561>='a' && LA17_561<='z')||(LA17_561>='\u00C0' && LA17_561<='\u00FF') ) {return s51;}
+                return s592;
 
             }
         };
-        DFA.State s515 = new DFA.State() {
+        DFA.State s516 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_515 = input.LA(1);
-                if ( LA16_515=='e' ) {return s560;}
+                int LA17_516 = input.LA(1);
+                if ( LA17_516=='e' ) {return s561;}
                 return s51;
 
             }
         };
-        DFA.State s461 = new DFA.State() {
+        DFA.State s462 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_461 = input.LA(1);
-                if ( LA16_461=='t' ) {return s515;}
+                int LA17_462 = input.LA(1);
+                if ( LA17_462=='t' ) {return s516;}
                 return s51;
 
             }
         };
-        DFA.State s389 = new DFA.State() {
+        DFA.State s390 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_389 = input.LA(1);
-                if ( LA16_389=='a' ) {return s461;}
+                int LA17_390 = input.LA(1);
+                if ( LA17_390=='a' ) {return s462;}
                 return s51;
 
             }
         };
-        DFA.State s299 = new DFA.State() {
+        DFA.State s300 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_299 = input.LA(1);
-                if ( LA16_299=='l' ) {return s389;}
+                int LA17_300 = input.LA(1);
+                if ( LA17_300=='l' ) {return s390;}
                 return s51;
 
             }
         };
-        DFA.State s199 = new DFA.State() {
+        DFA.State s200 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_199 = input.LA(1);
-                if ( LA16_199=='p' ) {return s299;}
+                int LA17_200 = input.LA(1);
+                if ( LA17_200=='p' ) {return s300;}
                 return s51;
 
             }
         };
         DFA.State s83 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_83 = input.LA(1);
-                if ( LA16_83=='m' ) {return s199;}
+                int LA17_83 = input.LA(1);
+                if ( LA17_83=='m' ) {return s200;}
                 return s51;
 
             }
         };
-        DFA.State s302 = new DFA.State() {
+        DFA.State s393 = new DFA.State() {{alt=20;}};
+        DFA.State s303 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_302 = input.LA(1);
-                if ( (LA16_302>='0' && LA16_302<='9')||(LA16_302>='A' && LA16_302<='Z')||LA16_302=='_'||(LA16_302>='a' && LA16_302<='z')||(LA16_302>='\u00C0' && LA16_302<='\u00FF') ) {return s51;}
-                return s392;
+                int LA17_303 = input.LA(1);
+                if ( (LA17_303>='0' && LA17_303<='9')||(LA17_303>='A' && LA17_303<='Z')||LA17_303=='_'||(LA17_303>='a' && LA17_303<='z')||(LA17_303>='\u00C0' && LA17_303<='\u00FF') ) {return s51;}
+                return s393;
 
             }
         };
-        DFA.State s202 = new DFA.State() {
+        DFA.State s203 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_202 = input.LA(1);
-                if ( LA16_202=='e' ) {return s302;}
+                int LA17_203 = input.LA(1);
+                if ( LA17_203=='n' ) {return s303;}
                 return s51;
 
             }
         };
         DFA.State s84 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_84 = input.LA(1);
-                if ( LA16_84=='u' ) {return s202;}
+                int LA17_84 = input.LA(1);
+                if ( LA17_84=='e' ) {return s203;}
                 return s51;
 
             }
         };
-        DFA.State s394 = new DFA.State() {{alt=20;}};
-        DFA.State s305 = new DFA.State() {
+        DFA.State s306 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_305 = input.LA(1);
-                if ( (LA16_305>='0' && LA16_305<='9')||(LA16_305>='A' && LA16_305<='Z')||LA16_305=='_'||(LA16_305>='a' && LA16_305<='z')||(LA16_305>='\u00C0' && LA16_305<='\u00FF') ) {return s51;}
-                return s394;
+                int LA17_306 = input.LA(1);
+                if ( (LA17_306>='0' && LA17_306<='9')||(LA17_306>='A' && LA17_306<='Z')||LA17_306=='_'||(LA17_306>='a' && LA17_306<='z')||(LA17_306>='\u00C0' && LA17_306<='\u00FF') ) {return s51;}
+                return s395;
 
             }
         };
-        DFA.State s205 = new DFA.State() {
+        DFA.State s206 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_205 = input.LA(1);
-                if ( LA16_205=='n' ) {return s305;}
+                int LA17_206 = input.LA(1);
+                if ( LA17_206=='e' ) {return s306;}
                 return s51;
 
             }
         };
         DFA.State s85 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_85 = input.LA(1);
-                if ( LA16_85=='e' ) {return s205;}
+                int LA17_85 = input.LA(1);
+                if ( LA17_85=='u' ) {return s206;}
                 return s51;
 
             }
@@ -4116,10 +4145,10 @@
                 case 'e':
                     return s83;
 
-                case 'r':
+                case 'h':
                     return s84;
 
-                case 'h':
+                case 'r':
                     return s85;
 
                 default:
@@ -4127,68 +4156,68 @@
         	        }
             }
         };
-        DFA.State s396 = new DFA.State() {{alt=17;}};
-        DFA.State s308 = new DFA.State() {
+        DFA.State s397 = new DFA.State() {{alt=17;}};
+        DFA.State s309 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_308 = input.LA(1);
-                if ( (LA16_308>='0' && LA16_308<='9')||(LA16_308>='A' && LA16_308<='Z')||LA16_308=='_'||(LA16_308>='a' && LA16_308<='z')||(LA16_308>='\u00C0' && LA16_308<='\u00FF') ) {return s51;}
-                return s396;
+                int LA17_309 = input.LA(1);
+                if ( (LA17_309>='0' && LA17_309<='9')||(LA17_309>='A' && LA17_309<='Z')||LA17_309=='_'||(LA17_309>='a' && LA17_309<='z')||(LA17_309>='\u00C0' && LA17_309<='\u00FF') ) {return s51;}
+                return s397;
 
             }
         };
-        DFA.State s208 = new DFA.State() {
+        DFA.State s209 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_208 = input.LA(1);
-                if ( LA16_208=='e' ) {return s308;}
+                int LA17_209 = input.LA(1);
+                if ( LA17_209=='e' ) {return s309;}
                 return s51;
 
             }
         };
         DFA.State s88 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_88 = input.LA(1);
-                if ( LA16_88=='l' ) {return s208;}
+                int LA17_88 = input.LA(1);
+                if ( LA17_88=='l' ) {return s209;}
                 return s51;
 
             }
         };
-        DFA.State s518 = new DFA.State() {{alt=32;}};
-        DFA.State s464 = new DFA.State() {
+        DFA.State s519 = new DFA.State() {{alt=34;}};
+        DFA.State s465 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_464 = input.LA(1);
-                if ( (LA16_464>='0' && LA16_464<='9')||(LA16_464>='A' && LA16_464<='Z')||LA16_464=='_'||(LA16_464>='a' && LA16_464<='z')||(LA16_464>='\u00C0' && LA16_464<='\u00FF') ) {return s51;}
-                return s518;
+                int LA17_465 = input.LA(1);
+                if ( (LA17_465>='0' && LA17_465<='9')||(LA17_465>='A' && LA17_465<='Z')||LA17_465=='_'||(LA17_465>='a' && LA17_465<='z')||(LA17_465>='\u00C0' && LA17_465<='\u00FF') ) {return s51;}
+                return s519;
 
             }
         };
-        DFA.State s398 = new DFA.State() {
+        DFA.State s399 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_398 = input.LA(1);
-                if ( LA16_398=='t' ) {return s464;}
+                int LA17_399 = input.LA(1);
+                if ( LA17_399=='t' ) {return s465;}
                 return s51;
 
             }
         };
-        DFA.State s311 = new DFA.State() {
+        DFA.State s312 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_311 = input.LA(1);
-                if ( LA16_311=='l' ) {return s398;}
+                int LA17_312 = input.LA(1);
+                if ( LA17_312=='l' ) {return s399;}
                 return s51;
 
             }
         };
-        DFA.State s211 = new DFA.State() {
+        DFA.State s212 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_211 = input.LA(1);
-                if ( LA16_211=='u' ) {return s311;}
+                int LA17_212 = input.LA(1);
+                if ( LA17_212=='u' ) {return s312;}
                 return s51;
 
             }
         };
         DFA.State s89 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_89 = input.LA(1);
-                if ( LA16_89=='s' ) {return s211;}
+                int LA17_89 = input.LA(1);
+                if ( LA17_89=='s' ) {return s212;}
                 return s51;
 
             }
@@ -4207,189 +4236,189 @@
         	        }
             }
         };
-        DFA.State s401 = new DFA.State() {{alt=18;}};
-        DFA.State s314 = new DFA.State() {
+        DFA.State s402 = new DFA.State() {{alt=18;}};
+        DFA.State s315 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_314 = input.LA(1);
-                if ( (LA16_314>='0' && LA16_314<='9')||(LA16_314>='A' && LA16_314<='Z')||LA16_314=='_'||(LA16_314>='a' && LA16_314<='z')||(LA16_314>='\u00C0' && LA16_314<='\u00FF') ) {return s51;}
-                return s401;
+                int LA17_315 = input.LA(1);
+                if ( (LA17_315>='0' && LA17_315<='9')||(LA17_315>='A' && LA17_315<='Z')||LA17_315=='_'||(LA17_315>='a' && LA17_315<='z')||(LA17_315>='\u00C0' && LA17_315<='\u00FF') ) {return s51;}
+                return s402;
 
             }
         };
-        DFA.State s214 = new DFA.State() {
+        DFA.State s215 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_214 = input.LA(1);
-                if ( LA16_214=='n' ) {return s314;}
+                int LA17_215 = input.LA(1);
+                if ( LA17_215=='n' ) {return s315;}
                 return s51;
 
             }
         };
         DFA.State s92 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_92 = input.LA(1);
-                if ( LA16_92=='e' ) {return s214;}
+                int LA17_92 = input.LA(1);
+                if ( LA17_92=='e' ) {return s215;}
                 return s51;
 
             }
         };
         DFA.State s16 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_16 = input.LA(1);
-                if ( LA16_16=='h' ) {return s92;}
+                int LA17_16 = input.LA(1);
+                if ( LA17_16=='h' ) {return s92;}
                 return s51;
 
             }
         };
         DFA.State s17 = new DFA.State() {{alt=19;}};
-        DFA.State s520 = new DFA.State() {{alt=31;}};
-        DFA.State s467 = new DFA.State() {
+        DFA.State s618 = new DFA.State() {{alt=31;}};
+        DFA.State s609 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_467 = input.LA(1);
-                if ( (LA16_467>='0' && LA16_467<='9')||(LA16_467>='A' && LA16_467<='Z')||LA16_467=='_'||(LA16_467>='a' && LA16_467<='z')||(LA16_467>='\u00C0' && LA16_467<='\u00FF') ) {return s51;}
-                return s520;
+                int LA17_609 = input.LA(1);
+                if ( (LA17_609>='0' && LA17_609<='9')||(LA17_609>='A' && LA17_609<='Z')||LA17_609=='_'||(LA17_609>='a' && LA17_609<='z')||(LA17_609>='\u00C0' && LA17_609<='\u00FF') ) {return s51;}
+                return s618;
 
             }
         };
-        DFA.State s403 = new DFA.State() {
+        DFA.State s594 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_403 = input.LA(1);
-                if ( LA16_403=='n' ) {return s467;}
+                int LA17_594 = input.LA(1);
+                if ( LA17_594=='e' ) {return s609;}
                 return s51;
 
             }
         };
-        DFA.State s617 = new DFA.State() {{alt=25;}};
-        DFA.State s608 = new DFA.State() {
+        DFA.State s564 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_608 = input.LA(1);
-                if ( LA16_608=='-' ) {return s617;}
+                int LA17_564 = input.LA(1);
+                if ( LA17_564=='t' ) {return s594;}
                 return s51;
 
             }
         };
-        DFA.State s593 = new DFA.State() {
+        DFA.State s521 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_593 = input.LA(1);
-                if ( LA16_593=='n' ) {return s608;}
+                int LA17_521 = input.LA(1);
+                if ( LA17_521=='a' ) {return s564;}
                 return s51;
 
             }
         };
-        DFA.State s563 = new DFA.State() {
+        DFA.State s468 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_563 = input.LA(1);
-                if ( LA16_563=='o' ) {return s593;}
+                int LA17_468 = input.LA(1);
+                if ( LA17_468=='l' ) {return s521;}
                 return s51;
 
             }
         };
-        DFA.State s522 = new DFA.State() {
+        DFA.State s404 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_522 = input.LA(1);
-                if ( LA16_522=='i' ) {return s563;}
+                int LA17_404 = input.LA(1);
+                if ( LA17_404=='u' ) {return s468;}
                 return s51;
 
             }
         };
-        DFA.State s470 = new DFA.State() {
+        DFA.State s318 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_470 = input.LA(1);
-                if ( LA16_470=='t' ) {return s522;}
+                int LA17_318 = input.LA(1);
+                if ( LA17_318=='m' ) {return s404;}
                 return s51;
 
             }
         };
-        DFA.State s404 = new DFA.State() {
+        DFA.State s218 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_404 = input.LA(1);
-                if ( LA16_404=='a' ) {return s470;}
+                int LA17_218 = input.LA(1);
+                if ( LA17_218=='u' ) {return s318;}
                 return s51;
 
             }
         };
-        DFA.State s317 = new DFA.State() {
+        DFA.State s620 = new DFA.State() {{alt=25;}};
+        DFA.State s612 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                switch ( input.LA(1) ) {
-                case 'o':
-                    return s403;
+                int LA17_612 = input.LA(1);
+                if ( LA17_612=='-' ) {return s620;}
+                return s51;
 
-                case 'v':
-                    return s404;
-
-                default:
-                    return s51;
-        	        }
             }
         };
-        DFA.State s217 = new DFA.State() {
+        DFA.State s597 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_217 = input.LA(1);
-                if ( LA16_217=='i' ) {return s317;}
+                int LA17_597 = input.LA(1);
+                if ( LA17_597=='n' ) {return s612;}
                 return s51;
 
             }
         };
-        DFA.State s620 = new DFA.State() {{alt=29;}};
-        DFA.State s611 = new DFA.State() {
+        DFA.State s567 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_611 = input.LA(1);
-                if ( (LA16_611>='0' && LA16_611<='9')||(LA16_611>='A' && LA16_611<='Z')||LA16_611=='_'||(LA16_611>='a' && LA16_611<='z')||(LA16_611>='\u00C0' && LA16_611<='\u00FF') ) {return s51;}
-                return s620;
+                int LA17_567 = input.LA(1);
+                if ( LA17_567=='o' ) {return s597;}
+                return s51;
 
             }
         };
-        DFA.State s596 = new DFA.State() {
+        DFA.State s524 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_596 = input.LA(1);
-                if ( LA16_596=='e' ) {return s611;}
+                int LA17_524 = input.LA(1);
+                if ( LA17_524=='i' ) {return s567;}
                 return s51;
 
             }
         };
-        DFA.State s566 = new DFA.State() {
+        DFA.State s471 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_566 = input.LA(1);
-                if ( LA16_566=='t' ) {return s596;}
+                int LA17_471 = input.LA(1);
+                if ( LA17_471=='t' ) {return s524;}
                 return s51;
 
             }
         };
-        DFA.State s525 = new DFA.State() {
+        DFA.State s407 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_525 = input.LA(1);
-                if ( LA16_525=='a' ) {return s566;}
+                int LA17_407 = input.LA(1);
+                if ( LA17_407=='a' ) {return s471;}
                 return s51;
 
             }
         };
-        DFA.State s473 = new DFA.State() {
+        DFA.State s527 = new DFA.State() {{alt=33;}};
+        DFA.State s474 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_473 = input.LA(1);
-                if ( LA16_473=='l' ) {return s525;}
-                return s51;
+                int LA17_474 = input.LA(1);
+                if ( (LA17_474>='0' && LA17_474<='9')||(LA17_474>='A' && LA17_474<='Z')||LA17_474=='_'||(LA17_474>='a' && LA17_474<='z')||(LA17_474>='\u00C0' && LA17_474<='\u00FF') ) {return s51;}
+                return s527;
 
             }
         };
-        DFA.State s407 = new DFA.State() {
+        DFA.State s408 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_407 = input.LA(1);
-                if ( LA16_407=='u' ) {return s473;}
+                int LA17_408 = input.LA(1);
+                if ( LA17_408=='n' ) {return s474;}
                 return s51;
 
             }
         };
-        DFA.State s320 = new DFA.State() {
+        DFA.State s321 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_320 = input.LA(1);
-                if ( LA16_320=='m' ) {return s407;}
-                return s51;
+                switch ( input.LA(1) ) {
+                case 'v':
+                    return s407;
 
+                case 'o':
+                    return s408;
+
+                default:
+                    return s51;
+        	        }
             }
         };
-        DFA.State s218 = new DFA.State() {
+        DFA.State s219 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_218 = input.LA(1);
-                if ( LA16_218=='u' ) {return s320;}
+                int LA17_219 = input.LA(1);
+                if ( LA17_219=='i' ) {return s321;}
                 return s51;
 
             }
@@ -4397,169 +4426,169 @@
         DFA.State s95 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case 't':
-                    return s217;
-
                 case 'c':
                     return s218;
 
+                case 't':
+                    return s219;
+
                 default:
                     return s51;
         	        }
             }
         };
-        DFA.State s622 = new DFA.State() {{alt=21;}};
-        DFA.State s614 = new DFA.State() {
+        DFA.State s324 = new DFA.State() {{alt=43;}};
+        DFA.State s222 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_614 = input.LA(1);
-                if ( (LA16_614>='0' && LA16_614<='9')||(LA16_614>='A' && LA16_614<='Z')||LA16_614=='_'||(LA16_614>='a' && LA16_614<='z')||(LA16_614>='\u00C0' && LA16_614<='\u00FF') ) {return s51;}
-                return s622;
+                int LA17_222 = input.LA(1);
+                if ( (LA17_222>='0' && LA17_222<='9')||(LA17_222>='A' && LA17_222<='Z')||LA17_222=='_'||(LA17_222>='a' && LA17_222<='z')||(LA17_222>='\u00C0' && LA17_222<='\u00FF') ) {return s51;}
+                return s324;
 
             }
         };
-        DFA.State s599 = new DFA.State() {
+        DFA.State s96 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_599 = input.LA(1);
-                if ( LA16_599=='s' ) {return s614;}
+                int LA17_96 = input.LA(1);
+                if ( LA17_96=='d' ) {return s222;}
                 return s51;
 
             }
         };
-        DFA.State s569 = new DFA.State() {
+        DFA.State s529 = new DFA.State() {{alt=26;}};
+        DFA.State s477 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_569 = input.LA(1);
-                if ( LA16_569=='e' ) {return s599;}
+                int LA17_477 = input.LA(1);
+                if ( LA17_477=='-' ) {return s529;}
                 return s51;
 
             }
         };
-        DFA.State s528 = new DFA.State() {
+        DFA.State s411 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_528 = input.LA(1);
-                if ( LA16_528=='t' ) {return s569;}
+                int LA17_411 = input.LA(1);
+                if ( LA17_411=='a' ) {return s477;}
                 return s51;
 
             }
         };
-        DFA.State s476 = new DFA.State() {
+        DFA.State s326 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_476 = input.LA(1);
-                if ( LA16_476=='u' ) {return s528;}
+                int LA17_326 = input.LA(1);
+                if ( LA17_326=='d' ) {return s411;}
                 return s51;
 
             }
         };
-        DFA.State s410 = new DFA.State() {
+        DFA.State s225 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_410 = input.LA(1);
-                if ( LA16_410=='b' ) {return s476;}
+                int LA17_225 = input.LA(1);
+                if ( LA17_225=='n' ) {return s326;}
                 return s51;
 
             }
         };
-        DFA.State s323 = new DFA.State() {
+        DFA.State s97 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_323 = input.LA(1);
-                if ( LA16_323=='i' ) {return s410;}
+                int LA17_97 = input.LA(1);
+                if ( LA17_97=='e' ) {return s225;}
                 return s51;
 
             }
         };
-        DFA.State s221 = new DFA.State() {
+        DFA.State s623 = new DFA.State() {{alt=21;}};
+        DFA.State s615 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_221 = input.LA(1);
-                if ( LA16_221=='r' ) {return s323;}
-                return s51;
+                int LA17_615 = input.LA(1);
+                if ( (LA17_615>='0' && LA17_615<='9')||(LA17_615>='A' && LA17_615<='Z')||LA17_615=='_'||(LA17_615>='a' && LA17_615<='z')||(LA17_615>='\u00C0' && LA17_615<='\u00FF') ) {return s51;}
+                return s623;
 
             }
         };
-        DFA.State s96 = new DFA.State() {
+        DFA.State s600 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_96 = input.LA(1);
-                if ( LA16_96=='t' ) {return s221;}
+                int LA17_600 = input.LA(1);
+                if ( LA17_600=='s' ) {return s615;}
                 return s51;
 
             }
         };
-        DFA.State s413 = new DFA.State() {{alt=24;}};
-        DFA.State s326 = new DFA.State() {
+        DFA.State s570 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_326 = input.LA(1);
-                if ( LA16_326=='-' ) {return s413;}
+                int LA17_570 = input.LA(1);
+                if ( LA17_570=='e' ) {return s600;}
                 return s51;
 
             }
         };
-        DFA.State s224 = new DFA.State() {
+        DFA.State s532 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_224 = input.LA(1);
-                if ( LA16_224=='o' ) {return s326;}
+                int LA17_532 = input.LA(1);
+                if ( LA17_532=='t' ) {return s570;}
                 return s51;
 
             }
         };
-        DFA.State s97 = new DFA.State() {
+        DFA.State s480 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_97 = input.LA(1);
-                if ( LA16_97=='t' ) {return s224;}
+                int LA17_480 = input.LA(1);
+                if ( LA17_480=='u' ) {return s532;}
                 return s51;
 
             }
         };
-        DFA.State s329 = new DFA.State() {{alt=43;}};
-        DFA.State s227 = new DFA.State() {
+        DFA.State s414 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_227 = input.LA(1);
-                if ( (LA16_227>='0' && LA16_227<='9')||(LA16_227>='A' && LA16_227<='Z')||LA16_227=='_'||(LA16_227>='a' && LA16_227<='z')||(LA16_227>='\u00C0' && LA16_227<='\u00FF') ) {return s51;}
-                return s329;
+                int LA17_414 = input.LA(1);
+                if ( LA17_414=='b' ) {return s480;}
+                return s51;
 
             }
         };
-        DFA.State s98 = new DFA.State() {
+        DFA.State s329 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_98 = input.LA(1);
-                if ( LA16_98=='d' ) {return s227;}
+                int LA17_329 = input.LA(1);
+                if ( LA17_329=='i' ) {return s414;}
                 return s51;
 
             }
         };
-        DFA.State s531 = new DFA.State() {{alt=26;}};
-        DFA.State s479 = new DFA.State() {
+        DFA.State s228 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_479 = input.LA(1);
-                if ( LA16_479=='-' ) {return s531;}
+                int LA17_228 = input.LA(1);
+                if ( LA17_228=='r' ) {return s329;}
                 return s51;
 
             }
         };
-        DFA.State s416 = new DFA.State() {
+        DFA.State s98 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_416 = input.LA(1);
-                if ( LA16_416=='a' ) {return s479;}
+                int LA17_98 = input.LA(1);
+                if ( LA17_98=='t' ) {return s228;}
                 return s51;
 
             }
         };
-        DFA.State s331 = new DFA.State() {
+        DFA.State s417 = new DFA.State() {{alt=24;}};
+        DFA.State s332 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_331 = input.LA(1);
-                if ( LA16_331=='d' ) {return s416;}
+                int LA17_332 = input.LA(1);
+                if ( LA17_332=='-' ) {return s417;}
                 return s51;
 
             }
         };
-        DFA.State s230 = new DFA.State() {
+        DFA.State s231 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_230 = input.LA(1);
-                if ( LA16_230=='n' ) {return s331;}
+                int LA17_231 = input.LA(1);
+                if ( LA17_231=='o' ) {return s332;}
                 return s51;
 
             }
         };
         DFA.State s99 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_99 = input.LA(1);
-                if ( LA16_99=='e' ) {return s230;}
+                int LA17_99 = input.LA(1);
+                if ( LA17_99=='t' ) {return s231;}
                 return s51;
 
             }
@@ -4570,16 +4599,16 @@
                 case 'c':
                     return s95;
 
-                case 't':
+                case 'n':
                     return s96;
 
-                case 'u':
+                case 'g':
                     return s97;
 
-                case 'n':
+                case 't':
                     return s98;
 
-                case 'g':
+                case 'u':
                     return s99;
 
                 default:
@@ -4587,116 +4616,116 @@
         	        }
             }
         };
-        DFA.State s602 = new DFA.State() {{alt=22;}};
-        DFA.State s572 = new DFA.State() {
+        DFA.State s603 = new DFA.State() {{alt=22;}};
+        DFA.State s573 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_572 = input.LA(1);
-                if ( (LA16_572>='0' && LA16_572<='9')||(LA16_572>='A' && LA16_572<='Z')||LA16_572=='_'||(LA16_572>='a' && LA16_572<='z')||(LA16_572>='\u00C0' && LA16_572<='\u00FF') ) {return s51;}
-                return s602;
+                int LA17_573 = input.LA(1);
+                if ( (LA17_573>='0' && LA17_573<='9')||(LA17_573>='A' && LA17_573<='Z')||LA17_573=='_'||(LA17_573>='a' && LA17_573<='z')||(LA17_573>='\u00C0' && LA17_573<='\u00FF') ) {return s51;}
+                return s603;
 
             }
         };
-        DFA.State s534 = new DFA.State() {
+        DFA.State s535 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_534 = input.LA(1);
-                if ( LA16_534=='e' ) {return s572;}
+                int LA17_535 = input.LA(1);
+                if ( LA17_535=='e' ) {return s573;}
                 return s51;
 
             }
         };
-        DFA.State s482 = new DFA.State() {
+        DFA.State s483 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_482 = input.LA(1);
-                if ( LA16_482=='c' ) {return s534;}
+                int LA17_483 = input.LA(1);
+                if ( LA17_483=='c' ) {return s535;}
                 return s51;
 
             }
         };
-        DFA.State s419 = new DFA.State() {
+        DFA.State s420 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_419 = input.LA(1);
-                if ( LA16_419=='n' ) {return s482;}
+                int LA17_420 = input.LA(1);
+                if ( LA17_420=='n' ) {return s483;}
                 return s51;
 
             }
         };
-        DFA.State s334 = new DFA.State() {
+        DFA.State s335 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_334 = input.LA(1);
-                if ( LA16_334=='e' ) {return s419;}
+                int LA17_335 = input.LA(1);
+                if ( LA17_335=='e' ) {return s420;}
                 return s51;
 
             }
         };
-        DFA.State s233 = new DFA.State() {
+        DFA.State s234 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_233 = input.LA(1);
-                if ( LA16_233=='i' ) {return s334;}
+                int LA17_234 = input.LA(1);
+                if ( LA17_234=='i' ) {return s335;}
                 return s51;
 
             }
         };
         DFA.State s102 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_102 = input.LA(1);
-                if ( LA16_102=='l' ) {return s233;}
+                int LA17_102 = input.LA(1);
+                if ( LA17_102=='l' ) {return s234;}
                 return s51;
 
             }
         };
         DFA.State s19 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_19 = input.LA(1);
-                if ( LA16_19=='a' ) {return s102;}
+                int LA17_19 = input.LA(1);
+                if ( LA17_19=='a' ) {return s102;}
                 return s51;
 
             }
         };
-        DFA.State s337 = new DFA.State() {{alt=46;}};
-        DFA.State s236 = new DFA.State() {
+        DFA.State s338 = new DFA.State() {{alt=46;}};
+        DFA.State s237 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_236 = input.LA(1);
-                if ( (LA16_236>='0' && LA16_236<='9')||(LA16_236>='A' && LA16_236<='Z')||LA16_236=='_'||(LA16_236>='a' && LA16_236<='z')||(LA16_236>='\u00C0' && LA16_236<='\u00FF') ) {return s51;}
-                return s337;
+                int LA17_237 = input.LA(1);
+                if ( (LA17_237>='0' && LA17_237<='9')||(LA17_237>='A' && LA17_237<='Z')||LA17_237=='_'||(LA17_237>='a' && LA17_237<='z')||(LA17_237>='\u00C0' && LA17_237<='\u00FF') ) {return s51;}
+                return s338;
 
             }
         };
-        DFA.State s237 = new DFA.State() {{alt=23;}};
+        DFA.State s238 = new DFA.State() {{alt=23;}};
         DFA.State s105 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 't':
-                    return s236;
+                    return s237;
 
                 case '-':
-                    return s237;
+                    return s238;
 
                 default:
                     return s51;
         	        }
             }
         };
-        DFA.State s422 = new DFA.State() {{alt=34;}};
-        DFA.State s339 = new DFA.State() {
+        DFA.State s423 = new DFA.State() {{alt=36;}};
+        DFA.State s340 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_339 = input.LA(1);
-                if ( (LA16_339>='0' && LA16_339<='9')||(LA16_339>='A' && LA16_339<='Z')||LA16_339=='_'||(LA16_339>='a' && LA16_339<='z')||(LA16_339>='\u00C0' && LA16_339<='\u00FF') ) {return s51;}
-                return s422;
+                int LA17_340 = input.LA(1);
+                if ( (LA17_340>='0' && LA17_340<='9')||(LA17_340>='A' && LA17_340<='Z')||LA17_340=='_'||(LA17_340>='a' && LA17_340<='z')||(LA17_340>='\u00C0' && LA17_340<='\u00FF') ) {return s51;}
+                return s423;
 
             }
         };
-        DFA.State s240 = new DFA.State() {
+        DFA.State s241 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_240 = input.LA(1);
-                if ( LA16_240=='l' ) {return s339;}
+                int LA17_241 = input.LA(1);
+                if ( LA17_241=='l' ) {return s340;}
                 return s51;
 
             }
         };
         DFA.State s106 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_106 = input.LA(1);
-                if ( LA16_106=='l' ) {return s240;}
+                int LA17_106 = input.LA(1);
+                if ( LA17_106=='l' ) {return s241;}
                 return s51;
 
             }
@@ -4715,195 +4744,211 @@
         	        }
             }
         };
-        DFA.State s604 = new DFA.State() {{alt=27;}};
-        DFA.State s575 = new DFA.State() {
+        DFA.State s605 = new DFA.State() {{alt=27;}};
+        DFA.State s576 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_575 = input.LA(1);
-                if ( (LA16_575>='0' && LA16_575<='9')||(LA16_575>='A' && LA16_575<='Z')||LA16_575=='_'||(LA16_575>='a' && LA16_575<='z')||(LA16_575>='\u00C0' && LA16_575<='\u00FF') ) {return s51;}
-                return s604;
+                int LA17_576 = input.LA(1);
+                if ( (LA17_576>='0' && LA17_576<='9')||(LA17_576>='A' && LA17_576<='Z')||LA17_576=='_'||(LA17_576>='a' && LA17_576<='z')||(LA17_576>='\u00C0' && LA17_576<='\u00FF') ) {return s51;}
+                return s605;
 
             }
         };
-        DFA.State s537 = new DFA.State() {
+        DFA.State s538 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_537 = input.LA(1);
-                if ( LA16_537=='n' ) {return s575;}
+                int LA17_538 = input.LA(1);
+                if ( LA17_538=='n' ) {return s576;}
                 return s51;
 
             }
         };
-        DFA.State s485 = new DFA.State() {
+        DFA.State s486 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_485 = input.LA(1);
-                if ( LA16_485=='o' ) {return s537;}
+                int LA17_486 = input.LA(1);
+                if ( LA17_486=='o' ) {return s538;}
                 return s51;
 
             }
         };
-        DFA.State s424 = new DFA.State() {
+        DFA.State s425 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_424 = input.LA(1);
-                if ( LA16_424=='i' ) {return s485;}
+                int LA17_425 = input.LA(1);
+                if ( LA17_425=='i' ) {return s486;}
                 return s51;
 
             }
         };
-        DFA.State s342 = new DFA.State() {
+        DFA.State s343 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_342 = input.LA(1);
-                if ( LA16_342=='t' ) {return s424;}
+                int LA17_343 = input.LA(1);
+                if ( LA17_343=='t' ) {return s425;}
                 return s51;
 
             }
         };
-        DFA.State s243 = new DFA.State() {
+        DFA.State s244 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_243 = input.LA(1);
-                if ( LA16_243=='a' ) {return s342;}
+                int LA17_244 = input.LA(1);
+                if ( LA17_244=='a' ) {return s343;}
                 return s51;
 
             }
         };
         DFA.State s109 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_109 = input.LA(1);
-                if ( LA16_109=='r' ) {return s243;}
+                int LA17_109 = input.LA(1);
+                if ( LA17_109=='r' ) {return s244;}
                 return s51;
 
             }
         };
         DFA.State s21 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_21 = input.LA(1);
-                if ( LA16_21=='u' ) {return s109;}
+                int LA17_21 = input.LA(1);
+                if ( LA17_21=='u' ) {return s109;}
                 return s51;
 
             }
         };
-        DFA.State s606 = new DFA.State() {{alt=56;}};
-        DFA.State s578 = new DFA.State() {
+        DFA.State s112 = new DFA.State() {{alt=29;}};
+        DFA.State s22 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_578 = input.LA(1);
-                if ( (LA16_578>='0' && LA16_578<='9')||(LA16_578>='A' && LA16_578<='Z')||LA16_578=='_'||(LA16_578>='a' && LA16_578<='z')||(LA16_578>='\u00C0' && LA16_578<='\u00FF') ) {return s51;}
-                return s606;
+                int LA17_22 = input.LA(1);
+                return s112;
 
             }
         };
-        DFA.State s540 = new DFA.State() {
+        DFA.State s113 = new DFA.State() {{alt=30;}};
+        DFA.State s23 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_540 = input.LA(1);
-                if ( LA16_540=='s' ) {return s578;}
+                int LA17_23 = input.LA(1);
+                return s113;
+
+            }
+        };
+        DFA.State s607 = new DFA.State() {{alt=56;}};
+        DFA.State s579 = new DFA.State() {
+            public DFA.State transition(IntStream input) throws RecognitionException {
+                int LA17_579 = input.LA(1);
+                if ( (LA17_579>='0' && LA17_579<='9')||(LA17_579>='A' && LA17_579<='Z')||LA17_579=='_'||(LA17_579>='a' && LA17_579<='z')||(LA17_579>='\u00C0' && LA17_579<='\u00FF') ) {return s51;}
+                return s607;
+
+            }
+        };
+        DFA.State s541 = new DFA.State() {
+            public DFA.State transition(IntStream input) throws RecognitionException {
+                int LA17_541 = input.LA(1);
+                if ( LA17_541=='s' ) {return s579;}
                 return s51;
 
             }
         };
-        DFA.State s488 = new DFA.State() {
+        DFA.State s489 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_488 = input.LA(1);
-                if ( LA16_488=='n' ) {return s540;}
+                int LA17_489 = input.LA(1);
+                if ( LA17_489=='n' ) {return s541;}
                 return s51;
 
             }
         };
-        DFA.State s427 = new DFA.State() {
+        DFA.State s428 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_427 = input.LA(1);
-                if ( LA16_427=='i' ) {return s488;}
+                int LA17_428 = input.LA(1);
+                if ( LA17_428=='i' ) {return s489;}
                 return s51;
 
             }
         };
-        DFA.State s345 = new DFA.State() {
+        DFA.State s346 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_345 = input.LA(1);
-                if ( LA16_345=='a' ) {return s427;}
+                int LA17_346 = input.LA(1);
+                if ( LA17_346=='a' ) {return s428;}
                 return s51;
 
             }
         };
-        DFA.State s246 = new DFA.State() {
+        DFA.State s247 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_246 = input.LA(1);
-                if ( LA16_246=='t' ) {return s345;}
+                int LA17_247 = input.LA(1);
+                if ( LA17_247=='t' ) {return s346;}
                 return s51;
 
             }
         };
-        DFA.State s581 = new DFA.State() {{alt=33;}};
-        DFA.State s543 = new DFA.State() {
+        DFA.State s582 = new DFA.State() {{alt=35;}};
+        DFA.State s544 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_543 = input.LA(1);
-                if ( (LA16_543>='0' && LA16_543<='9')||(LA16_543>='A' && LA16_543<='Z')||LA16_543=='_'||(LA16_543>='a' && LA16_543<='z')||(LA16_543>='\u00C0' && LA16_543<='\u00FF') ) {return s51;}
-                return s581;
+                int LA17_544 = input.LA(1);
+                if ( (LA17_544>='0' && LA17_544<='9')||(LA17_544>='A' && LA17_544<='Z')||LA17_544=='_'||(LA17_544>='a' && LA17_544<='z')||(LA17_544>='\u00C0' && LA17_544<='\u00FF') ) {return s51;}
+                return s582;
 
             }
         };
-        DFA.State s491 = new DFA.State() {
+        DFA.State s492 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_491 = input.LA(1);
-                if ( LA16_491=='t' ) {return s543;}
+                int LA17_492 = input.LA(1);
+                if ( LA17_492=='t' ) {return s544;}
                 return s51;
 
             }
         };
-        DFA.State s430 = new DFA.State() {
+        DFA.State s431 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_430 = input.LA(1);
-                if ( LA16_430=='c' ) {return s491;}
+                int LA17_431 = input.LA(1);
+                if ( LA17_431=='c' ) {return s492;}
                 return s51;
 
             }
         };
-        DFA.State s348 = new DFA.State() {
+        DFA.State s349 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_348 = input.LA(1);
-                if ( LA16_348=='e' ) {return s430;}
+                int LA17_349 = input.LA(1);
+                if ( LA17_349=='e' ) {return s431;}
                 return s51;
 
             }
         };
-        DFA.State s247 = new DFA.State() {
+        DFA.State s248 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_247 = input.LA(1);
-                if ( LA16_247=='l' ) {return s348;}
+                int LA17_248 = input.LA(1);
+                if ( LA17_248=='l' ) {return s349;}
                 return s51;
 
             }
         };
-        DFA.State s112 = new DFA.State() {
+        DFA.State s114 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case 'n':
-                    return s246;
+                    return s247;
 
                 case 'l':
-                    return s247;
+                    return s248;
 
                 default:
                     return s51;
         	        }
             }
         };
-        DFA.State s22 = new DFA.State() {
+        DFA.State s24 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_22 = input.LA(1);
-                if ( LA16_22=='o' ) {return s112;}
+                int LA17_24 = input.LA(1);
+                if ( LA17_24=='o' ) {return s114;}
                 return s51;
 
             }
         };
         DFA.State s35 = new DFA.State() {{alt=59;}};
-        DFA.State s250 = new DFA.State() {{alt=49;}};
-        DFA.State s116 = new DFA.State() {
+        DFA.State s118 = new DFA.State() {{alt=37;}};
+        DFA.State s251 = new DFA.State() {{alt=49;}};
+        DFA.State s120 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_116 = input.LA(1);
-                return s250;
+                int LA17_120 = input.LA(1);
+                return s251;
 
             }
         };
-        DFA.State s120 = new DFA.State() {{alt=35;}};
-        DFA.State s121 = new DFA.State() {{alt=50;}};
-        DFA.State s23 = new DFA.State() {
+        DFA.State s123 = new DFA.State() {{alt=50;}};
+        DFA.State s25 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case '*':
@@ -4912,93 +4957,74 @@
                 case '/':
                     return s35;
 
+                case '>':
+                    return s118;
+
                 case '=':
-                    return s116;
-
-                case '>':
                     return s120;
 
                 default:
-                    return s121;
+                    return s123;
         	        }
             }
         };
-        DFA.State s122 = new DFA.State() {{alt=36;}};
-        DFA.State s24 = new DFA.State() {
-            public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_24 = input.LA(1);
-                return s122;
-
-            }
-        };
-        DFA.State s123 = new DFA.State() {{alt=37;}};
-        DFA.State s25 = new DFA.State() {
-            public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_25 = input.LA(1);
-                return s123;
-
-            }
-        };
-        DFA.State s251 = new DFA.State() {{alt=38;}};
+        DFA.State s252 = new DFA.State() {{alt=38;}};
         DFA.State s124 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_124 = input.LA(1);
-                if ( (LA16_124>='0' && LA16_124<='9')||(LA16_124>='A' && LA16_124<='Z')||LA16_124=='_'||(LA16_124>='a' && LA16_124<='z')||(LA16_124>='\u00C0' && LA16_124<='\u00FF') ) {return s51;}
-                return s251;
+                int LA17_124 = input.LA(1);
+                if ( (LA17_124>='0' && LA17_124<='9')||(LA17_124>='A' && LA17_124<='Z')||LA17_124=='_'||(LA17_124>='a' && LA17_124<='z')||(LA17_124>='\u00C0' && LA17_124<='\u00FF') ) {return s51;}
+                return s252;
 
             }
         };
         DFA.State s26 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_26 = input.LA(1);
-                if ( LA16_26=='r' ) {return s124;}
+                int LA17_26 = input.LA(1);
+                if ( LA17_26=='r' ) {return s124;}
                 return s51;
 
             }
         };
-        DFA.State s253 = new DFA.State() {{alt=39;}};
+        DFA.State s254 = new DFA.State() {{alt=39;}};
         DFA.State s127 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_127 = input.LA(1);
-                return s253;
+                int LA17_127 = input.LA(1);
+                return s254;
 
             }
         };
         DFA.State s128 = new DFA.State() {{alt=41;}};
         DFA.State s27 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_27 = input.LA(1);
-                if ( LA16_27=='|' ) {return s127;}
+                int LA17_27 = input.LA(1);
+                if ( LA17_27=='|' ) {return s127;}
                 return s128;
 
             }
         };
-        DFA.State s254 = new DFA.State() {{alt=44;}};
+        DFA.State s255 = new DFA.State() {{alt=44;}};
         DFA.State s129 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_129 = input.LA(1);
-                return s254;
+                int LA17_129 = input.LA(1);
+                return s255;
 
             }
         };
         DFA.State s130 = new DFA.State() {{alt=40;}};
         DFA.State s28 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_28 = input.LA(1);
-                if ( LA16_28=='&' ) {return s129;}
+                int LA17_28 = input.LA(1);
+                if ( LA17_28=='&' ) {return s129;}
                 return s130;
 
             }
         };
-        DFA.State s133 = new DFA.State() {{alt=42;}};
-        DFA.State s161 = new DFA.State() {{alt=63;}};
-        DFA.State s163 = new DFA.State() {{alt=62;}};
+        DFA.State s132 = new DFA.State() {{alt=42;}};
+        DFA.State s161 = new DFA.State() {{alt=62;}};
+        DFA.State s164 = new DFA.State() {{alt=63;}};
         DFA.State s49 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
-                case '.':
-                    return s161;
-
                 case '0':
                 case '1':
                 case '2':
@@ -5011,8 +5037,11 @@
                 case '9':
                     return s49;
 
+                case '.':
+                    return s164;
+
                 default:
-                    return s163;
+                    return s161;
         	        }
             }
         };
@@ -5020,7 +5049,7 @@
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case '>':
-                    return s133;
+                    return s132;
 
                 case '0':
                 case '1':
@@ -5039,27 +5068,27 @@
         	        }
             }
         };
-        DFA.State s351 = new DFA.State() {{alt=48;}};
-        DFA.State s255 = new DFA.State() {
+        DFA.State s352 = new DFA.State() {{alt=48;}};
+        DFA.State s256 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_255 = input.LA(1);
-                if ( (LA16_255>='0' && LA16_255<='9')||(LA16_255>='A' && LA16_255<='Z')||LA16_255=='_'||(LA16_255>='a' && LA16_255<='z')||(LA16_255>='\u00C0' && LA16_255<='\u00FF') ) {return s51;}
-                return s351;
+                int LA17_256 = input.LA(1);
+                if ( (LA17_256>='0' && LA17_256<='9')||(LA17_256>='A' && LA17_256<='Z')||LA17_256=='_'||(LA17_256>='a' && LA17_256<='z')||(LA17_256>='\u00C0' && LA17_256<='\u00FF') ) {return s51;}
+                return s352;
 
             }
         };
         DFA.State s136 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_136 = input.LA(1);
-                if ( LA16_136=='e' ) {return s255;}
+                int LA17_136 = input.LA(1);
+                if ( LA17_136=='e' ) {return s256;}
                 return s51;
 
             }
         };
         DFA.State s30 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_30 = input.LA(1);
-                if ( LA16_30=='s' ) {return s136;}
+                int LA17_30 = input.LA(1);
+                if ( LA17_30=='s' ) {return s136;}
                 return s51;
 
             }
@@ -5080,17 +5109,17 @@
         	        }
             }
         };
-        DFA.State s143 = new DFA.State() {{alt=54;}};
+        DFA.State s142 = new DFA.State() {{alt=54;}};
         DFA.State s144 = new DFA.State() {{alt=53;}};
         DFA.State s32 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
+                case '=':
+                    return s142;
+
                 case '<':
                     return s35;
 
-                case '=':
-                    return s143;
-
                 default:
                     return s144;
         	        }
@@ -5099,108 +5128,108 @@
         DFA.State s145 = new DFA.State() {{alt=55;}};
         DFA.State s33 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_33 = input.LA(1);
-                if ( LA16_33=='=' ) {return s145;}
+                int LA17_33 = input.LA(1);
+                if ( LA17_33=='=' ) {return s145;}
                 return s35;
 
             }
         };
-        DFA.State s583 = new DFA.State() {{alt=57;}};
-        DFA.State s546 = new DFA.State() {
+        DFA.State s584 = new DFA.State() {{alt=57;}};
+        DFA.State s547 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_546 = input.LA(1);
-                if ( (LA16_546>='0' && LA16_546<='9')||(LA16_546>='A' && LA16_546<='Z')||LA16_546=='_'||(LA16_546>='a' && LA16_546<='z')||(LA16_546>='\u00C0' && LA16_546<='\u00FF') ) {return s51;}
-                return s583;
+                int LA17_547 = input.LA(1);
+                if ( (LA17_547>='0' && LA17_547<='9')||(LA17_547>='A' && LA17_547<='Z')||LA17_547=='_'||(LA17_547>='a' && LA17_547<='z')||(LA17_547>='\u00C0' && LA17_547<='\u00FF') ) {return s51;}
+                return s584;
 
             }
         };
-        DFA.State s494 = new DFA.State() {
+        DFA.State s495 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_494 = input.LA(1);
-                if ( LA16_494=='s' ) {return s546;}
+                int LA17_495 = input.LA(1);
+                if ( LA17_495=='s' ) {return s547;}
                 return s51;
 
             }
         };
-        DFA.State s433 = new DFA.State() {
+        DFA.State s434 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_433 = input.LA(1);
-                if ( LA16_433=='e' ) {return s494;}
+                int LA17_434 = input.LA(1);
+                if ( LA17_434=='e' ) {return s495;}
                 return s51;
 
             }
         };
-        DFA.State s353 = new DFA.State() {
+        DFA.State s354 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_353 = input.LA(1);
-                if ( LA16_353=='h' ) {return s433;}
+                int LA17_354 = input.LA(1);
+                if ( LA17_354=='h' ) {return s434;}
                 return s51;
 
             }
         };
-        DFA.State s258 = new DFA.State() {
+        DFA.State s259 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_258 = input.LA(1);
-                if ( LA16_258=='c' ) {return s353;}
+                int LA17_259 = input.LA(1);
+                if ( LA17_259=='c' ) {return s354;}
                 return s51;
 
             }
         };
         DFA.State s147 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_147 = input.LA(1);
-                if ( LA16_147=='t' ) {return s258;}
+                int LA17_147 = input.LA(1);
+                if ( LA17_147=='t' ) {return s259;}
                 return s51;
 
             }
         };
         DFA.State s34 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_34 = input.LA(1);
-                if ( LA16_34=='a' ) {return s147;}
+                int LA17_34 = input.LA(1);
+                if ( LA17_34=='a' ) {return s147;}
                 return s51;
 
             }
         };
-        DFA.State s151 = new DFA.State() {{alt=59;}};
+        DFA.State s150 = new DFA.State() {{alt=59;}};
         DFA.State s36 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_36 = input.LA(1);
-                if ( (LA16_36>='0' && LA16_36<='9')||(LA16_36>='A' && LA16_36<='Z')||LA16_36=='_'||(LA16_36>='a' && LA16_36<='z')||(LA16_36>='\u00C0' && LA16_36<='\u00FF') ) {return s51;}
-                return s151;
+                int LA17_36 = input.LA(1);
+                if ( (LA17_36>='0' && LA17_36<='9')||(LA17_36>='A' && LA17_36<='Z')||LA17_36=='_'||(LA17_36>='a' && LA17_36<='z')||(LA17_36>='\u00C0' && LA17_36<='\u00FF') ) {return s51;}
+                return s150;
 
             }
         };
         DFA.State s40 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_40 = input.LA(1);
-                if ( (LA16_40>='0' && LA16_40<='9')||(LA16_40>='A' && LA16_40<='Z')||LA16_40=='_'||(LA16_40>='a' && LA16_40<='z')||(LA16_40>='\u00C0' && LA16_40<='\u00FF') ) {return s51;}
-                return s151;
+                int LA17_40 = input.LA(1);
+                if ( (LA17_40>='0' && LA17_40<='9')||(LA17_40>='A' && LA17_40<='Z')||LA17_40=='_'||(LA17_40>='a' && LA17_40<='z')||(LA17_40>='\u00C0' && LA17_40<='\u00FF') ) {return s51;}
+                return s150;
 
             }
         };
-        DFA.State s154 = new DFA.State() {{alt=69;}};
+        DFA.State s155 = new DFA.State() {{alt=69;}};
         DFA.State s156 = new DFA.State() {{alt=68;}};
         DFA.State s43 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
                 switch ( input.LA(1) ) {
                 case '*':
-                    return s154;
+                    return s155;
 
                 case '/':
                     return s156;
 
                 default:
-                    return s151;
+                    return s150;
         	        }
             }
         };
         DFA.State s50 = new DFA.State() {{alt=64;}};
         DFA.State s44 = new DFA.State() {
             public DFA.State transition(IntStream input) throws RecognitionException {
-                int LA16_44 = input.LA(1);
-                if ( (LA16_44>='\u0000' && LA16_44<='\uFFFE') ) {return s50;}
-                return s151;
+                int LA17_44 = input.LA(1);
+                if ( (LA17_44>='\u0000' && LA17_44<='\uFFFE') ) {return s50;}
+                return s150;
 
             }
         };
@@ -5273,16 +5302,16 @@
                 case 'd':
                     return s21;
 
-                case 'c':
+                case '[':
                     return s22;
 
-                case '=':
+                case ']':
                     return s23;
 
-                case '[':
+                case 'c':
                     return s24;
 
-                case ']':
+                case '=':
                     return s25;
 
                 case 'o':
@@ -5464,7 +5493,7 @@
                 default:
                     if (backtracking>0) {failed=true; return null;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 16, 0, input);
+                        new NoViableAltException("", 17, 0, input);
 
                     throw nvae;        }
             }

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccessorDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccessorDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccessorDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -0,0 +1,31 @@
+package org.drools.lang.descr;
+
+public class AccessorDescr extends DeclarativeInvokerDescr { 
+    private String variableName;
+    private DeclarativeInvokerDescr[] invokers;
+    public AccessorDescr(String methodName,
+                         DeclarativeInvokerDescr[] accessors) {
+        super();
+        this.variableName = methodName;
+        this.invokers = accessors;
+    }
+    
+    public DeclarativeInvokerDescr[] getInvokers() {
+        return this.invokers;
+    }
+    
+    public void setInvokers(DeclarativeInvokerDescr[] accessors) {
+        this.invokers = accessors;
+    }
+    
+    public String getVariableName() {
+        return this.variableName;
+    }
+    
+    public void setVariableName(String methodName) {
+        this.variableName = methodName;
+    }
+    
+    
+
+}

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -22,7 +22,7 @@
 /**
  * A descr class for accumulate node
  */
-public class AccumulateDescr extends PatternDescr 
+public class AccumulateDescr extends BaseDescr 
     implements ConditionalElementDescr {
 
     private static final long serialVersionUID = 2831283873824863255L;
@@ -103,7 +103,7 @@
         return "[Accumulate: id=" + resultColumn.getIdentifier() + "; objectType=" + resultColumn.getObjectType() + "]";
     }
 
-    public void addDescr(PatternDescr patternDescr) {
+    public void addDescr(BaseDescr patternDescr) {
         // Nothing to do
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -23,7 +23,7 @@
 import java.util.List;
 import java.util.Map;
 
-public class AndDescr extends PatternDescr
+public class AndDescr extends BaseDescr
     implements
     ConditionalElementDescr {
     /**
@@ -36,15 +36,15 @@
     public AndDescr() {
     }
 
-    public void addDescr(final PatternDescr patternDescr) {
+    public void addDescr(final BaseDescr baseDescr) {
         if ( this.descrs == Collections.EMPTY_LIST ) {
             this.descrs = new ArrayList( 1 );
         }
 
-        if ( patternDescr instanceof ColumnDescr ) {
-            addColumn( (ColumnDescr) patternDescr );
+        if ( baseDescr instanceof ColumnDescr ) {
+            addColumn( (ColumnDescr) baseDescr );
         } else {
-            this.descrs.add( patternDescr );
+            this.descrs.add( baseDescr );
         }
     }
 
@@ -80,7 +80,7 @@
     private void combinePatterns(final ColumnDescr existingCol,
                                  final List newColPatterns) {
         for ( final Iterator iter = newColPatterns.iterator(); iter.hasNext(); ) {
-            existingCol.addDescr( (PatternDescr) iter.next() );
+            existingCol.addDescr( (BaseDescr) iter.next() );
         }
 
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-public class AttributeDescr extends PatternDescr {
+public class AttributeDescr extends BaseDescr {
     /**
      * 
      */

Copied: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java (from rev 6091, labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternDescr.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternDescr.java	2006-09-06 13:07:51 UTC (rev 6091)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -0,0 +1,61 @@
+package org.drools.lang.descr;
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Serializable;
+
+/**
+ * This is the super type for all pattern AST nodes.
+ */
+public class BaseDescr
+    implements
+    Serializable {
+
+    private static final long serialVersionUID = 320;
+    private int               line;
+    private int               column;
+    private int               endLine;
+    private int               endColumn;
+
+    public void setLocation(int line,
+                            int column) {
+        this.line = line;
+        this.column = column;
+    }
+
+    public void setEndLocation(int line,
+                               int column) {
+        this.endLine = line;
+        this.endColumn = column;
+    }
+
+    public int getLine() {
+        return this.line;
+    }
+
+    public int getColumn() {
+        return this.column;
+    }
+
+    public int getEndLine() {
+        return this.endLine;
+    }
+
+    public int getEndColumn() {
+        return this.endColumn;
+    }
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -25,7 +25,7 @@
  * @author etirelli
  *
  */
-public class CollectDescr extends PatternDescr
+public class CollectDescr extends BaseDescr
     implements
     ConditionalElementDescr {
 
@@ -71,7 +71,7 @@
         return "[Collect: id=" + resultColumn.getIdentifier() + "; objectType=" + resultColumn.getObjectType() + "]";
     }
 
-    public void addDescr(PatternDescr patternDescr) {
+    public void addDescr(BaseDescr patternDescr) {
         // Nothing to do
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ColumnDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ColumnDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ColumnDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -20,7 +20,7 @@
 import java.util.Collections;
 import java.util.List;
 
-public class ColumnDescr extends PatternDescr {
+public class ColumnDescr extends BaseDescr {
     /**
      * 
      */
@@ -44,11 +44,11 @@
         this.identifier = identifier;
     }
 
-    public void addDescr(final PatternDescr patternDescr) {
+    public void addDescr(final BaseDescr baseDescr) {
         if ( this.descrs == Collections.EMPTY_LIST ) {
             this.descrs = new ArrayList( 1 );
         }
-        this.descrs.add( patternDescr );
+        this.descrs.add( baseDescr );
     }
 
     public void setIdentifier(final String identifier) {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -20,7 +20,7 @@
 
 public interface ConditionalElementDescr {
 
-    public void addDescr(PatternDescr patternDescr);
+    public void addDescr(BaseDescr baseDescr);
 
     public List getDescrs();
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DeclarativeInvokerDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DeclarativeInvokerDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DeclarativeInvokerDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -3,38 +3,6 @@
 /**
  * This is the parent class function/method calls.
  */
-public class DeclarativeInvokerDescr {
-
-    private int               line;
-    private int               column;
-    private int               endLine;
-    private int               endColumn;
-    
-	public int getColumn() {
-		return column;
-	}
-	public void setColumn(int column) {
-		this.column = column;
-	}
-	public int getEndColumn() {
-		return endColumn;
-	}
-	public void setEndColumn(int endColumn) {
-		this.endColumn = endColumn;
-	}
-	public int getEndLine() {
-		return endLine;
-	}
-	public void setEndLine(int endLine) {
-		this.endLine = endLine;
-	}
-	public int getLine() {
-		return line;
-	}
-	public void setLine(int line) {
-		this.line = line;
-	}
-    
-    
+public class DeclarativeInvokerDescr extends BaseDescr {
 	
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -19,7 +19,7 @@
 import java.util.Collections;
 import java.util.List;
 
-public class EvalDescr extends PatternDescr
+public class EvalDescr extends BaseDescr
     implements
     ConditionalElementDescr {
     /**
@@ -68,7 +68,7 @@
         return Collections.EMPTY_LIST;
     }
 
-    public void addDescr(final PatternDescr patternDescr) {
+    public void addDescr(final BaseDescr baseDescr) {
         // do thing, this can have no children        
     }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -19,7 +19,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class ExistsDescr extends PatternDescr
+public class ExistsDescr extends BaseDescr
     implements
     ConditionalElementDescr {
 
@@ -36,8 +36,8 @@
         addDescr( column );
     }
 
-    public void addDescr(final PatternDescr patternDescr) {
-        this.descrs.add( patternDescr );
+    public void addDescr(final BaseDescr baseDescr) {
+        this.descrs.add( baseDescr );
     }
 
     public List getDescrs() {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FactTemplateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FactTemplateDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FactTemplateDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -3,7 +3,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class FactTemplateDescr extends PatternDescr {
+public class FactTemplateDescr extends BaseDescr {
     private static final long serialVersionUID = 320;
     
     String name;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldAccessDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldAccessDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldAccessDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -12,7 +12,14 @@
 
 	private String variableName;
 	private String fieldName;
+    private ArgumentValueDescr argument;
 
+    public FieldAccessDescr(String variableName, String fieldName, ArgumentValueDescr argument) {
+        this.variableName = variableName;
+        this.fieldName = fieldName;     
+        this.argument = argument;
+    }    
+    
 	public FieldAccessDescr(String variableName, String fieldName) {
 		this.variableName = variableName;
 		this.fieldName = fieldName;		
@@ -33,6 +40,14 @@
 	public void setVariableName(String variableName) {
 		this.variableName = variableName;
 	}
+
+    public ArgumentValueDescr getArgument() {
+        return this.argument;
+    }
+
+    public void setArgument(ArgumentValueDescr argument) {
+        this.argument = argument;
+    }   
 	
 	
 	

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldBindingDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldBindingDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldBindingDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-public class FieldBindingDescr extends PatternDescr {
+public class FieldBindingDescr extends BaseDescr {
     /**
      * 
      */

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -25,7 +25,7 @@
  * a constraint on a single field of a column. 
  * The "text" contains the content, which may also be an enumeration. 
  */
-public class FieldConstraintDescr extends PatternDescr {
+public class FieldConstraintDescr extends BaseDescr {
 
 	private static final long serialVersionUID = 320;
     private String  fieldName;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldTemplateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldTemplateDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldTemplateDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -1,6 +1,6 @@
 package org.drools.lang.descr;
 
-public class FieldTemplateDescr extends PatternDescr {
+public class FieldTemplateDescr extends BaseDescr {
     private final String      name;
     private final String      classType;
     public FieldTemplateDescr(final String name,

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -2,7 +2,7 @@
 
 import java.util.List;
 
-public class FromDescr extends PatternDescr
+public class FromDescr extends BaseDescr
     implements
     ConditionalElementDescr { 
 	private ColumnDescr column;
@@ -29,7 +29,7 @@
 		return column;
 	}
 
-    public void addDescr(PatternDescr patternDescr) {
+    public void addDescr(BaseDescr baseDescr) {
         //
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FunctionDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -20,7 +20,7 @@
 import java.util.Collections;
 import java.util.List;
 
-public class FunctionDescr extends PatternDescr {
+public class FunctionDescr extends BaseDescr {
     private static final long serialVersionUID = 320;
     
     private final String name;

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -19,7 +19,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class NotDescr extends PatternDescr
+public class NotDescr extends BaseDescr
     implements
     ConditionalElementDescr {
 
@@ -36,8 +36,8 @@
         addDescr( column );
     }
 
-    public void addDescr(final PatternDescr patternDescr) {
-        this.descrs.add( patternDescr );
+    public void addDescr(final BaseDescr baseDescr) {
+        this.descrs.add( baseDescr );
     }
 
     public List getDescrs() {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -20,7 +20,7 @@
 import java.util.Collections;
 import java.util.List;
 
-public class OrDescr extends PatternDescr
+public class OrDescr extends BaseDescr
     implements
     ConditionalElementDescr {
     /**
@@ -32,11 +32,11 @@
     public OrDescr() {
     }
 
-    public void addDescr(final PatternDescr patternDescr) {
+    public void addDescr(final BaseDescr baseDescr) {
         if ( this.descrs == Collections.EMPTY_LIST ) {
             this.descrs = new ArrayList( 1 );
         }
-        this.descrs.add( patternDescr );
+        this.descrs.add( baseDescr );
     }
 
     public List getDescrs() {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -22,7 +22,7 @@
 import java.util.List;
 import java.util.Map;
 
-public class PackageDescr extends PatternDescr {
+public class PackageDescr extends BaseDescr {
     /**
      * 
      */

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PatternDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -1,61 +0,0 @@
-package org.drools.lang.descr;
-
-/*
- * Copyright 2005 JBoss Inc
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.Serializable;
-
-/**
- * This is the super type for all pattern AST nodes.
- */
-public class PatternDescr
-    implements
-    Serializable {
-
-    private static final long serialVersionUID = 320;
-    private int               line;
-    private int               column;
-    private int               endLine;
-    private int               endColumn;
-
-    public void setLocation(int line,
-                            int column) {
-        this.line = line;
-        this.column = column;
-    }
-
-    public void setEndLocation(int line,
-                               int column) {
-        this.endLine = line;
-        this.endColumn = column;
-    }
-
-    public int getLine() {
-        return this.line;
-    }
-
-    public int getColumn() {
-        return this.column;
-    }
-
-    public int getEndLine() {
-        return this.endLine;
-    }
-
-    public int getEndColumn() {
-        return this.endColumn;
-    }
-}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-public class PredicateDescr extends PatternDescr {
+public class PredicateDescr extends BaseDescr {
     /**
      * 
      */

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/Restriction.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/Restriction.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/Restriction.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -17,6 +17,6 @@
  */
 
 
-public class Restriction extends PatternDescr {
+public class Restriction extends BaseDescr {
  
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -21,6 +21,6 @@
  * a constraint on a single field of a column. 
  * The "text" contains the content, which may also be an enumeration. 
  */
-public class RestrictionDescr extends PatternDescr {
+public class RestrictionDescr extends BaseDescr {
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RuleDescr.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -20,7 +20,7 @@
 import java.util.Collections;
 import java.util.List;
 
-public class RuleDescr extends PatternDescr {
+public class RuleDescr extends BaseDescr {
     /**
      * 
      */

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionBuilder.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionBuilder.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -20,6 +20,8 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.StringReader;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.antlr.stringtemplate.StringTemplate;
@@ -29,6 +31,8 @@
 import org.drools.lang.descr.FunctionDescr;
 import org.drools.rule.LineMappings;
 import org.drools.rule.Package;
+import org.drools.spi.AvailableVariables;
+import org.drools.spi.TypeResolver;
 
 public class FunctionBuilder {
     private static final StringTemplateGroup functionGroup = new StringTemplateGroup( new InputStreamReader( FunctionBuilder.class.getResourceAsStream( "javaFunction.stg" ) ),
@@ -41,6 +45,7 @@
     public String build(final Package pkg,
                         final FunctionDescr functionDescr,
                         final FunctionFixer fixer,
+                        final TypeResolver typeResolver,
                         final Map lineMappings) {
         final StringTemplate st = FunctionBuilder.functionGroup.getInstanceOf( "function" );
 
@@ -64,8 +69,20 @@
         st.setAttribute( "parameterNames",
                          functionDescr.getParameterNames() );
 
+        Map params = new HashMap();
+        List names = functionDescr.getParameterNames();
+        List types = functionDescr.getParameterTypes();
+        try {
+            for ( int i = 0, size = names.size(); i < size; i++ ) {
+                params.put( names.get( i ), typeResolver.resolveType( (String) types.get( i ) ) );
+            }
+        } catch ( ClassNotFoundException e ) {
+            // todo : must be a better way so we don't have to try/catch each resolveType call
+            throw new RuntimeDroolsException( e );                
+        }                   
+        
         st.setAttribute( "text",
-                         fixer.fix( functionDescr.getText() ) );
+                         fixer.fix( functionDescr.getText(), new AvailableVariables( new Map[] { params } ) ) );
         
         String text = st.toString();
         

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionFixer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionFixer.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/FunctionFixer.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -17,10 +17,12 @@
  */
 
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.drools.spi.AvailableVariables;
 import org.drools.spi.FunctionResolver;
 import org.drools.rule.Package;
 
@@ -55,11 +57,20 @@
     public String fix(final String raw) {
         //return raw;
         return fix( raw,
-                    FunctionFixer.FUNCTION );
+                    FunctionFixer.FUNCTION,
+                    null );
     }
+    
+    public String fix(final String raw, final AvailableVariables variables) {
+        //return raw;
+        return fix( raw,
+                    FunctionFixer.FUNCTION,
+                    variables);
+    }    
 
     public String fix(final String raw,
-                      final Pattern pattern) {
+                      final Pattern pattern,
+                      final AvailableVariables variables ) {
         if ( raw == null ) {
             return null;
         }
@@ -90,7 +101,8 @@
             }
             // Recursively process parameters
             params = fix( params,
-                          pattern );
+                          pattern,
+                          variables );
 
             String function = null;
 
@@ -112,17 +124,12 @@
                     function = raw.substring( matcher.start( 2 ),
                                               matcher.start( 3 ) - 1 );
                 } else {
-                    int countParams = 0;
-                    for ( int i = 0, length = params.length(); i < length; i++ ) {
-                        if ( params.charAt( i ) == ',' ) {
-                            countParams++;
-                        }
-                    }
                     if ( this.pkg.getFunctions().contains( function ) ) {
                         function = ucFirst( function ) + "." + function;
                     } else {
                         function = resolver.resolveFunction( function,
-                                                             countParams + 1 ) + "." + function;
+                                                             params,
+                                                             variables) + "." + function;
                     }
                 }
             }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -34,6 +34,7 @@
 import org.drools.base.FieldFactory;
 import org.drools.base.FieldImpl;
 import org.drools.base.ValueType;
+import org.drools.base.dataproviders.FieldGetter;
 import org.drools.base.dataproviders.MethodDataProvider;
 import org.drools.base.dataproviders.MethodInvoker;
 import org.drools.base.evaluators.Operator;
@@ -57,6 +58,7 @@
 import org.drools.lang.descr.DeclarativeInvokerDescr;
 import org.drools.lang.descr.EvalDescr;
 import org.drools.lang.descr.ExistsDescr;
+import org.drools.lang.descr.FieldAccessDescr;
 import org.drools.lang.descr.FieldBindingDescr;
 import org.drools.lang.descr.FieldConstraintDescr;
 import org.drools.lang.descr.FromDescr;
@@ -64,7 +66,7 @@
 import org.drools.lang.descr.MethodAccessDescr;
 import org.drools.lang.descr.NotDescr;
 import org.drools.lang.descr.OrDescr;
-import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.PredicateDescr;
 import org.drools.lang.descr.QueryDescr;
 import org.drools.lang.descr.RestrictionConnectiveDescr;
@@ -96,6 +98,7 @@
 import org.drools.rule.Rule;
 import org.drools.rule.VariableConstraint;
 import org.drools.rule.VariableRestriction;
+import org.drools.spi.AvailableVariables;
 import org.drools.spi.DataProvider;
 import org.drools.spi.Evaluator;
 import org.drools.spi.FieldExtractor;
@@ -145,6 +148,8 @@
     private static final KnowledgeHelperFixer knowledgeHelperFixer = new KnowledgeHelperFixer();
 
     private final FunctionFixer               functionFixer;
+    
+    private AvailableVariables          variables;
 
     // @todo move to an interface so it can work as a decorator
     private final JavaExprAnalyzer            analyzer             = new JavaExprAnalyzer();
@@ -199,6 +204,7 @@
         this.declarations = new HashMap();
         this.descrLookups = new HashMap();
         this.columnCounter = new ColumnCounter();
+        this.variables = new AvailableVariables( new Map[] { this.declarations, this.pkg.getGlobals() } );
 
         this.ruleDescr = ruleDescr;
 
@@ -772,7 +778,7 @@
         st.setAttribute( "methodName",
                          className );
 
-        final String returnValueText = this.functionFixer.fix( returnValueRestrictionDescr.getText() );
+        final String returnValueText = this.functionFixer.fix( returnValueRestrictionDescr.getText(), variables );
         st.setAttribute( "text",
                          returnValueText );
 
@@ -864,7 +870,7 @@
         st.setAttribute( "methodName",
                          className );
 
-        final String predicateText = this.functionFixer.fix( predicateDescr.getText() );
+        final String predicateText = this.functionFixer.fix( predicateDescr.getText(), variables );
         st.setAttribute( "text",
                          predicateText );
 
@@ -936,6 +942,29 @@
                                                              instanceValueHandler,
                                                              (ValueHandler[]) valueHandlers.toArray( new ValueHandler[valueHandlers.size()] ) );
             dataProvider = new MethodDataProvider( invoker );
+        } else if ( invokerDescr.getClass() == FieldAccessDescr.class ) {
+            final FieldAccessDescr fieldAccessor = (FieldAccessDescr) invokerDescr;
+
+            ValueHandler instanceValueHandler = null;
+            final String variableName = fieldAccessor.getVariableName();
+            if ( this.declarations.containsKey( variableName ) ) {
+                instanceValueHandler = new DeclarationVariable( (Declaration) this.declarations.get( variableName ) );
+            } else if ( this.pkg.getGlobals().containsKey( variableName ) ) {
+                instanceValueHandler = new GlobalVariable( variableName,
+                                                           (Class) this.pkg.getGlobals().get( variableName ) );
+            } else {
+                throw new IllegalArgumentException( "The variable name [" + variableName + "] was not a global or declaration." );
+            }
+            ArgumentValueDescr arg = ((FieldAccessDescr) invokerDescr).getArgument();
+            ValueHandler valueHandler = null;
+            if ( arg != null ) {
+                valueHandler = buildValueHandler( arg );
+            }
+
+            final FieldGetter getter = new FieldGetter( fieldAccessor.getFieldName(),
+                                                        instanceValueHandler,
+                                                        valueHandler );
+            dataProvider = new MethodDataProvider( getter );
         }
 
         return new From( column,
@@ -971,10 +1000,61 @@
                 handlers.add( buildValueHandler( arg ) );
             }
             valueHandler = new ListValue( handlers );
+        } else if ( descr.getType() == ArgumentValueDescr.BOOLEAN ) {
+            // handling a literal
+            valueHandler = new LiteralValue( new Boolean ( (String) descr.getValue() ) );
+        } else if ( descr.getType() == ArgumentValueDescr.INTEGRAL ) {
+            String text = (String) descr.getValue();
+            char c = text.charAt( text.length() - 1 );
+            if ( Character.getType( c ) != Character.DECIMAL_DIGIT_NUMBER ) {
+                switch ( c ) {
+                    case 'l' :
+                    case 'L' :
+                        valueHandler = new LiteralValue( new Long( (String) descr.getValue() ) );                        
+                        break;
+                    case 'f' :
+                    case 'F' :
+                        valueHandler = new LiteralValue( new Float( (String) descr.getValue() ) );                          
+                        break;
+                    case 'd' :
+                    case 'D' :
+                        valueHandler = new LiteralValue( new Double( (String) descr.getValue() ) );                        
+                        break;
+                    default :
+                        throw new IllegalArgumentException( "invalid type identifier '" + c + "' used with number [" + text + "]" );
+                }
+            } else {
+                valueHandler = new LiteralValue( new Integer( (String) descr.getValue() ) );                
+            }
+            
+        } else if ( descr.getType() == ArgumentValueDescr.DECIMAL ) {
+            String text = (String) descr.getValue();
+            char c = text.charAt( text.length() - 1 );
+            if ( Character.getType( c ) != Character.DECIMAL_DIGIT_NUMBER ) {
+                switch ( c ) {
+                    case 'l' :
+                    case 'L' :
+                        throw new IllegalArgumentException( "invalid type identifier '" + c + "' used with number [" + text + "]" );                      
+                    case 'f' :
+                    case 'F' :
+                        valueHandler = new LiteralValue( new Float( (String) descr.getValue() ) );                          
+                        break;
+                    case 'd' :
+                    case 'D' :
+                        valueHandler = new LiteralValue( new Double( (String) descr.getValue() ) );                        
+                        break;
+                    default :
+                        throw new IllegalArgumentException( "invalid type identifier '" + c + "' used with number [" + text + "]" );
+                }
+            } else {
+                valueHandler = new LiteralValue( new Float( (String) descr.getValue() ) );                
+            }
+        } else if ( descr.getType() == ArgumentValueDescr.STRING ) {
+            // handling a literal
+            valueHandler = new LiteralValue( (String) descr.getValue() );
         } else {
-            // handling a literal
-            valueHandler = new LiteralValue( (String) descr.getValue(),
-                                             Object.class );
+            // This should never happen
+            throw new IllegalArgumentException( "Unable to determine type for argument [" + descr.getType() + "]" );
         }
         return valueHandler;
     }
@@ -1004,7 +1084,7 @@
         st.setAttribute( "methodName",
                          className );
 
-        final String evalText = this.functionFixer.fix( evalDescr.getText() );
+        final String evalText = this.functionFixer.fix( evalDescr.getText(), variables );
         st.setAttribute( "text",
                          evalText );
 
@@ -1188,7 +1268,7 @@
                                      (String[]) usedIdentifiers[1].toArray( new String[usedIdentifiers[1].size()] ),
                                      ruleDescr.getConsequence() );
         st.setAttribute( "text",
-                         this.functionFixer.fix( RuleBuilder.knowledgeHelperFixer.fix( ruleDescr.getConsequence() ) ) );
+                         this.functionFixer.fix( RuleBuilder.knowledgeHelperFixer.fix( ruleDescr.getConsequence() ), variables ) );
 
         this.methods.add( st.toString() );
 
@@ -1298,7 +1378,7 @@
         return name.toUpperCase().charAt( 0 ) + name.substring( 1 );
     }
 
-    private FieldExtractor getFieldExtractor(final PatternDescr descr,
+    private FieldExtractor getFieldExtractor(final BaseDescr descr,
                                              final ObjectType objectType,
                                              final String fieldName) {
         FieldExtractor extractor = null;
@@ -1323,7 +1403,7 @@
         return extractor;
     }
 
-    private Evaluator getEvaluator(final PatternDescr descr,
+    private Evaluator getEvaluator(final BaseDescr descr,
                                    final ValueType valueType,
                                    final String evaluatorString) {
 
@@ -1339,7 +1419,7 @@
         return evaluator;
     }
 
-    private List[] getUsedIdentifiers(final PatternDescr descr,
+    private List[] getUsedIdentifiers(final BaseDescr descr,
                                       final String text) {
         List[] usedIdentifiers = null;
         try {
@@ -1354,7 +1434,7 @@
         return usedIdentifiers;
     }
 
-    private List[] getUsedCIdentifiers(final PatternDescr descr,
+    private List[] getUsedCIdentifiers(final BaseDescr descr,
                                        final String text) {
         List[] usedIdentifiers = null;
         try {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/StaticMethodFunctionResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/StaticMethodFunctionResolver.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/StaticMethodFunctionResolver.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -2,13 +2,22 @@
 
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.drools.RuntimeDroolsException;
+import org.drools.base.dataproviders.MethodResolver;
+import org.drools.base.resolvers.LiteralValue;
+import org.drools.rule.Declaration;
+import org.drools.spi.AvailableVariables;
 import org.drools.spi.FunctionResolver;
 import org.drools.spi.TypeResolver;
+import org.eclipse.jdt.core.dom.ASTParser;
 
+import antlr.collections.AST;
+
 public class StaticMethodFunctionResolver
     implements
     FunctionResolver {
@@ -32,9 +41,17 @@
     public List getFunctionImports() {
         return this.functionImports;
     }
+    
+    public String resolveFunction(String functionName,
+                                  String params) {
+        return resolveFunction(functionName,
+                               params,
+                               null );      
+    }
 
     public String resolveFunction(String functionName,
-                                  int numberOfArgs) {
+                                  String params,
+                                  AvailableVariables variables) {
         for ( Iterator it = this.functionImports.iterator(); it.hasNext(); ) {
             String functionImport = (String) it.next();
 
@@ -55,16 +72,133 @@
                 // todo : must be a better way so we don't have to try/catch each resolveType call
                 throw new RuntimeDroolsException( e );
             }
-            Method[] methods = clazz.getMethods();
-            for ( int i = 0, length = methods.length; i < length; i++ ) {
-                if ( (methods[i].getModifiers() & Modifier.STATIC) == Modifier.STATIC && (methods[i].getModifiers() & Modifier.PUBLIC) == Modifier.PUBLIC && methods[i].getName().equals( functionName )
-                     && methods[i].getParameterTypes().length == numberOfArgs ) {
-                    return clazz.getName().replace( '$',
-                                                    '.' );
+            MethodResolver methodResolver = new MethodResolver( clazz,
+                                                                functionName );
+            
+            
+            Class[] classes = determineParameterTypes( params, variables );
+            
+            Method method = methodResolver.resolveMethod( classes );
+
+            if ( method != null && methodResolver.isStaticMethod() ) {
+                   return clazz.getName().replace( '$',
+                                                   '.' );
+            }            
+        }
+        throw new RuntimeDroolsException( "unable to find the function '" + functionName + "'" );
+    }
+
+    /**
+     * pass a string representation of parameters and determine the used class types
+     * @param paramString
+     * @return
+     */
+    private Class[] determineParameterTypes(String paramString, AvailableVariables variables) {
+        if ( paramString.trim().equals( "" ) ) {
+            return new Class[0];
+        }
+        String[] params = paramString.split( "," );
+        Class[] classes = new Class[params.length];
+
+        for ( int i = 0, length = params.length; i < length; i++ ) {
+            String param = params[i].trim();
+            if ( param.charAt( 0 ) == '"' && param.charAt( param.length() - 1 ) == '"' ) {
+                // we have a string literal
+                classes[i] = String.class;
+            } else if ( Character.getType( param.charAt( 0 ) ) == Character.DECIMAL_DIGIT_NUMBER ) {
+                // we have a number
+
+                char c = param.charAt( param.length() - 1 );
+                if ( param.indexOf( '.' ) == -1 ) {
+                    /// we have an integral
+                    if ( Character.getType( c ) != Character.DECIMAL_DIGIT_NUMBER ) {
+                        switch ( c ) {
+                            case 'l' :
+                            case 'L' :
+                                classes[i] = Long.class;
+                                break;
+                            case 'f' :
+                            case 'F' :
+                                classes[i] = Float.class;
+                                break;
+                            case 'd' :
+                            case 'D' :
+                                classes[i] = Double.class;
+                                break;
+                            default :
+                                throw new IllegalArgumentException( "invalid type identifier '" + c + "' used with number [" + param + "]" );
+                        }
+                    } else {
+                        classes[i] = Integer.class;
+                    }
+                } else {
+                    // we have a decimal
+                    if ( Character.getType( c ) != Character.DECIMAL_DIGIT_NUMBER ) {
+                        switch ( c ) {
+                            case 'l' :
+                            case 'L' :
+                                throw new IllegalArgumentException( "invalid type identifier '" + c + "' used with number [" + param + "]" );
+                            case 'f' :
+                            case 'F' :
+                                classes[i] = Float.class;
+                                break;
+                            case 'd' :
+                            case 'D' :
+                                classes[i] = Double.class;
+                                break;
+                            default :
+                                throw new IllegalArgumentException( "invalid type identifier '" + c + "' used with number [" + param + "]" );
+                        }
+                    } else {
+                        classes[i] = Float.class;
+                    }
                 }
+            } else if ( param.startsWith( "new" ) ) {
+                //We have a new instance, get its type
+                int start = 3;
+                int wordLength = param.length();
+                // scan to start of first word
+                for ( int j = start; j < wordLength; j++ ) {
+                    if ( param.charAt( j ) != ' ') {
+                        break;
+                    }
+                    start++;
+                }
+                
+                int end = start;
+                // now scan to end of the first word           
+                for ( int j = start; j <= wordLength; j++ ) {
+                    char c = param.charAt( j );
+                    if (  c == ' ' || c == '(' ) {
+                        break;
+                    }
+                    end++;
+                }       
+            
+                char[] word = new char[end-start];
+                // now copy the word         
+                int k = 0;
+                for ( int j = start; j < end; j++ ) {
+                    word[k++]= param.charAt( j );
+                }                 
+            
+                Class clazz = null;
+                try {
+                    clazz = this.typeResolver.resolveType( new String( word ) );
+                } catch ( Exception e ) {
+                    throw new IllegalArgumentException( "Unable to resovle type [" + new String( word )  + "]" );
+                }
+                classes[i] = clazz;
+                
+                
+            } else {
+                // we have a varable
+                if ( variables != null ) {
+                    classes[i] = variables.getType( param );
+                }
             }
+
         }
-        throw new RuntimeDroolsException( "unable to find the function '" + functionName + "'" );
+        return classes;
     }
-
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/drl.g	2006-09-14 18:10:43 UTC (rev 6232)
@@ -716,7 +716,7 @@
 	
 	
 	
-lhs returns [PatternDescr d]
+lhs returns [BaseDescr d]
 	@init {
 		d=null;
 	}
@@ -724,7 +724,7 @@
 	;
 
 	
-lhs_column returns [PatternDescr d]
+lhs_column returns [BaseDescr d]
 	@init {
 		d=null;
 	}
@@ -752,29 +752,33 @@
 		ds = null;
 	}
 	:
-		(var=ID '.' field=ID 
+		(var=ID '.' field=ID  ('[' arg=argument_value ']')?
 		
 			{
-			  FieldAccessDescr fa = new FieldAccessDescr(var.getText(), field.getText());	
-			  fa.setLine(var.getLine());
+          		 FieldAccessDescr fa;
+			  if ( arg == null )   {
+				  fa = new FieldAccessDescr(var.getText(), field.getText());	
+			  } else {
+				  fa = new FieldAccessDescr(var.getText(), field.getText(), arg);				  
+			  }
+			  fa.setLocation( offset(var.getLine()), var.getCharPositionInLine() );
 			  ds = fa;
 			 }
 	
-		) 
+		)  
 		|
 		(var=ID '.' method=ID opt_eol  '(' opt_eol args=argument_list opt_eol ')' 
 			{
-			MethodAccessDescr mc = new MethodAccessDescr(var.getText(), method.getText());
-			mc.setArguments(args);
-			mc.setLine(var.getLine());
-			ds = mc;
+			  FieldAccessDescr fa = new FieldAccessDescr(var.getText(), field.getText());	
+			  fa.setLocation( offset(var.getLine()), var.getCharPositionInLine() );
+			  ds = fa;
 			}	
 		)
 		|
 		(functionName=ID opt_eol '(' opt_eol args=argument_list opt_eol ')'
 			{
 			FunctionCallDescr fc = new FunctionCallDescr(functionName.getText());
-			fc.setLine(functionName.getLine());
+			fc.setLocation( offset(functionName.getLine()), functionName.getCharPositionInLine() );			
 			fc.setArguments(args);
 			ds = fc;
 			}
@@ -897,7 +901,7 @@
       
     
     ; 	
-fact_binding returns [PatternDescr d]
+fact_binding returns [BaseDescr d]
 	@init {
 		d=null;
 		boolean multi=false;
@@ -911,7 +915,7 @@
  		}
 	;
  
- fact_expression[String id] returns [PatternDescr pd]
+ fact_expression[String id] returns [BaseDescr pd]
  	@init {
  		pd = null;
  		boolean multi = false;
@@ -924,7 +928,7 @@
  		}
  		(	('or'|'||') opt_eol
  			{	if ( ! multi ) {
- 					PatternDescr first = pd;
+ 					BaseDescr first = pd;
  					pd = new OrDescr();
  					((OrDescr)pd).addDescr( first );
  					multi=true;
@@ -938,7 +942,7 @@
  		)*	
 	;
  
-fact returns [PatternDescr d] 
+fact returns [BaseDescr d] 
 	@init {
 		d=null;
 	}
@@ -951,7 +955,7 @@
  			}opt_eol (	c=constraints
  				{
 		 			for ( Iterator cIter = c.iterator() ; cIter.hasNext() ; ) {
- 						((ColumnDescr)d).addDescr( (PatternDescr) cIter.next() );
+ 						((ColumnDescr)d).addDescr( (BaseDescr) cIter.next() );
  					}
  				}
  
@@ -974,7 +978,7 @@
 	
 constraint[List constraints]
 	@init {
-		PatternDescr d = null;
+		BaseDescr d = null;
 	}
 	:	opt_eol
 		( fb=ID opt_eol ':' opt_eol )? 
@@ -1205,7 +1209,7 @@
 		)*
 	;	
 	
-lhs_or returns [PatternDescr d]
+lhs_or returns [BaseDescr d]
 	@init{
 		d = null;
 	}
@@ -1226,7 +1230,7 @@
 		)*
 	;
 	
-lhs_and returns [PatternDescr d]
+lhs_and returns [BaseDescr d]
 	@init{
 		d = null;
 	}
@@ -1247,7 +1251,7 @@
 		)* 
 	;
 	
-lhs_unary returns [PatternDescr d]
+lhs_unary returns [BaseDescr d]
 	@init {
 		d = null;
 	}
@@ -1262,7 +1266,7 @@
 		) 
 	;
 	
-lhs_exist returns [PatternDescr d]
+lhs_exist returns [BaseDescr d]
 	@init {
 		d = null;
 	}
@@ -1284,7 +1288,7 @@
 		}
 	;
 
-lhs_eval returns [PatternDescr d]
+lhs_eval returns [BaseDescr d]
 	@init {
 		d = null;
 		String text = "";
@@ -1377,7 +1381,7 @@
         ;  
         
 INT	
-	:	('-')?('0'..'9')+
+	:	('-')?('0'..'9')+('l'|'L')?
 	;
 
 FLOAT

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -26,7 +26,7 @@
     /**
      * 
      */
-    private static final long serialVersionUID = 4654655548777389065L;
+    private static final long serialVersionUID = 320L;
     public final static int   MAKING_CHEESE    = 0;
     public final static int   SELLING_CHEESE   = 1;
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -57,7 +57,7 @@
 import org.drools.lang.descr.NotDescr;
 import org.drools.lang.descr.OrDescr;
 import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.PredicateDescr;
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.RuleDescr;
@@ -1025,7 +1025,7 @@
         final AndDescr lhs = new AndDescr();
         ruleDescr.setLhs( lhs );
 
-        lhs.addDescr( (PatternDescr) ceDescr );
+        lhs.addDescr( (BaseDescr) ceDescr );
 
         final ColumnDescr columnDescr = new ColumnDescr( Cheese.class.getName(),
                                                          "stilton" );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -106,9 +106,9 @@
         workingMemory.fireAllRules();
 
         assertEquals( new Integer( 5 ),
-                      list.get( 0 ) );
+                      list.get( 0 ) );       
     }
-
+ 
     public void testFieldBiningsAndEvalSharing() throws Exception {
         String drl = "test_FieldBindingsAndEvalSharing.drl";
         evalSharingTest( drl );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -579,7 +579,7 @@
         assertEquals( "using_from",
                       rule.getName() );
 
-        assertEquals(6, rule.getLhs().getDescrs().size());
+        assertEquals(9, rule.getLhs().getDescrs().size());
         
         FromDescr from = (FromDescr) rule.getLhs().getDescrs().get(0);
         
@@ -594,6 +594,23 @@
         ArgumentValueDescr arg = null;
         
         from = (FromDescr) rule.getLhs().getDescrs().get(1);
+        assertEquals("Foo", from.getReturnedColumn().getObjectType());
+        assertEquals(0, from.getReturnedColumn().getDescrs().size());
+        FieldAccessDescr fieldAccess = ( FieldAccessDescr ) from.getDataSource();
+        arg = ( ArgumentValueDescr ) fieldAccess.getArgument();
+        assertEquals(ArgumentValueDescr.STRING,  arg.getType() );
+        
+        from = (FromDescr) rule.getLhs().getDescrs().get(2);
+        fieldAccess = ( FieldAccessDescr ) from.getDataSource();
+        arg = ( ArgumentValueDescr ) fieldAccess.getArgument();
+        assertEquals(ArgumentValueDescr.VARIABLE,  arg.getType() );        
+        
+        from = (FromDescr) rule.getLhs().getDescrs().get(3);
+        fieldAccess = ( FieldAccessDescr ) from.getDataSource();
+        arg = ( ArgumentValueDescr ) fieldAccess.getArgument();
+        assertEquals(ArgumentValueDescr.INTEGRAL,  arg.getType() );
+        
+        from = (FromDescr) rule.getLhs().getDescrs().get(4);
         assertEquals("Whee", from.getReturnedColumn().getObjectType());
         assertEquals(1, from.getReturnedColumn().getDescrs().size());
         assertTrue(from.getDataSource() instanceof FunctionCallDescr);
@@ -603,10 +620,10 @@
         assertEquals("y", arg.getValue());
         assertEquals(ArgumentValueDescr.STRING, arg.getType());
 
-        assertEquals(4, from.getLine());
-        assertEquals(4, from.getReturnedColumn().getLine());
+        assertEquals(7, from.getLine());
+        assertEquals(7, from.getReturnedColumn().getLine());
         
-        from = (FromDescr) rule.getLhs().getDescrs().get(2);
+        from = (FromDescr) rule.getLhs().getDescrs().get(5);
         assertEquals("Foo", from.getReturnedColumn().getObjectType());
         assertEquals(1, from.getReturnedColumn().getDescrs().size());
         assertEquals("f", from.getReturnedColumn().getIdentifier());
@@ -622,10 +639,10 @@
 
         assertEqualsIgnoreWhitespace("whee();", rule.getConsequence());
         
-        from = (FromDescr) rule.getLhs().getDescrs().get(3);
+        from = (FromDescr) rule.getLhs().getDescrs().get(6);
         assertEquals("wa", ((FunctionCallDescr)from.getDataSource()).getName());
 
-        from = (FromDescr) rule.getLhs().getDescrs().get(4);
+        from = (FromDescr) rule.getLhs().getDescrs().get(7);
         MethodAccessDescr meth = (MethodAccessDescr)from.getDataSource();
         assertEquals("wa", meth.getMethodName());
         assertEquals("la", meth.getVariableName());
@@ -648,7 +665,7 @@
         
                 
         
-        assertEquals("Bam", ((ColumnDescr)rule.getLhs().getDescrs().get(5)).getObjectType());
+        assertEquals("Bam", ((ColumnDescr)rule.getLhs().getDescrs().get(8)).getObjectType());
     }
     
     public void testSimpleRule() throws Exception {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/FunctionFixerTest.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -17,8 +17,11 @@
  */
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import org.drools.spi.AvailableVariables;
 import org.drools.spi.TypeResolver;
 import org.drools.rule.Package;
 
@@ -48,13 +51,19 @@
     }
 
     public void testSimpleWithPArams() {
+        Map variables = new HashMap();
+        variables.put( "yyy", String.class );
+        variables.put( "iii", String.class );
         assertEquals( "org.drools.Func.func(yyy, iii)",
-                      fixer.fix( "func(yyy, iii)" ) );
+                      fixer.fix( "func(yyy, iii)", new AvailableVariables( new Map[] { variables }  ) ) );
     }
 
     public void testMoreComplex() {
+        Map variables = new HashMap();
+        variables.put( "yyy", String.class );
+        variables.put( "iii", String.class );        
         assertEquals( "xxx org.drools.Func.func(yyy, iii) yyy",
-                      fixer.fix( "xxx func(yyy, iii) yyy" ) );
+                      fixer.fix( "xxx func(yyy, iii) yyy", new AvailableVariables( new Map[] { variables }  )  ) );
     }
 
     public void testLeaveAloneNew() {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/StaticMethodFunctionResolverTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/StaticMethodFunctionResolverTest.java	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/StaticMethodFunctionResolverTest.java	2006-09-14 18:10:43 UTC (rev 6232)
@@ -1,26 +1,39 @@
 package org.drools.semantics.java;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import junit.framework.TestCase;
+
+import org.drools.spi.AvailableVariables;
 import org.drools.spi.FunctionResolver;
 import org.drools.spi.TypeResolver;
 
-import junit.framework.TestCase;
-
 public class StaticMethodFunctionResolverTest extends TestCase {
-    public void test1() {                
+    public void test1() throws Exception {
         List list = new ArrayList();
-        list.add( "org.drools.StaticMethods" );        
+        list.add( "org.drools.StaticMethods" );
         TypeResolver typeResolver = new ClassTypeResolver( list );
-        
-        
+
         list = new ArrayList();
         list.add( "StaticMethods.*" );
-        FunctionResolver functionResolver = new StaticMethodFunctionResolver( list, typeResolver );
-        
-        System.out.println( functionResolver.resolveFunction( "getString1", 1 ) );
-        
-        
+        FunctionResolver functionResolver = new StaticMethodFunctionResolver( list,
+                                                                              typeResolver );
+
+        assertEquals( "org.drools.StaticMethods",
+                      functionResolver.resolveFunction( "getString1",
+                                                        "a" ) );
+
+        Map map = new HashMap();
+        map.put( "a",
+                 String.class );
+
+        assertEquals( "org.drools.StaticMethods",
+                      functionResolver.resolveFunction( "getString1",
+                                                        "a",
+                                                        new AvailableVariables( new Map[]{map} ) ) );
+
     }
 }

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From2.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From2.drl	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_From2.drl	2006-09-14 18:10:43 UTC (rev 6232)
@@ -0,0 +1,19 @@
+package org.drools.test;
+ 
+#we don't use the import, as class is fully qualified below 
+#import org.drools.integrationtests.helloworld.Message
+import org.drools.Cheese;
+import org.drools.Cheesery;
+import java.util.List;
+
+global List list1;
+global List list2;
+global List list3;
+global Cheesery cheesery;
+
+rule "test from using a global against a map lookup"
+	when
+		$cheese : Cheese( type == "stilton" ) from cheesery.getCheeseMap["stilton"]	
+	then
+		list1.add( $cheese );
+end
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/from.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/from.drl	2006-09-14 17:11:55 UTC (rev 6231)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/from.drl	2006-09-14 18:10:43 UTC (rev 6232)
@@ -1,6 +1,9 @@
 rule using_from
   when
     Foo() from bar.baz
+    Foo() from bar.baz["key"]    
+    Foo() from bar.baz[$key]    
+    Foo() from bar.baz[1]        
     Whee(bar=="baz") from whee("y")
     f: Foo(la==2) from bar.la(x)   
     Bam() from wa()




More information about the jboss-svn-commits mailing list