[jboss-svn-commits] JBL Code SVN: r26720 - in labs/jbossrules/branches/DroolsChance/drools-compiler/src/main: java/org/drools/lang/descr and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue May 26 04:05:09 EDT 2009


Author: dsotty
Date: 2009-05-26 04:05:07 -0400 (Tue, 26 May 2009)
New Revision: 26720

Modified:
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DroolsSoftKeywords.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForAnyDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/HedgeDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ImpliesDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g
Log:
Major update

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -1,4 +1,4 @@
-// $ANTLR 3.1.1 /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2009-05-20 03:15:20
+// $ANTLR 3.1.1 /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2009-05-23 11:52:08
 
 	package org.drools.lang;
 
@@ -15,7 +15,6 @@
     public static final int VT_ACCESSOR_ELEMENT=40;
     public static final int ACCUMULATE=124;
     public static final int VT_DATA_TYPE=41;
-    public static final int VK_TYPE=105;
     public static final int DOT_STAR=109;
     public static final int VK_APPROX=98;
     public static final int VK_OPERATOR=92;
@@ -23,7 +22,6 @@
     public static final int VK_FUNCTION=75;
     public static final int VK_GLOBAL=76;
     public static final int VK_AND=82;
-    public static final int VT_TYPE=54;
     public static final int EQUALS=116;
     public static final int SH_STYLE_SINGLE_LINE_COMMENT=151;
     public static final int VK_AUTO_FOCUS=59;
@@ -55,6 +53,7 @@
     public static final int NULL=136;
     public static final int BOOL=118;
     public static final int VK_ENTAIL=99;
+    public static final int VT_KIND=54;
     public static final int VK_QUERY=73;
     public static final int VK_SUBJECT=95;
     public static final int INT=119;
@@ -161,6 +160,7 @@
     public static final int LEFT_SQUARE=137;
     public static final int GREATER_EQUAL=131;
     public static final int OctalEscape=149;
+    public static final int VK_KIND=105;
     public static final int VK_INIT=94;
     public static final int STRING=110;
 
@@ -214,10 +214,10 @@
         try {
             int _type = WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2175:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2175:17: ( ' ' | '\\t' | '\\f' | EOL )+
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2174:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2174:17: ( ' ' | '\\t' | '\\f' | EOL )+
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2175:17: ( ' ' | '\\t' | '\\f' | EOL )+
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2174:17: ( ' ' | '\\t' | '\\f' | EOL )+
             int cnt1=0;
             loop1:
             do {
@@ -249,28 +249,28 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2175:19: ' '
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2174:19: ' '
             	    {
             	    match(' '); if (state.failed) return ;
 
             	    }
             	    break;
             	case 2 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2176:19: '\\t'
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2175:19: '\\t'
             	    {
             	    match('\t'); if (state.failed) return ;
 
             	    }
             	    break;
             	case 3 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2177:19: '\\f'
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2176:19: '\\f'
             	    {
             	    match('\f'); if (state.failed) return ;
 
             	    }
             	    break;
             	case 4 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2178:19: EOL
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2177:19: EOL
             	    {
             	    mEOL(); if (state.failed) return ;
 
@@ -304,10 +304,10 @@
     // $ANTLR start "EOL"
     public final void mEOL() throws RecognitionException {
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2184:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2185:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2183:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2184:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2185:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2184:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
 
@@ -332,7 +332,7 @@
             }
             switch (alt2) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2185:14: ( '\\r\\n' )=> '\\r\\n'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2184:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (state.failed) return ;
 
@@ -340,14 +340,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2186:25: '\\r'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2185:25: '\\r'
                     {
                     match('\r'); if (state.failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2187:25: '\\n'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2186:25: '\\n'
                     {
                     match('\n'); if (state.failed) return ;
 
@@ -370,10 +370,10 @@
         try {
             int _type = INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2192:2: ( ( '-' )? ( '0' .. '9' )+ )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2192:4: ( '-' )? ( '0' .. '9' )+
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2191:2: ( ( '-' )? ( '0' .. '9' )+ )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2191:4: ( '-' )? ( '0' .. '9' )+
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2192:4: ( '-' )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2191:4: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -382,7 +382,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2192:5: '-'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2191:5: '-'
                     {
                     match('-'); if (state.failed) return ;
 
@@ -391,7 +391,7 @@
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2192:10: ( '0' .. '9' )+
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2191:10: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -405,7 +405,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2192:11: '0' .. '9'
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2191:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (state.failed) return ;
 
@@ -438,10 +438,10 @@
         try {
             int _type = FLOAT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:4: ( '-' )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:4: ( '-' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -450,7 +450,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:5: '-'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:5: '-'
                     {
                     match('-'); if (state.failed) return ;
 
@@ -459,7 +459,7 @@
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:10: ( '0' .. '9' )+
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:10: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -473,7 +473,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:11: '0' .. '9'
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (state.failed) return ;
 
@@ -491,7 +491,7 @@
             } while (true);
 
             match('.'); if (state.failed) return ;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:26: ( '0' .. '9' )+
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:26: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -505,7 +505,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2196:27: '0' .. '9'
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2195:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (state.failed) return ;
 
@@ -538,7 +538,7 @@
         try {
             int _type = STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2199:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -557,13 +557,13 @@
             }
             switch (alt10) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2199:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
                     {
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2199:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2199:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
                     {
                     match('\"'); if (state.failed) return ;
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2199:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
                     loop8:
                     do {
                         int alt8=3;
@@ -579,14 +579,14 @@
 
                         switch (alt8) {
                     	case 1 :
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:15: EscapeSequence
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2199:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (state.failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:32: ~ ( '\\\\' | '\"' )
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2199:32: ~ ( '\\\\' | '\"' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -615,13 +615,13 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2201:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
                     {
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2201:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2201:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
                     {
                     match('\''); if (state.failed) return ;
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2201:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
                     loop9:
                     do {
                         int alt9=3;
@@ -637,14 +637,14 @@
 
                         switch (alt9) {
                     	case 1 :
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2201:16: EscapeSequence
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (state.failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2201:33: ~ ( '\\\\' | '\\'' )
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2200:33: ~ ( '\\\\' | '\\'' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -685,8 +685,8 @@
     // $ANTLR start "HexDigit"
     public final void mHexDigit() throws RecognitionException {
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2205:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2205:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2204:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2204:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
             {
             if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
                 input.consume();
@@ -710,7 +710,7 @@
     // $ANTLR start "EscapeSequence"
     public final void mEscapeSequence() throws RecognitionException {
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2209:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2208:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
             int alt11=3;
             int LA11_0 = input.LA(1);
 
@@ -797,7 +797,7 @@
             }
             switch (alt11) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2209:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2208:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
                     {
                     match('\\'); if (state.failed) return ;
                     if ( input.LA(1)=='\"'||input.LA(1)=='$'||(input.LA(1)>='&' && input.LA(1)<='+')||(input.LA(1)>='-' && input.LA(1)<='.')||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='B')||(input.LA(1)>='D' && input.LA(1)<='E')||input.LA(1)=='G'||input.LA(1)=='Q'||input.LA(1)=='S'||input.LA(1)=='W'||(input.LA(1)>='Z' && input.LA(1)<='^')||(input.LA(1)>='a' && input.LA(1)<='f')||(input.LA(1)>='n' && input.LA(1)<='p')||(input.LA(1)>='r' && input.LA(1)<='t')||(input.LA(1)>='w' && input.LA(1)<='x')||(input.LA(1)>='z' && input.LA(1)<='}') ) {
@@ -814,14 +814,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2213:9: UnicodeEscape
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2212:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (state.failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2214:9: OctalEscape
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2213:9: OctalEscape
                     {
                     mOctalEscape(); if (state.failed) return ;
 
@@ -838,7 +838,7 @@
     // $ANTLR start "OctalEscape"
     public final void mOctalEscape() throws RecognitionException {
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
             int alt12=3;
             int LA12_0 = input.LA(1);
 
@@ -886,25 +886,25 @@
             }
             switch (alt12) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (state.failed) return ;
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:14: ( '0' .. '3' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:15: '0' .. '3'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:14: ( '0' .. '3' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (state.failed) return ;
 
                     }
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:25: ( '0' .. '7' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:26: '0' .. '7'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:25: ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
                     }
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:36: ( '0' .. '7' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:37: '0' .. '7'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:36: ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2218:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
@@ -914,18 +914,18 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (state.failed) return ;
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:14: ( '0' .. '7' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:15: '0' .. '7'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:14: ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
                     }
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:25: ( '0' .. '7' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:26: '0' .. '7'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:25: ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2219:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
@@ -935,11 +935,11 @@
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2221:9: '\\\\' ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (state.failed) return ;
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2221:14: ( '0' .. '7' )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2221:15: '0' .. '7'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:14: ( '0' .. '7' )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2220:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
@@ -959,8 +959,8 @@
     // $ANTLR start "UnicodeEscape"
     public final void mUnicodeEscape() throws RecognitionException {
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2226:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2226:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2225:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2225:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (state.failed) return ;
             match('u'); if (state.failed) return ;
@@ -982,10 +982,10 @@
         try {
             int _type = BOOL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2230:2: ( ( 'true' | 'false' ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2230:4: ( 'true' | 'false' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2229:2: ( ( 'true' | 'false' ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2229:4: ( 'true' | 'false' )
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2230:4: ( 'true' | 'false' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2229:4: ( 'true' | 'false' )
             int alt13=2;
             int LA13_0 = input.LA(1);
 
@@ -1004,7 +1004,7 @@
             }
             switch (alt13) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2230:5: 'true'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2229:5: 'true'
                     {
                     match("true"); if (state.failed) return ;
 
@@ -1012,7 +1012,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2230:12: 'false'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2229:12: 'false'
                     {
                     match("false"); if (state.failed) return ;
 
@@ -1038,8 +1038,8 @@
         try {
             int _type = ACCUMULATE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2234:2: ( 'accumulate' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2234:4: 'accumulate'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2233:2: ( 'accumulate' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2233:4: 'accumulate'
             {
             match("accumulate"); if (state.failed) return ;
 
@@ -1059,8 +1059,8 @@
         try {
             int _type = COLLECT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2238:2: ( 'collect' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2238:4: 'collect'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2237:2: ( 'collect' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2237:4: 'collect'
             {
             match("collect"); if (state.failed) return ;
 
@@ -1080,8 +1080,8 @@
         try {
             int _type = FROM;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2242:2: ( 'from' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2242:4: 'from'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2241:2: ( 'from' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2241:4: 'from'
             {
             match("from"); if (state.failed) return ;
 
@@ -1101,8 +1101,8 @@
         try {
             int _type = NULL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2246:2: ( 'null' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2246:4: 'null'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2245:2: ( 'null' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2245:4: 'null'
             {
             match("null"); if (state.failed) return ;
 
@@ -1122,8 +1122,8 @@
         try {
             int _type = OVER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2250:2: ( 'over' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2250:4: 'over'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2249:2: ( 'over' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2249:4: 'over'
             {
             match("over"); if (state.failed) return ;
 
@@ -1143,8 +1143,8 @@
         try {
             int _type = THEN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2254:2: ( 'then' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2254:4: 'then'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2253:2: ( 'then' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2253:4: 'then'
             {
             match("then"); if (state.failed) return ;
 
@@ -1164,8 +1164,8 @@
         try {
             int _type = WHEN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2258:2: ( 'when' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2258:4: 'when'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2257:2: ( 'when' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2257:4: 'when'
             {
             match("when"); if (state.failed) return ;
 
@@ -1185,8 +1185,8 @@
         try {
             int _type = APPROX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2263:3: ( '~' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2263:5: '~'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2262:3: ( '~' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2262:5: '~'
             {
             match('~'); if (state.failed) return ;
 
@@ -1205,8 +1205,8 @@
         try {
             int _type = CUT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2267:3: ( '!' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2267:5: '!'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2266:3: ( '!' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2266:5: '!'
             {
             match('!'); if (state.failed) return ;
 
@@ -1225,8 +1225,8 @@
         try {
             int _type = AT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2271:4: ( '@' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2271:6: '@'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2270:4: ( '@' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2270:6: '@'
             {
             match('@'); if (state.failed) return ;
 
@@ -1245,8 +1245,8 @@
         try {
             int _type = EQUALS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2275:2: ( '=' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2275:4: '='
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2274:2: ( '=' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2274:4: '='
             {
             match('='); if (state.failed) return ;
 
@@ -1265,8 +1265,8 @@
         try {
             int _type = SEMICOLON;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2279:2: ( ';' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2279:4: ';'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2278:2: ( ';' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2278:4: ';'
             {
             match(';'); if (state.failed) return ;
 
@@ -1285,8 +1285,8 @@
         try {
             int _type = DOT_STAR;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2283:2: ( '.*' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2283:4: '.*'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2282:2: ( '.*' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2282:4: '.*'
             {
             match(".*"); if (state.failed) return ;
 
@@ -1306,8 +1306,8 @@
         try {
             int _type = COLON;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2287:2: ( ':' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2287:4: ':'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2286:2: ( ':' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2286:4: ':'
             {
             match(':'); if (state.failed) return ;
 
@@ -1326,8 +1326,8 @@
         try {
             int _type = EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2291:2: ( '==' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2291:4: '=='
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2290:2: ( '==' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2290:4: '=='
             {
             match("=="); if (state.failed) return ;
 
@@ -1347,8 +1347,8 @@
         try {
             int _type = NOT_EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2295:2: ( '!=' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2295:4: '!='
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2294:2: ( '!=' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2294:4: '!='
             {
             match("!="); if (state.failed) return ;
 
@@ -1368,8 +1368,8 @@
         try {
             int _type = GREATER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2299:2: ( '>' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2299:4: '>'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2298:2: ( '>' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2298:4: '>'
             {
             match('>'); if (state.failed) return ;
 
@@ -1388,8 +1388,8 @@
         try {
             int _type = GREATER_EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2303:2: ( '>=' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2303:4: '>='
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2302:2: ( '>=' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2302:4: '>='
             {
             match(">="); if (state.failed) return ;
 
@@ -1409,8 +1409,8 @@
         try {
             int _type = LESS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2307:2: ( '<' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2307:4: '<'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2306:2: ( '<' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2306:4: '<'
             {
             match('<'); if (state.failed) return ;
 
@@ -1429,8 +1429,8 @@
         try {
             int _type = LESS_EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2311:2: ( '<=' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2311:4: '<='
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2310:2: ( '<=' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2310:4: '<='
             {
             match("<="); if (state.failed) return ;
 
@@ -1450,8 +1450,8 @@
         try {
             int _type = ARROW;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2315:2: ( '->' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2315:4: '->'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2314:2: ( '->' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2314:4: '->'
             {
             match("->"); if (state.failed) return ;
 
@@ -1471,7 +1471,7 @@
         try {
             int _type = ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2319:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )* | '`' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+ '`' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2318:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )* | '`' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+ '`' )
             int alt16=2;
             int LA16_0 = input.LA(1);
 
@@ -1490,7 +1490,7 @@
             }
             switch (alt16) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2319:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2318:4: ( '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();
@@ -1502,7 +1502,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2319:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2318:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
                     loop14:
                     do {
                         int alt14=2;
@@ -1540,7 +1540,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2320:4: '`' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+ '`'
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2319:4: '`' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+ '`'
                     {
                     match('`'); if (state.failed) return ;
                     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') ) {
@@ -1553,7 +1553,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2320:54: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2319:54: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+
                     int cnt15=0;
                     loop15:
                     do {
@@ -1615,8 +1615,8 @@
         try {
             int _type = LEFT_PAREN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2325:9: ( '(' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2325:11: '('
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2324:9: ( '(' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2324:11: '('
             {
             match('('); if (state.failed) return ;
 
@@ -1635,8 +1635,8 @@
         try {
             int _type = RIGHT_PAREN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2329:9: ( ')' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2329:11: ')'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2328:9: ( ')' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2328:11: ')'
             {
             match(')'); if (state.failed) return ;
 
@@ -1655,8 +1655,8 @@
         try {
             int _type = LEFT_SQUARE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2333:9: ( '[' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2333:11: '['
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2332:9: ( '[' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2332:11: '['
             {
             match('['); if (state.failed) return ;
 
@@ -1675,8 +1675,8 @@
         try {
             int _type = RIGHT_SQUARE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2337:9: ( ']' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2337:11: ']'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2336:9: ( ']' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2336:11: ']'
             {
             match(']'); if (state.failed) return ;
 
@@ -1695,8 +1695,8 @@
         try {
             int _type = LEFT_CURLY;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2341:9: ( '{' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2341:11: '{'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2340:9: ( '{' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2340:11: '{'
             {
             match('{'); if (state.failed) return ;
 
@@ -1715,8 +1715,8 @@
         try {
             int _type = RIGHT_CURLY;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2345:9: ( '}' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2345:11: '}'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2344:9: ( '}' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2344:11: '}'
             {
             match('}'); if (state.failed) return ;
 
@@ -1735,8 +1735,8 @@
         try {
             int _type = COMMA;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2348:7: ( ',' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2348:9: ','
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2347:7: ( ',' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2347:9: ','
             {
             match(','); if (state.failed) return ;
 
@@ -1755,8 +1755,8 @@
         try {
             int _type = DOT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2351:5: ( '.' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2351:7: '.'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2350:5: ( '.' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2350:7: '.'
             {
             match('.'); if (state.failed) return ;
 
@@ -1775,8 +1775,8 @@
         try {
             int _type = DOUBLE_AMPER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2355:2: ( '&&' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2355:4: '&&'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2354:2: ( '&&' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2354:4: '&&'
             {
             match("&&"); if (state.failed) return ;
 
@@ -1796,8 +1796,8 @@
         try {
             int _type = DOUBLE_PIPE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2359:2: ( '||' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2359:4: '||'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2358:2: ( '||' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2358:4: '||'
             {
             match("||"); if (state.failed) return ;
 
@@ -1817,8 +1817,8 @@
         try {
             int _type = SINGLE_AMPER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2363:3: ( '&' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2363:5: '&'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2362:3: ( '&' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2362:5: '&'
             {
             match('&'); if (state.failed) return ;
 
@@ -1837,8 +1837,8 @@
         try {
             int _type = SINGLE_PIPE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2367:3: ( '|' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2367:5: '|'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2366:3: ( '|' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2366:5: '|'
             {
             match('|'); if (state.failed) return ;
 
@@ -1857,11 +1857,11 @@
         try {
             int _type = SH_STYLE_SINGLE_LINE_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2371:2: ( '#' ( options {greedy=false; } : . )* EOL )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2371:4: '#' ( options {greedy=false; } : . )* EOL
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2370:2: ( '#' ( options {greedy=false; } : . )* EOL )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2370:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (state.failed) return ;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2371:8: ( options {greedy=false; } : . )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2370:8: ( options {greedy=false; } : . )*
             loop17:
             do {
                 int alt17=2;
@@ -1880,7 +1880,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2371:35: .
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2370:35: .
             	    {
             	    matchAny(); if (state.failed) return ;
 
@@ -1912,12 +1912,12 @@
         try {
             int _type = C_STYLE_SINGLE_LINE_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2377:2: ( '//' ( options {greedy=false; } : . )* EOL )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2377:4: '//' ( options {greedy=false; } : . )* EOL
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2376:2: ( '//' ( options {greedy=false; } : . )* EOL )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2376:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (state.failed) return ;
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2377:9: ( options {greedy=false; } : . )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2376:9: ( options {greedy=false; } : . )*
             loop18:
             do {
                 int alt18=2;
@@ -1936,7 +1936,7 @@
 
                 switch (alt18) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2377:36: .
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2376:36: .
             	    {
             	    matchAny(); if (state.failed) return ;
 
@@ -1968,12 +1968,12 @@
         try {
             int _type = MULTI_LINE_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2382:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2382:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2381:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2381:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (state.failed) return ;
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2382:9: ( options {greedy=false; } : . )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2381:9: ( options {greedy=false; } : . )*
             loop19:
             do {
                 int alt19=2;
@@ -1998,7 +1998,7 @@
 
                 switch (alt19) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2382:35: .
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2381:35: .
             	    {
             	    matchAny(); if (state.failed) return ;
 
@@ -2031,7 +2031,7 @@
         try {
             int _type = MISC;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2386:7: ( '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '/' | '\\'' | '\\\\' )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2385:7: ( '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '/' | '\\'' | '\\\\' )
             // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:
             {
             if ( (input.LA(1)>='$' && input.LA(1)<='%')||input.LA(1)=='\''||(input.LA(1)>='*' && input.LA(1)<='+')||input.LA(1)=='-'||input.LA(1)=='/'||input.LA(1)=='?'||input.LA(1)=='\\'||(input.LA(1)>='^' && input.LA(1)<='_') ) {
@@ -2368,8 +2368,8 @@
 
     // $ANTLR start synpred1_DRL
     public final void synpred1_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2185:14: ( '\\r\\n' )
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2185:16: '\\r\\n'
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2184:14: ( '\\r\\n' )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2184:16: '\\r\\n'
         {
         match("\r\n"); if (state.failed) return ;
 

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -1,4 +1,4 @@
-// $ANTLR 3.1.1 /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2009-05-20 03:15:18
+// $ANTLR 3.1.1 /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2009-05-23 11:52:06
 
 	package org.drools.lang;
 	
@@ -18,11 +18,10 @@
 
 public class DRLParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VT_COMPILATION_UNIT", "VT_FUNCTION_IMPORT", "VT_FACT", "VT_CONSTRAINTS", "VT_LABEL", "VT_QUERY_ID", "VT_TEMPLATE_ID", "VT_TYPE_DECLARE_ID", "VT_RULE_ID", "VT_ENTRYPOINT_ID", "VT_SLOT_ID", "VT_SLOT", "VT_RULE_ATTRIBUTES", "VT_RHS_CHUNK", "VT_CURLY_CHUNK", "VT_SQUARE_CHUNK", "VT_PAREN_CHUNK", "VT_BEHAVIOR", "VT_AND_IMPLICIT", "VT_AND_PREFIX", "VT_OR_PREFIX", "VT_AND_INFIX", "VT_OR_INFIX", "VT_EQUIV", "VT_XOR", "VT_IMPLIES", "VT_ACCUMULATE_INIT_CLAUSE", "VT_ACCUMULATE_ID_CLAUSE", "VT_FROM_SOURCE", "VT_EXPRESSION_CHAIN", "VT_PATTERN", "VT_FACT_BINDING", "VT_FACT_OR", "VT_BIND_FIELD", "VT_FIELD", "VT_ACCESSOR_PATH", "VT_ACCESSOR_ELEMENT", "VT_DATA_TYPE", "VT_PATTERN_TYPE", "VT_PACKAGE_ID", "VT_IMPORT_ID", "VT_GLOBAL_ID", "VT_FUNCTION_ID", "VT_PARAM_LIST", "VT_CONSTRID", "VT_HEDGE", "VT_CONSTR_ATTRIBUTES", "VT_CUT", "VT_PRIOR", "VT_ARGS", "VT_TYPE", "VK_DATE_EFFECTIVE", "VK_DATE_EXPIRES", "VK_LOCK_ON_ACTIVE", "VK_NO_LOOP", "VK_AUTO!
 _FOCUS", "VK_ACTIVATION_GROUP", "VK_AGENDA_GROUP", "VK_RULEFLOW_GROUP", "VK_DURATION", "VK_DIALECT", "VK_SALIENCE", "VK_ENABLED", "VK_ATTRIBUTES", "VK_RULE", "VK_EXTEND", "VK_IMPORT", "VK_PACKAGE", "VK_TEMPLATE", "VK_QUERY", "VK_DECLARE", "VK_FUNCTION", "VK_GLOBAL", "VK_EVAL", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EQUIV", "VK_XOR", "VK_IMPLIES", "VK_EXISTS", "VK_FORALL", "VK_FORANY", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "VK_END", "VK_INIT", "VK_SUBJECT", "VK_WEIGHT", "VK_CUT", "VK_APPROX", "VK_ENTAIL", "VK_PRIOR", "VK_FILTER", "VK_AT", "VK_CONSTRID", "VK_ARGS", "VK_TYPE", "SEMICOLON", "ID", "DOT", "DOT_STAR", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "COLLECT", "SINGLE_PIPE", "SINGLE_AMPER", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "TH!
 EN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "APPROX", "EOL", "WS", "Esca
peSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "CUT", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VT_COMPILATION_UNIT", "VT_FUNCTION_IMPORT", "VT_FACT", "VT_CONSTRAINTS", "VT_LABEL", "VT_QUERY_ID", "VT_TEMPLATE_ID", "VT_TYPE_DECLARE_ID", "VT_RULE_ID", "VT_ENTRYPOINT_ID", "VT_SLOT_ID", "VT_SLOT", "VT_RULE_ATTRIBUTES", "VT_RHS_CHUNK", "VT_CURLY_CHUNK", "VT_SQUARE_CHUNK", "VT_PAREN_CHUNK", "VT_BEHAVIOR", "VT_AND_IMPLICIT", "VT_AND_PREFIX", "VT_OR_PREFIX", "VT_AND_INFIX", "VT_OR_INFIX", "VT_EQUIV", "VT_XOR", "VT_IMPLIES", "VT_ACCUMULATE_INIT_CLAUSE", "VT_ACCUMULATE_ID_CLAUSE", "VT_FROM_SOURCE", "VT_EXPRESSION_CHAIN", "VT_PATTERN", "VT_FACT_BINDING", "VT_FACT_OR", "VT_BIND_FIELD", "VT_FIELD", "VT_ACCESSOR_PATH", "VT_ACCESSOR_ELEMENT", "VT_DATA_TYPE", "VT_PATTERN_TYPE", "VT_PACKAGE_ID", "VT_IMPORT_ID", "VT_GLOBAL_ID", "VT_FUNCTION_ID", "VT_PARAM_LIST", "VT_CONSTRID", "VT_HEDGE", "VT_CONSTR_ATTRIBUTES", "VT_CUT", "VT_PRIOR", "VT_ARGS", "VT_KIND", "VK_DATE_EFFECTIVE", "VK_DATE_EXPIRES", "VK_LOCK_ON_ACTIVE", "VK_NO_LOOP", "VK_AUTO!
 _FOCUS", "VK_ACTIVATION_GROUP", "VK_AGENDA_GROUP", "VK_RULEFLOW_GROUP", "VK_DURATION", "VK_DIALECT", "VK_SALIENCE", "VK_ENABLED", "VK_ATTRIBUTES", "VK_RULE", "VK_EXTEND", "VK_IMPORT", "VK_PACKAGE", "VK_TEMPLATE", "VK_QUERY", "VK_DECLARE", "VK_FUNCTION", "VK_GLOBAL", "VK_EVAL", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EQUIV", "VK_XOR", "VK_IMPLIES", "VK_EXISTS", "VK_FORALL", "VK_FORANY", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "VK_END", "VK_INIT", "VK_SUBJECT", "VK_WEIGHT", "VK_CUT", "VK_APPROX", "VK_ENTAIL", "VK_PRIOR", "VK_FILTER", "VK_AT", "VK_CONSTRID", "VK_ARGS", "VK_KIND", "SEMICOLON", "ID", "DOT", "DOT_STAR", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "COLLECT", "SINGLE_PIPE", "SINGLE_AMPER", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "TH!
 EN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "APPROX", "EOL", "WS", "Esca
peSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "CUT", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
     };
     public static final int ACCUMULATE=124;
     public static final int VT_ACCESSOR_ELEMENT=40;
-    public static final int VK_TYPE=105;
     public static final int VT_DATA_TYPE=41;
     public static final int DOT_STAR=109;
     public static final int VK_APPROX=98;
@@ -31,7 +30,6 @@
     public static final int VK_FUNCTION=75;
     public static final int VK_GLOBAL=76;
     public static final int VK_AND=82;
-    public static final int VT_TYPE=54;
     public static final int EQUALS=116;
     public static final int SH_STYLE_SINGLE_LINE_COMMENT=151;
     public static final int VK_AUTO_FOCUS=59;
@@ -63,6 +61,7 @@
     public static final int VK_FILTER=101;
     public static final int BOOL=118;
     public static final int VK_ENTAIL=99;
+    public static final int VT_KIND=54;
     public static final int VK_QUERY=73;
     public static final int VK_SUBJECT=95;
     public static final int INT=119;
@@ -169,6 +168,7 @@
     public static final int LEFT_SQUARE=137;
     public static final int OctalEscape=149;
     public static final int GREATER_EQUAL=131;
+    public static final int VK_KIND=105;
     public static final int STRING=110;
     public static final int VK_INIT=94;
 
@@ -1127,7 +1127,7 @@
 
 
             // AST REWRITE
-            // elements: import_name, import_key
+            // elements: import_key, import_name
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1400,7 +1400,7 @@
 
 
             // AST REWRITE
-            // elements: DOT_STAR, ID
+            // elements: ID, DOT_STAR
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1535,7 +1535,7 @@
 
 
             // AST REWRITE
-            // elements: global_key, global_id, data_type
+            // elements: global_id, global_key, data_type
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1745,7 +1745,7 @@
 
 
             // AST REWRITE
-            // elements: curly_chunk, data_type, function_id, parameters, function_key
+            // elements: function_key, function_id, curly_chunk, parameters, data_type
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1986,7 +1986,7 @@
 
 
             // AST REWRITE
-            // elements: end_key, query_id, normal_lhs_block, parameters, query_key
+            // elements: query_key, parameters, end_key, normal_lhs_block, query_id
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2274,7 +2274,7 @@
 
 
             // AST REWRITE
-            // elements: param_definition, RIGHT_PAREN
+            // elements: RIGHT_PAREN, param_definition
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2607,7 +2607,7 @@
 
 
             // AST REWRITE
-            // elements: end_key, declare_key, type_declare_id, decl_metadata, decl_field
+            // elements: declare_key, decl_field, decl_metadata, end_key, type_declare_id
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2806,7 +2806,7 @@
 
 
             // AST REWRITE
-            // elements: ID, paren_chunk, AT
+            // elements: paren_chunk, ID, AT
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2966,7 +2966,7 @@
 
 
             // AST REWRITE
-            // elements: decl_metadata, data_type, ID, decl_field_initialization
+            // elements: data_type, decl_field_initialization, ID, decl_metadata
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3064,7 +3064,7 @@
 
 
             // AST REWRITE
-            // elements: paren_chunk, EQUALS
+            // elements: EQUALS, paren_chunk
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3195,10 +3195,7 @@
                 if ( (LA25_0==ID) ) {
                     int LA25_1 = input.LA(2);
 
-                    if ( (LA25_1==DOT||LA25_1==LEFT_SQUARE) ) {
-                        alt25=1;
-                    }
-                    else if ( (LA25_1==ID) ) {
+                    if ( (LA25_1==ID) ) {
                         int LA25_3 = input.LA(3);
 
                         if ( (LA25_3==ID) ) {
@@ -3216,6 +3213,9 @@
 
 
                     }
+                    else if ( (LA25_1==DOT||LA25_1==LEFT_SQUARE) ) {
+                        alt25=1;
+                    }
 
 
                 }
@@ -3277,7 +3277,7 @@
 
 
             // AST REWRITE
-            // elements: template_id, template_key, end_key, template_slot
+            // elements: template_key, template_slot, template_id, end_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3813,7 +3813,7 @@
 
 
             // AST REWRITE
-            // elements: extend_key, rhs_chunk, when_part, rule_id, rule_attributes, decl_metadata, rule_key, rule_id
+            // elements: rule_id, rhs_chunk, when_part, decl_metadata, rule_attributes, extend_key, rule_key, rule_id
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3832,7 +3832,7 @@
 
                 adaptor.addChild(root_1, stream_rule_id.nextTree());
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:25: ( ^( extend_key rule_id ) )?
-                if ( stream_extend_key.hasNext()||stream_rule_id.hasNext() ) {
+                if ( stream_rule_id.hasNext()||stream_extend_key.hasNext() ) {
                     // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:25: ^( extend_key rule_id )
                     {
                     Object root_2 = (Object)adaptor.nil();
@@ -3844,8 +3844,8 @@
                     }
 
                 }
-                stream_extend_key.reset();
                 stream_rule_id.reset();
+                stream_extend_key.reset();
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:48: ( decl_metadata )*
                 while ( stream_decl_metadata.hasNext() ) {
                     adaptor.addChild(root_1, stream_decl_metadata.nextTree());
@@ -4298,7 +4298,7 @@
 
 
             // AST REWRITE
-            // elements: attributes_key, rule_attribute
+            // elements: rule_attribute, attributes_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -5972,7 +5972,7 @@
     };
 
     // $ANTLR start "lhs_or"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:868:1: lhs_or : ( ( LEFT_PAREN or_key ( constr_parameters )? )=> LEFT_PAREN or= or_key ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN ) | ( LEFT_PAREN equiv_key ( constr_parameters )? )=> LEFT_PAREN equiv= equiv_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_EQUIV[$equiv.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN xor_key ( constr_parameters )? )=> LEFT_PAREN xor= xor_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_XOR[$xor.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN implies_key ( constr_parameters )? )=> LEFT_PAREN implies= implies_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_IMPLIES[$implies.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( lhs_and -> lhs_and ) (!
  ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( square_chunk )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )* | hedge lhs_or -> ^( hedge lhs_or ) );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:868:1: lhs_or : ( ( LEFT_PAREN or_key ( constr_parameters )? )=> LEFT_PAREN or= or_key ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN ) | ( LEFT_PAREN equiv_key ( constr_parameters )? )=> LEFT_PAREN equiv= equiv_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_EQUIV[$equiv.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN xor_key ( constr_parameters )? )=> LEFT_PAREN xor= xor_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_XOR[$xor.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN implies_key ( constr_parameters )? )=> LEFT_PAREN implies= implies_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_IMPLIES[$implies.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( lhs_and -> lhs_and ) (!
  ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( constr_parameters )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )* | hedge lhs_or -> ^( hedge lhs_or ) );
     public final DRLParser.lhs_or_return lhs_or() throws RecognitionException {
         DRLParser.lhs_or_return retval = new DRLParser.lhs_or_return();
         retval.start = input.LT(1);
@@ -6022,7 +6022,7 @@
 
         DRLParser.lhs_and_return lhs_and150 = null;
 
-        DRLParser.square_chunk_return square_chunk151 = null;
+        DRLParser.constr_parameters_return constr_parameters151 = null;
 
         DRLParser.lhs_and_return lhs_and152 = null;
 
@@ -6048,7 +6048,6 @@
         RewriteRuleSubtreeStream stream_hedge=new RewriteRuleSubtreeStream(adaptor,"rule hedge");
         RewriteRuleSubtreeStream stream_or_key=new RewriteRuleSubtreeStream(adaptor,"rule or_key");
         RewriteRuleSubtreeStream stream_implies_key=new RewriteRuleSubtreeStream(adaptor,"rule implies_key");
-        RewriteRuleSubtreeStream stream_square_chunk=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk");
         RewriteRuleSubtreeStream stream_equiv_key=new RewriteRuleSubtreeStream(adaptor,"rule equiv_key");
         RewriteRuleSubtreeStream stream_lhs_and=new RewriteRuleSubtreeStream(adaptor,"rule lhs_and");
         RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
@@ -6056,7 +6055,7 @@
         	Token orToken = null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:3: ( ( LEFT_PAREN or_key ( constr_parameters )? )=> LEFT_PAREN or= or_key ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN ) | ( LEFT_PAREN equiv_key ( constr_parameters )? )=> LEFT_PAREN equiv= equiv_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_EQUIV[$equiv.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN xor_key ( constr_parameters )? )=> LEFT_PAREN xor= xor_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_XOR[$xor.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN implies_key ( constr_parameters )? )=> LEFT_PAREN implies= implies_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_IMPLIES[$implies.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( lhs_and -> lhs_and ) ( !
 ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( square_chunk )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )* | hedge lhs_or -> ^( hedge lhs_or ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:3: ( ( LEFT_PAREN or_key ( constr_parameters )? )=> LEFT_PAREN or= or_key ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( constr_parameters )? ( lhs_and )+ RIGHT_PAREN ) | ( LEFT_PAREN equiv_key ( constr_parameters )? )=> LEFT_PAREN equiv= equiv_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_EQUIV[$equiv.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN xor_key ( constr_parameters )? )=> LEFT_PAREN xor= xor_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_XOR[$xor.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( LEFT_PAREN implies_key ( constr_parameters )? )=> LEFT_PAREN implies= implies_key ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN -> ^( VT_IMPLIES[$implies.start] ( constr_parameters )? lhs_and lhs_and RIGHT_PAREN ) | ( lhs_and -> lhs_and ) ( !
 ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( constr_parameters )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )* | hedge lhs_or -> ^( hedge lhs_or ) )
             int alt54=6;
             int LA54_0 = input.LA(1);
 
@@ -6300,7 +6299,7 @@
 
 
                     // AST REWRITE
-                    // elements: constr_parameters, RIGHT_PAREN, lhs_and, lhs_and
+                    // elements: lhs_and, RIGHT_PAREN, lhs_and, constr_parameters
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -6397,7 +6396,7 @@
 
 
                     // AST REWRITE
-                    // elements: lhs_and, lhs_and, constr_parameters, RIGHT_PAREN
+                    // elements: lhs_and, lhs_and, RIGHT_PAREN, constr_parameters
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -6494,7 +6493,7 @@
 
 
                     // AST REWRITE
-                    // elements: lhs_and, RIGHT_PAREN, lhs_and, constr_parameters
+                    // elements: lhs_and, RIGHT_PAREN, constr_parameters, lhs_and
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -6530,7 +6529,7 @@
                     }
                     break;
                 case 5 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:912:4: ( lhs_and -> lhs_and ) ( ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( square_chunk )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )*
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:912:4: ( lhs_and -> lhs_and ) ( ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( constr_parameters )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )*
                     {
                     // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:912:4: ( lhs_and -> lhs_and )
                     // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:912:5: lhs_and
@@ -6563,7 +6562,7 @@
                     retval.tree = root_0;}
                     }
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:3: ( ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( square_chunk )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )*
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:3: ( ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( constr_parameters )? | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] ( constr_parameters )? $lhs_or lhs_and ) )*
                     loop53:
                     do {
                         int alt53=2;
@@ -6591,9 +6590,9 @@
 
                         switch (alt53) {
                     	case 1 :
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:5: ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( square_chunk )? | pipe= DOUBLE_PIPE ) lhs_and
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:5: ( or_key ( constr_parameters )? | DOUBLE_PIPE )=> (value= or_key ( constr_parameters )? | pipe= DOUBLE_PIPE ) lhs_and
                     	    {
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:49: (value= or_key ( square_chunk )? | pipe= DOUBLE_PIPE )
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:49: (value= or_key ( constr_parameters )? | pipe= DOUBLE_PIPE )
                     	    int alt52=2;
                     	    int LA52_0 = input.LA(1);
 
@@ -6612,7 +6611,7 @@
                     	    }
                     	    switch (alt52) {
                     	        case 1 :
-                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:50: value= or_key ( square_chunk )?
+                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:50: value= or_key ( constr_parameters )?
                     	            {
                     	            pushFollow(FOLLOW_or_key_in_lhs_or2738);
                     	            value=or_key();
@@ -6620,23 +6619,23 @@
                     	            state._fsp--;
                     	            if (state.failed) return retval;
                     	            if ( state.backtracking==0 ) stream_or_key.add(value.getTree());
-                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:63: ( square_chunk )?
+                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:63: ( constr_parameters )?
                     	            int alt51=2;
                     	            int LA51_0 = input.LA(1);
 
-                    	            if ( (LA51_0==LEFT_SQUARE) ) {
+                    	            if ( (LA51_0==AT) ) {
                     	                alt51=1;
                     	            }
                     	            switch (alt51) {
                     	                case 1 :
-                    	                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:63: square_chunk
+                    	                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:63: constr_parameters
                     	                    {
-                    	                    pushFollow(FOLLOW_square_chunk_in_lhs_or2740);
-                    	                    square_chunk151=square_chunk();
+                    	                    pushFollow(FOLLOW_constr_parameters_in_lhs_or2740);
+                    	                    constr_parameters151=constr_parameters();
 
                     	                    state._fsp--;
                     	                    if (state.failed) return retval;
-                    	                    if ( state.backtracking==0 ) stream_square_chunk.add(square_chunk151.getTree());
+                    	                    if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters151.getTree());
 
                     	                    }
                     	                    break;
@@ -6676,7 +6675,7 @@
 
 
                     	    // AST REWRITE
-                    	    // elements: lhs_and, lhs_or, constr_parameters
+                    	    // elements: constr_parameters, lhs_and, lhs_or
                     	    // token labels: 
                     	    // rule labels: retval
                     	    // token list labels: 
@@ -6695,6 +6694,8 @@
 
                     	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:917:30: ( constr_parameters )?
                     	        if ( stream_constr_parameters.hasNext() ) {
+                    	            adaptor.addChild(root_1, stream_constr_parameters.nextTree());
+
                     	        }
                     	        stream_constr_parameters.reset();
                     	        adaptor.addChild(root_1, stream_retval.nextTree());
@@ -6735,7 +6736,7 @@
 
 
                     // AST REWRITE
-                    // elements: hedge, lhs_or
+                    // elements: lhs_or, hedge
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -6865,7 +6866,7 @@
     };
 
     // $ANTLR start "lhs_and"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:933:1: lhs_and : ( ( LEFT_PAREN and_key ( square_chunk )? )=> LEFT_PAREN and= and_key ( square_chunk )? ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( square_chunk )? ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key ( square_chunk )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? ( square_chunk )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( square_chunk )? ( constr_parameters )? $lhs_and lhs_unary ) )* );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:933:1: lhs_and : ( ( LEFT_PAREN and_key ( square_chunk )? )=> LEFT_PAREN and= and_key ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key ( constr_parameters )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( constr_parameters )? $lhs_and lhs_unary ) )* );
     public final DRLParser.lhs_and_return lhs_and() throws RecognitionException {
         DRLParser.lhs_and_return retval = new DRLParser.lhs_and_return();
         retval.start = input.LT(1);
@@ -6874,74 +6875,69 @@
 
         Token amper=null;
         Token LEFT_PAREN155=null;
-        Token RIGHT_PAREN159=null;
+        Token RIGHT_PAREN158=null;
         DRLParser.and_key_return and = null;
 
         DRLParser.and_key_return value = null;
 
-        DRLParser.square_chunk_return square_chunk156 = null;
+        DRLParser.constr_parameters_return constr_parameters156 = null;
 
-        DRLParser.constr_parameters_return constr_parameters157 = null;
+        DRLParser.lhs_unary_return lhs_unary157 = null;
 
-        DRLParser.lhs_unary_return lhs_unary158 = null;
+        DRLParser.lhs_unary_return lhs_unary159 = null;
 
-        DRLParser.lhs_unary_return lhs_unary160 = null;
+        DRLParser.constr_parameters_return constr_parameters160 = null;
 
-        DRLParser.constr_parameters_return constr_parameters161 = null;
+        DRLParser.lhs_unary_return lhs_unary161 = null;
 
-        DRLParser.square_chunk_return square_chunk162 = null;
 
-        DRLParser.lhs_unary_return lhs_unary163 = null;
-
-
         Object amper_tree=null;
         Object LEFT_PAREN155_tree=null;
-        Object RIGHT_PAREN159_tree=null;
+        Object RIGHT_PAREN158_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleTokenStream stream_DOUBLE_AMPER=new RewriteRuleTokenStream(adaptor,"token DOUBLE_AMPER");
         RewriteRuleSubtreeStream stream_lhs_unary=new RewriteRuleSubtreeStream(adaptor,"rule lhs_unary");
         RewriteRuleSubtreeStream stream_constr_parameters=new RewriteRuleSubtreeStream(adaptor,"rule constr_parameters");
         RewriteRuleSubtreeStream stream_and_key=new RewriteRuleSubtreeStream(adaptor,"rule and_key");
-        RewriteRuleSubtreeStream stream_square_chunk=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk");
 
         	Token andToken = null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:3: ( ( LEFT_PAREN and_key ( square_chunk )? )=> LEFT_PAREN and= and_key ( square_chunk )? ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( square_chunk )? ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key ( square_chunk )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? ( square_chunk )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( square_chunk )? ( constr_parameters )? $lhs_and lhs_unary ) )* )
-            int alt62=2;
-            int LA62_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:3: ( ( LEFT_PAREN and_key ( square_chunk )? )=> LEFT_PAREN and= and_key ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key ( constr_parameters )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( constr_parameters )? $lhs_and lhs_unary ) )* )
+            int alt60=2;
+            int LA60_0 = input.LA(1);
 
-            if ( (LA62_0==LEFT_PAREN) ) {
-                int LA62_1 = input.LA(2);
+            if ( (LA60_0==LEFT_PAREN) ) {
+                int LA60_1 = input.LA(2);
 
                 if ( (synpred6_DRL()) ) {
-                    alt62=1;
+                    alt60=1;
                 }
                 else if ( (true) ) {
-                    alt62=2;
+                    alt60=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 62, 1, input);
+                        new NoViableAltException("", 60, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA62_0==ID) ) {
-                alt62=2;
+            else if ( (LA60_0==ID) ) {
+                alt60=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 62, 0, input);
+                    new NoViableAltException("", 60, 0, input);
 
                 throw nvae;
             }
-            switch (alt62) {
+            switch (alt60) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:5: ( LEFT_PAREN and_key ( square_chunk )? )=> LEFT_PAREN and= and_key ( square_chunk )? ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:5: ( LEFT_PAREN and_key ( square_chunk )? )=> LEFT_PAREN and= and_key ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN
                     {
                     LEFT_PAREN155=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and2874); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN155);
@@ -6955,101 +6951,78 @@
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_and_key.add(and.getTree());
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:4: ( square_chunk )?
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:4: ( constr_parameters )?
                     int alt55=2;
                     int LA55_0 = input.LA(1);
 
-                    if ( (LA55_0==LEFT_SQUARE) ) {
+                    if ( (LA55_0==AT) ) {
                         alt55=1;
                     }
                     switch (alt55) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:4: square_chunk
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:4: constr_parameters
                             {
-                            pushFollow(FOLLOW_square_chunk_in_lhs_and2889);
-                            square_chunk156=square_chunk();
+                            pushFollow(FOLLOW_constr_parameters_in_lhs_and2892);
+                            constr_parameters156=constr_parameters();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) stream_square_chunk.add(square_chunk156.getTree());
+                            if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters156.getTree());
 
                             }
                             break;
 
                     }
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:940:4: ( constr_parameters )?
-                    int alt56=2;
-                    int LA56_0 = input.LA(1);
-
-                    if ( (LA56_0==AT) ) {
-                        alt56=1;
-                    }
-                    switch (alt56) {
-                        case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:940:4: constr_parameters
-                            {
-                            pushFollow(FOLLOW_constr_parameters_in_lhs_and2895);
-                            constr_parameters157=constr_parameters();
-
-                            state._fsp--;
-                            if (state.failed) return retval;
-                            if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters157.getTree());
-
-                            }
-                            break;
-
-                    }
-
                     if ( state.backtracking==0 ) {
                       	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	
                     }
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:942:4: ( lhs_unary )+
-                    int cnt57=0;
-                    loop57:
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:941:4: ( lhs_unary )+
+                    int cnt56=0;
+                    loop56:
                     do {
-                        int alt57=2;
-                        int LA57_0 = input.LA(1);
+                        int alt56=2;
+                        int LA56_0 = input.LA(1);
 
-                        if ( (LA57_0==ID||LA57_0==LEFT_PAREN) ) {
-                            alt57=1;
+                        if ( (LA56_0==ID||LA56_0==LEFT_PAREN) ) {
+                            alt56=1;
                         }
 
 
-                        switch (alt57) {
+                        switch (alt56) {
                     	case 1 :
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:942:4: lhs_unary
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:941:4: lhs_unary
                     	    {
-                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2904);
-                    	    lhs_unary158=lhs_unary();
+                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2901);
+                    	    lhs_unary157=lhs_unary();
 
                     	    state._fsp--;
                     	    if (state.failed) return retval;
-                    	    if ( state.backtracking==0 ) stream_lhs_unary.add(lhs_unary158.getTree());
+                    	    if ( state.backtracking==0 ) stream_lhs_unary.add(lhs_unary157.getTree());
 
                     	    }
                     	    break;
 
                     	default :
-                    	    if ( cnt57 >= 1 ) break loop57;
+                    	    if ( cnt56 >= 1 ) break loop56;
                     	    if (state.backtracking>0) {state.failed=true; return retval;}
                                 EarlyExitException eee =
-                                    new EarlyExitException(57, input);
+                                    new EarlyExitException(56, input);
                                 throw eee;
                         }
-                        cnt57++;
+                        cnt56++;
                     } while (true);
 
-                    RIGHT_PAREN159=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and2910); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN159);
+                    RIGHT_PAREN158=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and2907); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN158);
 
                     if ( state.backtracking==0 ) {
-                      	emit(RIGHT_PAREN159, DroolsEditorType.SYMBOL);	
+                      	emit(RIGHT_PAREN158, DroolsEditorType.SYMBOL);	
                     }
 
 
                     // AST REWRITE
-                    // elements: square_chunk, lhs_unary, constr_parameters, RIGHT_PAREN
+                    // elements: RIGHT_PAREN, constr_parameters, lhs_unary
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -7059,20 +7032,14 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 944:3: -> ^( VT_AND_PREFIX[$and.start] ( square_chunk )? ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN )
+                    // 943:3: -> ^( VT_AND_PREFIX[$and.start] ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN )
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:6: ^( VT_AND_PREFIX[$and.start] ( square_chunk )? ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943:6: ^( VT_AND_PREFIX[$and.start] ( constr_parameters )? ( lhs_unary )+ RIGHT_PAREN )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_AND_PREFIX, (and!=null?((Token)and.start):null)), root_1);
 
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:34: ( square_chunk )?
-                        if ( stream_square_chunk.hasNext() ) {
-                            adaptor.addChild(root_1, stream_square_chunk.nextTree());
-
-                        }
-                        stream_square_chunk.reset();
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:48: ( constr_parameters )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943:34: ( constr_parameters )?
                         if ( stream_constr_parameters.hasNext() ) {
                             adaptor.addChild(root_1, stream_constr_parameters.nextTree());
 
@@ -7097,17 +7064,17 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:2: ( lhs_unary -> lhs_unary ) ( ( and_key ( square_chunk )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? ( square_chunk )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( square_chunk )? ( constr_parameters )? $lhs_and lhs_unary ) )*
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:947:2: ( lhs_unary -> lhs_unary ) ( ( and_key ( constr_parameters )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( constr_parameters )? $lhs_and lhs_unary ) )*
                     {
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:2: ( lhs_unary -> lhs_unary )
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:3: lhs_unary
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:947:2: ( lhs_unary -> lhs_unary )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:947:3: lhs_unary
                     {
-                    pushFollow(FOLLOW_lhs_unary_in_lhs_and2947);
-                    lhs_unary160=lhs_unary();
+                    pushFollow(FOLLOW_lhs_unary_in_lhs_and2941);
+                    lhs_unary159=lhs_unary();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_lhs_unary.add(lhs_unary160.getTree());
+                    if ( state.backtracking==0 ) stream_lhs_unary.add(lhs_unary159.getTree());
 
 
                     // AST REWRITE
@@ -7121,7 +7088,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 948:13: -> lhs_unary
+                    // 947:13: -> lhs_unary
                     {
                         adaptor.addChild(root_0, stream_lhs_unary.nextTree());
 
@@ -7130,109 +7097,86 @@
                     retval.tree = root_0;}
                     }
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:3: ( ( and_key ( square_chunk )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? ( square_chunk )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( square_chunk )? ( constr_parameters )? $lhs_and lhs_unary ) )*
-                    loop61:
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:3: ( ( and_key ( constr_parameters )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] ( constr_parameters )? $lhs_and lhs_unary ) )*
+                    loop59:
                     do {
-                        int alt61=2;
-                        int LA61_0 = input.LA(1);
+                        int alt59=2;
+                        int LA59_0 = input.LA(1);
 
-                        if ( (LA61_0==ID) ) {
-                            int LA61_2 = input.LA(2);
+                        if ( (LA59_0==ID) ) {
+                            int LA59_2 = input.LA(2);
 
                             if ( ((synpred7_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.AND))))) ) {
-                                alt61=1;
+                                alt59=1;
                             }
 
 
                         }
-                        else if ( (LA61_0==DOUBLE_AMPER) ) {
-                            int LA61_3 = input.LA(2);
+                        else if ( (LA59_0==DOUBLE_AMPER) ) {
+                            int LA59_3 = input.LA(2);
 
                             if ( (synpred7_DRL()) ) {
-                                alt61=1;
+                                alt59=1;
                             }
 
 
                         }
 
 
-                        switch (alt61) {
+                        switch (alt59) {
                     	case 1 :
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:5: ( and_key ( square_chunk )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? ( square_chunk )? | amper= DOUBLE_AMPER ) lhs_unary
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:5: ( and_key ( constr_parameters )? | DOUBLE_AMPER )=> (value= and_key ( constr_parameters )? | amper= DOUBLE_AMPER ) lhs_unary
                     	    {
-                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:3: (value= and_key ( constr_parameters )? ( square_chunk )? | amper= DOUBLE_AMPER )
-                    	    int alt60=2;
-                    	    int LA60_0 = input.LA(1);
+                    	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:3: (value= and_key ( constr_parameters )? | amper= DOUBLE_AMPER )
+                    	    int alt58=2;
+                    	    int LA58_0 = input.LA(1);
 
-                    	    if ( (LA60_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.AND))))) {
-                    	        alt60=1;
+                    	    if ( (LA58_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.AND))))) {
+                    	        alt58=1;
                     	    }
-                    	    else if ( (LA60_0==DOUBLE_AMPER) ) {
-                    	        alt60=2;
+                    	    else if ( (LA58_0==DOUBLE_AMPER) ) {
+                    	        alt58=2;
                     	    }
                     	    else {
                     	        if (state.backtracking>0) {state.failed=true; return retval;}
                     	        NoViableAltException nvae =
-                    	            new NoViableAltException("", 60, 0, input);
+                    	            new NoViableAltException("", 58, 0, input);
 
                     	        throw nvae;
                     	    }
-                    	    switch (alt60) {
+                    	    switch (alt58) {
                     	        case 1 :
-                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:5: value= and_key ( constr_parameters )? ( square_chunk )?
+                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:5: value= and_key ( constr_parameters )?
                     	            {
-                    	            pushFollow(FOLLOW_and_key_in_lhs_and2977);
+                    	            pushFollow(FOLLOW_and_key_in_lhs_and2971);
                     	            value=and_key();
 
                     	            state._fsp--;
                     	            if (state.failed) return retval;
                     	            if ( state.backtracking==0 ) stream_and_key.add(value.getTree());
-                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:19: ( constr_parameters )?
-                    	            int alt58=2;
-                    	            int LA58_0 = input.LA(1);
+                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:19: ( constr_parameters )?
+                    	            int alt57=2;
+                    	            int LA57_0 = input.LA(1);
 
-                    	            if ( (LA58_0==AT) ) {
-                    	                alt58=1;
+                    	            if ( (LA57_0==AT) ) {
+                    	                alt57=1;
                     	            }
-                    	            switch (alt58) {
+                    	            switch (alt57) {
                     	                case 1 :
-                    	                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:19: constr_parameters
+                    	                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:19: constr_parameters
                     	                    {
-                    	                    pushFollow(FOLLOW_constr_parameters_in_lhs_and2979);
-                    	                    constr_parameters161=constr_parameters();
+                    	                    pushFollow(FOLLOW_constr_parameters_in_lhs_and2973);
+                    	                    constr_parameters160=constr_parameters();
 
                     	                    state._fsp--;
                     	                    if (state.failed) return retval;
-                    	                    if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters161.getTree());
+                    	                    if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters160.getTree());
 
                     	                    }
                     	                    break;
 
                     	            }
 
-                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:38: ( square_chunk )?
-                    	            int alt59=2;
-                    	            int LA59_0 = input.LA(1);
-
-                    	            if ( (LA59_0==LEFT_SQUARE) ) {
-                    	                alt59=1;
-                    	            }
-                    	            switch (alt59) {
-                    	                case 1 :
-                    	                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:38: square_chunk
-                    	                    {
-                    	                    pushFollow(FOLLOW_square_chunk_in_lhs_and2982);
-                    	                    square_chunk162=square_chunk();
-
-                    	                    state._fsp--;
-                    	                    if (state.failed) return retval;
-                    	                    if ( state.backtracking==0 ) stream_square_chunk.add(square_chunk162.getTree());
-
-                    	                    }
-                    	                    break;
-
-                    	            }
-
                     	            if ( state.backtracking==0 ) {
                     	              andToken = (value!=null?((Token)value.start):null); 
                     	            }
@@ -7240,9 +7184,9 @@
                     	            }
                     	            break;
                     	        case 2 :
-                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:951:6: amper= DOUBLE_AMPER
+                    	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:6: amper= DOUBLE_AMPER
                     	            {
-                    	            amper=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_lhs_and2995); if (state.failed) return retval; 
+                    	            amper=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_lhs_and2987); if (state.failed) return retval; 
                     	            if ( state.backtracking==0 ) stream_DOUBLE_AMPER.add(amper);
 
                     	            if ( state.backtracking==0 ) {
@@ -7257,16 +7201,16 @@
                     	    if ( state.backtracking==0 ) {
                     	      	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	
                     	    }
-                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and3009);
-                    	    lhs_unary163=lhs_unary();
+                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and3001);
+                    	    lhs_unary161=lhs_unary();
 
                     	    state._fsp--;
                     	    if (state.failed) return retval;
-                    	    if ( state.backtracking==0 ) stream_lhs_unary.add(lhs_unary163.getTree());
+                    	    if ( state.backtracking==0 ) stream_lhs_unary.add(lhs_unary161.getTree());
 
 
                     	    // AST REWRITE
-                    	    // elements: lhs_and, constr_parameters, square_chunk, lhs_unary
+                    	    // elements: lhs_and, lhs_unary, constr_parameters
                     	    // token labels: 
                     	    // rule labels: retval
                     	    // token list labels: 
@@ -7276,20 +7220,14 @@
                     	    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     	    root_0 = (Object)adaptor.nil();
-                    	    // 955:3: -> ^( VT_AND_INFIX[andToken] ( square_chunk )? ( constr_parameters )? $lhs_and lhs_unary )
+                    	    // 954:3: -> ^( VT_AND_INFIX[andToken] ( constr_parameters )? $lhs_and lhs_unary )
                     	    {
-                    	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:955:6: ^( VT_AND_INFIX[andToken] ( square_chunk )? ( constr_parameters )? $lhs_and lhs_unary )
+                    	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:954:6: ^( VT_AND_INFIX[andToken] ( constr_parameters )? $lhs_and lhs_unary )
                     	        {
                     	        Object root_1 = (Object)adaptor.nil();
                     	        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_AND_INFIX, andToken), root_1);
 
-                    	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:955:31: ( square_chunk )?
-                    	        if ( stream_square_chunk.hasNext() ) {
-                    	            adaptor.addChild(root_1, stream_square_chunk.nextTree());
-
-                    	        }
-                    	        stream_square_chunk.reset();
-                    	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:955:45: ( constr_parameters )?
+                    	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:954:31: ( constr_parameters )?
                     	        if ( stream_constr_parameters.hasNext() ) {
                     	            adaptor.addChild(root_1, stream_constr_parameters.nextTree());
 
@@ -7308,7 +7246,7 @@
                     	    break;
 
                     	default :
-                    	    break loop61;
+                    	    break loop59;
                         }
                     } while (true);
 
@@ -7343,180 +7281,180 @@
     };
 
     // $ANTLR start "lhs_unary"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:1: lhs_unary : ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:957:1: lhs_unary : ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? ;
     public final DRLParser.lhs_unary_return lhs_unary() throws RecognitionException {
         DRLParser.lhs_unary_return retval = new DRLParser.lhs_unary_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN170=null;
-        Token RIGHT_PAREN172=null;
-        Token SEMICOLON174=null;
-        DRLParser.lhs_exist_return lhs_exist164 = null;
+        Token LEFT_PAREN168=null;
+        Token RIGHT_PAREN170=null;
+        Token SEMICOLON172=null;
+        DRLParser.lhs_exist_return lhs_exist162 = null;
 
-        DRLParser.lhs_not_binding_return lhs_not_binding165 = null;
+        DRLParser.lhs_not_binding_return lhs_not_binding163 = null;
 
-        DRLParser.lhs_not_return lhs_not166 = null;
+        DRLParser.lhs_not_return lhs_not164 = null;
 
-        DRLParser.lhs_eval_return lhs_eval167 = null;
+        DRLParser.lhs_eval_return lhs_eval165 = null;
 
-        DRLParser.lhs_forall_return lhs_forall168 = null;
+        DRLParser.lhs_forall_return lhs_forall166 = null;
 
-        DRLParser.lhs_forany_return lhs_forany169 = null;
+        DRLParser.lhs_forany_return lhs_forany167 = null;
 
-        DRLParser.lhs_or_return lhs_or171 = null;
+        DRLParser.lhs_or_return lhs_or169 = null;
 
-        DRLParser.pattern_source_return pattern_source173 = null;
+        DRLParser.pattern_source_return pattern_source171 = null;
 
 
-        Object LEFT_PAREN170_tree=null;
-        Object RIGHT_PAREN172_tree=null;
-        Object SEMICOLON174_tree=null;
+        Object LEFT_PAREN168_tree=null;
+        Object RIGHT_PAREN170_tree=null;
+        Object SEMICOLON172_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:959:2: ( ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:959:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:2: ( ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )?
             {
             root_0 = (Object)adaptor.nil();
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:959:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )
-            int alt63=8;
-            alt63 = dfa63.predict(input);
-            switch (alt63) {
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )
+            int alt61=8;
+            alt61 = dfa61.predict(input);
+            switch (alt61) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:959:6: lhs_exist
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:6: lhs_exist
                     {
-                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary3053);
-                    lhs_exist164=lhs_exist();
+                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary3042);
+                    lhs_exist162=lhs_exist();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_exist164.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_exist162.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:960:4: {...}? => lhs_not_binding
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:959:4: {...}? => lhs_not_binding
                     {
                     if ( !((validateNotWithBinding())) ) {
                         if (state.backtracking>0) {state.failed=true; return retval;}
                         throw new FailedPredicateException(input, "lhs_unary", "validateNotWithBinding()");
                     }
-                    pushFollow(FOLLOW_lhs_not_binding_in_lhs_unary3061);
-                    lhs_not_binding165=lhs_not_binding();
+                    pushFollow(FOLLOW_lhs_not_binding_in_lhs_unary3050);
+                    lhs_not_binding163=lhs_not_binding();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_not_binding165.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_not_binding163.getTree());
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:5: lhs_not
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:960:5: lhs_not
                     {
-                    pushFollow(FOLLOW_lhs_not_in_lhs_unary3067);
-                    lhs_not166=lhs_not();
+                    pushFollow(FOLLOW_lhs_not_in_lhs_unary3056);
+                    lhs_not164=lhs_not();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_not166.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_not164.getTree());
 
                     }
                     break;
                 case 4 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:962:5: lhs_eval
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:5: lhs_eval
                     {
-                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary3073);
-                    lhs_eval167=lhs_eval();
+                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary3062);
+                    lhs_eval165=lhs_eval();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_eval167.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_eval165.getTree());
 
                     }
                     break;
                 case 5 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:963:5: lhs_forall
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:962:5: lhs_forall
                     {
-                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary3079);
-                    lhs_forall168=lhs_forall();
+                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary3068);
+                    lhs_forall166=lhs_forall();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_forall168.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_forall166.getTree());
 
                     }
                     break;
                 case 6 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:964:5: lhs_forany
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:963:5: lhs_forany
                     {
-                    pushFollow(FOLLOW_lhs_forany_in_lhs_unary3085);
-                    lhs_forany169=lhs_forany();
+                    pushFollow(FOLLOW_lhs_forany_in_lhs_unary3074);
+                    lhs_forany167=lhs_forany();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_forany169.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_forany167.getTree());
 
                     }
                     break;
                 case 7 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:965:5: LEFT_PAREN lhs_or RIGHT_PAREN
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:964:5: LEFT_PAREN lhs_or RIGHT_PAREN
                     {
-                    LEFT_PAREN170=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary3091); if (state.failed) return retval;
+                    LEFT_PAREN168=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary3080); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                      	emit(LEFT_PAREN170, DroolsEditorType.SYMBOL); emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION );	
+                      	emit(LEFT_PAREN168, DroolsEditorType.SYMBOL); emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION );	
                     }
-                    pushFollow(FOLLOW_lhs_or_in_lhs_unary3102);
-                    lhs_or171=lhs_or();
+                    pushFollow(FOLLOW_lhs_or_in_lhs_unary3091);
+                    lhs_or169=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_or171.getTree());
-                    RIGHT_PAREN172=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary3108); if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_or169.getTree());
+                    RIGHT_PAREN170=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary3097); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    RIGHT_PAREN172_tree = (Object)adaptor.create(RIGHT_PAREN172);
-                    adaptor.addChild(root_0, RIGHT_PAREN172_tree);
+                    RIGHT_PAREN170_tree = (Object)adaptor.create(RIGHT_PAREN170);
+                    adaptor.addChild(root_0, RIGHT_PAREN170_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(RIGHT_PAREN172, DroolsEditorType.SYMBOL);	
+                      	emit(RIGHT_PAREN170, DroolsEditorType.SYMBOL);	
                     }
 
                     }
                     break;
                 case 8 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:968:5: pattern_source
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:967:5: pattern_source
                     {
-                    pushFollow(FOLLOW_pattern_source_in_lhs_unary3116);
-                    pattern_source173=pattern_source();
+                    pushFollow(FOLLOW_pattern_source_in_lhs_unary3105);
+                    pattern_source171=pattern_source();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, pattern_source173.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, pattern_source171.getTree());
 
                     }
                     break;
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:3: ( ( SEMICOLON )=> SEMICOLON )?
-            int alt64=2;
-            int LA64_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:969:3: ( ( SEMICOLON )=> SEMICOLON )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
 
-            if ( (LA64_0==SEMICOLON) ) {
-                int LA64_1 = input.LA(2);
+            if ( (LA62_0==SEMICOLON) ) {
+                int LA62_1 = input.LA(2);
 
                 if ( (synpred8_DRL()) ) {
-                    alt64=1;
+                    alt62=1;
                 }
             }
-            switch (alt64) {
+            switch (alt62) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:4: ( SEMICOLON )=> SEMICOLON
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:969:4: ( SEMICOLON )=> SEMICOLON
                     {
-                    SEMICOLON174=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_lhs_unary3130); if (state.failed) return retval;
+                    SEMICOLON172=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_lhs_unary3119); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                      	emit(SEMICOLON174, DroolsEditorType.SYMBOL);	
+                      	emit(SEMICOLON172, DroolsEditorType.SYMBOL);	
                     }
 
                     }
@@ -7553,78 +7491,78 @@
     };
 
     // $ANTLR start "lhs_exist"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:973:1: lhs_exist : exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:972:1: lhs_exist : exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) ;
     public final DRLParser.lhs_exist_return lhs_exist() throws RecognitionException {
         DRLParser.lhs_exist_return retval = new DRLParser.lhs_exist_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN177=null;
-        Token RIGHT_PAREN179=null;
-        DRLParser.exists_key_return exists_key175 = null;
+        Token LEFT_PAREN175=null;
+        Token RIGHT_PAREN177=null;
+        DRLParser.exists_key_return exists_key173 = null;
 
+        DRLParser.lhs_or_return lhs_or174 = null;
+
         DRLParser.lhs_or_return lhs_or176 = null;
 
-        DRLParser.lhs_or_return lhs_or178 = null;
+        DRLParser.lhs_pattern_return lhs_pattern178 = null;
 
-        DRLParser.lhs_pattern_return lhs_pattern180 = null;
 
-
-        Object LEFT_PAREN177_tree=null;
-        Object RIGHT_PAREN179_tree=null;
+        Object LEFT_PAREN175_tree=null;
+        Object RIGHT_PAREN177_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
         RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
         RewriteRuleSubtreeStream stream_exists_key=new RewriteRuleSubtreeStream(adaptor,"rule exists_key");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:974:2: ( exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:974:4: exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:973:2: ( exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:973:4: exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
             {
-            pushFollow(FOLLOW_exists_key_in_lhs_exist3146);
-            exists_key175=exists_key();
+            pushFollow(FOLLOW_exists_key_in_lhs_exist3135);
+            exists_key173=exists_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_exists_key.add(exists_key175.getTree());
+            if ( state.backtracking==0 ) stream_exists_key.add(exists_key173.getTree());
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:10: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
-            int alt65=3;
-            int LA65_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:975:10: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            int alt63=3;
+            int LA63_0 = input.LA(1);
 
-            if ( (LA65_0==LEFT_PAREN) ) {
-                int LA65_1 = input.LA(2);
+            if ( (LA63_0==LEFT_PAREN) ) {
+                int LA63_1 = input.LA(2);
 
                 if ( (synpred9_DRL()) ) {
-                    alt65=1;
+                    alt63=1;
                 }
                 else if ( (true) ) {
-                    alt65=2;
+                    alt63=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 65, 1, input);
+                        new NoViableAltException("", 63, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA65_0==ID) ) {
-                int LA65_2 = input.LA(2);
+            else if ( (LA63_0==ID) ) {
+                int LA63_2 = input.LA(2);
 
-                if ( (((synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.VERY))))||synpred9_DRL()||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.FORANY))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EXISTS))))||((synpred9_DRL()&&(validateNotWithBinding()))&&((validateIdentifierKey(DroolsSoftKeywords.NOT))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.NOT))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.FORALL)))))) ) {
-                    alt65=1;
+                if ( (((synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.VERY))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||synpred9_DRL()||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.FORANY))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EXISTS))))||((synpred9_DRL()&&(validateNotWithBinding()))&&((validateIdentifierKey(DroolsSoftKeywords.NOT))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.FORALL))))||(synpred9_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) ) {
+                    alt63=1;
                 }
                 else if ( (true) ) {
-                    alt65=3;
+                    alt63=3;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 65, 2, input);
+                        new NoViableAltException("", 63, 2, input);
 
                     throw nvae;
                 }
@@ -7632,56 +7570,56 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 65, 0, input);
+                    new NoViableAltException("", 63, 0, input);
 
                 throw nvae;
             }
-            switch (alt65) {
+            switch (alt63) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:12: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:975:12: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
                     {
-                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3173);
-                    lhs_or176=lhs_or();
+                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3162);
+                    lhs_or174=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or176.getTree());
+                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or174.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:977:5: LEFT_PAREN lhs_or RIGHT_PAREN
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:5: LEFT_PAREN lhs_or RIGHT_PAREN
                     {
-                    LEFT_PAREN177=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist3180); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN177);
+                    LEFT_PAREN175=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist3169); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN175);
 
                     if ( state.backtracking==0 ) {
-                      	emit(LEFT_PAREN177, DroolsEditorType.SYMBOL);	
+                      	emit(LEFT_PAREN175, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3188);
-                    lhs_or178=lhs_or();
+                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3177);
+                    lhs_or176=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or178.getTree());
-                    RIGHT_PAREN179=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist3195); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN179);
+                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or176.getTree());
+                    RIGHT_PAREN177=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist3184); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN177);
 
                     if ( state.backtracking==0 ) {
-                      	emit(RIGHT_PAREN179, DroolsEditorType.SYMBOL);	
+                      	emit(RIGHT_PAREN177, DroolsEditorType.SYMBOL);	
                     }
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:980:12: lhs_pattern
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:979:12: lhs_pattern
                     {
-                    pushFollow(FOLLOW_lhs_pattern_in_lhs_exist3210);
-                    lhs_pattern180=lhs_pattern();
+                    pushFollow(FOLLOW_lhs_pattern_in_lhs_exist3199);
+                    lhs_pattern178=lhs_pattern();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_lhs_pattern.add(lhs_pattern180.getTree());
+                    if ( state.backtracking==0 ) stream_lhs_pattern.add(lhs_pattern178.getTree());
 
                     }
                     break;
@@ -7691,7 +7629,7 @@
 
 
             // AST REWRITE
-            // elements: lhs_or, RIGHT_PAREN, lhs_pattern, exists_key
+            // elements: RIGHT_PAREN, lhs_or, exists_key, lhs_pattern
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7701,26 +7639,26 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 982:10: -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+            // 981:10: -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:982:13: ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:981:13: ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_exists_key.nextNode(), root_1);
 
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:982:26: ( lhs_or )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:981:26: ( lhs_or )?
                 if ( stream_lhs_or.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_or.nextTree());
 
                 }
                 stream_lhs_or.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:982:34: ( lhs_pattern )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:981:34: ( lhs_pattern )?
                 if ( stream_lhs_pattern.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_pattern.nextTree());
 
                 }
                 stream_lhs_pattern.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:982:47: ( RIGHT_PAREN )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:981:47: ( RIGHT_PAREN )?
                 if ( stream_RIGHT_PAREN.hasNext() ) {
                     adaptor.addChild(root_1, stream_RIGHT_PAREN.nextNode());
 
@@ -7761,40 +7699,40 @@
     };
 
     // $ANTLR start "lhs_not_binding"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:985:1: lhs_not_binding : not_key fact_binding -> ^( not_key ^( VT_PATTERN fact_binding ) ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:984:1: lhs_not_binding : not_key fact_binding -> ^( not_key ^( VT_PATTERN fact_binding ) ) ;
     public final DRLParser.lhs_not_binding_return lhs_not_binding() throws RecognitionException {
         DRLParser.lhs_not_binding_return retval = new DRLParser.lhs_not_binding_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        DRLParser.not_key_return not_key181 = null;
+        DRLParser.not_key_return not_key179 = null;
 
-        DRLParser.fact_binding_return fact_binding182 = null;
+        DRLParser.fact_binding_return fact_binding180 = null;
 
 
         RewriteRuleSubtreeStream stream_fact_binding=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding");
         RewriteRuleSubtreeStream stream_not_key=new RewriteRuleSubtreeStream(adaptor,"rule not_key");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:2: ( not_key fact_binding -> ^( not_key ^( VT_PATTERN fact_binding ) ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:4: not_key fact_binding
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:985:2: ( not_key fact_binding -> ^( not_key ^( VT_PATTERN fact_binding ) ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:985:4: not_key fact_binding
             {
-            pushFollow(FOLLOW_not_key_in_lhs_not_binding3256);
-            not_key181=not_key();
+            pushFollow(FOLLOW_not_key_in_lhs_not_binding3245);
+            not_key179=not_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_not_key.add(not_key181.getTree());
-            pushFollow(FOLLOW_fact_binding_in_lhs_not_binding3258);
-            fact_binding182=fact_binding();
+            if ( state.backtracking==0 ) stream_not_key.add(not_key179.getTree());
+            pushFollow(FOLLOW_fact_binding_in_lhs_not_binding3247);
+            fact_binding180=fact_binding();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_fact_binding.add(fact_binding182.getTree());
+            if ( state.backtracking==0 ) stream_fact_binding.add(fact_binding180.getTree());
 
 
             // AST REWRITE
-            // elements: not_key, fact_binding
+            // elements: fact_binding, not_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7804,14 +7742,14 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 987:2: -> ^( not_key ^( VT_PATTERN fact_binding ) )
+            // 986:2: -> ^( not_key ^( VT_PATTERN fact_binding ) )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:987:5: ^( not_key ^( VT_PATTERN fact_binding ) )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:5: ^( not_key ^( VT_PATTERN fact_binding ) )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_not_key.nextNode(), root_1);
 
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:987:15: ^( VT_PATTERN fact_binding )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:15: ^( VT_PATTERN fact_binding )
                 {
                 Object root_2 = (Object)adaptor.nil();
                 root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PATTERN, "VT_PATTERN"), root_2);
@@ -7855,78 +7793,78 @@
     };
 
     // $ANTLR start "lhs_not"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:990:1: lhs_not : not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:989:1: lhs_not : not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) ;
     public final DRLParser.lhs_not_return lhs_not() throws RecognitionException {
         DRLParser.lhs_not_return retval = new DRLParser.lhs_not_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN185=null;
-        Token RIGHT_PAREN187=null;
-        DRLParser.not_key_return not_key183 = null;
+        Token LEFT_PAREN183=null;
+        Token RIGHT_PAREN185=null;
+        DRLParser.not_key_return not_key181 = null;
 
+        DRLParser.lhs_or_return lhs_or182 = null;
+
         DRLParser.lhs_or_return lhs_or184 = null;
 
-        DRLParser.lhs_or_return lhs_or186 = null;
+        DRLParser.lhs_pattern_return lhs_pattern186 = null;
 
-        DRLParser.lhs_pattern_return lhs_pattern188 = null;
 
-
-        Object LEFT_PAREN185_tree=null;
-        Object RIGHT_PAREN187_tree=null;
+        Object LEFT_PAREN183_tree=null;
+        Object RIGHT_PAREN185_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_not_key=new RewriteRuleSubtreeStream(adaptor,"rule not_key");
         RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
         RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:990:9: ( not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:990:11: not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:989:9: ( not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern ) -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:989:11: not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
             {
-            pushFollow(FOLLOW_not_key_in_lhs_not3281);
-            not_key183=not_key();
+            pushFollow(FOLLOW_not_key_in_lhs_not3270);
+            not_key181=not_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_not_key.add(not_key183.getTree());
+            if ( state.backtracking==0 ) stream_not_key.add(not_key181.getTree());
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:3: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
-            int alt66=3;
-            int LA66_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:3: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            int alt64=3;
+            int LA64_0 = input.LA(1);
 
-            if ( (LA66_0==LEFT_PAREN) ) {
-                int LA66_1 = input.LA(2);
+            if ( (LA64_0==LEFT_PAREN) ) {
+                int LA64_1 = input.LA(2);
 
                 if ( (synpred10_DRL()) ) {
-                    alt66=1;
+                    alt64=1;
                 }
                 else if ( (true) ) {
-                    alt66=2;
+                    alt64=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 66, 1, input);
+                        new NoViableAltException("", 64, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA66_0==ID) ) {
-                int LA66_2 = input.LA(2);
+            else if ( (LA64_0==ID) ) {
+                int LA64_2 = input.LA(2);
 
                 if ( (synpred10_DRL()) ) {
-                    alt66=1;
+                    alt64=1;
                 }
                 else if ( (true) ) {
-                    alt66=3;
+                    alt64=3;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 66, 2, input);
+                        new NoViableAltException("", 64, 2, input);
 
                     throw nvae;
                 }
@@ -7934,59 +7872,59 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 66, 0, input);
+                    new NoViableAltException("", 64, 0, input);
 
                 throw nvae;
             }
-            switch (alt66) {
+            switch (alt64) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:5: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:5: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
                     {
                     if ( state.backtracking==0 ) {
                       	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION );	
                     }
-                    pushFollow(FOLLOW_lhs_or_in_lhs_not3303);
-                    lhs_or184=lhs_or();
+                    pushFollow(FOLLOW_lhs_or_in_lhs_not3292);
+                    lhs_or182=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or184.getTree());
+                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or182.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:993:5: LEFT_PAREN lhs_or RIGHT_PAREN
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:5: LEFT_PAREN lhs_or RIGHT_PAREN
                     {
-                    LEFT_PAREN185=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not3310); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN185);
+                    LEFT_PAREN183=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not3299); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN183);
 
                     if ( state.backtracking==0 ) {
-                      	emit(LEFT_PAREN185, DroolsEditorType.SYMBOL); emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION );	
+                      	emit(LEFT_PAREN183, DroolsEditorType.SYMBOL); emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION );	
                     }
-                    pushFollow(FOLLOW_lhs_or_in_lhs_not3319);
-                    lhs_or186=lhs_or();
+                    pushFollow(FOLLOW_lhs_or_in_lhs_not3308);
+                    lhs_or184=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or186.getTree());
-                    RIGHT_PAREN187=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not3325); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN187);
+                    if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or184.getTree());
+                    RIGHT_PAREN185=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not3314); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN185);
 
                     if ( state.backtracking==0 ) {
-                      	emit(RIGHT_PAREN187, DroolsEditorType.SYMBOL);	
+                      	emit(RIGHT_PAREN185, DroolsEditorType.SYMBOL);	
                     }
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:996:6: lhs_pattern
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:995:6: lhs_pattern
                     {
-                    pushFollow(FOLLOW_lhs_pattern_in_lhs_not3335);
-                    lhs_pattern188=lhs_pattern();
+                    pushFollow(FOLLOW_lhs_pattern_in_lhs_not3324);
+                    lhs_pattern186=lhs_pattern();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_lhs_pattern.add(lhs_pattern188.getTree());
+                    if ( state.backtracking==0 ) stream_lhs_pattern.add(lhs_pattern186.getTree());
 
                     }
                     break;
@@ -7996,7 +7934,7 @@
 
 
             // AST REWRITE
-            // elements: RIGHT_PAREN, lhs_pattern, lhs_or, not_key
+            // elements: RIGHT_PAREN, lhs_or, not_key, lhs_pattern
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -8006,26 +7944,26 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 997:10: -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+            // 996:10: -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:13: ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:996:13: ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_not_key.nextNode(), root_1);
 
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:23: ( lhs_or )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:996:23: ( lhs_or )?
                 if ( stream_lhs_or.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_or.nextTree());
 
                 }
                 stream_lhs_or.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:31: ( lhs_pattern )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:996:31: ( lhs_pattern )?
                 if ( stream_lhs_pattern.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_pattern.nextTree());
 
                 }
                 stream_lhs_pattern.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:44: ( RIGHT_PAREN )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:996:44: ( RIGHT_PAREN )?
                 if ( stream_RIGHT_PAREN.hasNext() ) {
                     adaptor.addChild(root_1, stream_RIGHT_PAREN.nextNode());
 
@@ -8066,7 +8004,7 @@
     };
 
     // $ANTLR start "lhs_eval"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1000:1: lhs_eval : ev= eval_key pc= paren_chunk -> ^( eval_key paren_chunk ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:999:1: lhs_eval : ev= eval_key pc= paren_chunk -> ^( eval_key paren_chunk ) ;
     public final DRLParser.lhs_eval_return lhs_eval() throws RecognitionException {
         DRLParser.lhs_eval_return retval = new DRLParser.lhs_eval_return();
         retval.start = input.LT(1);
@@ -8081,10 +8019,10 @@
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         RewriteRuleSubtreeStream stream_eval_key=new RewriteRuleSubtreeStream(adaptor,"rule eval_key");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:2: (ev= eval_key pc= paren_chunk -> ^( eval_key paren_chunk ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:4: ev= eval_key pc= paren_chunk
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1000:2: (ev= eval_key pc= paren_chunk -> ^( eval_key paren_chunk ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1000:4: ev= eval_key pc= paren_chunk
             {
-            pushFollow(FOLLOW_eval_key_in_lhs_eval3374);
+            pushFollow(FOLLOW_eval_key_in_lhs_eval3363);
             ev=eval_key();
 
             state._fsp--;
@@ -8093,7 +8031,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_EVAL);	
             }
-            pushFollow(FOLLOW_paren_chunk_in_lhs_eval3383);
+            pushFollow(FOLLOW_paren_chunk_in_lhs_eval3372);
             pc=paren_chunk();
 
             state._fsp--;
@@ -8122,9 +8060,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1010:3: -> ^( eval_key paren_chunk )
+            // 1009:3: -> ^( eval_key paren_chunk )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1010:6: ^( eval_key paren_chunk )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1009:6: ^( eval_key paren_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_eval_key.nextNode(), root_1);
@@ -8165,88 +8103,88 @@
     };
 
     // $ANTLR start "lhs_forall"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1013:1: lhs_forall : forall_key LEFT_PAREN ( pattern_source )+ RIGHT_PAREN -> ^( forall_key ( pattern_source )+ RIGHT_PAREN ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1012:1: lhs_forall : forall_key LEFT_PAREN ( pattern_source )+ RIGHT_PAREN -> ^( forall_key ( pattern_source )+ RIGHT_PAREN ) ;
     public final DRLParser.lhs_forall_return lhs_forall() throws RecognitionException {
         DRLParser.lhs_forall_return retval = new DRLParser.lhs_forall_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN190=null;
-        Token RIGHT_PAREN192=null;
-        DRLParser.forall_key_return forall_key189 = null;
+        Token LEFT_PAREN188=null;
+        Token RIGHT_PAREN190=null;
+        DRLParser.forall_key_return forall_key187 = null;
 
-        DRLParser.pattern_source_return pattern_source191 = null;
+        DRLParser.pattern_source_return pattern_source189 = null;
 
 
-        Object LEFT_PAREN190_tree=null;
-        Object RIGHT_PAREN192_tree=null;
+        Object LEFT_PAREN188_tree=null;
+        Object RIGHT_PAREN190_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_pattern_source=new RewriteRuleSubtreeStream(adaptor,"rule pattern_source");
         RewriteRuleSubtreeStream stream_forall_key=new RewriteRuleSubtreeStream(adaptor,"rule forall_key");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1014:2: ( forall_key LEFT_PAREN ( pattern_source )+ RIGHT_PAREN -> ^( forall_key ( pattern_source )+ RIGHT_PAREN ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1014:4: forall_key LEFT_PAREN ( pattern_source )+ RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1013:2: ( forall_key LEFT_PAREN ( pattern_source )+ RIGHT_PAREN -> ^( forall_key ( pattern_source )+ RIGHT_PAREN ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1013:4: forall_key LEFT_PAREN ( pattern_source )+ RIGHT_PAREN
             {
-            pushFollow(FOLLOW_forall_key_in_lhs_forall3410);
-            forall_key189=forall_key();
+            pushFollow(FOLLOW_forall_key_in_lhs_forall3399);
+            forall_key187=forall_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_forall_key.add(forall_key189.getTree());
-            LEFT_PAREN190=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall3415); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN190);
+            if ( state.backtracking==0 ) stream_forall_key.add(forall_key187.getTree());
+            LEFT_PAREN188=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall3404); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN188);
 
             if ( state.backtracking==0 ) {
-              	emit(LEFT_PAREN190, DroolsEditorType.SYMBOL);	
+              	emit(LEFT_PAREN188, DroolsEditorType.SYMBOL);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1016:4: ( pattern_source )+
-            int cnt67=0;
-            loop67:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1015:4: ( pattern_source )+
+            int cnt65=0;
+            loop65:
             do {
-                int alt67=2;
-                int LA67_0 = input.LA(1);
+                int alt65=2;
+                int LA65_0 = input.LA(1);
 
-                if ( (LA67_0==ID) ) {
-                    alt67=1;
+                if ( (LA65_0==ID) ) {
+                    alt65=1;
                 }
 
 
-                switch (alt67) {
+                switch (alt65) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1016:4: pattern_source
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1015:4: pattern_source
             	    {
-            	    pushFollow(FOLLOW_pattern_source_in_lhs_forall3423);
-            	    pattern_source191=pattern_source();
+            	    pushFollow(FOLLOW_pattern_source_in_lhs_forall3412);
+            	    pattern_source189=pattern_source();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) stream_pattern_source.add(pattern_source191.getTree());
+            	    if ( state.backtracking==0 ) stream_pattern_source.add(pattern_source189.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    if ( cnt67 >= 1 ) break loop67;
+            	    if ( cnt65 >= 1 ) break loop65;
             	    if (state.backtracking>0) {state.failed=true; return retval;}
                         EarlyExitException eee =
-                            new EarlyExitException(67, input);
+                            new EarlyExitException(65, input);
                         throw eee;
                 }
-                cnt67++;
+                cnt65++;
             } while (true);
 
-            RIGHT_PAREN192=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall3429); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN192);
+            RIGHT_PAREN190=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall3418); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN190);
 
             if ( state.backtracking==0 ) {
-              	emit(RIGHT_PAREN192, DroolsEditorType.SYMBOL);	
+              	emit(RIGHT_PAREN190, DroolsEditorType.SYMBOL);	
             }
 
 
             // AST REWRITE
-            // elements: RIGHT_PAREN, forall_key, pattern_source
+            // elements: forall_key, pattern_source, RIGHT_PAREN
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -8256,9 +8194,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1018:3: -> ^( forall_key ( pattern_source )+ RIGHT_PAREN )
+            // 1017:3: -> ^( forall_key ( pattern_source )+ RIGHT_PAREN )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1018:6: ^( forall_key ( pattern_source )+ RIGHT_PAREN )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1017:6: ^( forall_key ( pattern_source )+ RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_forall_key.nextNode(), root_1);
@@ -8307,30 +8245,30 @@
     };
 
     // $ANTLR start "lhs_forany"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1023:1: lhs_forany : forany_key LEFT_PAREN lhs_or ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? ) RIGHT_PAREN -> ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:1: lhs_forany : forany_key LEFT_PAREN lhs_or ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? ) RIGHT_PAREN -> ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN ) ;
     public final DRLParser.lhs_forany_return lhs_forany() throws RecognitionException {
         DRLParser.lhs_forany_return retval = new DRLParser.lhs_forany_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN194=null;
-        Token RIGHT_PAREN198=null;
+        Token LEFT_PAREN192=null;
+        Token RIGHT_PAREN196=null;
         DRLParser.lhs_or_return s = null;
 
         DRLParser.lhs_or_return w = null;
 
-        DRLParser.forany_key_return forany_key193 = null;
+        DRLParser.forany_key_return forany_key191 = null;
 
-        DRLParser.lhs_or_return lhs_or195 = null;
+        DRLParser.lhs_or_return lhs_or193 = null;
 
-        DRLParser.subject_key_return subject_key196 = null;
+        DRLParser.subject_key_return subject_key194 = null;
 
-        DRLParser.weight_key_return weight_key197 = null;
+        DRLParser.weight_key_return weight_key195 = null;
 
 
-        Object LEFT_PAREN194_tree=null;
-        Object RIGHT_PAREN198_tree=null;
+        Object LEFT_PAREN192_tree=null;
+        Object RIGHT_PAREN196_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_weight_key=new RewriteRuleSubtreeStream(adaptor,"rule weight_key");
@@ -8338,52 +8276,52 @@
         RewriteRuleSubtreeStream stream_subject_key=new RewriteRuleSubtreeStream(adaptor,"rule subject_key");
         RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1024:3: ( forany_key LEFT_PAREN lhs_or ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? ) RIGHT_PAREN -> ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1024:5: forany_key LEFT_PAREN lhs_or ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? ) RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1023:3: ( forany_key LEFT_PAREN lhs_or ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? ) RIGHT_PAREN -> ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1023:5: forany_key LEFT_PAREN lhs_or ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? ) RIGHT_PAREN
             {
-            pushFollow(FOLLOW_forany_key_in_lhs_forany3460);
-            forany_key193=forany_key();
+            pushFollow(FOLLOW_forany_key_in_lhs_forany3449);
+            forany_key191=forany_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_forany_key.add(forany_key193.getTree());
-            LEFT_PAREN194=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forany3467); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN194);
+            if ( state.backtracking==0 ) stream_forany_key.add(forany_key191.getTree());
+            LEFT_PAREN192=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forany3456); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN192);
 
             if ( state.backtracking==0 ) {
-                emit(LEFT_PAREN194, DroolsEditorType.SYMBOL); 
+                emit(LEFT_PAREN192, DroolsEditorType.SYMBOL); 
             }
-            pushFollow(FOLLOW_lhs_or_in_lhs_forany3478);
-            lhs_or195=lhs_or();
+            pushFollow(FOLLOW_lhs_or_in_lhs_forany3467);
+            lhs_or193=lhs_or();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or195.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:7: ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1028:7: ( subject_key s= lhs_or )? ( weight_key w= lhs_or )?
+            if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or193.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1026:7: ( ( subject_key s= lhs_or )? ( weight_key w= lhs_or )? )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:7: ( subject_key s= lhs_or )? ( weight_key w= lhs_or )?
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1028:7: ( subject_key s= lhs_or )?
-            int alt68=2;
-            int LA68_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:7: ( subject_key s= lhs_or )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
 
-            if ( (LA68_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.SUBJECT)))||((validateIdentifierKey(DroolsSoftKeywords.WEIGHT)))))) {
-                int LA68_1 = input.LA(2);
+            if ( (LA66_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.SUBJECT)))||((validateIdentifierKey(DroolsSoftKeywords.WEIGHT)))))) {
+                int LA66_1 = input.LA(2);
 
                 if ( (((validateIdentifierKey(DroolsSoftKeywords.SUBJECT)))) ) {
-                    alt68=1;
+                    alt66=1;
                 }
             }
-            switch (alt68) {
+            switch (alt66) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1028:8: subject_key s= lhs_or
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:8: subject_key s= lhs_or
                     {
-                    pushFollow(FOLLOW_subject_key_in_lhs_forany3497);
-                    subject_key196=subject_key();
+                    pushFollow(FOLLOW_subject_key_in_lhs_forany3486);
+                    subject_key194=subject_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_subject_key.add(subject_key196.getTree());
-                    pushFollow(FOLLOW_lhs_or_in_lhs_forany3501);
+                    if ( state.backtracking==0 ) stream_subject_key.add(subject_key194.getTree());
+                    pushFollow(FOLLOW_lhs_or_in_lhs_forany3490);
                     s=lhs_or();
 
                     state._fsp--;
@@ -8395,24 +8333,24 @@
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1029:7: ( weight_key w= lhs_or )?
-            int alt69=2;
-            int LA69_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1028:7: ( weight_key w= lhs_or )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
 
-            if ( (LA69_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WEIGHT))))) {
-                alt69=1;
+            if ( (LA67_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WEIGHT))))) {
+                alt67=1;
             }
-            switch (alt69) {
+            switch (alt67) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1029:8: weight_key w= lhs_or
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1028:8: weight_key w= lhs_or
                     {
-                    pushFollow(FOLLOW_weight_key_in_lhs_forany3512);
-                    weight_key197=weight_key();
+                    pushFollow(FOLLOW_weight_key_in_lhs_forany3501);
+                    weight_key195=weight_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_weight_key.add(weight_key197.getTree());
-                    pushFollow(FOLLOW_lhs_or_in_lhs_forany3516);
+                    if ( state.backtracking==0 ) stream_weight_key.add(weight_key195.getTree());
+                    pushFollow(FOLLOW_lhs_or_in_lhs_forany3505);
                     w=lhs_or();
 
                     state._fsp--;
@@ -8427,16 +8365,16 @@
 
             }
 
-            RIGHT_PAREN198=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forany3532); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN198);
+            RIGHT_PAREN196=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forany3521); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN196);
 
             if ( state.backtracking==0 ) {
-               emit(RIGHT_PAREN198, DroolsEditorType.SYMBOL);  
+               emit(RIGHT_PAREN196, DroolsEditorType.SYMBOL);  
             }
 
 
             // AST REWRITE
-            // elements: lhs_or, RIGHT_PAREN, s, forany_key, w, weight_key, subject_key
+            // elements: w, weight_key, subject_key, lhs_or, RIGHT_PAREN, s, forany_key
             // token labels: 
             // rule labels: w, retval, s
             // token list labels: 
@@ -8448,23 +8386,23 @@
             RewriteRuleSubtreeStream stream_s=new RewriteRuleSubtreeStream(adaptor,"token s",s!=null?s.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1032:5: -> ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN )
+            // 1031:5: -> ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1032:8: ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1031:8: ^( forany_key lhs_or ( subject_key $s)? ( weight_key $w)? RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_forany_key.nextNode(), root_1);
 
                 adaptor.addChild(root_1, stream_lhs_or.nextTree());
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1032:28: ( subject_key $s)?
-                if ( stream_s.hasNext()||stream_subject_key.hasNext() ) {
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1031:28: ( subject_key $s)?
+                if ( stream_subject_key.hasNext()||stream_s.hasNext() ) {
                     adaptor.addChild(root_1, stream_subject_key.nextTree());
                     adaptor.addChild(root_1, stream_s.nextTree());
 
                 }
-                stream_s.reset();
                 stream_subject_key.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1032:46: ( weight_key $w)?
+                stream_s.reset();
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1031:46: ( weight_key $w)?
                 if ( stream_w.hasNext()||stream_weight_key.hasNext() ) {
                     adaptor.addChild(root_1, stream_weight_key.nextTree());
                     adaptor.addChild(root_1, stream_w.nextTree());
@@ -8508,112 +8446,112 @@
     };
 
     // $ANTLR start "pattern_source"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1036:1: pattern_source : lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1035:1: pattern_source : lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? ;
     public final DRLParser.pattern_source_return pattern_source() throws RecognitionException {
         DRLParser.pattern_source_return retval = new DRLParser.pattern_source_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token FROM201=null;
-        DRLParser.lhs_pattern_return lhs_pattern199 = null;
+        Token FROM199=null;
+        DRLParser.lhs_pattern_return lhs_pattern197 = null;
 
-        DRLParser.over_clause_return over_clause200 = null;
+        DRLParser.over_clause_return over_clause198 = null;
 
-        DRLParser.accumulate_statement_return accumulate_statement202 = null;
+        DRLParser.accumulate_statement_return accumulate_statement200 = null;
 
-        DRLParser.collect_statement_return collect_statement203 = null;
+        DRLParser.collect_statement_return collect_statement201 = null;
 
-        DRLParser.entrypoint_statement_return entrypoint_statement204 = null;
+        DRLParser.entrypoint_statement_return entrypoint_statement202 = null;
 
-        DRLParser.from_source_return from_source205 = null;
+        DRLParser.from_source_return from_source203 = null;
 
 
-        Object FROM201_tree=null;
+        Object FROM199_tree=null;
 
          boolean isFailed = true;	
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1039:2: ( lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1040:4: lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1038:2: ( lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1039:4: lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_lhs_pattern_in_pattern_source3593);
-            lhs_pattern199=lhs_pattern();
+            pushFollow(FOLLOW_lhs_pattern_in_pattern_source3582);
+            lhs_pattern197=lhs_pattern();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_pattern199.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1041:3: ( over_clause )?
-            int alt70=2;
-            int LA70_0 = input.LA(1);
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_pattern197.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1040:3: ( over_clause )?
+            int alt68=2;
+            int LA68_0 = input.LA(1);
 
-            if ( (LA70_0==OVER) ) {
-                alt70=1;
+            if ( (LA68_0==OVER) ) {
+                alt68=1;
             }
-            switch (alt70) {
+            switch (alt68) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1041:3: over_clause
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1040:3: over_clause
                     {
-                    pushFollow(FOLLOW_over_clause_in_pattern_source3597);
-                    over_clause200=over_clause();
+                    pushFollow(FOLLOW_over_clause_in_pattern_source3586);
+                    over_clause198=over_clause();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, over_clause200.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, over_clause198.getTree());
 
                     }
                     break;
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1042:3: ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
-            int alt72=2;
-            int LA72_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1041:3: ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
+            int alt70=2;
+            int LA70_0 = input.LA(1);
 
-            if ( (LA72_0==FROM) ) {
-                alt72=1;
+            if ( (LA70_0==FROM) ) {
+                alt70=1;
             }
-            switch (alt72) {
+            switch (alt70) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1043:4: FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1042:4: FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
                     {
-                    FROM201=(Token)match(input,FROM,FOLLOW_FROM_in_pattern_source3607); if (state.failed) return retval;
+                    FROM199=(Token)match(input,FROM,FOLLOW_FROM_in_pattern_source3596); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    FROM201_tree = (Object)adaptor.create(FROM201);
-                    root_0 = (Object)adaptor.becomeRoot(FROM201_tree, root_0);
+                    FROM199_tree = (Object)adaptor.create(FROM199);
+                    root_0 = (Object)adaptor.becomeRoot(FROM199_tree, root_0);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(FROM201, DroolsEditorType.KEYWORD);
+                      	emit(FROM199, DroolsEditorType.KEYWORD);
                       			emit(Location.LOCATION_LHS_FROM);	
                     }
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1046:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
-                    int alt71=4;
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1045:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
+                    int alt69=4;
                     switch ( input.LA(1) ) {
                     case ACCUMULATE:
                         {
-                        alt71=1;
+                        alt69=1;
                         }
                         break;
                     case COLLECT:
                         {
-                        alt71=2;
+                        alt69=2;
                         }
                         break;
                     case ID:
                         {
-                        int LA71_3 = input.LA(2);
+                        int LA69_3 = input.LA(2);
 
-                        if ( (LA71_3==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.POINT))))) {
-                            alt71=3;
+                        if ( (LA69_3==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.POINT))))) {
+                            alt69=3;
                         }
-                        else if ( ((LA71_3>=SEMICOLON && LA71_3<=DOT)||(LA71_3>=LEFT_PAREN && LA71_3<=RIGHT_PAREN)||(LA71_3>=DOUBLE_PIPE && LA71_3<=DOUBLE_AMPER)||LA71_3==THEN) ) {
-                            alt71=4;
+                        else if ( ((LA69_3>=SEMICOLON && LA69_3<=DOT)||(LA69_3>=LEFT_PAREN && LA69_3<=RIGHT_PAREN)||(LA69_3>=DOUBLE_PIPE && LA69_3<=DOUBLE_AMPER)||LA69_3==THEN) ) {
+                            alt69=4;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return retval;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 71, 3, input);
+                                new NoViableAltException("", 69, 3, input);
 
                             throw nvae;
                         }
@@ -8622,57 +8560,57 @@
                     default:
                         if (state.backtracking>0) {state.failed=true; return retval;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 71, 0, input);
+                            new NoViableAltException("", 69, 0, input);
 
                         throw nvae;
                     }
 
-                    switch (alt71) {
+                    switch (alt69) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1046:14: accumulate_statement
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1045:14: accumulate_statement
                             {
-                            pushFollow(FOLLOW_accumulate_statement_in_pattern_source3627);
-                            accumulate_statement202=accumulate_statement();
+                            pushFollow(FOLLOW_accumulate_statement_in_pattern_source3616);
+                            accumulate_statement200=accumulate_statement();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) adaptor.addChild(root_0, accumulate_statement202.getTree());
+                            if ( state.backtracking==0 ) adaptor.addChild(root_0, accumulate_statement200.getTree());
 
                             }
                             break;
                         case 2 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1047:15: collect_statement
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1046:15: collect_statement
                             {
-                            pushFollow(FOLLOW_collect_statement_in_pattern_source3643);
-                            collect_statement203=collect_statement();
+                            pushFollow(FOLLOW_collect_statement_in_pattern_source3632);
+                            collect_statement201=collect_statement();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) adaptor.addChild(root_0, collect_statement203.getTree());
+                            if ( state.backtracking==0 ) adaptor.addChild(root_0, collect_statement201.getTree());
 
                             }
                             break;
                         case 3 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1048:15: entrypoint_statement
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1047:15: entrypoint_statement
                             {
-                            pushFollow(FOLLOW_entrypoint_statement_in_pattern_source3660);
-                            entrypoint_statement204=entrypoint_statement();
+                            pushFollow(FOLLOW_entrypoint_statement_in_pattern_source3649);
+                            entrypoint_statement202=entrypoint_statement();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) adaptor.addChild(root_0, entrypoint_statement204.getTree());
+                            if ( state.backtracking==0 ) adaptor.addChild(root_0, entrypoint_statement202.getTree());
 
                             }
                             break;
                         case 4 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1049:15: from_source
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1048:15: from_source
                             {
-                            pushFollow(FOLLOW_from_source_in_pattern_source3676);
-                            from_source205=from_source();
+                            pushFollow(FOLLOW_from_source_in_pattern_source3665);
+                            from_source203=from_source();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) adaptor.addChild(root_0, from_source205.getTree());
+                            if ( state.backtracking==0 ) adaptor.addChild(root_0, from_source203.getTree());
 
                             }
                             break;
@@ -8730,57 +8668,57 @@
     };
 
     // $ANTLR start "over_clause"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:1: over_clause : OVER over_elements ( COMMA over_elements )* ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1066:1: over_clause : OVER over_elements ( COMMA over_elements )* ;
     public final DRLParser.over_clause_return over_clause() throws RecognitionException {
         DRLParser.over_clause_return retval = new DRLParser.over_clause_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token OVER206=null;
-        Token COMMA208=null;
+        Token OVER204=null;
+        Token COMMA206=null;
+        DRLParser.over_elements_return over_elements205 = null;
+
         DRLParser.over_elements_return over_elements207 = null;
 
-        DRLParser.over_elements_return over_elements209 = null;
 
+        Object OVER204_tree=null;
+        Object COMMA206_tree=null;
 
-        Object OVER206_tree=null;
-        Object COMMA208_tree=null;
-
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:2: ( OVER over_elements ( COMMA over_elements )* )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:4: OVER over_elements ( COMMA over_elements )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:2: ( OVER over_elements ( COMMA over_elements )* )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:4: OVER over_elements ( COMMA over_elements )*
             {
             root_0 = (Object)adaptor.nil();
 
-            OVER206=(Token)match(input,OVER,FOLLOW_OVER_in_over_clause3708); if (state.failed) return retval;
+            OVER204=(Token)match(input,OVER,FOLLOW_OVER_in_over_clause3697); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
-            OVER206_tree = (Object)adaptor.create(OVER206);
-            root_0 = (Object)adaptor.becomeRoot(OVER206_tree, root_0);
+            OVER204_tree = (Object)adaptor.create(OVER204);
+            root_0 = (Object)adaptor.becomeRoot(OVER204_tree, root_0);
             }
             if ( state.backtracking==0 ) {
-              	emit(OVER206, DroolsEditorType.KEYWORD);	
+              	emit(OVER204, DroolsEditorType.KEYWORD);	
             }
-            pushFollow(FOLLOW_over_elements_in_over_clause3713);
-            over_elements207=over_elements();
+            pushFollow(FOLLOW_over_elements_in_over_clause3702);
+            over_elements205=over_elements();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, over_elements207.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1069:4: ( COMMA over_elements )*
-            loop73:
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, over_elements205.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:4: ( COMMA over_elements )*
+            loop71:
             do {
-                int alt73=2;
-                int LA73_0 = input.LA(1);
+                int alt71=2;
+                int LA71_0 = input.LA(1);
 
-                if ( (LA73_0==COMMA) ) {
-                    int LA73_2 = input.LA(2);
+                if ( (LA71_0==COMMA) ) {
+                    int LA71_2 = input.LA(2);
 
-                    if ( (LA73_2==ID) ) {
-                        int LA73_3 = input.LA(3);
+                    if ( (LA71_2==ID) ) {
+                        int LA71_3 = input.LA(3);
 
-                        if ( (LA73_3==COLON) ) {
-                            alt73=1;
+                        if ( (LA71_3==COLON) ) {
+                            alt71=1;
                         }
 
 
@@ -8790,26 +8728,26 @@
                 }
 
 
-                switch (alt73) {
+                switch (alt71) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1069:5: COMMA over_elements
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:5: COMMA over_elements
             	    {
-            	    COMMA208=(Token)match(input,COMMA,FOLLOW_COMMA_in_over_clause3720); if (state.failed) return retval;
+            	    COMMA206=(Token)match(input,COMMA,FOLLOW_COMMA_in_over_clause3709); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
-            	      	emit(COMMA208, DroolsEditorType.SYMBOL);	
+            	      	emit(COMMA206, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_over_elements_in_over_clause3725);
-            	    over_elements209=over_elements();
+            	    pushFollow(FOLLOW_over_elements_in_over_clause3714);
+            	    over_elements207=over_elements();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, over_elements209.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, over_elements207.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop73;
+            	    break loop71;
                 }
             } while (true);
 
@@ -8842,7 +8780,7 @@
     };
 
     // $ANTLR start "over_elements"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:1: over_elements : id1= ID COLON id2= ID paren_chunk -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1071:1: over_elements : id1= ID COLON id2= ID paren_chunk -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk ) ;
     public final DRLParser.over_elements_return over_elements() throws RecognitionException {
         DRLParser.over_elements_return retval = new DRLParser.over_elements_return();
         retval.start = input.LT(1);
@@ -8851,48 +8789,48 @@
 
         Token id1=null;
         Token id2=null;
-        Token COLON210=null;
-        DRLParser.paren_chunk_return paren_chunk211 = null;
+        Token COLON208=null;
+        DRLParser.paren_chunk_return paren_chunk209 = null;
 
 
         Object id1_tree=null;
         Object id2_tree=null;
-        Object COLON210_tree=null;
+        Object COLON208_tree=null;
         RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1073:2: (id1= ID COLON id2= ID paren_chunk -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1073:4: id1= ID COLON id2= ID paren_chunk
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:2: (id1= ID COLON id2= ID paren_chunk -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:4: id1= ID COLON id2= ID paren_chunk
             {
-            id1=(Token)match(input,ID,FOLLOW_ID_in_over_elements3740); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_over_elements3729); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
             if ( state.backtracking==0 ) {
               	emit(id1, DroolsEditorType.IDENTIFIER);	
             }
-            COLON210=(Token)match(input,COLON,FOLLOW_COLON_in_over_elements3747); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_COLON.add(COLON210);
+            COLON208=(Token)match(input,COLON,FOLLOW_COLON_in_over_elements3736); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_COLON.add(COLON208);
 
             if ( state.backtracking==0 ) {
-              	emit(COLON210, DroolsEditorType.SYMBOL);	
+              	emit(COLON208, DroolsEditorType.SYMBOL);	
             }
-            id2=(Token)match(input,ID,FOLLOW_ID_in_over_elements3756); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_over_elements3745); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
               	emit(id2, DroolsEditorType.IDENTIFIER);	
             }
-            pushFollow(FOLLOW_paren_chunk_in_over_elements3763);
-            paren_chunk211=paren_chunk();
+            pushFollow(FOLLOW_paren_chunk_in_over_elements3752);
+            paren_chunk209=paren_chunk();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk211.getTree());
+            if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk209.getTree());
 
 
             // AST REWRITE
-            // elements: id2, paren_chunk, id1
+            // elements: id2, id1, paren_chunk
             // token labels: id2, id1
             // rule labels: retval
             // token list labels: 
@@ -8904,9 +8842,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1077:2: -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk )
+            // 1076:2: -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1077:5: ^( VT_BEHAVIOR $id1 $id2 paren_chunk )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1076:5: ^( VT_BEHAVIOR $id1 $id2 paren_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_BEHAVIOR, "VT_BEHAVIOR"), root_1);
@@ -8949,28 +8887,28 @@
     };
 
     // $ANTLR start "accumulate_statement"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1080:1: accumulate_statement : ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1079:1: accumulate_statement : ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN ) ;
     public final DRLParser.accumulate_statement_return accumulate_statement() throws RecognitionException {
         DRLParser.accumulate_statement_return retval = new DRLParser.accumulate_statement_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token ACCUMULATE212=null;
-        Token LEFT_PAREN213=null;
-        Token COMMA215=null;
-        Token RIGHT_PAREN218=null;
-        DRLParser.lhs_or_return lhs_or214 = null;
+        Token ACCUMULATE210=null;
+        Token LEFT_PAREN211=null;
+        Token COMMA213=null;
+        Token RIGHT_PAREN216=null;
+        DRLParser.lhs_or_return lhs_or212 = null;
 
-        DRLParser.accumulate_init_clause_return accumulate_init_clause216 = null;
+        DRLParser.accumulate_init_clause_return accumulate_init_clause214 = null;
 
-        DRLParser.accumulate_id_clause_return accumulate_id_clause217 = null;
+        DRLParser.accumulate_id_clause_return accumulate_id_clause215 = null;
 
 
-        Object ACCUMULATE212_tree=null;
-        Object LEFT_PAREN213_tree=null;
-        Object COMMA215_tree=null;
-        Object RIGHT_PAREN218_tree=null;
+        Object ACCUMULATE210_tree=null;
+        Object LEFT_PAREN211_tree=null;
+        Object COMMA213_tree=null;
+        Object RIGHT_PAREN216_tree=null;
         RewriteRuleTokenStream stream_ACCUMULATE=new RewriteRuleTokenStream(adaptor,"token ACCUMULATE");
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
@@ -8979,43 +8917,43 @@
         RewriteRuleSubtreeStream stream_accumulate_id_clause=new RewriteRuleSubtreeStream(adaptor,"rule accumulate_id_clause");
         RewriteRuleSubtreeStream stream_lhs_or=new RewriteRuleSubtreeStream(adaptor,"rule lhs_or");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1081:2: ( ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1081:4: ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1080:2: ( ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1080:4: ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN
             {
-            ACCUMULATE212=(Token)match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement3789); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ACCUMULATE.add(ACCUMULATE212);
+            ACCUMULATE210=(Token)match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement3778); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_ACCUMULATE.add(ACCUMULATE210);
 
             if ( state.backtracking==0 ) {
-              	emit(ACCUMULATE212, DroolsEditorType.KEYWORD);	
+              	emit(ACCUMULATE210, DroolsEditorType.KEYWORD);	
             }
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_ACCUMULATE);	
             }
-            LEFT_PAREN213=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement3798); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN213);
+            LEFT_PAREN211=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement3787); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN211);
 
             if ( state.backtracking==0 ) {
-              	emit(LEFT_PAREN213, DroolsEditorType.SYMBOL);	
+              	emit(LEFT_PAREN211, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_lhs_or_in_accumulate_statement3806);
-            lhs_or214=lhs_or();
+            pushFollow(FOLLOW_lhs_or_in_accumulate_statement3795);
+            lhs_or212=lhs_or();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or214.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085:3: ( COMMA )?
-            int alt74=2;
-            int LA74_0 = input.LA(1);
+            if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or212.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:3: ( COMMA )?
+            int alt72=2;
+            int LA72_0 = input.LA(1);
 
-            if ( (LA74_0==COMMA) ) {
-                alt74=1;
+            if ( (LA72_0==COMMA) ) {
+                alt72=1;
             }
-            switch (alt74) {
+            switch (alt72) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085:3: COMMA
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:3: COMMA
                     {
-                    COMMA215=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3811); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_COMMA.add(COMMA215);
+                    COMMA213=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3800); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_COMMA.add(COMMA213);
 
 
                     }
@@ -9024,25 +8962,25 @@
             }
 
             if ( state.backtracking==0 ) {
-              	emit(COMMA215, DroolsEditorType.SYMBOL);	
+              	emit(COMMA213, DroolsEditorType.SYMBOL);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1086:3: ( accumulate_init_clause | accumulate_id_clause )
-            int alt75=2;
-            int LA75_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085:3: ( accumulate_init_clause | accumulate_id_clause )
+            int alt73=2;
+            int LA73_0 = input.LA(1);
 
-            if ( (LA75_0==ID) ) {
-                int LA75_1 = input.LA(2);
+            if ( (LA73_0==ID) ) {
+                int LA73_1 = input.LA(2);
 
                 if ( (((validateIdentifierKey(DroolsSoftKeywords.INIT)))) ) {
-                    alt75=1;
+                    alt73=1;
                 }
                 else if ( (true) ) {
-                    alt75=2;
+                    alt73=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 75, 1, input);
+                        new NoViableAltException("", 73, 1, input);
 
                     throw nvae;
                 }
@@ -9050,43 +8988,43 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 75, 0, input);
+                    new NoViableAltException("", 73, 0, input);
 
                 throw nvae;
             }
-            switch (alt75) {
+            switch (alt73) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1086:5: accumulate_init_clause
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085:5: accumulate_init_clause
                     {
-                    pushFollow(FOLLOW_accumulate_init_clause_in_accumulate_statement3821);
-                    accumulate_init_clause216=accumulate_init_clause();
+                    pushFollow(FOLLOW_accumulate_init_clause_in_accumulate_statement3810);
+                    accumulate_init_clause214=accumulate_init_clause();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_accumulate_init_clause.add(accumulate_init_clause216.getTree());
+                    if ( state.backtracking==0 ) stream_accumulate_init_clause.add(accumulate_init_clause214.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1087:5: accumulate_id_clause
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1086:5: accumulate_id_clause
                     {
-                    pushFollow(FOLLOW_accumulate_id_clause_in_accumulate_statement3827);
-                    accumulate_id_clause217=accumulate_id_clause();
+                    pushFollow(FOLLOW_accumulate_id_clause_in_accumulate_statement3816);
+                    accumulate_id_clause215=accumulate_id_clause();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_accumulate_id_clause.add(accumulate_id_clause217.getTree());
+                    if ( state.backtracking==0 ) stream_accumulate_id_clause.add(accumulate_id_clause215.getTree());
 
                     }
                     break;
 
             }
 
-            RIGHT_PAREN218=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement3835); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN218);
+            RIGHT_PAREN216=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement3824); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN216);
 
             if ( state.backtracking==0 ) {
-              	emit(RIGHT_PAREN218, DroolsEditorType.SYMBOL);	
+              	emit(RIGHT_PAREN216, DroolsEditorType.SYMBOL);	
             }
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION);	
@@ -9094,7 +9032,7 @@
 
 
             // AST REWRITE
-            // elements: accumulate_id_clause, ACCUMULATE, RIGHT_PAREN, accumulate_init_clause, lhs_or
+            // elements: ACCUMULATE, accumulate_init_clause, lhs_or, accumulate_id_clause, RIGHT_PAREN
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9104,21 +9042,21 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1091:3: -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN )
+            // 1090:3: -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1091:6: ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1090:6: ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_ACCUMULATE.nextNode(), root_1);
 
                 adaptor.addChild(root_1, stream_lhs_or.nextTree());
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1091:26: ( accumulate_init_clause )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1090:26: ( accumulate_init_clause )?
                 if ( stream_accumulate_init_clause.hasNext() ) {
                     adaptor.addChild(root_1, stream_accumulate_init_clause.nextTree());
 
                 }
                 stream_accumulate_init_clause.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1091:50: ( accumulate_id_clause )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1090:50: ( accumulate_id_clause )?
                 if ( stream_accumulate_id_clause.hasNext() ) {
                     adaptor.addChild(root_1, stream_accumulate_id_clause.nextTree());
 
@@ -9160,7 +9098,7 @@
     };
 
     // $ANTLR start "accumulate_init_clause"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1095:1: accumulate_init_clause : init_key pc1= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_INIT_INSIDE] (cm1= COMMA )? action_key pc2= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION_INSIDE] (cm2= COMMA )? ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )? res1= result_key pc4= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE] -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1094:1: accumulate_init_clause : init_key pc1= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_INIT_INSIDE] (cm1= COMMA )? action_key pc2= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION_INSIDE] (cm2= COMMA )? ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )? res1= result_key pc4= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE] -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) ;
     public final DRLParser.accumulate_init_clause_return accumulate_init_clause() throws RecognitionException {
         DRLParser.accumulate_init_clause_return retval = new DRLParser.accumulate_init_clause_return();
         retval.start = input.LT(1);
@@ -9180,11 +9118,11 @@
 
         DRLParser.accumulate_paren_chunk_return pc4 = null;
 
-        DRLParser.init_key_return init_key219 = null;
+        DRLParser.init_key_return init_key217 = null;
 
-        DRLParser.action_key_return action_key220 = null;
+        DRLParser.action_key_return action_key218 = null;
 
-        DRLParser.reverse_key_return reverse_key221 = null;
+        DRLParser.reverse_key_return reverse_key219 = null;
 
 
         Object cm1_tree=null;
@@ -9198,36 +9136,36 @@
         RewriteRuleSubtreeStream stream_init_key=new RewriteRuleSubtreeStream(adaptor,"rule init_key");
          boolean isFailed = true;	
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1098:2: ( init_key pc1= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_INIT_INSIDE] (cm1= COMMA )? action_key pc2= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION_INSIDE] (cm2= COMMA )? ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )? res1= result_key pc4= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE] -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1098:4: init_key pc1= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_INIT_INSIDE] (cm1= COMMA )? action_key pc2= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION_INSIDE] (cm2= COMMA )? ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )? res1= result_key pc4= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE]
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1097:2: ( init_key pc1= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_INIT_INSIDE] (cm1= COMMA )? action_key pc2= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION_INSIDE] (cm2= COMMA )? ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )? res1= result_key pc4= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE] -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1097:4: init_key pc1= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_INIT_INSIDE] (cm1= COMMA )? action_key pc2= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION_INSIDE] (cm2= COMMA )? ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )? res1= result_key pc4= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE]
             {
-            pushFollow(FOLLOW_init_key_in_accumulate_init_clause3881);
-            init_key219=init_key();
+            pushFollow(FOLLOW_init_key_in_accumulate_init_clause3870);
+            init_key217=init_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_init_key.add(init_key219.getTree());
+            if ( state.backtracking==0 ) stream_init_key.add(init_key217.getTree());
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_ACCUMULATE_INIT);	
             }
-            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3891);
+            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3880);
             pc1=accumulate_paren_chunk(Location.LOCATION_LHS_FROM_ACCUMULATE_INIT_INSIDE);
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_accumulate_paren_chunk.add(pc1.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1100:84: (cm1= COMMA )?
-            int alt76=2;
-            int LA76_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1099:84: (cm1= COMMA )?
+            int alt74=2;
+            int LA74_0 = input.LA(1);
 
-            if ( (LA76_0==COMMA) ) {
-                alt76=1;
+            if ( (LA74_0==COMMA) ) {
+                alt74=1;
             }
-            switch (alt76) {
+            switch (alt74) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1100:84: cm1= COMMA
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1099:84: cm1= COMMA
                     {
-                    cm1=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3896); if (state.failed) return retval; 
+                    cm1=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3885); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_COMMA.add(cm1);
 
 
@@ -9242,30 +9180,30 @@
             if ( state.backtracking==0 ) {
               	if (pc1 != null && ((DroolsTree) pc1.getTree()).getText() != null) emit(Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION);	
             }
-            pushFollow(FOLLOW_action_key_in_accumulate_init_clause3907);
-            action_key220=action_key();
+            pushFollow(FOLLOW_action_key_in_accumulate_init_clause3896);
+            action_key218=action_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_action_key.add(action_key220.getTree());
-            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3911);
+            if ( state.backtracking==0 ) stream_action_key.add(action_key218.getTree());
+            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3900);
             pc2=accumulate_paren_chunk(Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION_INSIDE);
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_accumulate_paren_chunk.add(pc2.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1102:97: (cm2= COMMA )?
-            int alt77=2;
-            int LA77_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1101:97: (cm2= COMMA )?
+            int alt75=2;
+            int LA75_0 = input.LA(1);
 
-            if ( (LA77_0==COMMA) ) {
-                alt77=1;
+            if ( (LA75_0==COMMA) ) {
+                alt75=1;
             }
-            switch (alt77) {
+            switch (alt75) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1102:97: cm2= COMMA
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1101:97: cm2= COMMA
                     {
-                    cm2=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3916); if (state.failed) return retval; 
+                    cm2=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3905); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_COMMA.add(cm2);
 
 
@@ -9280,45 +9218,45 @@
             if ( state.backtracking==0 ) {
               	if (pc1 != null && ((DroolsTree) pc1.getTree()).getText() != null && pc2 != null && ((DroolsTree) pc2.getTree()).getText() != null ) emit(Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1104:2: ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )?
-            int alt79=2;
-            int LA79_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1103:2: ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )?
+            int alt77=2;
+            int LA77_0 = input.LA(1);
 
-            if ( (LA79_0==ID) ) {
-                int LA79_1 = input.LA(2);
+            if ( (LA77_0==ID) ) {
+                int LA77_1 = input.LA(2);
 
                 if ( (((validateIdentifierKey(DroolsSoftKeywords.REVERSE)))) ) {
-                    alt79=1;
+                    alt77=1;
                 }
             }
-            switch (alt79) {
+            switch (alt77) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1104:4: reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )?
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1103:4: reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )?
                     {
-                    pushFollow(FOLLOW_reverse_key_in_accumulate_init_clause3928);
-                    reverse_key221=reverse_key();
+                    pushFollow(FOLLOW_reverse_key_in_accumulate_init_clause3917);
+                    reverse_key219=reverse_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_reverse_key.add(reverse_key221.getTree());
-                    pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3932);
+                    if ( state.backtracking==0 ) stream_reverse_key.add(reverse_key219.getTree());
+                    pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3921);
                     pc3=accumulate_paren_chunk(Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE);
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_accumulate_paren_chunk.add(pc3.getTree());
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1104:100: (cm3= COMMA )?
-                    int alt78=2;
-                    int LA78_0 = input.LA(1);
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1103:100: (cm3= COMMA )?
+                    int alt76=2;
+                    int LA76_0 = input.LA(1);
 
-                    if ( (LA78_0==COMMA) ) {
-                        alt78=1;
+                    if ( (LA76_0==COMMA) ) {
+                        alt76=1;
                     }
-                    switch (alt78) {
+                    switch (alt76) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1104:100: cm3= COMMA
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1103:100: cm3= COMMA
                             {
-                            cm3=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3937); if (state.failed) return retval; 
+                            cm3=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3926); if (state.failed) return retval; 
                             if ( state.backtracking==0 ) stream_COMMA.add(cm3);
 
 
@@ -9344,7 +9282,7 @@
               		}	
               	
             }
-            pushFollow(FOLLOW_result_key_in_accumulate_init_clause3953);
+            pushFollow(FOLLOW_result_key_in_accumulate_init_clause3942);
             res1=result_key();
 
             state._fsp--;
@@ -9353,7 +9291,7 @@
             if ( state.backtracking==0 ) {
               	emit((res1!=null?((Token)res1.start):null), DroolsEditorType.KEYWORD);	
             }
-            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3959);
+            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3948);
             pc4=accumulate_paren_chunk(Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE);
 
             state._fsp--;
@@ -9362,7 +9300,7 @@
 
 
             // AST REWRITE
-            // elements: result_key, reverse_key, action_key, init_key, pc2, pc3, pc1, pc4
+            // elements: pc3, pc4, init_key, pc1, result_key, pc2, reverse_key, action_key
             // token labels: 
             // rule labels: pc4, pc3, retval, pc1, pc2
             // token list labels: 
@@ -9376,14 +9314,14 @@
             RewriteRuleSubtreeStream stream_pc2=new RewriteRuleSubtreeStream(adaptor,"token pc2",pc2!=null?pc2.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1113:2: -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
+            // 1112:2: -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:5: ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1112:5: ^( VT_ACCUMULATE_INIT_CLAUSE ^( init_key $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_ACCUMULATE_INIT_CLAUSE, "VT_ACCUMULATE_INIT_CLAUSE"), root_1);
 
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:33: ^( init_key $pc1)
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1112:33: ^( init_key $pc1)
                 {
                 Object root_2 = (Object)adaptor.nil();
                 root_2 = (Object)adaptor.becomeRoot(stream_init_key.nextNode(), root_2);
@@ -9392,7 +9330,7 @@
 
                 adaptor.addChild(root_1, root_2);
                 }
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:50: ^( action_key $pc2)
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1112:50: ^( action_key $pc2)
                 {
                 Object root_2 = (Object)adaptor.nil();
                 root_2 = (Object)adaptor.becomeRoot(stream_action_key.nextNode(), root_2);
@@ -9401,9 +9339,9 @@
 
                 adaptor.addChild(root_1, root_2);
                 }
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:69: ( ^( reverse_key $pc3) )?
-                if ( stream_reverse_key.hasNext()||stream_pc3.hasNext() ) {
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:69: ^( reverse_key $pc3)
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1112:69: ( ^( reverse_key $pc3) )?
+                if ( stream_pc3.hasNext()||stream_reverse_key.hasNext() ) {
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1112:69: ^( reverse_key $pc3)
                     {
                     Object root_2 = (Object)adaptor.nil();
                     root_2 = (Object)adaptor.becomeRoot(stream_reverse_key.nextNode(), root_2);
@@ -9414,9 +9352,9 @@
                     }
 
                 }
-                stream_reverse_key.reset();
                 stream_pc3.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:90: ^( result_key $pc4)
+                stream_reverse_key.reset();
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1112:90: ^( result_key $pc4)
                 {
                 Object root_2 = (Object)adaptor.nil();
                 root_2 = (Object)adaptor.becomeRoot(stream_result_key.nextNode(), root_2);
@@ -9473,7 +9411,7 @@
     };
 
     // $ANTLR start "accumulate_paren_chunk"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:1: accumulate_paren_chunk[int locationType] : pc= accumulate_paren_chunk_data[false,$locationType] -> VT_PAREN_CHUNK[$pc.start,text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1125:1: accumulate_paren_chunk[int locationType] : pc= accumulate_paren_chunk_data[false,$locationType] -> VT_PAREN_CHUNK[$pc.start,text] ;
     public final DRLParser.accumulate_paren_chunk_return accumulate_paren_chunk(int locationType) throws RecognitionException {
         DRLParser.accumulate_paren_chunk_return retval = new DRLParser.accumulate_paren_chunk_return();
         retval.start = input.LT(1);
@@ -9488,10 +9426,10 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1129:3: (pc= accumulate_paren_chunk_data[false,$locationType] -> VT_PAREN_CHUNK[$pc.start,text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1129:5: pc= accumulate_paren_chunk_data[false,$locationType]
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1128:3: (pc= accumulate_paren_chunk_data[false,$locationType] -> VT_PAREN_CHUNK[$pc.start,text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1128:5: pc= accumulate_paren_chunk_data[false,$locationType]
             {
-            pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk4017);
+            pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk4006);
             pc=accumulate_paren_chunk_data(false, locationType);
 
             state._fsp--;
@@ -9513,7 +9451,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1130:2: -> VT_PAREN_CHUNK[$pc.start,text]
+            // 1129:2: -> VT_PAREN_CHUNK[$pc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_PAREN_CHUNK, (pc!=null?((Token)pc.start):null), text));
 
@@ -9548,7 +9486,7 @@
     };
 
     // $ANTLR start "accumulate_paren_chunk_data"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1133:1: accumulate_paren_chunk_data[boolean isRecursive, int locationType] : lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1132:1: accumulate_paren_chunk_data[boolean isRecursive, int locationType] : lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN ;
     public final DRLParser.accumulate_paren_chunk_data_return accumulate_paren_chunk_data(boolean isRecursive, int locationType) throws RecognitionException {
         DRLParser.accumulate_paren_chunk_data_return retval = new DRLParser.accumulate_paren_chunk_data_return();
         retval.start = input.LT(1);
@@ -9558,7 +9496,7 @@
         Token lp1=null;
         Token any=null;
         Token rp1=null;
-        DRLParser.accumulate_paren_chunk_data_return accumulate_paren_chunk_data222 = null;
+        DRLParser.accumulate_paren_chunk_data_return accumulate_paren_chunk_data220 = null;
 
 
         Object lp1_tree=null;
@@ -9566,12 +9504,12 @@
         Object rp1_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1134:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1134:4: lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1133:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1133:4: lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN
             {
             root_0 = (Object)adaptor.nil();
 
-            lp1=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_paren_chunk_data4041); if (state.failed) return retval;
+            lp1=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_paren_chunk_data4030); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             lp1_tree = (Object)adaptor.create(lp1);
             adaptor.addChild(root_0, lp1_tree);
@@ -9585,23 +9523,23 @@
               			}	
               		
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1142:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )*
-            loop80:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1141:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )*
+            loop78:
             do {
-                int alt80=3;
-                int LA80_0 = input.LA(1);
+                int alt78=3;
+                int LA78_0 = input.LA(1);
 
-                if ( ((LA80_0>=VT_COMPILATION_UNIT && LA80_0<=STRING)||LA80_0==COMMA||(LA80_0>=AT && LA80_0<=MULTI_LINE_COMMENT)) ) {
-                    alt80=1;
+                if ( ((LA78_0>=VT_COMPILATION_UNIT && LA78_0<=STRING)||LA78_0==COMMA||(LA78_0>=AT && LA78_0<=MULTI_LINE_COMMENT)) ) {
+                    alt78=1;
                 }
-                else if ( (LA80_0==LEFT_PAREN) ) {
-                    alt80=2;
+                else if ( (LA78_0==LEFT_PAREN) ) {
+                    alt78=2;
                 }
 
 
-                switch (alt80) {
+                switch (alt78) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1142:5: any=~ ( LEFT_PAREN | RIGHT_PAREN )
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1141:5: any=~ ( LEFT_PAREN | RIGHT_PAREN )
             	    {
             	    any=(Token)input.LT(1);
             	    if ( (input.LA(1)>=VT_COMPILATION_UNIT && input.LA(1)<=STRING)||input.LA(1)==COMMA||(input.LA(1)>=AT && input.LA(1)<=MULTI_LINE_COMMENT) ) {
@@ -9622,24 +9560,24 @@
             	    }
             	    break;
             	case 2 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1142:87: accumulate_paren_chunk_data[true,-1]
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1141:87: accumulate_paren_chunk_data[true,-1]
             	    {
-            	    pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data4069);
-            	    accumulate_paren_chunk_data222=accumulate_paren_chunk_data(true, -1);
+            	    pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data4058);
+            	    accumulate_paren_chunk_data220=accumulate_paren_chunk_data(true, -1);
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, accumulate_paren_chunk_data222.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, accumulate_paren_chunk_data220.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop80;
+            	    break loop78;
                 }
             } while (true);
 
-            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data4080); if (state.failed) return retval;
+            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data4069); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rp1_tree = (Object)adaptor.create(rp1);
             adaptor.addChild(root_0, rp1_tree);
@@ -9681,40 +9619,40 @@
     };
 
     // $ANTLR start "accumulate_id_clause"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1152:1: accumulate_id_clause : ID paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1151:1: accumulate_id_clause : ID paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) ;
     public final DRLParser.accumulate_id_clause_return accumulate_id_clause() throws RecognitionException {
         DRLParser.accumulate_id_clause_return retval = new DRLParser.accumulate_id_clause_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token ID223=null;
-        DRLParser.paren_chunk_return paren_chunk224 = null;
+        Token ID221=null;
+        DRLParser.paren_chunk_return paren_chunk222 = null;
 
 
-        Object ID223_tree=null;
+        Object ID221_tree=null;
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1153:2: ( ID paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1153:4: ID paren_chunk
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1152:2: ( ID paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1152:4: ID paren_chunk
             {
-            ID223=(Token)match(input,ID,FOLLOW_ID_in_accumulate_id_clause4096); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(ID223);
+            ID221=(Token)match(input,ID,FOLLOW_ID_in_accumulate_id_clause4085); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_ID.add(ID221);
 
             if ( state.backtracking==0 ) {
-              	emit(ID223, DroolsEditorType.IDENTIFIER);	
+              	emit(ID221, DroolsEditorType.IDENTIFIER);	
             }
-            pushFollow(FOLLOW_paren_chunk_in_accumulate_id_clause4102);
-            paren_chunk224=paren_chunk();
+            pushFollow(FOLLOW_paren_chunk_in_accumulate_id_clause4091);
+            paren_chunk222=paren_chunk();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk224.getTree());
+            if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk222.getTree());
 
 
             // AST REWRITE
-            // elements: ID, paren_chunk
+            // elements: paren_chunk, ID
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9724,9 +9662,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1155:2: -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
+            // 1154:2: -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1155:5: ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154:5: ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_ACCUMULATE_ID_CLAUSE, "VT_ACCUMULATE_ID_CLAUSE"), root_1);
@@ -9768,56 +9706,56 @@
     };
 
     // $ANTLR start "collect_statement"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1158:1: collect_statement : COLLECT LEFT_PAREN pattern_source RIGHT_PAREN -> ^( COLLECT pattern_source RIGHT_PAREN ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1157:1: collect_statement : COLLECT LEFT_PAREN pattern_source RIGHT_PAREN -> ^( COLLECT pattern_source RIGHT_PAREN ) ;
     public final DRLParser.collect_statement_return collect_statement() throws RecognitionException {
         DRLParser.collect_statement_return retval = new DRLParser.collect_statement_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token COLLECT225=null;
-        Token LEFT_PAREN226=null;
-        Token RIGHT_PAREN228=null;
-        DRLParser.pattern_source_return pattern_source227 = null;
+        Token COLLECT223=null;
+        Token LEFT_PAREN224=null;
+        Token RIGHT_PAREN226=null;
+        DRLParser.pattern_source_return pattern_source225 = null;
 
 
-        Object COLLECT225_tree=null;
-        Object LEFT_PAREN226_tree=null;
-        Object RIGHT_PAREN228_tree=null;
+        Object COLLECT223_tree=null;
+        Object LEFT_PAREN224_tree=null;
+        Object RIGHT_PAREN226_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleTokenStream stream_COLLECT=new RewriteRuleTokenStream(adaptor,"token COLLECT");
         RewriteRuleSubtreeStream stream_pattern_source=new RewriteRuleSubtreeStream(adaptor,"rule pattern_source");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1159:2: ( COLLECT LEFT_PAREN pattern_source RIGHT_PAREN -> ^( COLLECT pattern_source RIGHT_PAREN ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1159:4: COLLECT LEFT_PAREN pattern_source RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1158:2: ( COLLECT LEFT_PAREN pattern_source RIGHT_PAREN -> ^( COLLECT pattern_source RIGHT_PAREN ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1158:4: COLLECT LEFT_PAREN pattern_source RIGHT_PAREN
             {
-            COLLECT225=(Token)match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement4124); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_COLLECT.add(COLLECT225);
+            COLLECT223=(Token)match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement4113); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_COLLECT.add(COLLECT223);
 
             if ( state.backtracking==0 ) {
-              	emit(COLLECT225, DroolsEditorType.KEYWORD);	
+              	emit(COLLECT223, DroolsEditorType.KEYWORD);	
             }
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_COLLECT);	
             }
-            LEFT_PAREN226=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement4133); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN226);
+            LEFT_PAREN224=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement4122); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN224);
 
             if ( state.backtracking==0 ) {
-              	emit(LEFT_PAREN226, DroolsEditorType.SYMBOL);	
+              	emit(LEFT_PAREN224, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_pattern_source_in_collect_statement4140);
-            pattern_source227=pattern_source();
+            pushFollow(FOLLOW_pattern_source_in_collect_statement4129);
+            pattern_source225=pattern_source();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_pattern_source.add(pattern_source227.getTree());
-            RIGHT_PAREN228=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement4145); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN228);
+            if ( state.backtracking==0 ) stream_pattern_source.add(pattern_source225.getTree());
+            RIGHT_PAREN226=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement4134); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN226);
 
             if ( state.backtracking==0 ) {
-              	emit(RIGHT_PAREN228, DroolsEditorType.SYMBOL);	
+              	emit(RIGHT_PAREN226, DroolsEditorType.SYMBOL);	
             }
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION);	
@@ -9825,7 +9763,7 @@
 
 
             // AST REWRITE
-            // elements: RIGHT_PAREN, pattern_source, COLLECT
+            // elements: RIGHT_PAREN, COLLECT, pattern_source
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9835,9 +9773,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1165:2: -> ^( COLLECT pattern_source RIGHT_PAREN )
+            // 1164:2: -> ^( COLLECT pattern_source RIGHT_PAREN )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1165:5: ^( COLLECT pattern_source RIGHT_PAREN )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1164:5: ^( COLLECT pattern_source RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_COLLECT.nextNode(), root_1);
@@ -9879,46 +9817,46 @@
     };
 
     // $ANTLR start "entrypoint_statement"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1168:1: entrypoint_statement : entry_point_key entrypoint_id -> ^( entry_point_key entrypoint_id ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1167:1: entrypoint_statement : entry_point_key entrypoint_id -> ^( entry_point_key entrypoint_id ) ;
     public final DRLParser.entrypoint_statement_return entrypoint_statement() throws RecognitionException {
         DRLParser.entrypoint_statement_return retval = new DRLParser.entrypoint_statement_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        DRLParser.entry_point_key_return entry_point_key229 = null;
+        DRLParser.entry_point_key_return entry_point_key227 = null;
 
-        DRLParser.entrypoint_id_return entrypoint_id230 = null;
+        DRLParser.entrypoint_id_return entrypoint_id228 = null;
 
 
         RewriteRuleSubtreeStream stream_entrypoint_id=new RewriteRuleSubtreeStream(adaptor,"rule entrypoint_id");
         RewriteRuleSubtreeStream stream_entry_point_key=new RewriteRuleSubtreeStream(adaptor,"rule entry_point_key");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1169:2: ( entry_point_key entrypoint_id -> ^( entry_point_key entrypoint_id ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1169:4: entry_point_key entrypoint_id
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1168:2: ( entry_point_key entrypoint_id -> ^( entry_point_key entrypoint_id ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1168:4: entry_point_key entrypoint_id
             {
-            pushFollow(FOLLOW_entry_point_key_in_entrypoint_statement4172);
-            entry_point_key229=entry_point_key();
+            pushFollow(FOLLOW_entry_point_key_in_entrypoint_statement4161);
+            entry_point_key227=entry_point_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_entry_point_key.add(entry_point_key229.getTree());
+            if ( state.backtracking==0 ) stream_entry_point_key.add(entry_point_key227.getTree());
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_COLLECT);	
             }
-            pushFollow(FOLLOW_entrypoint_id_in_entrypoint_statement4180);
-            entrypoint_id230=entrypoint_id();
+            pushFollow(FOLLOW_entrypoint_id_in_entrypoint_statement4169);
+            entrypoint_id228=entrypoint_id();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_entrypoint_id.add(entrypoint_id230.getTree());
+            if ( state.backtracking==0 ) stream_entrypoint_id.add(entrypoint_id228.getTree());
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION);	
             }
 
 
             // AST REWRITE
-            // elements: entrypoint_id, entry_point_key
+            // elements: entry_point_key, entrypoint_id
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9928,9 +9866,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1173:2: -> ^( entry_point_key entrypoint_id )
+            // 1172:2: -> ^( entry_point_key entrypoint_id )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1173:5: ^( entry_point_key entrypoint_id )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1172:5: ^( entry_point_key entrypoint_id )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_entry_point_key.nextNode(), root_1);
@@ -9971,7 +9909,7 @@
     };
 
     // $ANTLR start "entrypoint_id"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1176:1: entrypoint_id : (value= ID -> VT_ENTRYPOINT_ID[$value] | value= STRING -> VT_ENTRYPOINT_ID[$value] );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1175:1: entrypoint_id : (value= ID -> VT_ENTRYPOINT_ID[$value] | value= STRING -> VT_ENTRYPOINT_ID[$value] );
     public final DRLParser.entrypoint_id_return entrypoint_id() throws RecognitionException {
         DRLParser.entrypoint_id_return retval = new DRLParser.entrypoint_id_return();
         retval.start = input.LT(1);
@@ -9985,28 +9923,28 @@
         RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1177:2: (value= ID -> VT_ENTRYPOINT_ID[$value] | value= STRING -> VT_ENTRYPOINT_ID[$value] )
-            int alt81=2;
-            int LA81_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1176:2: (value= ID -> VT_ENTRYPOINT_ID[$value] | value= STRING -> VT_ENTRYPOINT_ID[$value] )
+            int alt79=2;
+            int LA79_0 = input.LA(1);
 
-            if ( (LA81_0==ID) ) {
-                alt81=1;
+            if ( (LA79_0==ID) ) {
+                alt79=1;
             }
-            else if ( (LA81_0==STRING) ) {
-                alt81=2;
+            else if ( (LA79_0==STRING) ) {
+                alt79=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 81, 0, input);
+                    new NoViableAltException("", 79, 0, input);
 
                 throw nvae;
             }
-            switch (alt81) {
+            switch (alt79) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1177:5: value= ID
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1176:5: value= ID
                     {
-                    value=(Token)match(input,ID,FOLLOW_ID_in_entrypoint_id4206); if (state.failed) return retval; 
+                    value=(Token)match(input,ID,FOLLOW_ID_in_entrypoint_id4195); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_ID.add(value);
 
                     if ( state.backtracking==0 ) {
@@ -10025,7 +9963,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1178:3: -> VT_ENTRYPOINT_ID[$value]
+                    // 1177:3: -> VT_ENTRYPOINT_ID[$value]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_ENTRYPOINT_ID, value));
 
@@ -10035,9 +9973,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1179:5: value= STRING
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1178:5: value= STRING
                     {
-                    value=(Token)match(input,STRING,FOLLOW_STRING_in_entrypoint_id4223); if (state.failed) return retval; 
+                    value=(Token)match(input,STRING,FOLLOW_STRING_in_entrypoint_id4212); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_STRING.add(value);
 
                     if ( state.backtracking==0 ) {
@@ -10056,7 +9994,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1180:3: -> VT_ENTRYPOINT_ID[$value]
+                    // 1179:3: -> VT_ENTRYPOINT_ID[$value]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_ENTRYPOINT_ID, value));
 
@@ -10093,41 +10031,41 @@
     };
 
     // $ANTLR start "from_source"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1183:1: from_source : ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1182:1: from_source : ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) ;
     public final DRLParser.from_source_return from_source() throws RecognitionException {
         DRLParser.from_source_return retval = new DRLParser.from_source_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token ID231=null;
+        Token ID229=null;
         DRLParser.paren_chunk_return args = null;
 
-        DRLParser.expression_chain_return expression_chain232 = null;
+        DRLParser.expression_chain_return expression_chain230 = null;
 
 
-        Object ID231_tree=null;
+        Object ID229_tree=null;
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         RewriteRuleSubtreeStream stream_expression_chain=new RewriteRuleSubtreeStream(adaptor,"rule expression_chain");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:2: ( ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:4: ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1183:2: ( ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1183:4: ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )?
             {
-            ID231=(Token)match(input,ID,FOLLOW_ID_in_from_source4243); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(ID231);
+            ID229=(Token)match(input,ID,FOLLOW_ID_in_from_source4232); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_ID.add(ID229);
 
             if ( state.backtracking==0 ) {
-              	emit(ID231, DroolsEditorType.IDENTIFIER);	
+              	emit(ID229, DroolsEditorType.IDENTIFIER);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1185:3: ( ( LEFT_PAREN )=>args= paren_chunk )?
-            int alt82=2;
-            alt82 = dfa82.predict(input);
-            switch (alt82) {
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:3: ( ( LEFT_PAREN )=>args= paren_chunk )?
+            int alt80=2;
+            alt80 = dfa80.predict(input);
+            switch (alt80) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1185:5: ( LEFT_PAREN )=>args= paren_chunk
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:5: ( LEFT_PAREN )=>args= paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_from_source4258);
+                    pushFollow(FOLLOW_paren_chunk_in_from_source4247);
                     args=paren_chunk();
 
                     state._fsp--;
@@ -10139,23 +10077,23 @@
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:3: ( expression_chain )?
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1185:3: ( expression_chain )?
+            int alt81=2;
+            int LA81_0 = input.LA(1);
 
-            if ( (LA83_0==DOT) ) {
-                alt83=1;
+            if ( (LA81_0==DOT) ) {
+                alt81=1;
             }
-            switch (alt83) {
+            switch (alt81) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:3: expression_chain
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1185:3: expression_chain
                     {
-                    pushFollow(FOLLOW_expression_chain_in_from_source4265);
-                    expression_chain232=expression_chain();
+                    pushFollow(FOLLOW_expression_chain_in_from_source4254);
+                    expression_chain230=expression_chain();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_expression_chain.add(expression_chain232.getTree());
+                    if ( state.backtracking==0 ) stream_expression_chain.add(expression_chain230.getTree());
 
                     }
                     break;
@@ -10182,21 +10120,21 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1192:2: -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
+            // 1191:2: -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1192:5: ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1191:5: ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FROM_SOURCE, "VT_FROM_SOURCE"), root_1);
 
                 adaptor.addChild(root_1, stream_ID.nextNode());
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1192:25: ( paren_chunk )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1191:25: ( paren_chunk )?
                 if ( stream_paren_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_paren_chunk.nextTree());
 
                 }
                 stream_paren_chunk.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1192:38: ( expression_chain )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1191:38: ( expression_chain )?
                 if ( stream_expression_chain.hasNext() ) {
                     adaptor.addChild(root_1, stream_expression_chain.nextTree());
 
@@ -10237,97 +10175,97 @@
     };
 
     // $ANTLR start "expression_chain"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1195:1: expression_chain : DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1194:1: expression_chain : DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) ;
     public final DRLParser.expression_chain_return expression_chain() throws RecognitionException {
         DRLParser.expression_chain_return retval = new DRLParser.expression_chain_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token DOT233=null;
-        Token ID234=null;
-        DRLParser.paren_chunk_return paren_chunk235 = null;
+        Token DOT231=null;
+        Token ID232=null;
+        DRLParser.paren_chunk_return paren_chunk233 = null;
 
-        DRLParser.square_chunk_return square_chunk236 = null;
+        DRLParser.square_chunk_return square_chunk234 = null;
 
-        DRLParser.expression_chain_return expression_chain237 = null;
+        DRLParser.expression_chain_return expression_chain235 = null;
 
 
-        Object DOT233_tree=null;
-        Object ID234_tree=null;
+        Object DOT231_tree=null;
+        Object ID232_tree=null;
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         RewriteRuleSubtreeStream stream_square_chunk=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk");
         RewriteRuleSubtreeStream stream_expression_chain=new RewriteRuleSubtreeStream(adaptor,"rule expression_chain");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1196:2: ( DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1197:3: DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1195:2: ( DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1196:3: DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )?
             {
-            DOT233=(Token)match(input,DOT,FOLLOW_DOT_in_expression_chain4298); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_DOT.add(DOT233);
+            DOT231=(Token)match(input,DOT,FOLLOW_DOT_in_expression_chain4287); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_DOT.add(DOT231);
 
             if ( state.backtracking==0 ) {
-              	emit(DOT233, DroolsEditorType.IDENTIFIER);	
+              	emit(DOT231, DroolsEditorType.IDENTIFIER);	
             }
-            ID234=(Token)match(input,ID,FOLLOW_ID_in_expression_chain4305); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(ID234);
+            ID232=(Token)match(input,ID,FOLLOW_ID_in_expression_chain4294); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_ID.add(ID232);
 
             if ( state.backtracking==0 ) {
-              	emit(ID234, DroolsEditorType.IDENTIFIER);	
+              	emit(ID232, DroolsEditorType.IDENTIFIER);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1199:4: ({...}? paren_chunk | square_chunk )?
-            int alt84=3;
-            alt84 = dfa84.predict(input);
-            switch (alt84) {
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1198:4: ({...}? paren_chunk | square_chunk )?
+            int alt82=3;
+            alt82 = dfa82.predict(input);
+            switch (alt82) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1200:6: {...}? paren_chunk
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1199:6: {...}? paren_chunk
                     {
                     if ( !((input.LA(1) == LEFT_PAREN)) ) {
                         if (state.backtracking>0) {state.failed=true; return retval;}
                         throw new FailedPredicateException(input, "expression_chain", "input.LA(1) == LEFT_PAREN");
                     }
-                    pushFollow(FOLLOW_paren_chunk_in_expression_chain4321);
-                    paren_chunk235=paren_chunk();
+                    pushFollow(FOLLOW_paren_chunk_in_expression_chain4310);
+                    paren_chunk233=paren_chunk();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk235.getTree());
+                    if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk233.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1202:6: square_chunk
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1201:6: square_chunk
                     {
-                    pushFollow(FOLLOW_square_chunk_in_expression_chain4335);
-                    square_chunk236=square_chunk();
+                    pushFollow(FOLLOW_square_chunk_in_expression_chain4324);
+                    square_chunk234=square_chunk();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_square_chunk.add(square_chunk236.getTree());
+                    if ( state.backtracking==0 ) stream_square_chunk.add(square_chunk234.getTree());
 
                     }
                     break;
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1204:4: ( expression_chain )?
-            int alt85=2;
-            int LA85_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1203:4: ( expression_chain )?
+            int alt83=2;
+            int LA83_0 = input.LA(1);
 
-            if ( (LA85_0==DOT) ) {
-                alt85=1;
+            if ( (LA83_0==DOT) ) {
+                alt83=1;
             }
-            switch (alt85) {
+            switch (alt83) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1204:4: expression_chain
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1203:4: expression_chain
                     {
-                    pushFollow(FOLLOW_expression_chain_in_expression_chain4346);
-                    expression_chain237=expression_chain();
+                    pushFollow(FOLLOW_expression_chain_in_expression_chain4335);
+                    expression_chain235=expression_chain();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_expression_chain.add(expression_chain237.getTree());
+                    if ( state.backtracking==0 ) stream_expression_chain.add(expression_chain235.getTree());
 
                     }
                     break;
@@ -10337,7 +10275,7 @@
 
 
             // AST REWRITE
-            // elements: expression_chain, ID, square_chunk, paren_chunk
+            // elements: square_chunk, ID, paren_chunk, expression_chain
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -10347,27 +10285,27 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1205:4: -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
+            // 1204:4: -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1205:7: ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1204:7: ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
                 {
                 Object root_1 = (Object)adaptor.nil();
-                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_EXPRESSION_CHAIN, DOT233), root_1);
+                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_EXPRESSION_CHAIN, DOT231), root_1);
 
                 adaptor.addChild(root_1, stream_ID.nextNode());
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1205:38: ( square_chunk )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1204:38: ( square_chunk )?
                 if ( stream_square_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_square_chunk.nextTree());
 
                 }
                 stream_square_chunk.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1205:52: ( paren_chunk )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1204:52: ( paren_chunk )?
                 if ( stream_paren_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_paren_chunk.nextTree());
 
                 }
                 stream_paren_chunk.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1205:65: ( expression_chain )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1204:65: ( expression_chain )?
                 if ( stream_expression_chain.hasNext() ) {
                     adaptor.addChild(root_1, stream_expression_chain.nextTree());
 
@@ -10408,38 +10346,38 @@
     };
 
     // $ANTLR start "lhs_pattern"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1209:1: lhs_pattern : ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1208:1: lhs_pattern : ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) );
     public final DRLParser.lhs_pattern_return lhs_pattern() throws RecognitionException {
         DRLParser.lhs_pattern_return retval = new DRLParser.lhs_pattern_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        DRLParser.fact_binding_return fact_binding238 = null;
+        DRLParser.fact_binding_return fact_binding236 = null;
 
-        DRLParser.fact_return fact239 = null;
+        DRLParser.fact_return fact237 = null;
 
 
         RewriteRuleSubtreeStream stream_fact_binding=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding");
         RewriteRuleSubtreeStream stream_fact=new RewriteRuleSubtreeStream(adaptor,"rule fact");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1210:3: ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) )
-            int alt86=2;
-            int LA86_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1209:3: ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) )
+            int alt84=2;
+            int LA84_0 = input.LA(1);
 
-            if ( (LA86_0==ID) ) {
-                int LA86_1 = input.LA(2);
+            if ( (LA84_0==ID) ) {
+                int LA84_1 = input.LA(2);
 
-                if ( (LA86_1==COLON) ) {
-                    alt86=1;
+                if ( (LA84_1==COLON) ) {
+                    alt84=1;
                 }
-                else if ( (LA86_1==DOT||LA86_1==LEFT_PAREN||LA86_1==LEFT_SQUARE) ) {
-                    alt86=2;
+                else if ( (LA84_1==DOT||LA84_1==LEFT_PAREN||LA84_1==LEFT_SQUARE) ) {
+                    alt84=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 86, 1, input);
+                        new NoViableAltException("", 84, 1, input);
 
                     throw nvae;
                 }
@@ -10447,20 +10385,20 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 86, 0, input);
+                    new NoViableAltException("", 84, 0, input);
 
                 throw nvae;
             }
-            switch (alt86) {
+            switch (alt84) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1210:5: fact_binding
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1209:5: fact_binding
                     {
-                    pushFollow(FOLLOW_fact_binding_in_lhs_pattern4382);
-                    fact_binding238=fact_binding();
+                    pushFollow(FOLLOW_fact_binding_in_lhs_pattern4371);
+                    fact_binding236=fact_binding();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_fact_binding.add(fact_binding238.getTree());
+                    if ( state.backtracking==0 ) stream_fact_binding.add(fact_binding236.getTree());
 
 
                     // AST REWRITE
@@ -10474,9 +10412,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1210:18: -> ^( VT_PATTERN fact_binding )
+                    // 1209:18: -> ^( VT_PATTERN fact_binding )
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1210:21: ^( VT_PATTERN fact_binding )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1209:21: ^( VT_PATTERN fact_binding )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PATTERN, "VT_PATTERN"), root_1);
@@ -10492,14 +10430,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1211:5: fact
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1210:5: fact
                     {
-                    pushFollow(FOLLOW_fact_in_lhs_pattern4397);
-                    fact239=fact();
+                    pushFollow(FOLLOW_fact_in_lhs_pattern4386);
+                    fact237=fact();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_fact.add(fact239.getTree());
+                    if ( state.backtracking==0 ) stream_fact.add(fact237.getTree());
 
 
                     // AST REWRITE
@@ -10513,9 +10451,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1211:11: -> ^( VT_PATTERN fact )
+                    // 1210:11: -> ^( VT_PATTERN fact )
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1211:14: ^( VT_PATTERN fact )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1210:14: ^( VT_PATTERN fact )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PATTERN, "VT_PATTERN"), root_1);
@@ -10558,89 +10496,89 @@
     };
 
     // $ANTLR start "fact_binding"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1216:1: fact_binding : label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1215:1: fact_binding : label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? ) ;
     public final DRLParser.fact_binding_return fact_binding() throws RecognitionException {
         DRLParser.fact_binding_return retval = new DRLParser.fact_binding_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN242=null;
-        Token RIGHT_PAREN244=null;
-        DRLParser.label_return label240 = null;
+        Token LEFT_PAREN240=null;
+        Token RIGHT_PAREN242=null;
+        DRLParser.label_return label238 = null;
 
-        DRLParser.fact_return fact241 = null;
+        DRLParser.fact_return fact239 = null;
 
-        DRLParser.fact_binding_expression_return fact_binding_expression243 = null;
+        DRLParser.fact_binding_expression_return fact_binding_expression241 = null;
 
 
-        Object LEFT_PAREN242_tree=null;
-        Object RIGHT_PAREN244_tree=null;
+        Object LEFT_PAREN240_tree=null;
+        Object RIGHT_PAREN242_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_fact=new RewriteRuleSubtreeStream(adaptor,"rule fact");
         RewriteRuleSubtreeStream stream_fact_binding_expression=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding_expression");
         RewriteRuleSubtreeStream stream_label=new RewriteRuleSubtreeStream(adaptor,"rule label");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:3: ( label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:5: label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1216:3: ( label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1216:5: label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
             {
-            pushFollow(FOLLOW_label_in_fact_binding4425);
-            label240=label();
+            pushFollow(FOLLOW_label_in_fact_binding4414);
+            label238=label();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_label.add(label240.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1218:3: ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
-            int alt87=2;
-            int LA87_0 = input.LA(1);
+            if ( state.backtracking==0 ) stream_label.add(label238.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:3: ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( (LA87_0==ID) ) {
-                alt87=1;
+            if ( (LA85_0==ID) ) {
+                alt85=1;
             }
-            else if ( (LA87_0==LEFT_PAREN) ) {
-                alt87=2;
+            else if ( (LA85_0==LEFT_PAREN) ) {
+                alt85=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 87, 0, input);
+                    new NoViableAltException("", 85, 0, input);
 
                 throw nvae;
             }
-            switch (alt87) {
+            switch (alt85) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1218:5: fact
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:5: fact
                     {
-                    pushFollow(FOLLOW_fact_in_fact_binding4431);
-                    fact241=fact();
+                    pushFollow(FOLLOW_fact_in_fact_binding4420);
+                    fact239=fact();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_fact.add(fact241.getTree());
+                    if ( state.backtracking==0 ) stream_fact.add(fact239.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1219:6: LEFT_PAREN fact_binding_expression RIGHT_PAREN
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1218:6: LEFT_PAREN fact_binding_expression RIGHT_PAREN
                     {
-                    LEFT_PAREN242=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding4438); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN242);
+                    LEFT_PAREN240=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding4427); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN240);
 
                     if ( state.backtracking==0 ) {
-                      	emit(LEFT_PAREN242, DroolsEditorType.SYMBOL);	
+                      	emit(LEFT_PAREN240, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_fact_binding_expression_in_fact_binding4446);
-                    fact_binding_expression243=fact_binding_expression();
+                    pushFollow(FOLLOW_fact_binding_expression_in_fact_binding4435);
+                    fact_binding_expression241=fact_binding_expression();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_fact_binding_expression.add(fact_binding_expression243.getTree());
-                    RIGHT_PAREN244=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding4454); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN244);
+                    if ( state.backtracking==0 ) stream_fact_binding_expression.add(fact_binding_expression241.getTree());
+                    RIGHT_PAREN242=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding4443); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN242);
 
                     if ( state.backtracking==0 ) {
-                      	emit(RIGHT_PAREN244, DroolsEditorType.SYMBOL);	
+                      	emit(RIGHT_PAREN242, DroolsEditorType.SYMBOL);	
                     }
 
                     }
@@ -10651,7 +10589,7 @@
 
 
             // AST REWRITE
-            // elements: fact_binding_expression, fact, label, RIGHT_PAREN
+            // elements: fact, RIGHT_PAREN, label, fact_binding_expression
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -10661,27 +10599,27 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1223:3: -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? )
+            // 1222:3: -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:6: ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1222:6: ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FACT_BINDING, "VT_FACT_BINDING"), root_1);
 
                 adaptor.addChild(root_1, stream_label.nextTree());
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:30: ( fact )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1222:30: ( fact )?
                 if ( stream_fact.hasNext() ) {
                     adaptor.addChild(root_1, stream_fact.nextTree());
 
                 }
                 stream_fact.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:36: ( fact_binding_expression )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1222:36: ( fact_binding_expression )?
                 if ( stream_fact_binding_expression.hasNext() ) {
                     adaptor.addChild(root_1, stream_fact_binding_expression.nextTree());
 
                 }
                 stream_fact_binding_expression.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:61: ( RIGHT_PAREN )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1222:61: ( RIGHT_PAREN )?
                 if ( stream_RIGHT_PAREN.hasNext() ) {
                     adaptor.addChild(root_1, stream_RIGHT_PAREN.nextNode());
 
@@ -10722,7 +10660,7 @@
     };
 
     // $ANTLR start "fact_binding_expression"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1226:1: fact_binding_expression : ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1225:1: fact_binding_expression : ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* ;
     public final DRLParser.fact_binding_expression_return fact_binding_expression() throws RecognitionException {
         DRLParser.fact_binding_expression_return retval = new DRLParser.fact_binding_expression_return();
         retval.start = input.LT(1);
@@ -10732,9 +10670,9 @@
         Token pipe=null;
         DRLParser.or_key_return value = null;
 
-        DRLParser.fact_return fact245 = null;
+        DRLParser.fact_return fact243 = null;
 
-        DRLParser.fact_return fact246 = null;
+        DRLParser.fact_return fact244 = null;
 
 
         Object pipe_tree=null;
@@ -10745,18 +10683,18 @@
         	Token orToken = null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:3: ( ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:5: ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:3: ( ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:5: ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:5: ( fact -> fact )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:6: fact
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:5: ( fact -> fact )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:6: fact
             {
-            pushFollow(FOLLOW_fact_in_fact_binding_expression4495);
-            fact245=fact();
+            pushFollow(FOLLOW_fact_in_fact_binding_expression4484);
+            fact243=fact();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_fact.add(fact245.getTree());
+            if ( state.backtracking==0 ) stream_fact.add(fact243.getTree());
 
 
             // AST REWRITE
@@ -10770,7 +10708,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1229:11: -> fact
+            // 1228:11: -> fact
             {
                 adaptor.addChild(root_0, stream_fact.nextTree());
 
@@ -10779,46 +10717,46 @@
             retval.tree = root_0;}
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:20: ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
-            loop89:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:20: ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
+            loop87:
             do {
-                int alt89=2;
-                int LA89_0 = input.LA(1);
+                int alt87=2;
+                int LA87_0 = input.LA(1);
 
-                if ( (LA89_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.OR))))) {
-                    alt89=1;
+                if ( (LA87_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.OR))))) {
+                    alt87=1;
                 }
-                else if ( (LA89_0==DOUBLE_PIPE) ) {
-                    alt89=1;
+                else if ( (LA87_0==DOUBLE_PIPE) ) {
+                    alt87=1;
                 }
 
 
-                switch (alt89) {
+                switch (alt87) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:22: (value= or_key | pipe= DOUBLE_PIPE ) fact
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:22: (value= or_key | pipe= DOUBLE_PIPE ) fact
             	    {
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:22: (value= or_key | pipe= DOUBLE_PIPE )
-            	    int alt88=2;
-            	    int LA88_0 = input.LA(1);
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:22: (value= or_key | pipe= DOUBLE_PIPE )
+            	    int alt86=2;
+            	    int LA86_0 = input.LA(1);
 
-            	    if ( (LA88_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.OR))))) {
-            	        alt88=1;
+            	    if ( (LA86_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.OR))))) {
+            	        alt86=1;
             	    }
-            	    else if ( (LA88_0==DOUBLE_PIPE) ) {
-            	        alt88=2;
+            	    else if ( (LA86_0==DOUBLE_PIPE) ) {
+            	        alt86=2;
             	    }
             	    else {
             	        if (state.backtracking>0) {state.failed=true; return retval;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("", 88, 0, input);
+            	            new NoViableAltException("", 86, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt88) {
+            	    switch (alt86) {
             	        case 1 :
-            	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:23: value= or_key
+            	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:23: value= or_key
             	            {
-            	            pushFollow(FOLLOW_or_key_in_fact_binding_expression4507);
+            	            pushFollow(FOLLOW_or_key_in_fact_binding_expression4496);
             	            value=or_key();
 
             	            state._fsp--;
@@ -10831,9 +10769,9 @@
             	            }
             	            break;
             	        case 2 :
-            	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:62: pipe= DOUBLE_PIPE
+            	            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:62: pipe= DOUBLE_PIPE
             	            {
-            	            pipe=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_binding_expression4513); if (state.failed) return retval; 
+            	            pipe=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_binding_expression4502); if (state.failed) return retval; 
             	            if ( state.backtracking==0 ) stream_DOUBLE_PIPE.add(pipe);
 
             	            if ( state.backtracking==0 ) {
@@ -10845,12 +10783,12 @@
 
             	    }
 
-            	    pushFollow(FOLLOW_fact_in_fact_binding_expression4518);
-            	    fact246=fact();
+            	    pushFollow(FOLLOW_fact_in_fact_binding_expression4507);
+            	    fact244=fact();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) stream_fact.add(fact246.getTree());
+            	    if ( state.backtracking==0 ) stream_fact.add(fact244.getTree());
 
 
             	    // AST REWRITE
@@ -10864,9 +10802,9 @@
             	    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             	    root_0 = (Object)adaptor.nil();
-            	    // 1230:3: -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
+            	    // 1229:3: -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
             	    {
-            	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1230:6: ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
+            	        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:6: ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
             	        {
             	        Object root_1 = (Object)adaptor.nil();
             	        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FACT_OR, orToken), root_1);
@@ -10884,7 +10822,7 @@
             	    break;
 
             	default :
-            	    break loop89;
+            	    break loop87;
                 }
             } while (true);
 
@@ -10917,24 +10855,24 @@
     };
 
     // $ANTLR start "fact"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1233:1: fact : pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN ( constr_parameters )? -> ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1232:1: fact : pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN ( constr_parameters )? -> ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN ) ;
     public final DRLParser.fact_return fact() throws RecognitionException {
         DRLParser.fact_return retval = new DRLParser.fact_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN248=null;
-        Token RIGHT_PAREN250=null;
-        DRLParser.pattern_type_return pattern_type247 = null;
+        Token LEFT_PAREN246=null;
+        Token RIGHT_PAREN248=null;
+        DRLParser.pattern_type_return pattern_type245 = null;
 
-        DRLParser.constraints_return constraints249 = null;
+        DRLParser.constraints_return constraints247 = null;
 
-        DRLParser.constr_parameters_return constr_parameters251 = null;
+        DRLParser.constr_parameters_return constr_parameters249 = null;
 
 
-        Object LEFT_PAREN248_tree=null;
-        Object RIGHT_PAREN250_tree=null;
+        Object LEFT_PAREN246_tree=null;
+        Object RIGHT_PAREN248_tree=null;
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_constr_parameters=new RewriteRuleSubtreeStream(adaptor,"rule constr_parameters");
@@ -10942,70 +10880,70 @@
         RewriteRuleSubtreeStream stream_pattern_type=new RewriteRuleSubtreeStream(adaptor,"rule pattern_type");
          boolean isFailedOnConstraints = true; pushParaphrases(DroolsParaphraseTypes.PATTERN); 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1236:2: ( pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN ( constr_parameters )? -> ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1236:4: pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN ( constr_parameters )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1235:2: ( pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN ( constr_parameters )? -> ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1235:4: pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN ( constr_parameters )?
             {
-            pushFollow(FOLLOW_pattern_type_in_fact4558);
-            pattern_type247=pattern_type();
+            pushFollow(FOLLOW_pattern_type_in_fact4547);
+            pattern_type245=pattern_type();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_pattern_type.add(pattern_type247.getTree());
-            LEFT_PAREN248=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact4563); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN248);
+            if ( state.backtracking==0 ) stream_pattern_type.add(pattern_type245.getTree());
+            LEFT_PAREN246=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact4552); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN246);
 
             if ( state.backtracking==0 ) {
-              	emit(LEFT_PAREN248, DroolsEditorType.SYMBOL);	
+              	emit(LEFT_PAREN246, DroolsEditorType.SYMBOL);	
             }
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_CONDITION_START);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1239:4: ( constraints )?
-            int alt90=2;
-            int LA90_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1238:4: ( constraints )?
+            int alt88=2;
+            int LA88_0 = input.LA(1);
 
-            if ( (LA90_0==ID||LA90_0==LEFT_PAREN) ) {
-                alt90=1;
+            if ( (LA88_0==ID||LA88_0==LEFT_PAREN) ) {
+                alt88=1;
             }
-            switch (alt90) {
+            switch (alt88) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1239:4: constraints
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1238:4: constraints
                     {
-                    pushFollow(FOLLOW_constraints_in_fact4574);
-                    constraints249=constraints();
+                    pushFollow(FOLLOW_constraints_in_fact4563);
+                    constraints247=constraints();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_constraints.add(constraints249.getTree());
+                    if ( state.backtracking==0 ) stream_constraints.add(constraints247.getTree());
 
                     }
                     break;
 
             }
 
-            RIGHT_PAREN250=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact4580); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN250);
+            RIGHT_PAREN248=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact4569); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN248);
 
             if ( state.backtracking==0 ) {
               	isFailedOnConstraints = false;	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1241:4: ( constr_parameters )?
-            int alt91=2;
-            int LA91_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1240:4: ( constr_parameters )?
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( (LA91_0==AT) ) {
-                alt91=1;
+            if ( (LA89_0==AT) ) {
+                alt89=1;
             }
-            switch (alt91) {
+            switch (alt89) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1241:4: constr_parameters
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1240:4: constr_parameters
                     {
-                    pushFollow(FOLLOW_constr_parameters_in_fact4587);
-                    constr_parameters251=constr_parameters();
+                    pushFollow(FOLLOW_constr_parameters_in_fact4576);
+                    constr_parameters249=constr_parameters();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters251.getTree());
+                    if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters249.getTree());
 
                     }
                     break;
@@ -11013,15 +10951,15 @@
             }
 
             if ( state.backtracking==0 ) {
-              	if ((RIGHT_PAREN250!=null?RIGHT_PAREN250.getText():null).equals(")") ){ //WORKAROUND FOR ANTLR BUG!
-              			emit(RIGHT_PAREN250, DroolsEditorType.SYMBOL);
+              	if ((RIGHT_PAREN248!=null?RIGHT_PAREN248.getText():null).equals(")") ){ //WORKAROUND FOR ANTLR BUG!
+              			emit(RIGHT_PAREN248, DroolsEditorType.SYMBOL);
               			emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION);
               		}	
             }
 
 
             // AST REWRITE
-            // elements: constr_parameters, pattern_type, RIGHT_PAREN, constraints
+            // elements: constraints, RIGHT_PAREN, constr_parameters, pattern_type
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -11031,21 +10969,21 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1249:2: -> ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN )
+            // 1248:2: -> ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1249:5: ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1248:5: ^( VT_FACT pattern_type ( constraints )? ( constr_parameters )? RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FACT, "VT_FACT"), root_1);
 
                 adaptor.addChild(root_1, stream_pattern_type.nextTree());
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1249:28: ( constraints )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1248:28: ( constraints )?
                 if ( stream_constraints.hasNext() ) {
                     adaptor.addChild(root_1, stream_constraints.nextTree());
 
                 }
                 stream_constraints.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1249:41: ( constr_parameters )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1248:41: ( constr_parameters )?
                 if ( stream_constr_parameters.hasNext() ) {
                     adaptor.addChild(root_1, stream_constr_parameters.nextTree());
 
@@ -11097,65 +11035,65 @@
     };
 
     // $ANTLR start "constraints"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1259:1: constraints : constraint ( COMMA constraint )* ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1258:1: constraints : constraint ( COMMA constraint )* ;
     public final DRLParser.constraints_return constraints() throws RecognitionException {
         DRLParser.constraints_return retval = new DRLParser.constraints_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token COMMA253=null;
+        Token COMMA251=null;
+        DRLParser.constraint_return constraint250 = null;
+
         DRLParser.constraint_return constraint252 = null;
 
-        DRLParser.constraint_return constraint254 = null;
 
+        Object COMMA251_tree=null;
 
-        Object COMMA253_tree=null;
-
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1260:2: ( constraint ( COMMA constraint )* )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1260:4: constraint ( COMMA constraint )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1259:2: ( constraint ( COMMA constraint )* )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1259:4: constraint ( COMMA constraint )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_constraint_in_constraints4633);
-            constraint252=constraint();
+            pushFollow(FOLLOW_constraint_in_constraints4622);
+            constraint250=constraint();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint252.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1260:15: ( COMMA constraint )*
-            loop92:
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint250.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1259:15: ( COMMA constraint )*
+            loop90:
             do {
-                int alt92=2;
-                int LA92_0 = input.LA(1);
+                int alt90=2;
+                int LA90_0 = input.LA(1);
 
-                if ( (LA92_0==COMMA) ) {
-                    alt92=1;
+                if ( (LA90_0==COMMA) ) {
+                    alt90=1;
                 }
 
 
-                switch (alt92) {
+                switch (alt90) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1260:17: COMMA constraint
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1259:17: COMMA constraint
             	    {
-            	    COMMA253=(Token)match(input,COMMA,FOLLOW_COMMA_in_constraints4637); if (state.failed) return retval;
+            	    COMMA251=(Token)match(input,COMMA,FOLLOW_COMMA_in_constraints4626); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
-            	      	emit(COMMA253, DroolsEditorType.SYMBOL);
+            	      	emit(COMMA251, DroolsEditorType.SYMBOL);
             	      		emit(Location.LOCATION_LHS_INSIDE_CONDITION_START);	
             	    }
-            	    pushFollow(FOLLOW_constraint_in_constraints4644);
-            	    constraint254=constraint();
+            	    pushFollow(FOLLOW_constraint_in_constraints4633);
+            	    constraint252=constraint();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint254.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint252.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop92;
+            	    break loop90;
                 }
             } while (true);
 
@@ -11188,29 +11126,29 @@
     };
 
     // $ANTLR start "constraint"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1265:1: constraint : or_constr ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1264:1: constraint : or_constr ;
     public final DRLParser.constraint_return constraint() throws RecognitionException {
         DRLParser.constraint_return retval = new DRLParser.constraint_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        DRLParser.or_constr_return or_constr255 = null;
+        DRLParser.or_constr_return or_constr253 = null;
 
 
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1266:2: ( or_constr )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1266:4: or_constr
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1265:2: ( or_constr )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1265:4: or_constr
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_or_constr_in_constraint4658);
-            or_constr255=or_constr();
+            pushFollow(FOLLOW_or_constr_in_constraint4647);
+            or_constr253=or_constr();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, or_constr255.getTree());
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, or_constr253.getTree());
 
             }
 
@@ -11240,65 +11178,65 @@
     };
 
     // $ANTLR start "or_constr"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1272:1: or_constr : or_constr_config ( DOUBLE_PIPE and_constr )* ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:1: or_constr : or_constr_config ( DOUBLE_PIPE and_constr )* ;
     public final DRLParser.or_constr_return or_constr() throws RecognitionException {
         DRLParser.or_constr_return retval = new DRLParser.or_constr_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token DOUBLE_PIPE257=null;
-        DRLParser.or_constr_config_return or_constr_config256 = null;
+        Token DOUBLE_PIPE255=null;
+        DRLParser.or_constr_config_return or_constr_config254 = null;
 
-        DRLParser.and_constr_return and_constr258 = null;
+        DRLParser.and_constr_return and_constr256 = null;
 
 
-        Object DOUBLE_PIPE257_tree=null;
+        Object DOUBLE_PIPE255_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1273:3: ( or_constr_config ( DOUBLE_PIPE and_constr )* )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1274:6: or_constr_config ( DOUBLE_PIPE and_constr )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1272:3: ( or_constr_config ( DOUBLE_PIPE and_constr )* )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1273:6: or_constr_config ( DOUBLE_PIPE and_constr )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_or_constr_config_in_or_constr4691);
-            or_constr_config256=or_constr_config();
+            pushFollow(FOLLOW_or_constr_config_in_or_constr4680);
+            or_constr_config254=or_constr_config();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, or_constr_config256.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1276:9: ( DOUBLE_PIPE and_constr )*
-            loop93:
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, or_constr_config254.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1275:9: ( DOUBLE_PIPE and_constr )*
+            loop91:
             do {
-                int alt93=2;
-                int LA93_0 = input.LA(1);
+                int alt91=2;
+                int LA91_0 = input.LA(1);
 
-                if ( (LA93_0==DOUBLE_PIPE) ) {
-                    alt93=1;
+                if ( (LA91_0==DOUBLE_PIPE) ) {
+                    alt91=1;
                 }
 
 
-                switch (alt93) {
+                switch (alt91) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1276:10: DOUBLE_PIPE and_constr
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1275:10: DOUBLE_PIPE and_constr
             	    {
-            	    DOUBLE_PIPE257=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr4713); if (state.failed) return retval;
+            	    DOUBLE_PIPE255=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr4702); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
-            	    DOUBLE_PIPE257_tree = (Object)adaptor.create(DOUBLE_PIPE257);
-            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE257_tree, root_0);
+            	    DOUBLE_PIPE255_tree = (Object)adaptor.create(DOUBLE_PIPE255);
+            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE255_tree, root_0);
             	    }
-            	    pushFollow(FOLLOW_and_constr_in_or_constr4749);
-            	    and_constr258=and_constr();
+            	    pushFollow(FOLLOW_and_constr_in_or_constr4738);
+            	    and_constr256=and_constr();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, and_constr258.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, and_constr256.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop93;
+            	    break loop91;
                 }
             } while (true);
 
@@ -11331,62 +11269,62 @@
     };
 
     // $ANTLR start "or_constr_config"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1282:1: or_constr_config : ( ( and_constr SINGLE_PIPE )=> and_constr SINGLE_PIPE constr_parameters and_constr -> ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr ) | and_constr );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1281:1: or_constr_config : ( ( and_constr SINGLE_PIPE )=> and_constr SINGLE_PIPE constr_parameters and_constr -> ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr ) | and_constr );
     public final DRLParser.or_constr_config_return or_constr_config() throws RecognitionException {
         DRLParser.or_constr_config_return retval = new DRLParser.or_constr_config_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token SINGLE_PIPE260=null;
-        DRLParser.and_constr_return and_constr259 = null;
+        Token SINGLE_PIPE258=null;
+        DRLParser.and_constr_return and_constr257 = null;
 
-        DRLParser.constr_parameters_return constr_parameters261 = null;
+        DRLParser.constr_parameters_return constr_parameters259 = null;
 
-        DRLParser.and_constr_return and_constr262 = null;
+        DRLParser.and_constr_return and_constr260 = null;
 
-        DRLParser.and_constr_return and_constr263 = null;
+        DRLParser.and_constr_return and_constr261 = null;
 
 
-        Object SINGLE_PIPE260_tree=null;
+        Object SINGLE_PIPE258_tree=null;
         RewriteRuleTokenStream stream_SINGLE_PIPE=new RewriteRuleTokenStream(adaptor,"token SINGLE_PIPE");
         RewriteRuleSubtreeStream stream_constr_parameters=new RewriteRuleSubtreeStream(adaptor,"rule constr_parameters");
         RewriteRuleSubtreeStream stream_and_constr=new RewriteRuleSubtreeStream(adaptor,"rule and_constr");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1283:3: ( ( and_constr SINGLE_PIPE )=> and_constr SINGLE_PIPE constr_parameters and_constr -> ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr ) | and_constr )
-            int alt94=2;
-            int LA94_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1282:3: ( ( and_constr SINGLE_PIPE )=> and_constr SINGLE_PIPE constr_parameters and_constr -> ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr ) | and_constr )
+            int alt92=2;
+            int LA92_0 = input.LA(1);
 
-            if ( (LA94_0==ID) ) {
-                int LA94_1 = input.LA(2);
+            if ( (LA92_0==ID) ) {
+                int LA92_1 = input.LA(2);
 
-                if ( (((synpred12_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||synpred12_DRL()||(synpred12_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL)))))) ) {
-                    alt94=1;
+                if ( (((synpred12_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||(synpred12_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||synpred12_DRL())) ) {
+                    alt92=1;
                 }
                 else if ( (true) ) {
-                    alt94=2;
+                    alt92=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 94, 1, input);
+                        new NoViableAltException("", 92, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA94_0==LEFT_PAREN) ) {
-                int LA94_2 = input.LA(2);
+            else if ( (LA92_0==LEFT_PAREN) ) {
+                int LA92_2 = input.LA(2);
 
                 if ( (synpred12_DRL()) ) {
-                    alt94=1;
+                    alt92=1;
                 }
                 else if ( (true) ) {
-                    alt94=2;
+                    alt92=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 94, 2, input);
+                        new NoViableAltException("", 92, 2, input);
 
                     throw nvae;
                 }
@@ -11394,39 +11332,39 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 94, 0, input);
+                    new NoViableAltException("", 92, 0, input);
 
                 throw nvae;
             }
-            switch (alt94) {
+            switch (alt92) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1284:5: ( and_constr SINGLE_PIPE )=> and_constr SINGLE_PIPE constr_parameters and_constr
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1283:5: ( and_constr SINGLE_PIPE )=> and_constr SINGLE_PIPE constr_parameters and_constr
                     {
-                    pushFollow(FOLLOW_and_constr_in_or_constr_config4808);
-                    and_constr259=and_constr();
+                    pushFollow(FOLLOW_and_constr_in_or_constr_config4797);
+                    and_constr257=and_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_and_constr.add(and_constr259.getTree());
-                    SINGLE_PIPE260=(Token)match(input,SINGLE_PIPE,FOLLOW_SINGLE_PIPE_in_or_constr_config4819); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_SINGLE_PIPE.add(SINGLE_PIPE260);
+                    if ( state.backtracking==0 ) stream_and_constr.add(and_constr257.getTree());
+                    SINGLE_PIPE258=(Token)match(input,SINGLE_PIPE,FOLLOW_SINGLE_PIPE_in_or_constr_config4808); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_SINGLE_PIPE.add(SINGLE_PIPE258);
 
-                    pushFollow(FOLLOW_constr_parameters_in_or_constr_config4868);
-                    constr_parameters261=constr_parameters();
+                    pushFollow(FOLLOW_constr_parameters_in_or_constr_config4857);
+                    constr_parameters259=constr_parameters();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters261.getTree());
-                    pushFollow(FOLLOW_and_constr_in_or_constr_config4894);
-                    and_constr262=and_constr();
+                    if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters259.getTree());
+                    pushFollow(FOLLOW_and_constr_in_or_constr_config4883);
+                    and_constr260=and_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_and_constr.add(and_constr262.getTree());
+                    if ( state.backtracking==0 ) stream_and_constr.add(and_constr260.getTree());
 
 
                     // AST REWRITE
-                    // elements: and_constr, constr_parameters, and_constr, SINGLE_PIPE
+                    // elements: SINGLE_PIPE, and_constr, constr_parameters, and_constr
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -11436,14 +11374,14 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1292:7: -> ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr )
+                    // 1291:7: -> ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr )
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1292:10: ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:10: ^( SINGLE_PIPE ( constr_parameters )? and_constr and_constr )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot(stream_SINGLE_PIPE.nextNode(), root_1);
 
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1294:13: ( constr_parameters )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:13: ( constr_parameters )?
                         if ( stream_constr_parameters.hasNext() ) {
                             adaptor.addChild(root_1, stream_constr_parameters.nextTree());
 
@@ -11461,16 +11399,16 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1297:5: and_constr
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1296:5: and_constr
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_and_constr_in_or_constr_config4964);
-                    and_constr263=and_constr();
+                    pushFollow(FOLLOW_and_constr_in_or_constr_config4953);
+                    and_constr261=and_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, and_constr263.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, and_constr261.getTree());
 
                     }
                     break;
@@ -11502,65 +11440,65 @@
     };
 
     // $ANTLR start "and_constr"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1300:1: and_constr : and_constr_config ( DOUBLE_AMPER unary_constr )* ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1299:1: and_constr : and_constr_config ( DOUBLE_AMPER unary_constr )* ;
     public final DRLParser.and_constr_return and_constr() throws RecognitionException {
         DRLParser.and_constr_return retval = new DRLParser.and_constr_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token DOUBLE_AMPER265=null;
-        DRLParser.and_constr_config_return and_constr_config264 = null;
+        Token DOUBLE_AMPER263=null;
+        DRLParser.and_constr_config_return and_constr_config262 = null;
 
-        DRLParser.unary_constr_return unary_constr266 = null;
+        DRLParser.unary_constr_return unary_constr264 = null;
 
 
-        Object DOUBLE_AMPER265_tree=null;
+        Object DOUBLE_AMPER263_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1302:3: ( and_constr_config ( DOUBLE_AMPER unary_constr )* )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1303:11: and_constr_config ( DOUBLE_AMPER unary_constr )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1301:3: ( and_constr_config ( DOUBLE_AMPER unary_constr )* )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1302:11: and_constr_config ( DOUBLE_AMPER unary_constr )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_and_constr_config_in_and_constr5006);
-            and_constr_config264=and_constr_config();
+            pushFollow(FOLLOW_and_constr_config_in_and_constr4995);
+            and_constr_config262=and_constr_config();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, and_constr_config264.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1305:11: ( DOUBLE_AMPER unary_constr )*
-            loop95:
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, and_constr_config262.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1304:11: ( DOUBLE_AMPER unary_constr )*
+            loop93:
             do {
-                int alt95=2;
-                int LA95_0 = input.LA(1);
+                int alt93=2;
+                int LA93_0 = input.LA(1);
 
-                if ( (LA95_0==DOUBLE_AMPER) ) {
-                    alt95=1;
+                if ( (LA93_0==DOUBLE_AMPER) ) {
+                    alt93=1;
                 }
 
 
-                switch (alt95) {
+                switch (alt93) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1305:12: DOUBLE_AMPER unary_constr
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1304:12: DOUBLE_AMPER unary_constr
             	    {
-            	    DOUBLE_AMPER265=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr5030); if (state.failed) return retval;
+            	    DOUBLE_AMPER263=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr5019); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
-            	    DOUBLE_AMPER265_tree = (Object)adaptor.create(DOUBLE_AMPER265);
-            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER265_tree, root_0);
+            	    DOUBLE_AMPER263_tree = (Object)adaptor.create(DOUBLE_AMPER263);
+            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER263_tree, root_0);
             	    }
-            	    pushFollow(FOLLOW_unary_constr_in_and_constr5069);
-            	    unary_constr266=unary_constr();
+            	    pushFollow(FOLLOW_unary_constr_in_and_constr5058);
+            	    unary_constr264=unary_constr();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, unary_constr266.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, unary_constr264.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop95;
+            	    break loop93;
                 }
             } while (true);
 
@@ -11593,62 +11531,62 @@
     };
 
     // $ANTLR start "and_constr_config"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1312:1: and_constr_config : ( ( unary_constr SINGLE_AMPER )=> unary_constr SINGLE_AMPER ( constr_parameters )? unary_constr -> ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr ) | unary_constr );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1311:1: and_constr_config : ( ( unary_constr SINGLE_AMPER )=> unary_constr SINGLE_AMPER ( constr_parameters )? unary_constr -> ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr ) | unary_constr );
     public final DRLParser.and_constr_config_return and_constr_config() throws RecognitionException {
         DRLParser.and_constr_config_return retval = new DRLParser.and_constr_config_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token SINGLE_AMPER268=null;
-        DRLParser.unary_constr_return unary_constr267 = null;
+        Token SINGLE_AMPER266=null;
+        DRLParser.unary_constr_return unary_constr265 = null;
 
-        DRLParser.constr_parameters_return constr_parameters269 = null;
+        DRLParser.constr_parameters_return constr_parameters267 = null;
 
-        DRLParser.unary_constr_return unary_constr270 = null;
+        DRLParser.unary_constr_return unary_constr268 = null;
 
-        DRLParser.unary_constr_return unary_constr271 = null;
+        DRLParser.unary_constr_return unary_constr269 = null;
 
 
-        Object SINGLE_AMPER268_tree=null;
+        Object SINGLE_AMPER266_tree=null;
         RewriteRuleTokenStream stream_SINGLE_AMPER=new RewriteRuleTokenStream(adaptor,"token SINGLE_AMPER");
         RewriteRuleSubtreeStream stream_constr_parameters=new RewriteRuleSubtreeStream(adaptor,"rule constr_parameters");
         RewriteRuleSubtreeStream stream_unary_constr=new RewriteRuleSubtreeStream(adaptor,"rule unary_constr");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1313:3: ( ( unary_constr SINGLE_AMPER )=> unary_constr SINGLE_AMPER ( constr_parameters )? unary_constr -> ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr ) | unary_constr )
-            int alt97=2;
-            int LA97_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1312:3: ( ( unary_constr SINGLE_AMPER )=> unary_constr SINGLE_AMPER ( constr_parameters )? unary_constr -> ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr ) | unary_constr )
+            int alt95=2;
+            int LA95_0 = input.LA(1);
 
-            if ( (LA97_0==ID) ) {
-                int LA97_1 = input.LA(2);
+            if ( (LA95_0==ID) ) {
+                int LA95_1 = input.LA(2);
 
                 if ( (((synpred13_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||synpred13_DRL())) ) {
-                    alt97=1;
+                    alt95=1;
                 }
                 else if ( (true) ) {
-                    alt97=2;
+                    alt95=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 97, 1, input);
+                        new NoViableAltException("", 95, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA97_0==LEFT_PAREN) ) {
-                int LA97_2 = input.LA(2);
+            else if ( (LA95_0==LEFT_PAREN) ) {
+                int LA95_2 = input.LA(2);
 
                 if ( (synpred13_DRL()) ) {
-                    alt97=1;
+                    alt95=1;
                 }
                 else if ( (true) ) {
-                    alt97=2;
+                    alt95=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 97, 2, input);
+                        new NoViableAltException("", 95, 2, input);
 
                     throw nvae;
                 }
@@ -11656,56 +11594,56 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 97, 0, input);
+                    new NoViableAltException("", 95, 0, input);
 
                 throw nvae;
             }
-            switch (alt97) {
+            switch (alt95) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1314:5: ( unary_constr SINGLE_AMPER )=> unary_constr SINGLE_AMPER ( constr_parameters )? unary_constr
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1313:5: ( unary_constr SINGLE_AMPER )=> unary_constr SINGLE_AMPER ( constr_parameters )? unary_constr
                     {
-                    pushFollow(FOLLOW_unary_constr_in_and_constr_config5149);
-                    unary_constr267=unary_constr();
+                    pushFollow(FOLLOW_unary_constr_in_and_constr_config5138);
+                    unary_constr265=unary_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_unary_constr.add(unary_constr267.getTree());
-                    SINGLE_AMPER268=(Token)match(input,SINGLE_AMPER,FOLLOW_SINGLE_AMPER_in_and_constr_config5160); if (state.failed) return retval; 
-                    if ( state.backtracking==0 ) stream_SINGLE_AMPER.add(SINGLE_AMPER268);
+                    if ( state.backtracking==0 ) stream_unary_constr.add(unary_constr265.getTree());
+                    SINGLE_AMPER266=(Token)match(input,SINGLE_AMPER,FOLLOW_SINGLE_AMPER_in_and_constr_config5149); if (state.failed) return retval; 
+                    if ( state.backtracking==0 ) stream_SINGLE_AMPER.add(SINGLE_AMPER266);
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1320:12: ( constr_parameters )?
-                    int alt96=2;
-                    int LA96_0 = input.LA(1);
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1319:12: ( constr_parameters )?
+                    int alt94=2;
+                    int LA94_0 = input.LA(1);
 
-                    if ( (LA96_0==AT) ) {
-                        alt96=1;
+                    if ( (LA94_0==AT) ) {
+                        alt94=1;
                     }
-                    switch (alt96) {
+                    switch (alt94) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1320:12: constr_parameters
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1319:12: constr_parameters
                             {
-                            pushFollow(FOLLOW_constr_parameters_in_and_constr_config5209);
-                            constr_parameters269=constr_parameters();
+                            pushFollow(FOLLOW_constr_parameters_in_and_constr_config5198);
+                            constr_parameters267=constr_parameters();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters269.getTree());
+                            if ( state.backtracking==0 ) stream_constr_parameters.add(constr_parameters267.getTree());
 
                             }
                             break;
 
                     }
 
-                    pushFollow(FOLLOW_unary_constr_in_and_constr_config5240);
-                    unary_constr270=unary_constr();
+                    pushFollow(FOLLOW_unary_constr_in_and_constr_config5229);
+                    unary_constr268=unary_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_unary_constr.add(unary_constr270.getTree());
+                    if ( state.backtracking==0 ) stream_unary_constr.add(unary_constr268.getTree());
 
 
                     // AST REWRITE
-                    // elements: unary_constr, constr_parameters, unary_constr, SINGLE_AMPER
+                    // elements: SINGLE_AMPER, constr_parameters, unary_constr, unary_constr
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -11715,14 +11653,14 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1322:7: -> ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr )
+                    // 1321:7: -> ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr )
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1322:10: ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1321:10: ^( SINGLE_AMPER ( constr_parameters )? unary_constr unary_constr )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot(stream_SINGLE_AMPER.nextNode(), root_1);
 
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1324:13: ( constr_parameters )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1323:13: ( constr_parameters )?
                         if ( stream_constr_parameters.hasNext() ) {
                             adaptor.addChild(root_1, stream_constr_parameters.nextTree());
 
@@ -11740,16 +11678,16 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1327:5: unary_constr
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:5: unary_constr
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_unary_constr_in_and_constr_config5321);
-                    unary_constr271=unary_constr();
+                    pushFollow(FOLLOW_unary_constr_in_and_constr_config5310);
+                    unary_constr269=unary_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, unary_constr271.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, unary_constr269.getTree());
 
                     }
                     break;
@@ -11781,89 +11719,89 @@
     };
 
     // $ANTLR start "unary_constr"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1387:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1386:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );
     public final DRLParser.unary_constr_return unary_constr() throws RecognitionException {
         DRLParser.unary_constr_return retval = new DRLParser.unary_constr_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN275=null;
-        Token RIGHT_PAREN277=null;
-        DRLParser.eval_key_return eval_key272 = null;
+        Token LEFT_PAREN273=null;
+        Token RIGHT_PAREN275=null;
+        DRLParser.eval_key_return eval_key270 = null;
 
-        DRLParser.paren_chunk_return paren_chunk273 = null;
+        DRLParser.paren_chunk_return paren_chunk271 = null;
 
-        DRLParser.field_constraint_return field_constraint274 = null;
+        DRLParser.field_constraint_return field_constraint272 = null;
 
-        DRLParser.or_constr_return or_constr276 = null;
+        DRLParser.or_constr_return or_constr274 = null;
 
 
-        Object LEFT_PAREN275_tree=null;
-        Object RIGHT_PAREN277_tree=null;
+        Object LEFT_PAREN273_tree=null;
+        Object RIGHT_PAREN275_tree=null;
 
          boolean isFailed = true;	
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1391:2: ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN )
-            int alt98=3;
-            alt98 = dfa98.predict(input);
-            switch (alt98) {
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1390:2: ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN )
+            int alt96=3;
+            alt96 = dfa96.predict(input);
+            switch (alt96) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1391:4: eval_key paren_chunk
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1390:4: eval_key paren_chunk
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_eval_key_in_unary_constr5370);
-                    eval_key272=eval_key();
+                    pushFollow(FOLLOW_eval_key_in_unary_constr5359);
+                    eval_key270=eval_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(eval_key272.getTree(), root_0);
-                    pushFollow(FOLLOW_paren_chunk_in_unary_constr5373);
-                    paren_chunk273=paren_chunk();
+                    if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(eval_key270.getTree(), root_0);
+                    pushFollow(FOLLOW_paren_chunk_in_unary_constr5362);
+                    paren_chunk271=paren_chunk();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, paren_chunk273.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, paren_chunk271.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1392:4: field_constraint
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1391:4: field_constraint
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_field_constraint_in_unary_constr5378);
-                    field_constraint274=field_constraint();
+                    pushFollow(FOLLOW_field_constraint_in_unary_constr5367);
+                    field_constraint272=field_constraint();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, field_constraint274.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, field_constraint272.getTree());
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1393:5: LEFT_PAREN or_constr RIGHT_PAREN
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1392:5: LEFT_PAREN or_constr RIGHT_PAREN
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    LEFT_PAREN275=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr5384); if (state.failed) return retval;
+                    LEFT_PAREN273=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr5373); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                      	emit(LEFT_PAREN275, DroolsEditorType.SYMBOL);	
+                      	emit(LEFT_PAREN273, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_or_constr_in_unary_constr5394);
-                    or_constr276=or_constr();
+                    pushFollow(FOLLOW_or_constr_in_unary_constr5383);
+                    or_constr274=or_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, or_constr276.getTree());
-                    RIGHT_PAREN277=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr5399); if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, or_constr274.getTree());
+                    RIGHT_PAREN275=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr5388); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    RIGHT_PAREN277_tree = (Object)adaptor.create(RIGHT_PAREN277);
-                    adaptor.addChild(root_0, RIGHT_PAREN277_tree);
+                    RIGHT_PAREN275_tree = (Object)adaptor.create(RIGHT_PAREN275);
+                    adaptor.addChild(root_0, RIGHT_PAREN275_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(RIGHT_PAREN277, DroolsEditorType.SYMBOL);	
+                      	emit(RIGHT_PAREN275, DroolsEditorType.SYMBOL);	
                     }
 
                     }
@@ -11907,7 +11845,7 @@
     };
 
     // $ANTLR start "field_constraint"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1406:1: field_constraint : ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )? -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1405:1: field_constraint : ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )? -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) );
     public final DRLParser.field_constraint_return field_constraint() throws RecognitionException {
         DRLParser.field_constraint_return retval = new DRLParser.field_constraint_return();
         retval.start = input.LT(1);
@@ -11915,17 +11853,17 @@
         Object root_0 = null;
 
         Token arw=null;
-        DRLParser.label_return label278 = null;
+        DRLParser.label_return label276 = null;
 
-        DRLParser.accessor_path_return accessor_path279 = null;
+        DRLParser.accessor_path_return accessor_path277 = null;
 
-        DRLParser.or_restr_connective_return or_restr_connective280 = null;
+        DRLParser.or_restr_connective_return or_restr_connective278 = null;
 
-        DRLParser.paren_chunk_return paren_chunk281 = null;
+        DRLParser.paren_chunk_return paren_chunk279 = null;
 
-        DRLParser.accessor_path_return accessor_path282 = null;
+        DRLParser.accessor_path_return accessor_path280 = null;
 
-        DRLParser.or_restr_connective_return or_restr_connective283 = null;
+        DRLParser.or_restr_connective_return or_restr_connective281 = null;
 
 
         Object arw_tree=null;
@@ -11938,23 +11876,23 @@
         	boolean isArrow = false;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1409:3: ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )? -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) )
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1408:3: ( label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )? -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )? -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) ) | accessor_path or_restr_connective -> ^( VT_FIELD accessor_path or_restr_connective ) )
+            int alt98=2;
+            int LA98_0 = input.LA(1);
 
-            if ( (LA100_0==ID) ) {
-                int LA100_1 = input.LA(2);
+            if ( (LA98_0==ID) ) {
+                int LA98_1 = input.LA(2);
 
-                if ( ((LA100_1>=ID && LA100_1<=DOT)||LA100_1==LEFT_PAREN||(LA100_1>=EQUAL && LA100_1<=NOT_EQUAL)||LA100_1==LEFT_SQUARE||LA100_1==APPROX) ) {
-                    alt100=2;
+                if ( (LA98_1==COLON) ) {
+                    alt98=1;
                 }
-                else if ( (LA100_1==COLON) ) {
-                    alt100=1;
+                else if ( ((LA98_1>=ID && LA98_1<=DOT)||LA98_1==LEFT_PAREN||(LA98_1>=EQUAL && LA98_1<=NOT_EQUAL)||LA98_1==LEFT_SQUARE||LA98_1==APPROX) ) {
+                    alt98=2;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 100, 1, input);
+                        new NoViableAltException("", 98, 1, input);
 
                     throw nvae;
                 }
@@ -11962,67 +11900,67 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 100, 0, input);
+                    new NoViableAltException("", 98, 0, input);
 
                 throw nvae;
             }
-            switch (alt100) {
+            switch (alt98) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1409:5: label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )?
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1408:5: label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )?
                     {
-                    pushFollow(FOLLOW_label_in_field_constraint5419);
-                    label278=label();
+                    pushFollow(FOLLOW_label_in_field_constraint5408);
+                    label276=label();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_label.add(label278.getTree());
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint5421);
-                    accessor_path279=accessor_path();
+                    if ( state.backtracking==0 ) stream_label.add(label276.getTree());
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint5410);
+                    accessor_path277=accessor_path();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_accessor_path.add(accessor_path279.getTree());
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1410:3: ( or_restr_connective | arw= ARROW paren_chunk )?
-                    int alt99=3;
-                    int LA99_0 = input.LA(1);
+                    if ( state.backtracking==0 ) stream_accessor_path.add(accessor_path277.getTree());
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1409:3: ( or_restr_connective | arw= ARROW paren_chunk )?
+                    int alt97=3;
+                    int LA97_0 = input.LA(1);
 
-                    if ( (LA99_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {
-                        alt99=1;
+                    if ( (LA97_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {
+                        alt97=1;
                     }
-                    else if ( (LA99_0==LEFT_PAREN||(LA99_0>=EQUAL && LA99_0<=NOT_EQUAL)||LA99_0==APPROX) ) {
-                        alt99=1;
+                    else if ( (LA97_0==LEFT_PAREN||(LA97_0>=EQUAL && LA97_0<=NOT_EQUAL)||LA97_0==APPROX) ) {
+                        alt97=1;
                     }
-                    else if ( (LA99_0==ARROW) ) {
-                        alt99=2;
+                    else if ( (LA97_0==ARROW) ) {
+                        alt97=2;
                     }
-                    switch (alt99) {
+                    switch (alt97) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1410:5: or_restr_connective
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1409:5: or_restr_connective
                             {
-                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint5428);
-                            or_restr_connective280=or_restr_connective();
+                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint5417);
+                            or_restr_connective278=or_restr_connective();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) stream_or_restr_connective.add(or_restr_connective280.getTree());
+                            if ( state.backtracking==0 ) stream_or_restr_connective.add(or_restr_connective278.getTree());
 
                             }
                             break;
                         case 2 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1410:27: arw= ARROW paren_chunk
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1409:27: arw= ARROW paren_chunk
                             {
-                            arw=(Token)match(input,ARROW,FOLLOW_ARROW_in_field_constraint5434); if (state.failed) return retval; 
+                            arw=(Token)match(input,ARROW,FOLLOW_ARROW_in_field_constraint5423); if (state.failed) return retval; 
                             if ( state.backtracking==0 ) stream_ARROW.add(arw);
 
                             if ( state.backtracking==0 ) {
                               	emit(arw, DroolsEditorType.SYMBOL);	
                             }
-                            pushFollow(FOLLOW_paren_chunk_in_field_constraint5438);
-                            paren_chunk281=paren_chunk();
+                            pushFollow(FOLLOW_paren_chunk_in_field_constraint5427);
+                            paren_chunk279=paren_chunk();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk281.getTree());
+                            if ( state.backtracking==0 ) stream_paren_chunk.add(paren_chunk279.getTree());
                             if ( state.backtracking==0 ) {
                               isArrow = true;
                             }
@@ -12035,7 +11973,7 @@
 
 
                     // AST REWRITE
-                    // elements: accessor_path, paren_chunk, or_restr_connective, accessor_path, label, label
+                    // elements: or_restr_connective, label, label, accessor_path, paren_chunk, accessor_path
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -12045,15 +11983,15 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1412:3: -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )?
+                    // 1411:3: -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )?
                     if (isArrow) {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1412:17: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1411:17: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_BIND_FIELD, "VT_BIND_FIELD"), root_1);
 
                         adaptor.addChild(root_1, stream_label.nextTree());
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1412:39: ^( VT_FIELD accessor_path )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1411:39: ^( VT_FIELD accessor_path )
                         {
                         Object root_2 = (Object)adaptor.nil();
                         root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FIELD, "VT_FIELD"), root_2);
@@ -12065,9 +12003,9 @@
 
                         adaptor.addChild(root_0, root_1);
                         }
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1412:66: ( ^( VK_EVAL[$arw] paren_chunk ) )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1411:66: ( ^( VK_EVAL[$arw] paren_chunk ) )?
                         if ( stream_paren_chunk.hasNext() ) {
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1412:66: ^( VK_EVAL[$arw] paren_chunk )
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1411:66: ^( VK_EVAL[$arw] paren_chunk )
                             {
                             Object root_1 = (Object)adaptor.nil();
                             root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VK_EVAL, arw), root_1);
@@ -12081,21 +12019,21 @@
                         stream_paren_chunk.reset();
 
                     }
-                    else // 1413:3: -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
+                    else // 1412:3: -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:6: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1412:6: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_BIND_FIELD, "VT_BIND_FIELD"), root_1);
 
                         adaptor.addChild(root_1, stream_label.nextTree());
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:28: ^( VT_FIELD accessor_path ( or_restr_connective )? )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1412:28: ^( VT_FIELD accessor_path ( or_restr_connective )? )
                         {
                         Object root_2 = (Object)adaptor.nil();
                         root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FIELD, "VT_FIELD"), root_2);
 
                         adaptor.addChild(root_2, stream_accessor_path.nextTree());
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:53: ( or_restr_connective )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1412:53: ( or_restr_connective )?
                         if ( stream_or_restr_connective.hasNext() ) {
                             adaptor.addChild(root_2, stream_or_restr_connective.nextTree());
 
@@ -12114,24 +12052,24 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1414:4: accessor_path or_restr_connective
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:4: accessor_path or_restr_connective
                     {
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint5496);
-                    accessor_path282=accessor_path();
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint5485);
+                    accessor_path280=accessor_path();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_accessor_path.add(accessor_path282.getTree());
-                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint5498);
-                    or_restr_connective283=or_restr_connective();
+                    if ( state.backtracking==0 ) stream_accessor_path.add(accessor_path280.getTree());
+                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint5487);
+                    or_restr_connective281=or_restr_connective();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_or_restr_connective.add(or_restr_connective283.getTree());
+                    if ( state.backtracking==0 ) stream_or_restr_connective.add(or_restr_connective281.getTree());
 
 
                     // AST REWRITE
-                    // elements: accessor_path, or_restr_connective
+                    // elements: or_restr_connective, accessor_path
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -12141,9 +12079,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1415:3: -> ^( VT_FIELD accessor_path or_restr_connective )
+                    // 1414:3: -> ^( VT_FIELD accessor_path or_restr_connective )
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1415:6: ^( VT_FIELD accessor_path or_restr_connective )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1414:6: ^( VT_FIELD accessor_path or_restr_connective )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FIELD, "VT_FIELD"), root_1);
@@ -12187,7 +12125,7 @@
     };
 
     // $ANTLR start "label"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1418:1: label : value= ID COLON -> VT_LABEL[$value] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1417:1: label : value= ID COLON -> VT_LABEL[$value] ;
     public final DRLParser.label_return label() throws RecognitionException {
         DRLParser.label_return retval = new DRLParser.label_return();
         retval.start = input.LT(1);
@@ -12195,28 +12133,28 @@
         Object root_0 = null;
 
         Token value=null;
-        Token COLON284=null;
+        Token COLON282=null;
 
         Object value_tree=null;
-        Object COLON284_tree=null;
+        Object COLON282_tree=null;
         RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1419:2: (value= ID COLON -> VT_LABEL[$value] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1419:4: value= ID COLON
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1418:2: (value= ID COLON -> VT_LABEL[$value] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1418:4: value= ID COLON
             {
-            value=(Token)match(input,ID,FOLLOW_ID_in_label5525); if (state.failed) return retval; 
+            value=(Token)match(input,ID,FOLLOW_ID_in_label5514); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(value);
 
             if ( state.backtracking==0 ) {
               	emit(value, DroolsEditorType.IDENTIFIER_VARIABLE);	
             }
-            COLON284=(Token)match(input,COLON,FOLLOW_COLON_in_label5532); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_COLON.add(COLON284);
+            COLON282=(Token)match(input,COLON,FOLLOW_COLON_in_label5521); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_COLON.add(COLON282);
 
             if ( state.backtracking==0 ) {
-              	emit(COLON284, DroolsEditorType.SYMBOL);	
+              	emit(COLON282, DroolsEditorType.SYMBOL);	
             }
 
 
@@ -12231,7 +12169,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1421:3: -> VT_LABEL[$value]
+            // 1420:3: -> VT_LABEL[$value]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_LABEL, value));
 
@@ -12266,78 +12204,78 @@
     };
 
     // $ANTLR start "or_restr_connective"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1424:1: or_restr_connective : and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )* ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1423:1: or_restr_connective : and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )* ;
     public final DRLParser.or_restr_connective_return or_restr_connective() throws RecognitionException {
         DRLParser.or_restr_connective_return retval = new DRLParser.or_restr_connective_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token DOUBLE_PIPE286=null;
+        Token DOUBLE_PIPE284=null;
+        DRLParser.and_restr_connective_return and_restr_connective283 = null;
+
         DRLParser.and_restr_connective_return and_restr_connective285 = null;
 
-        DRLParser.and_restr_connective_return and_restr_connective287 = null;
 
+        Object DOUBLE_PIPE284_tree=null;
 
-        Object DOUBLE_PIPE286_tree=null;
-
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1425:2: ( and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )* )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1425:4: and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1424:2: ( and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )* )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1424:4: and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective5553);
-            and_restr_connective285=and_restr_connective();
+            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective5542);
+            and_restr_connective283=and_restr_connective();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, and_restr_connective285.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1425:25: ({...}? => DOUBLE_PIPE and_restr_connective )*
-            loop101:
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, and_restr_connective283.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1424:25: ({...}? => DOUBLE_PIPE and_restr_connective )*
+            loop99:
             do {
-                int alt101=2;
-                int LA101_0 = input.LA(1);
+                int alt99=2;
+                int LA99_0 = input.LA(1);
 
-                if ( (LA101_0==DOUBLE_PIPE) ) {
-                    int LA101_3 = input.LA(2);
+                if ( (LA99_0==DOUBLE_PIPE) ) {
+                    int LA99_3 = input.LA(2);
 
                     if ( (((validateRestr()))) ) {
-                        alt101=1;
+                        alt99=1;
                     }
 
 
                 }
 
 
-                switch (alt101) {
+                switch (alt99) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1425:26: {...}? => DOUBLE_PIPE and_restr_connective
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1424:26: {...}? => DOUBLE_PIPE and_restr_connective
             	    {
             	    if ( !(((validateRestr()))) ) {
             	        if (state.backtracking>0) {state.failed=true; return retval;}
             	        throw new FailedPredicateException(input, "or_restr_connective", "(validateRestr())");
             	    }
-            	    DOUBLE_PIPE286=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective5559); if (state.failed) return retval;
+            	    DOUBLE_PIPE284=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective5548); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
-            	    DOUBLE_PIPE286_tree = (Object)adaptor.create(DOUBLE_PIPE286);
-            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE286_tree, root_0);
+            	    DOUBLE_PIPE284_tree = (Object)adaptor.create(DOUBLE_PIPE284);
+            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE284_tree, root_0);
             	    }
             	    if ( state.backtracking==0 ) {
-            	      	emit(DOUBLE_PIPE286, DroolsEditorType.SYMBOL);	
+            	      	emit(DOUBLE_PIPE284, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective5569);
-            	    and_restr_connective287=and_restr_connective();
+            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective5558);
+            	    and_restr_connective285=and_restr_connective();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, and_restr_connective287.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, and_restr_connective285.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop101;
+            	    break loop99;
                 }
             } while (true);
 
@@ -12375,78 +12313,78 @@
     };
 
     // $ANTLR start "and_restr_connective"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1438:1: and_restr_connective : constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )* ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1437:1: and_restr_connective : constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )* ;
     public final DRLParser.and_restr_connective_return and_restr_connective() throws RecognitionException {
         DRLParser.and_restr_connective_return retval = new DRLParser.and_restr_connective_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token DOUBLE_AMPER289=null;
+        Token DOUBLE_AMPER287=null;
+        DRLParser.constraint_expression_return constraint_expression286 = null;
+
         DRLParser.constraint_expression_return constraint_expression288 = null;
 
-        DRLParser.constraint_expression_return constraint_expression290 = null;
 
+        Object DOUBLE_AMPER287_tree=null;
 
-        Object DOUBLE_AMPER289_tree=null;
-
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1439:2: ( constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )* )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1439:4: constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1438:2: ( constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )* )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1438:4: constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective5590);
-            constraint_expression288=constraint_expression();
+            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective5579);
+            constraint_expression286=constraint_expression();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint_expression288.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1439:26: ({...}? => DOUBLE_AMPER constraint_expression )*
-            loop102:
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint_expression286.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1438:26: ({...}? => DOUBLE_AMPER constraint_expression )*
+            loop100:
             do {
-                int alt102=2;
-                int LA102_0 = input.LA(1);
+                int alt100=2;
+                int LA100_0 = input.LA(1);
 
-                if ( (LA102_0==DOUBLE_AMPER) ) {
-                    int LA102_5 = input.LA(2);
+                if ( (LA100_0==DOUBLE_AMPER) ) {
+                    int LA100_5 = input.LA(2);
 
                     if ( (((validateRestr()))) ) {
-                        alt102=1;
+                        alt100=1;
                     }
 
 
                 }
 
 
-                switch (alt102) {
+                switch (alt100) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1439:27: {...}? => DOUBLE_AMPER constraint_expression
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1438:27: {...}? => DOUBLE_AMPER constraint_expression
             	    {
             	    if ( !(((validateRestr()))) ) {
             	        if (state.backtracking>0) {state.failed=true; return retval;}
             	        throw new FailedPredicateException(input, "and_restr_connective", "(validateRestr())");
             	    }
-            	    DOUBLE_AMPER289=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective5596); if (state.failed) return retval;
+            	    DOUBLE_AMPER287=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective5585); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
-            	    DOUBLE_AMPER289_tree = (Object)adaptor.create(DOUBLE_AMPER289);
-            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER289_tree, root_0);
+            	    DOUBLE_AMPER287_tree = (Object)adaptor.create(DOUBLE_AMPER287);
+            	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER287_tree, root_0);
             	    }
             	    if ( state.backtracking==0 ) {
-            	      	emit(DOUBLE_AMPER289, DroolsEditorType.SYMBOL);	
+            	      	emit(DOUBLE_AMPER287, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective5603);
-            	    constraint_expression290=constraint_expression();
+            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective5592);
+            	    constraint_expression288=constraint_expression();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint_expression290.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint_expression288.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop102;
+            	    break loop100;
                 }
             } while (true);
 
@@ -12484,76 +12422,76 @@
     };
 
     // $ANTLR start "constraint_expression"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1452:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator (ans= constr_parameters )? expression_value -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )? | custom_operator (ans= constr_parameters )? ( expression_value )? -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )? | LEFT_PAREN or_restr_connective RIGHT_PAREN );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1451:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator (ans= constr_parameters )? expression_value -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )? | custom_operator (ans= constr_parameters )? ( expression_value )? -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )? | LEFT_PAREN or_restr_connective RIGHT_PAREN );
     public final DRLParser.constraint_expression_return constraint_expression() throws RecognitionException {
         DRLParser.constraint_expression_return retval = new DRLParser.constraint_expression_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN296=null;
-        Token RIGHT_PAREN298=null;
+        Token LEFT_PAREN294=null;
+        Token RIGHT_PAREN296=null;
         DRLParser.constr_parameters_return ans = null;
 
-        DRLParser.compound_operator_return compound_operator291 = null;
+        DRLParser.compound_operator_return compound_operator289 = null;
 
-        DRLParser.simple_operator_return simple_operator292 = null;
+        DRLParser.simple_operator_return simple_operator290 = null;
 
-        DRLParser.expression_value_return expression_value293 = null;
+        DRLParser.expression_value_return expression_value291 = null;
 
-        DRLParser.custom_operator_return custom_operator294 = null;
+        DRLParser.custom_operator_return custom_operator292 = null;
 
-        DRLParser.expression_value_return expression_value295 = null;
+        DRLParser.expression_value_return expression_value293 = null;
 
-        DRLParser.or_restr_connective_return or_restr_connective297 = null;
+        DRLParser.or_restr_connective_return or_restr_connective295 = null;
 
 
-        Object LEFT_PAREN296_tree=null;
-        Object RIGHT_PAREN298_tree=null;
+        Object LEFT_PAREN294_tree=null;
+        Object RIGHT_PAREN296_tree=null;
         RewriteRuleSubtreeStream stream_constr_parameters=new RewriteRuleSubtreeStream(adaptor,"rule constr_parameters");
         RewriteRuleSubtreeStream stream_expression_value=new RewriteRuleSubtreeStream(adaptor,"rule expression_value");
         RewriteRuleSubtreeStream stream_custom_operator=new RewriteRuleSubtreeStream(adaptor,"rule custom_operator");
         RewriteRuleSubtreeStream stream_simple_operator=new RewriteRuleSubtreeStream(adaptor,"rule simple_operator");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:3: ( compound_operator | simple_operator (ans= constr_parameters )? expression_value -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )? | custom_operator (ans= constr_parameters )? ( expression_value )? -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )? | LEFT_PAREN or_restr_connective RIGHT_PAREN )
-            int alt106=4;
-            alt106 = dfa106.predict(input);
-            switch (alt106) {
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1454:3: ( compound_operator | simple_operator (ans= constr_parameters )? expression_value -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )? | custom_operator (ans= constr_parameters )? ( expression_value )? -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )? | LEFT_PAREN or_restr_connective RIGHT_PAREN )
+            int alt104=4;
+            alt104 = dfa104.predict(input);
+            switch (alt104) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:5: compound_operator
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1454:5: compound_operator
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_compound_operator_in_constraint_expression5631);
-                    compound_operator291=compound_operator();
+                    pushFollow(FOLLOW_compound_operator_in_constraint_expression5620);
+                    compound_operator289=compound_operator();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, compound_operator291.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, compound_operator289.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:4: simple_operator (ans= constr_parameters )? expression_value
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:4: simple_operator (ans= constr_parameters )? expression_value
                     {
-                    pushFollow(FOLLOW_simple_operator_in_constraint_expression5636);
-                    simple_operator292=simple_operator();
+                    pushFollow(FOLLOW_simple_operator_in_constraint_expression5625);
+                    simple_operator290=simple_operator();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_simple_operator.add(simple_operator292.getTree());
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:23: (ans= constr_parameters )?
-                    int alt103=2;
-                    int LA103_0 = input.LA(1);
+                    if ( state.backtracking==0 ) stream_simple_operator.add(simple_operator290.getTree());
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:23: (ans= constr_parameters )?
+                    int alt101=2;
+                    int LA101_0 = input.LA(1);
 
-                    if ( (LA103_0==AT) ) {
-                        alt103=1;
+                    if ( (LA101_0==AT) ) {
+                        alt101=1;
                     }
-                    switch (alt103) {
+                    switch (alt101) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:23: ans= constr_parameters
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:23: ans= constr_parameters
                             {
-                            pushFollow(FOLLOW_constr_parameters_in_constraint_expression5640);
+                            pushFollow(FOLLOW_constr_parameters_in_constraint_expression5629);
                             ans=constr_parameters();
 
                             state._fsp--;
@@ -12565,16 +12503,16 @@
 
                     }
 
-                    pushFollow(FOLLOW_expression_value_in_constraint_expression5643);
-                    expression_value293=expression_value();
+                    pushFollow(FOLLOW_expression_value_in_constraint_expression5632);
+                    expression_value291=expression_value();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_expression_value.add(expression_value293.getTree());
+                    if ( state.backtracking==0 ) stream_expression_value.add(expression_value291.getTree());
 
 
                     // AST REWRITE
-                    // elements: simple_operator, constr_parameters, expression_value
+                    // elements: expression_value, constr_parameters, simple_operator
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -12584,9 +12522,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1457:5: -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )?
+                    // 1456:5: -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )?
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:8: ^( simple_operator expression_value )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:8: ^( simple_operator expression_value )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot(stream_simple_operator.nextNode(), root_1);
@@ -12595,9 +12533,9 @@
 
                         adaptor.addChild(root_0, root_1);
                         }
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:44: ( ^( constr_parameters ) )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:44: ( ^( constr_parameters ) )?
                         if ( stream_constr_parameters.hasNext() ) {
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:44: ^( constr_parameters )
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:44: ^( constr_parameters )
                             {
                             Object root_1 = (Object)adaptor.nil();
                             root_1 = (Object)adaptor.becomeRoot(stream_constr_parameters.nextNode(), root_1);
@@ -12614,26 +12552,26 @@
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:4: custom_operator (ans= constr_parameters )? ( expression_value )?
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:4: custom_operator (ans= constr_parameters )? ( expression_value )?
                     {
-                    pushFollow(FOLLOW_custom_operator_in_constraint_expression5665);
-                    custom_operator294=custom_operator();
+                    pushFollow(FOLLOW_custom_operator_in_constraint_expression5654);
+                    custom_operator292=custom_operator();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) stream_custom_operator.add(custom_operator294.getTree());
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:23: (ans= constr_parameters )?
-                    int alt104=2;
-                    int LA104_0 = input.LA(1);
+                    if ( state.backtracking==0 ) stream_custom_operator.add(custom_operator292.getTree());
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:23: (ans= constr_parameters )?
+                    int alt102=2;
+                    int LA102_0 = input.LA(1);
 
-                    if ( (LA104_0==AT) ) {
-                        alt104=1;
+                    if ( (LA102_0==AT) ) {
+                        alt102=1;
                     }
-                    switch (alt104) {
+                    switch (alt102) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:23: ans= constr_parameters
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:23: ans= constr_parameters
                             {
-                            pushFollow(FOLLOW_constr_parameters_in_constraint_expression5669);
+                            pushFollow(FOLLOW_constr_parameters_in_constraint_expression5658);
                             ans=constr_parameters();
 
                             state._fsp--;
@@ -12645,23 +12583,23 @@
 
                     }
 
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:43: ( expression_value )?
-                    int alt105=2;
-                    int LA105_0 = input.LA(1);
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:43: ( expression_value )?
+                    int alt103=2;
+                    int LA103_0 = input.LA(1);
 
-                    if ( (LA105_0==ID||(LA105_0>=STRING && LA105_0<=LEFT_PAREN)||(LA105_0>=BOOL && LA105_0<=INT)||(LA105_0>=FLOAT && LA105_0<=NULL)) ) {
-                        alt105=1;
+                    if ( (LA103_0==ID||(LA103_0>=STRING && LA103_0<=LEFT_PAREN)||(LA103_0>=BOOL && LA103_0<=INT)||(LA103_0>=FLOAT && LA103_0<=NULL)) ) {
+                        alt103=1;
                     }
-                    switch (alt105) {
+                    switch (alt103) {
                         case 1 :
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:43: expression_value
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:43: expression_value
                             {
-                            pushFollow(FOLLOW_expression_value_in_constraint_expression5672);
-                            expression_value295=expression_value();
+                            pushFollow(FOLLOW_expression_value_in_constraint_expression5661);
+                            expression_value293=expression_value();
 
                             state._fsp--;
                             if (state.failed) return retval;
-                            if ( state.backtracking==0 ) stream_expression_value.add(expression_value295.getTree());
+                            if ( state.backtracking==0 ) stream_expression_value.add(expression_value293.getTree());
 
                             }
                             break;
@@ -12671,7 +12609,7 @@
 
 
                     // AST REWRITE
-                    // elements: expression_value, constr_parameters, custom_operator
+                    // elements: custom_operator, expression_value, constr_parameters
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -12681,14 +12619,14 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1459:5: -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )?
+                    // 1458:5: -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )?
                     {
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:8: ^( custom_operator ( expression_value )? )
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:8: ^( custom_operator ( expression_value )? )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot(stream_custom_operator.nextNode(), root_1);
 
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:26: ( expression_value )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:26: ( expression_value )?
                         if ( stream_expression_value.hasNext() ) {
                             adaptor.addChild(root_1, stream_expression_value.nextTree());
 
@@ -12697,9 +12635,9 @@
 
                         adaptor.addChild(root_0, root_1);
                         }
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:45: ( ^( constr_parameters ) )?
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:45: ( ^( constr_parameters ) )?
                         if ( stream_constr_parameters.hasNext() ) {
-                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:45: ^( constr_parameters )
+                            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:45: ^( constr_parameters )
                             {
                             Object root_1 = (Object)adaptor.nil();
                             root_1 = (Object)adaptor.becomeRoot(stream_constr_parameters.nextNode(), root_1);
@@ -12716,27 +12654,27 @@
                     }
                     break;
                 case 4 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1460:4: LEFT_PAREN or_restr_connective RIGHT_PAREN
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:4: LEFT_PAREN or_restr_connective RIGHT_PAREN
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    LEFT_PAREN296=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression5696); if (state.failed) return retval;
+                    LEFT_PAREN294=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression5685); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                      	emit(LEFT_PAREN296, DroolsEditorType.SYMBOL);	
+                      	emit(LEFT_PAREN294, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression5705);
-                    or_restr_connective297=or_restr_connective();
+                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression5694);
+                    or_restr_connective295=or_restr_connective();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, or_restr_connective297.getTree());
-                    RIGHT_PAREN298=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression5710); if (state.failed) return retval;
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, or_restr_connective295.getTree());
+                    RIGHT_PAREN296=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression5699); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    RIGHT_PAREN298_tree = (Object)adaptor.create(RIGHT_PAREN298);
-                    adaptor.addChild(root_0, RIGHT_PAREN298_tree);
+                    RIGHT_PAREN296_tree = (Object)adaptor.create(RIGHT_PAREN296);
+                    adaptor.addChild(root_0, RIGHT_PAREN296_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(RIGHT_PAREN298, DroolsEditorType.SYMBOL);	
+                      	emit(RIGHT_PAREN296, DroolsEditorType.SYMBOL);	
                     }
 
                     }
@@ -12806,88 +12744,88 @@
     };
 
     // $ANTLR start "simple_operator"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1506:1: simple_operator : ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1505:1: simple_operator : ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL ) ;
     public final DRLParser.simple_operator_return simple_operator() throws RecognitionException {
         DRLParser.simple_operator_return retval = new DRLParser.simple_operator_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token EQUAL299=null;
-        Token GREATER300=null;
-        Token GREATER_EQUAL301=null;
-        Token LESS302=null;
-        Token LESS_EQUAL303=null;
-        Token NOT_EQUAL304=null;
+        Token EQUAL297=null;
+        Token GREATER298=null;
+        Token GREATER_EQUAL299=null;
+        Token LESS300=null;
+        Token LESS_EQUAL301=null;
+        Token NOT_EQUAL302=null;
 
-        Object EQUAL299_tree=null;
-        Object GREATER300_tree=null;
-        Object GREATER_EQUAL301_tree=null;
-        Object LESS302_tree=null;
-        Object LESS_EQUAL303_tree=null;
-        Object NOT_EQUAL304_tree=null;
+        Object EQUAL297_tree=null;
+        Object GREATER298_tree=null;
+        Object GREATER_EQUAL299_tree=null;
+        Object LESS300_tree=null;
+        Object LESS_EQUAL301_tree=null;
+        Object NOT_EQUAL302_tree=null;
 
 
           if ( state.backtracking==0 ) emit(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR); 
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:2: ( ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:5: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1509:2: ( ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:5: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL )
             {
             root_0 = (Object)adaptor.nil();
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:5: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL )
-            int alt107=6;
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:5: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL )
+            int alt105=6;
             switch ( input.LA(1) ) {
             case EQUAL:
                 {
-                alt107=1;
+                alt105=1;
                 }
                 break;
             case GREATER:
                 {
-                alt107=2;
+                alt105=2;
                 }
                 break;
             case GREATER_EQUAL:
                 {
-                alt107=3;
+                alt105=3;
                 }
                 break;
             case LESS:
                 {
-                alt107=4;
+                alt105=4;
                 }
                 break;
             case LESS_EQUAL:
                 {
-                alt107=5;
+                alt105=5;
                 }
                 break;
             case NOT_EQUAL:
                 {
-                alt107=6;
+                alt105=6;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 107, 0, input);
+                    new NoViableAltException("", 105, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt107) {
+            switch (alt105) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1512:7: EQUAL
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:7: EQUAL
                     {
-                    EQUAL299=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_simple_operator5753); if (state.failed) return retval;
+                    EQUAL297=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_simple_operator5742); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    EQUAL299_tree = (Object)adaptor.create(EQUAL299);
-                    root_0 = (Object)adaptor.becomeRoot(EQUAL299_tree, root_0);
+                    EQUAL297_tree = (Object)adaptor.create(EQUAL297);
+                    root_0 = (Object)adaptor.becomeRoot(EQUAL297_tree, root_0);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(EQUAL299, DroolsEditorType.SYMBOL);	
+                      	emit(EQUAL297, DroolsEditorType.SYMBOL);	
                     }
                     if ( state.backtracking==0 ) {
                        emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
@@ -12897,15 +12835,15 @@
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1518:7: GREATER
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1517:7: GREATER
                     {
-                    GREATER300=(Token)match(input,GREATER,FOLLOW_GREATER_in_simple_operator5812); if (state.failed) return retval;
+                    GREATER298=(Token)match(input,GREATER,FOLLOW_GREATER_in_simple_operator5801); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    GREATER300_tree = (Object)adaptor.create(GREATER300);
-                    root_0 = (Object)adaptor.becomeRoot(GREATER300_tree, root_0);
+                    GREATER298_tree = (Object)adaptor.create(GREATER298);
+                    root_0 = (Object)adaptor.becomeRoot(GREATER298_tree, root_0);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(GREATER300, DroolsEditorType.SYMBOL);	
+                      	emit(GREATER298, DroolsEditorType.SYMBOL);	
                     }
                     if ( state.backtracking==0 ) {
                        emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);  
@@ -12916,15 +12854,15 @@
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1524:7: GREATER_EQUAL
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1523:7: GREATER_EQUAL
                     {
-                    GREATER_EQUAL301=(Token)match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_simple_operator5851); if (state.failed) return retval;
+                    GREATER_EQUAL299=(Token)match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_simple_operator5840); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    GREATER_EQUAL301_tree = (Object)adaptor.create(GREATER_EQUAL301);
-                    root_0 = (Object)adaptor.becomeRoot(GREATER_EQUAL301_tree, root_0);
+                    GREATER_EQUAL299_tree = (Object)adaptor.create(GREATER_EQUAL299);
+                    root_0 = (Object)adaptor.becomeRoot(GREATER_EQUAL299_tree, root_0);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(GREATER_EQUAL301, DroolsEditorType.SYMBOL);	
+                      	emit(GREATER_EQUAL299, DroolsEditorType.SYMBOL);	
                     }
                     if ( state.backtracking==0 ) {
                         emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
@@ -12935,15 +12873,15 @@
                     }
                     break;
                 case 4 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1530:7: LESS
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1529:7: LESS
                     {
-                    LESS302=(Token)match(input,LESS,FOLLOW_LESS_in_simple_operator5886); if (state.failed) return retval;
+                    LESS300=(Token)match(input,LESS,FOLLOW_LESS_in_simple_operator5875); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    LESS302_tree = (Object)adaptor.create(LESS302);
-                    root_0 = (Object)adaptor.becomeRoot(LESS302_tree, root_0);
+                    LESS300_tree = (Object)adaptor.create(LESS300);
+                    root_0 = (Object)adaptor.becomeRoot(LESS300_tree, root_0);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(LESS302, DroolsEditorType.SYMBOL);	
+                      	emit(LESS300, DroolsEditorType.SYMBOL);	
                     }
                     if ( state.backtracking==0 ) {
                         emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
@@ -12954,15 +12892,15 @@
                     }
                     break;
                 case 5 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1536:7: LESS_EQUAL
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1535:7: LESS_EQUAL
                     {
-                    LESS_EQUAL303=(Token)match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_simple_operator5921); if (state.failed) return retval;
+                    LESS_EQUAL301=(Token)match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_simple_operator5910); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    LESS_EQUAL303_tree = (Object)adaptor.create(LESS_EQUAL303);
-                    root_0 = (Object)adaptor.becomeRoot(LESS_EQUAL303_tree, root_0);
+                    LESS_EQUAL301_tree = (Object)adaptor.create(LESS_EQUAL301);
+                    root_0 = (Object)adaptor.becomeRoot(LESS_EQUAL301_tree, root_0);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(LESS_EQUAL303, DroolsEditorType.SYMBOL);	
+                      	emit(LESS_EQUAL301, DroolsEditorType.SYMBOL);	
                     }
                     if ( state.backtracking==0 ) {
                        emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
@@ -12973,15 +12911,15 @@
                     }
                     break;
                 case 6 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1542:7: NOT_EQUAL
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:7: NOT_EQUAL
                     {
-                    NOT_EQUAL304=(Token)match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_simple_operator5956); if (state.failed) return retval;
+                    NOT_EQUAL302=(Token)match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_simple_operator5945); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    NOT_EQUAL304_tree = (Object)adaptor.create(NOT_EQUAL304);
-                    root_0 = (Object)adaptor.becomeRoot(NOT_EQUAL304_tree, root_0);
+                    NOT_EQUAL302_tree = (Object)adaptor.create(NOT_EQUAL302);
+                    root_0 = (Object)adaptor.becomeRoot(NOT_EQUAL302_tree, root_0);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(NOT_EQUAL304, DroolsEditorType.SYMBOL);	
+                      	emit(NOT_EQUAL302, DroolsEditorType.SYMBOL);	
                     }
                     if ( state.backtracking==0 ) {
                        emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
@@ -13023,109 +12961,109 @@
     };
 
     // $ANTLR start "custom_operator"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1553:1: custom_operator : ( not_key )? ( approx_symb )? operator_key ( square_chunk )? ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1552:1: custom_operator : ( not_key )? ( approx_symb )? operator_key ( square_chunk )? ;
     public final DRLParser.custom_operator_return custom_operator() throws RecognitionException {
         DRLParser.custom_operator_return retval = new DRLParser.custom_operator_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        DRLParser.not_key_return not_key305 = null;
+        DRLParser.not_key_return not_key303 = null;
 
-        DRLParser.approx_symb_return approx_symb306 = null;
+        DRLParser.approx_symb_return approx_symb304 = null;
 
-        DRLParser.operator_key_return operator_key307 = null;
+        DRLParser.operator_key_return operator_key305 = null;
 
-        DRLParser.square_chunk_return square_chunk308 = null;
+        DRLParser.square_chunk_return square_chunk306 = null;
 
 
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1554:3: ( ( not_key )? ( approx_symb )? operator_key ( square_chunk )? )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1555:6: ( not_key )? ( approx_symb )? operator_key ( square_chunk )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1553:3: ( ( not_key )? ( approx_symb )? operator_key ( square_chunk )? )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1554:6: ( not_key )? ( approx_symb )? operator_key ( square_chunk )?
             {
             root_0 = (Object)adaptor.nil();
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1555:6: ( not_key )?
-            int alt108=2;
-            int LA108_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1554:6: ( not_key )?
+            int alt106=2;
+            int LA106_0 = input.LA(1);
 
-            if ( (LA108_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {
-                int LA108_1 = input.LA(2);
+            if ( (LA106_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {
+                int LA106_1 = input.LA(2);
 
-                if ( (LA108_1==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {
-                    int LA108_4 = input.LA(3);
+                if ( (LA106_1==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {
+                    int LA106_4 = input.LA(3);
 
                     if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {
-                        alt108=1;
+                        alt106=1;
                     }
                 }
-                else if ( (LA108_1==APPROX) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {
-                    alt108=1;
+                else if ( (LA106_1==APPROX) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {
+                    alt106=1;
                 }
             }
-            switch (alt108) {
+            switch (alt106) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1555:6: not_key
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1554:6: not_key
                     {
-                    pushFollow(FOLLOW_not_key_in_custom_operator6028);
-                    not_key305=not_key();
+                    pushFollow(FOLLOW_not_key_in_custom_operator6017);
+                    not_key303=not_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, not_key305.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, not_key303.getTree());
 
                     }
                     break;
 
             }
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556:6: ( approx_symb )?
-            int alt109=2;
-            int LA109_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1555:6: ( approx_symb )?
+            int alt107=2;
+            int LA107_0 = input.LA(1);
 
-            if ( (LA109_0==APPROX) ) {
-                alt109=1;
+            if ( (LA107_0==APPROX) ) {
+                alt107=1;
             }
-            switch (alt109) {
+            switch (alt107) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556:6: approx_symb
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1555:6: approx_symb
                     {
-                    pushFollow(FOLLOW_approx_symb_in_custom_operator6036);
-                    approx_symb306=approx_symb();
+                    pushFollow(FOLLOW_approx_symb_in_custom_operator6025);
+                    approx_symb304=approx_symb();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, approx_symb306.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, approx_symb304.getTree());
 
                     }
                     break;
 
             }
 
-            pushFollow(FOLLOW_operator_key_in_custom_operator6039);
-            operator_key307=operator_key();
+            pushFollow(FOLLOW_operator_key_in_custom_operator6028);
+            operator_key305=operator_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(operator_key307.getTree(), root_0);
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1557:6: ( square_chunk )?
-            int alt110=2;
-            int LA110_0 = input.LA(1);
+            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(operator_key305.getTree(), root_0);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556:6: ( square_chunk )?
+            int alt108=2;
+            int LA108_0 = input.LA(1);
 
-            if ( (LA110_0==LEFT_SQUARE) ) {
-                alt110=1;
+            if ( (LA108_0==LEFT_SQUARE) ) {
+                alt108=1;
             }
-            switch (alt110) {
+            switch (alt108) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1557:6: square_chunk
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556:6: square_chunk
                     {
-                    pushFollow(FOLLOW_square_chunk_in_custom_operator6047);
-                    square_chunk308=square_chunk();
+                    pushFollow(FOLLOW_square_chunk_in_custom_operator6036);
+                    square_chunk306=square_chunk();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, square_chunk308.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, square_chunk306.getTree());
 
                     }
                     break;
@@ -13166,55 +13104,55 @@
     };
 
     // $ANTLR start "compound_operator"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1564:1: compound_operator : ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1563:1: compound_operator : ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN ;
     public final DRLParser.compound_operator_return compound_operator() throws RecognitionException {
         DRLParser.compound_operator_return retval = new DRLParser.compound_operator_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_PAREN312=null;
-        Token COMMA314=null;
-        Token RIGHT_PAREN316=null;
-        DRLParser.in_key_return in_key309 = null;
+        Token LEFT_PAREN310=null;
+        Token COMMA312=null;
+        Token RIGHT_PAREN314=null;
+        DRLParser.in_key_return in_key307 = null;
 
-        DRLParser.not_key_return not_key310 = null;
+        DRLParser.not_key_return not_key308 = null;
 
-        DRLParser.in_key_return in_key311 = null;
+        DRLParser.in_key_return in_key309 = null;
 
+        DRLParser.expression_value_return expression_value311 = null;
+
         DRLParser.expression_value_return expression_value313 = null;
 
-        DRLParser.expression_value_return expression_value315 = null;
 
+        Object LEFT_PAREN310_tree=null;
+        Object COMMA312_tree=null;
+        Object RIGHT_PAREN314_tree=null;
 
-        Object LEFT_PAREN312_tree=null;
-        Object COMMA314_tree=null;
-        Object RIGHT_PAREN316_tree=null;
-
          if ( state.backtracking==0 ) emit(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR); 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1566:2: ( ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1567:2: ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1565:2: ( ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1566:2: ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN
             {
             root_0 = (Object)adaptor.nil();
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1567:2: ( in_key | not_key in_key )
-            int alt111=2;
-            int LA111_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1566:2: ( in_key | not_key in_key )
+            int alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( (LA111_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {
-                int LA111_1 = input.LA(2);
+            if ( (LA109_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {
+                int LA109_1 = input.LA(2);
 
-                if ( (LA111_1==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IN))))) {
-                    alt111=1;
+                if ( (LA109_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {
+                    alt109=2;
                 }
-                else if ( (LA111_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {
-                    alt111=2;
+                else if ( (LA109_1==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IN))))) {
+                    alt109=1;
                 }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 111, 1, input);
+                        new NoViableAltException("", 109, 1, input);
 
                     throw nvae;
                 }
@@ -13222,38 +13160,38 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 111, 0, input);
+                    new NoViableAltException("", 109, 0, input);
 
                 throw nvae;
             }
-            switch (alt111) {
+            switch (alt109) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1567:4: in_key
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1566:4: in_key
                     {
-                    pushFollow(FOLLOW_in_key_in_compound_operator6092);
-                    in_key309=in_key();
+                    pushFollow(FOLLOW_in_key_in_compound_operator6081);
+                    in_key307=in_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(in_key309.getTree(), root_0);
+                    if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(in_key307.getTree(), root_0);
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1567:14: not_key in_key
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1566:14: not_key in_key
                     {
-                    pushFollow(FOLLOW_not_key_in_compound_operator6097);
-                    not_key310=not_key();
+                    pushFollow(FOLLOW_not_key_in_compound_operator6086);
+                    not_key308=not_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, not_key310.getTree());
-                    pushFollow(FOLLOW_in_key_in_compound_operator6099);
-                    in_key311=in_key();
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, not_key308.getTree());
+                    pushFollow(FOLLOW_in_key_in_compound_operator6088);
+                    in_key309=in_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(in_key311.getTree(), root_0);
+                    if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(in_key309.getTree(), root_0);
 
                     }
                     break;
@@ -13263,57 +13201,57 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);	
             }
-            LEFT_PAREN312=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator6110); if (state.failed) return retval;
+            LEFT_PAREN310=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator6099); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
-              	emit(LEFT_PAREN312, DroolsEditorType.SYMBOL);	
+              	emit(LEFT_PAREN310, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_expression_value_in_compound_operator6118);
-            expression_value313=expression_value();
+            pushFollow(FOLLOW_expression_value_in_compound_operator6107);
+            expression_value311=expression_value();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, expression_value313.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1570:21: ( COMMA expression_value )*
-            loop112:
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, expression_value311.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569:21: ( COMMA expression_value )*
+            loop110:
             do {
-                int alt112=2;
-                int LA112_0 = input.LA(1);
+                int alt110=2;
+                int LA110_0 = input.LA(1);
 
-                if ( (LA112_0==COMMA) ) {
-                    alt112=1;
+                if ( (LA110_0==COMMA) ) {
+                    alt110=1;
                 }
 
 
-                switch (alt112) {
+                switch (alt110) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1570:23: COMMA expression_value
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569:23: COMMA expression_value
             	    {
-            	    COMMA314=(Token)match(input,COMMA,FOLLOW_COMMA_in_compound_operator6122); if (state.failed) return retval;
+            	    COMMA312=(Token)match(input,COMMA,FOLLOW_COMMA_in_compound_operator6111); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
-            	      	emit(COMMA314, DroolsEditorType.SYMBOL);	
+            	      	emit(COMMA312, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_expression_value_in_compound_operator6127);
-            	    expression_value315=expression_value();
+            	    pushFollow(FOLLOW_expression_value_in_compound_operator6116);
+            	    expression_value313=expression_value();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, expression_value315.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, expression_value313.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop112;
+            	    break loop110;
                 }
             } while (true);
 
-            RIGHT_PAREN316=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator6135); if (state.failed) return retval;
+            RIGHT_PAREN314=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator6124); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
-            RIGHT_PAREN316_tree = (Object)adaptor.create(RIGHT_PAREN316);
-            adaptor.addChild(root_0, RIGHT_PAREN316_tree);
+            RIGHT_PAREN314_tree = (Object)adaptor.create(RIGHT_PAREN314);
+            adaptor.addChild(root_0, RIGHT_PAREN314_tree);
             }
             if ( state.backtracking==0 ) {
-              	emit(RIGHT_PAREN316, DroolsEditorType.SYMBOL);	
+              	emit(RIGHT_PAREN314, DroolsEditorType.SYMBOL);	
             }
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_CONDITION_END);	
@@ -13353,68 +13291,68 @@
     };
 
     // $ANTLR start "constr_parameters"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1590:1: constr_parameters : AT LEFT_PAREN ( constr_attr )* RIGHT_PAREN -> ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1589:1: constr_parameters : AT LEFT_PAREN ( constr_attr )* RIGHT_PAREN -> ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* ) ;
     public final DRLParser.constr_parameters_return constr_parameters() throws RecognitionException {
         DRLParser.constr_parameters_return retval = new DRLParser.constr_parameters_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token AT317=null;
-        Token LEFT_PAREN318=null;
-        Token RIGHT_PAREN320=null;
-        DRLParser.constr_attr_return constr_attr319 = null;
+        Token AT315=null;
+        Token LEFT_PAREN316=null;
+        Token RIGHT_PAREN318=null;
+        DRLParser.constr_attr_return constr_attr317 = null;
 
 
-        Object AT317_tree=null;
-        Object LEFT_PAREN318_tree=null;
-        Object RIGHT_PAREN320_tree=null;
+        Object AT315_tree=null;
+        Object LEFT_PAREN316_tree=null;
+        Object RIGHT_PAREN318_tree=null;
         RewriteRuleTokenStream stream_AT=new RewriteRuleTokenStream(adaptor,"token AT");
         RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_constr_attr=new RewriteRuleSubtreeStream(adaptor,"rule constr_attr");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1591:2: ( AT LEFT_PAREN ( constr_attr )* RIGHT_PAREN -> ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:3: AT LEFT_PAREN ( constr_attr )* RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1590:2: ( AT LEFT_PAREN ( constr_attr )* RIGHT_PAREN -> ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1591:3: AT LEFT_PAREN ( constr_attr )* RIGHT_PAREN
             {
-            AT317=(Token)match(input,AT,FOLLOW_AT_in_constr_parameters6170); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_AT.add(AT317);
+            AT315=(Token)match(input,AT,FOLLOW_AT_in_constr_parameters6159); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_AT.add(AT315);
 
-            LEFT_PAREN318=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constr_parameters6175); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN318);
+            LEFT_PAREN316=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constr_parameters6164); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN316);
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1594:5: ( constr_attr )*
-            loop113:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1593:5: ( constr_attr )*
+            loop111:
             do {
-                int alt113=2;
-                int LA113_0 = input.LA(1);
+                int alt111=2;
+                int LA111_0 = input.LA(1);
 
-                if ( (LA113_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.TYPE)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
-                    alt113=1;
+                if ( (LA111_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.KIND)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
+                    alt111=1;
                 }
 
 
-                switch (alt113) {
+                switch (alt111) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1594:5: constr_attr
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1593:5: constr_attr
             	    {
-            	    pushFollow(FOLLOW_constr_attr_in_constr_parameters6182);
-            	    constr_attr319=constr_attr();
+            	    pushFollow(FOLLOW_constr_attr_in_constr_parameters6171);
+            	    constr_attr317=constr_attr();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) stream_constr_attr.add(constr_attr319.getTree());
+            	    if ( state.backtracking==0 ) stream_constr_attr.add(constr_attr317.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop113;
+            	    break loop111;
                 }
             } while (true);
 
-            RIGHT_PAREN320=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constr_parameters6187); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN320);
+            RIGHT_PAREN318=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constr_parameters6176); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN318);
 
 
 
@@ -13429,14 +13367,14 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1596:3: -> ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* )
+            // 1595:3: -> ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:6: ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1595:6: ^( VT_CONSTR_ATTRIBUTES ( constr_attr )* )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_CONSTR_ATTRIBUTES, "VT_CONSTR_ATTRIBUTES"), root_1);
 
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:29: ( constr_attr )*
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1595:29: ( constr_attr )*
                 while ( stream_constr_attr.hasNext() ) {
                     adaptor.addChild(root_1, stream_constr_attr.nextTree());
 
@@ -13477,58 +13415,58 @@
     };
 
     // $ANTLR start "constr_attr"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:1: constr_attr : ( c_param_id | c_param_type | c_param_args | c_param_cut | c_param_prior );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1601:1: constr_attr : ( c_param_id | c_param_kind | c_param_args | c_param_cut | c_param_prior );
     public final DRLParser.constr_attr_return constr_attr() throws RecognitionException {
         DRLParser.constr_attr_return retval = new DRLParser.constr_attr_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        DRLParser.c_param_id_return c_param_id321 = null;
+        DRLParser.c_param_id_return c_param_id319 = null;
 
-        DRLParser.c_param_type_return c_param_type322 = null;
+        DRLParser.c_param_kind_return c_param_kind320 = null;
 
-        DRLParser.c_param_args_return c_param_args323 = null;
+        DRLParser.c_param_args_return c_param_args321 = null;
 
-        DRLParser.c_param_cut_return c_param_cut324 = null;
+        DRLParser.c_param_cut_return c_param_cut322 = null;
 
-        DRLParser.c_param_prior_return c_param_prior325 = null;
+        DRLParser.c_param_prior_return c_param_prior323 = null;
 
 
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1603:3: ( c_param_id | c_param_type | c_param_args | c_param_cut | c_param_prior )
-            int alt114=5;
-            int LA114_0 = input.LA(1);
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:3: ( c_param_id | c_param_kind | c_param_args | c_param_cut | c_param_prior )
+            int alt112=5;
+            int LA112_0 = input.LA(1);
 
-            if ( (LA114_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.TYPE)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
-                int LA114_1 = input.LA(2);
+            if ( (LA112_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.KIND)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
+                int LA112_1 = input.LA(2);
 
-                if ( (LA114_1==EQUALS) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.TYPE)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
-                    int LA114_2 = input.LA(3);
+                if ( (LA112_1==EQUALS) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.KIND)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
+                    int LA112_2 = input.LA(3);
 
-                    if ( (LA114_2==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.TYPE)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
-                        int LA114_3 = input.LA(4);
+                    if ( (LA112_2==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.CID)))||((validateIdentifierKey(DroolsSoftKeywords.CUT)))||((validateIdentifierKey(DroolsSoftKeywords.KIND)))||((validateIdentifierKey(DroolsSoftKeywords.ARGS)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {
+                        int LA112_3 = input.LA(4);
 
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.CID)))) ) {
-                            alt114=1;
+                            alt112=1;
                         }
-                        else if ( (((validateIdentifierKey(DroolsSoftKeywords.TYPE)))) ) {
-                            alt114=2;
+                        else if ( (((validateIdentifierKey(DroolsSoftKeywords.KIND)))) ) {
+                            alt112=2;
                         }
                         else if ( (((validateIdentifierKey(DroolsSoftKeywords.ARGS)))) ) {
-                            alt114=3;
+                            alt112=3;
                         }
                         else if ( (((validateIdentifierKey(DroolsSoftKeywords.CUT)))) ) {
-                            alt114=4;
+                            alt112=4;
                         }
                         else if ( (((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))) ) {
-                            alt114=5;
+                            alt112=5;
                         }
                         else {
                             if (state.backtracking>0) {state.failed=true; return retval;}
                             NoViableAltException nvae =
-                                new NoViableAltException("", 114, 3, input);
+                                new NoViableAltException("", 112, 3, input);
 
                             throw nvae;
                         }
@@ -13536,7 +13474,7 @@
                     else {
                         if (state.backtracking>0) {state.failed=true; return retval;}
                         NoViableAltException nvae =
-                            new NoViableAltException("", 114, 2, input);
+                            new NoViableAltException("", 112, 2, input);
 
                         throw nvae;
                     }
@@ -13544,7 +13482,7 @@
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("", 114, 1, input);
+                        new NoViableAltException("", 112, 1, input);
 
                     throw nvae;
                 }
@@ -13552,78 +13490,78 @@
             else {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 114, 0, input);
+                    new NoViableAltException("", 112, 0, input);
 
                 throw nvae;
             }
-            switch (alt114) {
+            switch (alt112) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1604:5: c_param_id
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1603:5: c_param_id
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_c_param_id_in_constr_attr6223);
-                    c_param_id321=c_param_id();
+                    pushFollow(FOLLOW_c_param_id_in_constr_attr6212);
+                    c_param_id319=c_param_id();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_id321.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_id319.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1605:7: c_param_type
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1604:7: c_param_kind
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_c_param_type_in_constr_attr6235);
-                    c_param_type322=c_param_type();
+                    pushFollow(FOLLOW_c_param_kind_in_constr_attr6224);
+                    c_param_kind320=c_param_kind();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_type322.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_kind320.getTree());
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1606:7: c_param_args
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1605:7: c_param_args
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_c_param_args_in_constr_attr6243);
-                    c_param_args323=c_param_args();
+                    pushFollow(FOLLOW_c_param_args_in_constr_attr6232);
+                    c_param_args321=c_param_args();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_args323.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_args321.getTree());
 
                     }
                     break;
                 case 4 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1607:7: c_param_cut
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1606:7: c_param_cut
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_c_param_cut_in_constr_attr6251);
-                    c_param_cut324=c_param_cut();
+                    pushFollow(FOLLOW_c_param_cut_in_constr_attr6240);
+                    c_param_cut322=c_param_cut();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_cut324.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_cut322.getTree());
 
                     }
                     break;
                 case 5 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1608:7: c_param_prior
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1607:7: c_param_prior
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_c_param_prior_in_constr_attr6259);
-                    c_param_prior325=c_param_prior();
+                    pushFollow(FOLLOW_c_param_prior_in_constr_attr6248);
+                    c_param_prior323=c_param_prior();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_prior325.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, c_param_prior323.getTree());
 
                     }
                     break;
@@ -13655,7 +13593,7 @@
     };
 
     // $ANTLR start "c_param_id"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:1: c_param_id : id_key EQUALS cid= STRING ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1611:1: c_param_id : id_key EQUALS cid= STRING ;
     public final DRLParser.c_param_id_return c_param_id() throws RecognitionException {
         DRLParser.c_param_id_return retval = new DRLParser.c_param_id_return();
         retval.start = input.LT(1);
@@ -13663,27 +13601,27 @@
         Object root_0 = null;
 
         Token cid=null;
-        Token EQUALS327=null;
-        DRLParser.id_key_return id_key326 = null;
+        Token EQUALS325=null;
+        DRLParser.id_key_return id_key324 = null;
 
 
         Object cid_tree=null;
-        Object EQUALS327_tree=null;
+        Object EQUALS325_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1613:3: ( id_key EQUALS cid= STRING )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1614:5: id_key EQUALS cid= STRING
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:3: ( id_key EQUALS cid= STRING )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1613:5: id_key EQUALS cid= STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_id_key_in_c_param_id6281);
-            id_key326=id_key();
+            pushFollow(FOLLOW_id_key_in_c_param_id6270);
+            id_key324=id_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(id_key326.getTree(), root_0);
-            EQUALS327=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_id6288); if (state.failed) return retval;
-            cid=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_id6297); if (state.failed) return retval;
+            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(id_key324.getTree(), root_0);
+            EQUALS325=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_id6277); if (state.failed) return retval;
+            cid=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_id6286); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             cid_tree = (Object)adaptor.create(cid);
             adaptor.addChild(root_0, cid_tree);
@@ -13711,41 +13649,41 @@
     }
     // $ANTLR end "c_param_id"
 
-    public static class c_param_type_return extends ParserRuleReturnScope {
+    public static class c_param_kind_return extends ParserRuleReturnScope {
         Object tree;
         public Object getTree() { return tree; }
     };
 
-    // $ANTLR start "c_param_type"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:1: c_param_type : type_key EQUALS type= STRING ;
-    public final DRLParser.c_param_type_return c_param_type() throws RecognitionException {
-        DRLParser.c_param_type_return retval = new DRLParser.c_param_type_return();
+    // $ANTLR start "c_param_kind"
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1618:1: c_param_kind : kind_key EQUALS type= STRING ;
+    public final DRLParser.c_param_kind_return c_param_kind() throws RecognitionException {
+        DRLParser.c_param_kind_return retval = new DRLParser.c_param_kind_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
         Token type=null;
-        Token EQUALS329=null;
-        DRLParser.type_key_return type_key328 = null;
+        Token EQUALS327=null;
+        DRLParser.kind_key_return kind_key326 = null;
 
 
         Object type_tree=null;
-        Object EQUALS329_tree=null;
+        Object EQUALS327_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1620:3: ( type_key EQUALS type= STRING )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1621:5: type_key EQUALS type= STRING
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:3: ( kind_key EQUALS type= STRING )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1620:5: kind_key EQUALS type= STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_type_key_in_c_param_type6318);
-            type_key328=type_key();
+            pushFollow(FOLLOW_kind_key_in_c_param_kind6307);
+            kind_key326=kind_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(type_key328.getTree(), root_0);
-            EQUALS329=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_type6325); if (state.failed) return retval;
-            type=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_type6334); if (state.failed) return retval;
+            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(kind_key326.getTree(), root_0);
+            EQUALS327=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_kind6314); if (state.failed) return retval;
+            type=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_kind6323); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             type_tree = (Object)adaptor.create(type);
             adaptor.addChild(root_0, type_tree);
@@ -13771,7 +13709,7 @@
         }
         return retval;
     }
-    // $ANTLR end "c_param_type"
+    // $ANTLR end "c_param_kind"
 
     public static class c_param_cut_return extends ParserRuleReturnScope {
         Object tree;
@@ -13779,7 +13717,7 @@
     };
 
     // $ANTLR start "c_param_cut"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:1: c_param_cut : kut_key EQUALS kut= STRING ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1625:1: c_param_cut : kut_key EQUALS kut= STRING ;
     public final DRLParser.c_param_cut_return c_param_cut() throws RecognitionException {
         DRLParser.c_param_cut_return retval = new DRLParser.c_param_cut_return();
         retval.start = input.LT(1);
@@ -13787,27 +13725,27 @@
         Object root_0 = null;
 
         Token kut=null;
-        Token EQUALS331=null;
-        DRLParser.kut_key_return kut_key330 = null;
+        Token EQUALS329=null;
+        DRLParser.kut_key_return kut_key328 = null;
 
 
         Object kut_tree=null;
-        Object EQUALS331_tree=null;
+        Object EQUALS329_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:3: ( kut_key EQUALS kut= STRING )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1628:5: kut_key EQUALS kut= STRING
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:3: ( kut_key EQUALS kut= STRING )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:5: kut_key EQUALS kut= STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_kut_key_in_c_param_cut6357);
-            kut_key330=kut_key();
+            pushFollow(FOLLOW_kut_key_in_c_param_cut6346);
+            kut_key328=kut_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(kut_key330.getTree(), root_0);
-            EQUALS331=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_cut6364); if (state.failed) return retval;
-            kut=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_cut6373); if (state.failed) return retval;
+            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(kut_key328.getTree(), root_0);
+            EQUALS329=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_cut6353); if (state.failed) return retval;
+            kut=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_cut6362); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             kut_tree = (Object)adaptor.create(kut);
             adaptor.addChild(root_0, kut_tree);
@@ -13841,7 +13779,7 @@
     };
 
     // $ANTLR start "c_param_args"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1633:1: c_param_args : args_key EQUALS pms= STRING ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1632:1: c_param_args : args_key EQUALS pms= STRING ;
     public final DRLParser.c_param_args_return c_param_args() throws RecognitionException {
         DRLParser.c_param_args_return retval = new DRLParser.c_param_args_return();
         retval.start = input.LT(1);
@@ -13849,27 +13787,27 @@
         Object root_0 = null;
 
         Token pms=null;
-        Token EQUALS333=null;
-        DRLParser.args_key_return args_key332 = null;
+        Token EQUALS331=null;
+        DRLParser.args_key_return args_key330 = null;
 
 
         Object pms_tree=null;
-        Object EQUALS333_tree=null;
+        Object EQUALS331_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1634:3: ( args_key EQUALS pms= STRING )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1635:5: args_key EQUALS pms= STRING
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1633:3: ( args_key EQUALS pms= STRING )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1634:5: args_key EQUALS pms= STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_args_key_in_c_param_args6395);
-            args_key332=args_key();
+            pushFollow(FOLLOW_args_key_in_c_param_args6384);
+            args_key330=args_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(args_key332.getTree(), root_0);
-            EQUALS333=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_args6402); if (state.failed) return retval;
-            pms=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_args6411); if (state.failed) return retval;
+            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(args_key330.getTree(), root_0);
+            EQUALS331=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_args6391); if (state.failed) return retval;
+            pms=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_args6400); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             pms_tree = (Object)adaptor.create(pms);
             adaptor.addChild(root_0, pms_tree);
@@ -13903,7 +13841,7 @@
     };
 
     // $ANTLR start "c_param_prior"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1640:1: c_param_prior : prior_key EQUALS pri= STRING ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1639:1: c_param_prior : prior_key EQUALS pri= STRING ;
     public final DRLParser.c_param_prior_return c_param_prior() throws RecognitionException {
         DRLParser.c_param_prior_return retval = new DRLParser.c_param_prior_return();
         retval.start = input.LT(1);
@@ -13911,27 +13849,27 @@
         Object root_0 = null;
 
         Token pri=null;
-        Token EQUALS335=null;
-        DRLParser.prior_key_return prior_key334 = null;
+        Token EQUALS333=null;
+        DRLParser.prior_key_return prior_key332 = null;
 
 
         Object pri_tree=null;
-        Object EQUALS335_tree=null;
+        Object EQUALS333_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1641:3: ( prior_key EQUALS pri= STRING )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1642:5: prior_key EQUALS pri= STRING
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1640:3: ( prior_key EQUALS pri= STRING )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1641:5: prior_key EQUALS pri= STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_prior_key_in_c_param_prior6434);
-            prior_key334=prior_key();
+            pushFollow(FOLLOW_prior_key_in_c_param_prior6423);
+            prior_key332=prior_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(prior_key334.getTree(), root_0);
-            EQUALS335=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_prior6441); if (state.failed) return retval;
-            pri=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_prior6451); if (state.failed) return retval;
+            if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(prior_key332.getTree(), root_0);
+            EQUALS333=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_c_param_prior6430); if (state.failed) return retval;
+            pri=(Token)match(input,STRING,FOLLOW_STRING_in_c_param_prior6440); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             pri_tree = (Object)adaptor.create(pri);
             adaptor.addChild(root_0, pri_tree);
@@ -13965,7 +13903,7 @@
     };
 
     // $ANTLR start "operator_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1650:1: operator_key : {...}? =>id= ID -> VK_OPERATOR[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1649:1: operator_key : {...}? =>id= ID -> VK_OPERATOR[$id] ;
     public final DRLParser.operator_key_return operator_key() throws RecognitionException {
         DRLParser.operator_key_return retval = new DRLParser.operator_key_return();
         retval.start = input.LT(1);
@@ -13978,14 +13916,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1651:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1651:9: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1650:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1650:9: {...}? =>id= ID
             {
             if ( !(((isPluggableEvaluator(false)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "operator_key", "(isPluggableEvaluator(false))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_operator_key6491); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_operator_key6480); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14004,7 +13942,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1653:9: -> VK_OPERATOR[$id]
+            // 1652:9: -> VK_OPERATOR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_OPERATOR, id));
 
@@ -14039,7 +13977,7 @@
     };
 
     // $ANTLR start "neg_operator_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1656:1: neg_operator_key : {...}? =>id= ID -> VK_OPERATOR[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1655:1: neg_operator_key : {...}? =>id= ID -> VK_OPERATOR[$id] ;
     public final DRLParser.neg_operator_key_return neg_operator_key() throws RecognitionException {
         DRLParser.neg_operator_key_return retval = new DRLParser.neg_operator_key_return();
         retval.start = input.LT(1);
@@ -14052,14 +13990,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:9: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1656:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1656:9: {...}? =>id= ID
             {
             if ( !(((isPluggableEvaluator(true)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "neg_operator_key", "(isPluggableEvaluator(true))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_neg_operator_key6536); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_neg_operator_key6525); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14078,7 +14016,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1659:9: -> VK_OPERATOR[$id]
+            // 1658:9: -> VK_OPERATOR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_OPERATOR, id));
 
@@ -14113,33 +14051,33 @@
     };
 
     // $ANTLR start "expression_value"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1662:1: expression_value : ( accessor_path | literal_constraint | paren_chunk ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1661:1: expression_value : ( accessor_path | literal_constraint | paren_chunk ) ;
     public final DRLParser.expression_value_return expression_value() throws RecognitionException {
         DRLParser.expression_value_return retval = new DRLParser.expression_value_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        DRLParser.accessor_path_return accessor_path336 = null;
+        DRLParser.accessor_path_return accessor_path334 = null;
 
-        DRLParser.literal_constraint_return literal_constraint337 = null;
+        DRLParser.literal_constraint_return literal_constraint335 = null;
 
-        DRLParser.paren_chunk_return paren_chunk338 = null;
+        DRLParser.paren_chunk_return paren_chunk336 = null;
 
 
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1663:2: ( ( accessor_path | literal_constraint | paren_chunk ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1663:4: ( accessor_path | literal_constraint | paren_chunk )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1662:2: ( ( accessor_path | literal_constraint | paren_chunk ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1662:4: ( accessor_path | literal_constraint | paren_chunk )
             {
             root_0 = (Object)adaptor.nil();
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1663:4: ( accessor_path | literal_constraint | paren_chunk )
-            int alt115=3;
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1662:4: ( accessor_path | literal_constraint | paren_chunk )
+            int alt113=3;
             switch ( input.LA(1) ) {
             case ID:
                 {
-                alt115=1;
+                alt113=1;
                 }
                 break;
             case STRING:
@@ -14148,56 +14086,56 @@
             case FLOAT:
             case NULL:
                 {
-                alt115=2;
+                alt113=2;
                 }
                 break;
             case LEFT_PAREN:
                 {
-                alt115=3;
+                alt113=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 115, 0, input);
+                    new NoViableAltException("", 113, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt115) {
+            switch (alt113) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1663:5: accessor_path
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1662:5: accessor_path
                     {
-                    pushFollow(FOLLOW_accessor_path_in_expression_value6573);
-                    accessor_path336=accessor_path();
+                    pushFollow(FOLLOW_accessor_path_in_expression_value6562);
+                    accessor_path334=accessor_path();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, accessor_path336.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, accessor_path334.getTree());
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:4: literal_constraint
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1663:4: literal_constraint
                     {
-                    pushFollow(FOLLOW_literal_constraint_in_expression_value6578);
-                    literal_constraint337=literal_constraint();
+                    pushFollow(FOLLOW_literal_constraint_in_expression_value6567);
+                    literal_constraint335=literal_constraint();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, literal_constraint337.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, literal_constraint335.getTree());
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1665:4: paren_chunk
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:4: paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_expression_value6584);
-                    paren_chunk338=paren_chunk();
+                    pushFollow(FOLLOW_paren_chunk_in_expression_value6573);
+                    paren_chunk336=paren_chunk();
 
                     state._fsp--;
                     if (state.failed) return retval;
-                    if ( state.backtracking==0 ) adaptor.addChild(root_0, paren_chunk338.getTree());
+                    if ( state.backtracking==0 ) adaptor.addChild(root_0, paren_chunk336.getTree());
 
                     }
                     break;
@@ -14246,139 +14184,139 @@
     };
 
     // $ANTLR start "literal_constraint"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1679:1: literal_constraint : ( STRING | INT | FLOAT | BOOL | NULL );
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1678:1: literal_constraint : ( STRING | INT | FLOAT | BOOL | NULL );
     public final DRLParser.literal_constraint_return literal_constraint() throws RecognitionException {
         DRLParser.literal_constraint_return retval = new DRLParser.literal_constraint_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token STRING339=null;
-        Token INT340=null;
-        Token FLOAT341=null;
-        Token BOOL342=null;
-        Token NULL343=null;
+        Token STRING337=null;
+        Token INT338=null;
+        Token FLOAT339=null;
+        Token BOOL340=null;
+        Token NULL341=null;
 
-        Object STRING339_tree=null;
-        Object INT340_tree=null;
-        Object FLOAT341_tree=null;
-        Object BOOL342_tree=null;
-        Object NULL343_tree=null;
+        Object STRING337_tree=null;
+        Object INT338_tree=null;
+        Object FLOAT339_tree=null;
+        Object BOOL340_tree=null;
+        Object NULL341_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1680:2: ( STRING | INT | FLOAT | BOOL | NULL )
-            int alt116=5;
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1679:2: ( STRING | INT | FLOAT | BOOL | NULL )
+            int alt114=5;
             switch ( input.LA(1) ) {
             case STRING:
                 {
-                alt116=1;
+                alt114=1;
                 }
                 break;
             case INT:
                 {
-                alt116=2;
+                alt114=2;
                 }
                 break;
             case FLOAT:
                 {
-                alt116=3;
+                alt114=3;
                 }
                 break;
             case BOOL:
                 {
-                alt116=4;
+                alt114=4;
                 }
                 break;
             case NULL:
                 {
-                alt116=5;
+                alt114=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 116, 0, input);
+                    new NoViableAltException("", 114, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt116) {
+            switch (alt114) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1680:4: STRING
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1679:4: STRING
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    STRING339=(Token)match(input,STRING,FOLLOW_STRING_in_literal_constraint6603); if (state.failed) return retval;
+                    STRING337=(Token)match(input,STRING,FOLLOW_STRING_in_literal_constraint6592); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    STRING339_tree = (Object)adaptor.create(STRING339);
-                    adaptor.addChild(root_0, STRING339_tree);
+                    STRING337_tree = (Object)adaptor.create(STRING337);
+                    adaptor.addChild(root_0, STRING337_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(STRING339, DroolsEditorType.STRING_CONST);	
+                      	emit(STRING337, DroolsEditorType.STRING_CONST);	
                     }
 
                     }
                     break;
                 case 2 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1681:4: INT
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1680:4: INT
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    INT340=(Token)match(input,INT,FOLLOW_INT_in_literal_constraint6610); if (state.failed) return retval;
+                    INT338=(Token)match(input,INT,FOLLOW_INT_in_literal_constraint6599); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    INT340_tree = (Object)adaptor.create(INT340);
-                    adaptor.addChild(root_0, INT340_tree);
+                    INT338_tree = (Object)adaptor.create(INT338);
+                    adaptor.addChild(root_0, INT338_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(INT340, DroolsEditorType.NUMERIC_CONST);	
+                      	emit(INT338, DroolsEditorType.NUMERIC_CONST);	
                     }
 
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1682:4: FLOAT
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1681:4: FLOAT
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    FLOAT341=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint6617); if (state.failed) return retval;
+                    FLOAT339=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint6606); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    FLOAT341_tree = (Object)adaptor.create(FLOAT341);
-                    adaptor.addChild(root_0, FLOAT341_tree);
+                    FLOAT339_tree = (Object)adaptor.create(FLOAT339);
+                    adaptor.addChild(root_0, FLOAT339_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(FLOAT341, DroolsEditorType.NUMERIC_CONST);	
+                      	emit(FLOAT339, DroolsEditorType.NUMERIC_CONST);	
                     }
 
                     }
                     break;
                 case 4 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1683:4: BOOL
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1682:4: BOOL
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    BOOL342=(Token)match(input,BOOL,FOLLOW_BOOL_in_literal_constraint6624); if (state.failed) return retval;
+                    BOOL340=(Token)match(input,BOOL,FOLLOW_BOOL_in_literal_constraint6613); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    BOOL342_tree = (Object)adaptor.create(BOOL342);
-                    adaptor.addChild(root_0, BOOL342_tree);
+                    BOOL340_tree = (Object)adaptor.create(BOOL340);
+                    adaptor.addChild(root_0, BOOL340_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(BOOL342, DroolsEditorType.BOOLEAN_CONST);	
+                      	emit(BOOL340, DroolsEditorType.BOOLEAN_CONST);	
                     }
 
                     }
                     break;
                 case 5 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:4: NULL
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1683:4: NULL
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    NULL343=(Token)match(input,NULL,FOLLOW_NULL_in_literal_constraint6631); if (state.failed) return retval;
+                    NULL341=(Token)match(input,NULL,FOLLOW_NULL_in_literal_constraint6620); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    NULL343_tree = (Object)adaptor.create(NULL343);
-                    adaptor.addChild(root_0, NULL343_tree);
+                    NULL341_tree = (Object)adaptor.create(NULL341);
+                    adaptor.addChild(root_0, NULL341_tree);
                     }
                     if ( state.backtracking==0 ) {
-                      	emit(NULL343, DroolsEditorType.NULL_CONST);	
+                      	emit(NULL341, DroolsEditorType.NULL_CONST);	
                     }
 
                     }
@@ -14411,7 +14349,7 @@
     };
 
     // $ANTLR start "pattern_type"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:1: pattern_type : id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1686:1: pattern_type : id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) ;
     public final DRLParser.pattern_type_return pattern_type() throws RecognitionException {
         DRLParser.pattern_type_return retval = new DRLParser.pattern_type_return();
         retval.start = input.LT(1);
@@ -14420,7 +14358,7 @@
 
         Token id=null;
         List list_id=null;
-        DRLParser.dimension_definition_return dimension_definition344 = null;
+        DRLParser.dimension_definition_return dimension_definition342 = null;
 
 
         Object id_tree=null;
@@ -14428,37 +14366,37 @@
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
         RewriteRuleSubtreeStream stream_dimension_definition=new RewriteRuleSubtreeStream(adaptor,"rule dimension_definition");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1688:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1688:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_pattern_type6646); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_pattern_type6635); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if (list_id==null) list_id=new ArrayList();
             list_id.add(id);
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1688:11: (id+= DOT id+= ID )*
-            loop117:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:11: (id+= DOT id+= ID )*
+            loop115:
             do {
-                int alt117=2;
-                int LA117_0 = input.LA(1);
+                int alt115=2;
+                int LA115_0 = input.LA(1);
 
-                if ( (LA117_0==DOT) ) {
-                    alt117=1;
+                if ( (LA115_0==DOT) ) {
+                    alt115=1;
                 }
 
 
-                switch (alt117) {
+                switch (alt115) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1688:13: id+= DOT id+= ID
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:13: id+= DOT id+= ID
             	    {
-            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_pattern_type6652); if (state.failed) return retval; 
+            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_pattern_type6641); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_DOT.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
             	    list_id.add(id);
 
-            	    id=(Token)match(input,ID,FOLLOW_ID_in_pattern_type6656); if (state.failed) return retval; 
+            	    id=(Token)match(input,ID,FOLLOW_ID_in_pattern_type6645); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_ID.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
@@ -14469,7 +14407,7 @@
             	    break;
 
             	default :
-            	    break loop117;
+            	    break loop115;
                 }
             } while (true);
 
@@ -14477,40 +14415,40 @@
               	emit(list_id, DroolsEditorType.IDENTIFIER);
               		setParaphrasesValue(DroolsParaphraseTypes.PATTERN, buildStringFromTokens(list_id));	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1691:6: ( dimension_definition )*
-            loop118:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1690:6: ( dimension_definition )*
+            loop116:
             do {
-                int alt118=2;
-                int LA118_0 = input.LA(1);
+                int alt116=2;
+                int LA116_0 = input.LA(1);
 
-                if ( (LA118_0==LEFT_SQUARE) ) {
-                    alt118=1;
+                if ( (LA116_0==LEFT_SQUARE) ) {
+                    alt116=1;
                 }
 
 
-                switch (alt118) {
+                switch (alt116) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1691:6: dimension_definition
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1690:6: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type6671);
-            	    dimension_definition344=dimension_definition();
+            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type6660);
+            	    dimension_definition342=dimension_definition();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) stream_dimension_definition.add(dimension_definition344.getTree());
+            	    if ( state.backtracking==0 ) stream_dimension_definition.add(dimension_definition342.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop118;
+            	    break loop116;
                 }
             } while (true);
 
 
 
             // AST REWRITE
-            // elements: dimension_definition, ID
+            // elements: ID, dimension_definition
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -14520,9 +14458,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1692:3: -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
+            // 1691:3: -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1692:6: ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1691:6: ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PATTERN_TYPE, "VT_PATTERN_TYPE"), root_1);
@@ -14535,7 +14473,7 @@
 
                 }
                 stream_ID.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1692:28: ( dimension_definition )*
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1691:28: ( dimension_definition )*
                 while ( stream_dimension_definition.hasNext() ) {
                     adaptor.addChild(root_1, stream_dimension_definition.nextTree());
 
@@ -14576,7 +14514,7 @@
     };
 
     // $ANTLR start "data_type"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:1: data_type : id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:1: data_type : id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) ;
     public final DRLParser.data_type_return data_type() throws RecognitionException {
         DRLParser.data_type_return retval = new DRLParser.data_type_return();
         retval.start = input.LT(1);
@@ -14585,7 +14523,7 @@
 
         Token id=null;
         List list_id=null;
-        DRLParser.dimension_definition_return dimension_definition345 = null;
+        DRLParser.dimension_definition_return dimension_definition343 = null;
 
 
         Object id_tree=null;
@@ -14593,37 +14531,37 @@
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
         RewriteRuleSubtreeStream stream_dimension_definition=new RewriteRuleSubtreeStream(adaptor,"rule dimension_definition");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1696:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1696:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_data_type6699); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_data_type6688); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if (list_id==null) list_id=new ArrayList();
             list_id.add(id);
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1696:11: (id+= DOT id+= ID )*
-            loop119:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:11: (id+= DOT id+= ID )*
+            loop117:
             do {
-                int alt119=2;
-                int LA119_0 = input.LA(1);
+                int alt117=2;
+                int LA117_0 = input.LA(1);
 
-                if ( (LA119_0==DOT) ) {
-                    alt119=1;
+                if ( (LA117_0==DOT) ) {
+                    alt117=1;
                 }
 
 
-                switch (alt119) {
+                switch (alt117) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1696:13: id+= DOT id+= ID
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:13: id+= DOT id+= ID
             	    {
-            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_data_type6705); if (state.failed) return retval; 
+            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_data_type6694); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_DOT.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
             	    list_id.add(id);
 
-            	    id=(Token)match(input,ID,FOLLOW_ID_in_data_type6709); if (state.failed) return retval; 
+            	    id=(Token)match(input,ID,FOLLOW_ID_in_data_type6698); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_ID.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
@@ -14634,37 +14572,37 @@
             	    break;
 
             	default :
-            	    break loop119;
+            	    break loop117;
                 }
             } while (true);
 
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1696:31: ( dimension_definition )*
-            loop120:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:31: ( dimension_definition )*
+            loop118:
             do {
-                int alt120=2;
-                int LA120_0 = input.LA(1);
+                int alt118=2;
+                int LA118_0 = input.LA(1);
 
-                if ( (LA120_0==LEFT_SQUARE) ) {
-                    alt120=1;
+                if ( (LA118_0==LEFT_SQUARE) ) {
+                    alt118=1;
                 }
 
 
-                switch (alt120) {
+                switch (alt118) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1696:31: dimension_definition
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:31: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_data_type6714);
-            	    dimension_definition345=dimension_definition();
+            	    pushFollow(FOLLOW_dimension_definition_in_data_type6703);
+            	    dimension_definition343=dimension_definition();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) stream_dimension_definition.add(dimension_definition345.getTree());
+            	    if ( state.backtracking==0 ) stream_dimension_definition.add(dimension_definition343.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop120;
+            	    break loop118;
                 }
             } while (true);
 
@@ -14684,9 +14622,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1698:3: -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
+            // 1697:3: -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:6: ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1697:6: ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_DATA_TYPE, "VT_DATA_TYPE"), root_1);
@@ -14699,7 +14637,7 @@
 
                 }
                 stream_ID.reset();
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:25: ( dimension_definition )*
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1697:25: ( dimension_definition )*
                 while ( stream_dimension_definition.hasNext() ) {
                     adaptor.addChild(root_1, stream_dimension_definition.nextTree());
 
@@ -14740,40 +14678,40 @@
     };
 
     // $ANTLR start "dimension_definition"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1701:1: dimension_definition : LEFT_SQUARE RIGHT_SQUARE ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1700:1: dimension_definition : LEFT_SQUARE RIGHT_SQUARE ;
     public final DRLParser.dimension_definition_return dimension_definition() throws RecognitionException {
         DRLParser.dimension_definition_return retval = new DRLParser.dimension_definition_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token LEFT_SQUARE346=null;
-        Token RIGHT_SQUARE347=null;
+        Token LEFT_SQUARE344=null;
+        Token RIGHT_SQUARE345=null;
 
-        Object LEFT_SQUARE346_tree=null;
-        Object RIGHT_SQUARE347_tree=null;
+        Object LEFT_SQUARE344_tree=null;
+        Object RIGHT_SQUARE345_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:2: ( LEFT_SQUARE RIGHT_SQUARE )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:4: LEFT_SQUARE RIGHT_SQUARE
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1701:2: ( LEFT_SQUARE RIGHT_SQUARE )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1701:4: LEFT_SQUARE RIGHT_SQUARE
             {
             root_0 = (Object)adaptor.nil();
 
-            LEFT_SQUARE346=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition6743); if (state.failed) return retval;
+            LEFT_SQUARE344=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition6732); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
-            LEFT_SQUARE346_tree = (Object)adaptor.create(LEFT_SQUARE346);
-            adaptor.addChild(root_0, LEFT_SQUARE346_tree);
+            LEFT_SQUARE344_tree = (Object)adaptor.create(LEFT_SQUARE344);
+            adaptor.addChild(root_0, LEFT_SQUARE344_tree);
             }
             if ( state.backtracking==0 ) {
-              	emit(LEFT_SQUARE346, DroolsEditorType.SYMBOL);	
+              	emit(LEFT_SQUARE344, DroolsEditorType.SYMBOL);	
             }
-            RIGHT_SQUARE347=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition6750); if (state.failed) return retval;
+            RIGHT_SQUARE345=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition6739); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
-            RIGHT_SQUARE347_tree = (Object)adaptor.create(RIGHT_SQUARE347);
-            adaptor.addChild(root_0, RIGHT_SQUARE347_tree);
+            RIGHT_SQUARE345_tree = (Object)adaptor.create(RIGHT_SQUARE345);
+            adaptor.addChild(root_0, RIGHT_SQUARE345_tree);
             }
             if ( state.backtracking==0 ) {
-              	emit(RIGHT_SQUARE347, DroolsEditorType.SYMBOL);	
+              	emit(RIGHT_SQUARE345, DroolsEditorType.SYMBOL);	
             }
 
             }
@@ -14804,65 +14742,65 @@
     };
 
     // $ANTLR start "accessor_path"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:1: accessor_path : accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1705:1: accessor_path : accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) ;
     public final DRLParser.accessor_path_return accessor_path() throws RecognitionException {
         DRLParser.accessor_path_return retval = new DRLParser.accessor_path_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token DOT349=null;
+        Token DOT347=null;
+        DRLParser.accessor_element_return accessor_element346 = null;
+
         DRLParser.accessor_element_return accessor_element348 = null;
 
-        DRLParser.accessor_element_return accessor_element350 = null;
 
-
-        Object DOT349_tree=null;
+        Object DOT347_tree=null;
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
         RewriteRuleSubtreeStream stream_accessor_element=new RewriteRuleSubtreeStream(adaptor,"rule accessor_element");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1707:2: ( accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1707:4: accessor_element ( DOT accessor_element )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:2: ( accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:4: accessor_element ( DOT accessor_element )*
             {
-            pushFollow(FOLLOW_accessor_element_in_accessor_path6764);
-            accessor_element348=accessor_element();
+            pushFollow(FOLLOW_accessor_element_in_accessor_path6753);
+            accessor_element346=accessor_element();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) stream_accessor_element.add(accessor_element348.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1707:21: ( DOT accessor_element )*
-            loop121:
+            if ( state.backtracking==0 ) stream_accessor_element.add(accessor_element346.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:21: ( DOT accessor_element )*
+            loop119:
             do {
-                int alt121=2;
-                int LA121_0 = input.LA(1);
+                int alt119=2;
+                int LA119_0 = input.LA(1);
 
-                if ( (LA121_0==DOT) ) {
-                    alt121=1;
+                if ( (LA119_0==DOT) ) {
+                    alt119=1;
                 }
 
 
-                switch (alt121) {
+                switch (alt119) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1707:23: DOT accessor_element
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:23: DOT accessor_element
             	    {
-            	    DOT349=(Token)match(input,DOT,FOLLOW_DOT_in_accessor_path6768); if (state.failed) return retval; 
-            	    if ( state.backtracking==0 ) stream_DOT.add(DOT349);
+            	    DOT347=(Token)match(input,DOT,FOLLOW_DOT_in_accessor_path6757); if (state.failed) return retval; 
+            	    if ( state.backtracking==0 ) stream_DOT.add(DOT347);
 
             	    if ( state.backtracking==0 ) {
-            	      	emit(DOT349, DroolsEditorType.IDENTIFIER);	
+            	      	emit(DOT347, DroolsEditorType.IDENTIFIER);	
             	    }
-            	    pushFollow(FOLLOW_accessor_element_in_accessor_path6772);
-            	    accessor_element350=accessor_element();
+            	    pushFollow(FOLLOW_accessor_element_in_accessor_path6761);
+            	    accessor_element348=accessor_element();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) stream_accessor_element.add(accessor_element350.getTree());
+            	    if ( state.backtracking==0 ) stream_accessor_element.add(accessor_element348.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop121;
+            	    break loop119;
                 }
             } while (true);
 
@@ -14879,9 +14817,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1708:2: -> ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+            // 1707:2: -> ^( VT_ACCESSOR_PATH ( accessor_element )+ )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1708:5: ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1707:5: ^( VT_ACCESSOR_PATH ( accessor_element )+ )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_ACCESSOR_PATH, "VT_ACCESSOR_PATH"), root_1);
@@ -14929,64 +14867,64 @@
     };
 
     // $ANTLR start "accessor_element"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1711:1: accessor_element : ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1710:1: accessor_element : ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) ;
     public final DRLParser.accessor_element_return accessor_element() throws RecognitionException {
         DRLParser.accessor_element_return retval = new DRLParser.accessor_element_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token ID351=null;
-        DRLParser.square_chunk_return square_chunk352 = null;
+        Token ID349=null;
+        DRLParser.square_chunk_return square_chunk350 = null;
 
 
-        Object ID351_tree=null;
+        Object ID349_tree=null;
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_square_chunk=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk");
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:2: ( ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:4: ID ( square_chunk )*
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1711:2: ( ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1711:4: ID ( square_chunk )*
             {
-            ID351=(Token)match(input,ID,FOLLOW_ID_in_accessor_element6796); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(ID351);
+            ID349=(Token)match(input,ID,FOLLOW_ID_in_accessor_element6785); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_ID.add(ID349);
 
             if ( state.backtracking==0 ) {
-              	emit(ID351, DroolsEditorType.IDENTIFIER);	
+              	emit(ID349, DroolsEditorType.IDENTIFIER);	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:3: ( square_chunk )*
-            loop122:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:3: ( square_chunk )*
+            loop120:
             do {
-                int alt122=2;
-                int LA122_0 = input.LA(1);
+                int alt120=2;
+                int LA120_0 = input.LA(1);
 
-                if ( (LA122_0==LEFT_SQUARE) ) {
-                    alt122=1;
+                if ( (LA120_0==LEFT_SQUARE) ) {
+                    alt120=1;
                 }
 
 
-                switch (alt122) {
+                switch (alt120) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:3: square_chunk
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:3: square_chunk
             	    {
-            	    pushFollow(FOLLOW_square_chunk_in_accessor_element6802);
-            	    square_chunk352=square_chunk();
+            	    pushFollow(FOLLOW_square_chunk_in_accessor_element6791);
+            	    square_chunk350=square_chunk();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) stream_square_chunk.add(square_chunk352.getTree());
+            	    if ( state.backtracking==0 ) stream_square_chunk.add(square_chunk350.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop122;
+            	    break loop120;
                 }
             } while (true);
 
 
 
             // AST REWRITE
-            // elements: square_chunk, ID
+            // elements: ID, square_chunk
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -14996,15 +14934,15 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1714:2: -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
+            // 1713:2: -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
             {
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1714:5: ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:5: ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_ACCESSOR_ELEMENT, "VT_ACCESSOR_ELEMENT"), root_1);
 
                 adaptor.addChild(root_1, stream_ID.nextNode());
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1714:30: ( square_chunk )*
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:30: ( square_chunk )*
                 while ( stream_square_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_square_chunk.nextTree());
 
@@ -15045,7 +14983,7 @@
     };
 
     // $ANTLR start "rhs_chunk"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:1: rhs_chunk : rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1716:1: rhs_chunk : rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] ;
     public final DRLParser.rhs_chunk_return rhs_chunk() throws RecognitionException {
         DRLParser.rhs_chunk_return retval = new DRLParser.rhs_chunk_return();
         retval.start = input.LT(1);
@@ -15060,10 +14998,10 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1720:3: (rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1720:5: rc= rhs_chunk_data
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1719:3: (rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1719:5: rc= rhs_chunk_data
             {
-            pushFollow(FOLLOW_rhs_chunk_data_in_rhs_chunk6831);
+            pushFollow(FOLLOW_rhs_chunk_data_in_rhs_chunk6820);
             rc=rhs_chunk_data();
 
             state._fsp--;
@@ -15085,7 +15023,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1721:2: -> VT_RHS_CHUNK[$rc.start,text]
+            // 1720:2: -> VT_RHS_CHUNK[$rc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_RHS_CHUNK, (rc!=null?((Token)rc.start):null), text));
 
@@ -15120,100 +15058,100 @@
     };
 
     // $ANTLR start "rhs_chunk_data"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1724:1: rhs_chunk_data : THEN ( not_end_key )* end_key ( SEMICOLON )? ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1723:1: rhs_chunk_data : THEN ( not_end_key )* end_key ( SEMICOLON )? ;
     public final DRLParser.rhs_chunk_data_return rhs_chunk_data() throws RecognitionException {
         DRLParser.rhs_chunk_data_return retval = new DRLParser.rhs_chunk_data_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token THEN353=null;
-        Token SEMICOLON356=null;
-        DRLParser.not_end_key_return not_end_key354 = null;
+        Token THEN351=null;
+        Token SEMICOLON354=null;
+        DRLParser.not_end_key_return not_end_key352 = null;
 
-        DRLParser.end_key_return end_key355 = null;
+        DRLParser.end_key_return end_key353 = null;
 
 
-        Object THEN353_tree=null;
-        Object SEMICOLON356_tree=null;
+        Object THEN351_tree=null;
+        Object SEMICOLON354_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1725:2: ( THEN ( not_end_key )* end_key ( SEMICOLON )? )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1725:4: THEN ( not_end_key )* end_key ( SEMICOLON )?
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1724:2: ( THEN ( not_end_key )* end_key ( SEMICOLON )? )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1724:4: THEN ( not_end_key )* end_key ( SEMICOLON )?
             {
             root_0 = (Object)adaptor.nil();
 
-            THEN353=(Token)match(input,THEN,FOLLOW_THEN_in_rhs_chunk_data6850); if (state.failed) return retval;
+            THEN351=(Token)match(input,THEN,FOLLOW_THEN_in_rhs_chunk_data6839); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
-            THEN353_tree = (Object)adaptor.create(THEN353);
-            adaptor.addChild(root_0, THEN353_tree);
+            THEN351_tree = (Object)adaptor.create(THEN351);
+            adaptor.addChild(root_0, THEN351_tree);
             }
             if ( state.backtracking==0 ) {
-              	if ((THEN353!=null?THEN353.getText():null).equalsIgnoreCase("then")){
-              			emit(THEN353, DroolsEditorType.KEYWORD);
+              	if ((THEN351!=null?THEN351.getText():null).equalsIgnoreCase("then")){
+              			emit(THEN351, DroolsEditorType.KEYWORD);
               			emit(Location.LOCATION_RHS);
               		}	
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:4: ( not_end_key )*
-            loop123:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:4: ( not_end_key )*
+            loop121:
             do {
-                int alt123=2;
-                int LA123_0 = input.LA(1);
+                int alt121=2;
+                int LA121_0 = input.LA(1);
 
-                if ( (LA123_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.END)))||(!(validateIdentifierKey(DroolsSoftKeywords.END)))))) {
-                    int LA123_1 = input.LA(2);
+                if ( (LA121_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.END)))||(!(validateIdentifierKey(DroolsSoftKeywords.END)))))) {
+                    int LA121_1 = input.LA(2);
 
                     if ( ((!(validateIdentifierKey(DroolsSoftKeywords.END)))) ) {
-                        alt123=1;
+                        alt121=1;
                     }
 
 
                 }
-                else if ( ((LA123_0>=VT_COMPILATION_UNIT && LA123_0<=SEMICOLON)||(LA123_0>=DOT && LA123_0<=MULTI_LINE_COMMENT)) && ((!(validateIdentifierKey(DroolsSoftKeywords.END))))) {
-                    alt123=1;
+                else if ( ((LA121_0>=VT_COMPILATION_UNIT && LA121_0<=SEMICOLON)||(LA121_0>=DOT && LA121_0<=MULTI_LINE_COMMENT)) && ((!(validateIdentifierKey(DroolsSoftKeywords.END))))) {
+                    alt121=1;
                 }
 
 
-                switch (alt123) {
+                switch (alt121) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:4: not_end_key
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:4: not_end_key
             	    {
-            	    pushFollow(FOLLOW_not_end_key_in_rhs_chunk_data6859);
-            	    not_end_key354=not_end_key();
+            	    pushFollow(FOLLOW_not_end_key_in_rhs_chunk_data6848);
+            	    not_end_key352=not_end_key();
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, not_end_key354.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, not_end_key352.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop123;
+            	    break loop121;
                 }
             } while (true);
 
-            pushFollow(FOLLOW_end_key_in_rhs_chunk_data6865);
-            end_key355=end_key();
+            pushFollow(FOLLOW_end_key_in_rhs_chunk_data6854);
+            end_key353=end_key();
 
             state._fsp--;
             if (state.failed) return retval;
-            if ( state.backtracking==0 ) adaptor.addChild(root_0, end_key355.getTree());
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1732:3: ( SEMICOLON )?
-            int alt124=2;
-            int LA124_0 = input.LA(1);
+            if ( state.backtracking==0 ) adaptor.addChild(root_0, end_key353.getTree());
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1731:3: ( SEMICOLON )?
+            int alt122=2;
+            int LA122_0 = input.LA(1);
 
-            if ( (LA124_0==SEMICOLON) ) {
-                alt124=1;
+            if ( (LA122_0==SEMICOLON) ) {
+                alt122=1;
             }
-            switch (alt124) {
+            switch (alt122) {
                 case 1 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1732:3: SEMICOLON
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1731:3: SEMICOLON
                     {
-                    SEMICOLON356=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rhs_chunk_data6870); if (state.failed) return retval;
+                    SEMICOLON354=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rhs_chunk_data6859); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
-                    SEMICOLON356_tree = (Object)adaptor.create(SEMICOLON356);
-                    adaptor.addChild(root_0, SEMICOLON356_tree);
+                    SEMICOLON354_tree = (Object)adaptor.create(SEMICOLON354);
+                    adaptor.addChild(root_0, SEMICOLON354_tree);
                     }
 
                     }
@@ -15222,7 +15160,7 @@
             }
 
             if ( state.backtracking==0 ) {
-              	emit(SEMICOLON356, DroolsEditorType.KEYWORD);	
+              	emit(SEMICOLON354, DroolsEditorType.KEYWORD);	
             }
 
             }
@@ -15253,7 +15191,7 @@
     };
 
     // $ANTLR start "curly_chunk"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1735:1: curly_chunk : cc= curly_chunk_data[false] -> VT_CURLY_CHUNK[$cc.start,text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:1: curly_chunk : cc= curly_chunk_data[false] -> VT_CURLY_CHUNK[$cc.start,text] ;
     public final DRLParser.curly_chunk_return curly_chunk() throws RecognitionException {
         DRLParser.curly_chunk_return retval = new DRLParser.curly_chunk_return();
         retval.start = input.LT(1);
@@ -15268,10 +15206,10 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:3: (cc= curly_chunk_data[false] -> VT_CURLY_CHUNK[$cc.start,text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:5: cc= curly_chunk_data[false]
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:3: (cc= curly_chunk_data[false] -> VT_CURLY_CHUNK[$cc.start,text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:5: cc= curly_chunk_data[false]
             {
-            pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk6889);
+            pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk6878);
             cc=curly_chunk_data(false);
 
             state._fsp--;
@@ -15293,7 +15231,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1739:2: -> VT_CURLY_CHUNK[$cc.start,text]
+            // 1738:2: -> VT_CURLY_CHUNK[$cc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_CURLY_CHUNK, (cc!=null?((Token)cc.start):null), text));
 
@@ -15328,7 +15266,7 @@
     };
 
     // $ANTLR start "curly_chunk_data"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1742:1: curly_chunk_data[boolean isRecursive] : lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1741:1: curly_chunk_data[boolean isRecursive] : lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY ;
     public final DRLParser.curly_chunk_data_return curly_chunk_data(boolean isRecursive) throws RecognitionException {
         DRLParser.curly_chunk_data_return retval = new DRLParser.curly_chunk_data_return();
         retval.start = input.LT(1);
@@ -15338,7 +15276,7 @@
         Token lc1=null;
         Token any=null;
         Token rc1=null;
-        DRLParser.curly_chunk_data_return curly_chunk_data357 = null;
+        DRLParser.curly_chunk_data_return curly_chunk_data355 = null;
 
 
         Object lc1_tree=null;
@@ -15346,12 +15284,12 @@
         Object rc1_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:2: (lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:4: lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1742:2: (lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1742:4: lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY
             {
             root_0 = (Object)adaptor.nil();
 
-            lc1=(Token)match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk_data6912); if (state.failed) return retval;
+            lc1=(Token)match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk_data6901); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             lc1_tree = (Object)adaptor.create(lc1);
             adaptor.addChild(root_0, lc1_tree);
@@ -15364,23 +15302,23 @@
               			}	
               		
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:4: (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )*
-            loop125:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1749:4: (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )*
+            loop123:
             do {
-                int alt125=3;
-                int LA125_0 = input.LA(1);
+                int alt123=3;
+                int LA123_0 = input.LA(1);
 
-                if ( ((LA125_0>=VT_COMPILATION_UNIT && LA125_0<=THEN)||(LA125_0>=MISC && LA125_0<=MULTI_LINE_COMMENT)) ) {
-                    alt125=1;
+                if ( ((LA123_0>=VT_COMPILATION_UNIT && LA123_0<=THEN)||(LA123_0>=MISC && LA123_0<=MULTI_LINE_COMMENT)) ) {
+                    alt123=1;
                 }
-                else if ( (LA125_0==LEFT_CURLY) ) {
-                    alt125=2;
+                else if ( (LA123_0==LEFT_CURLY) ) {
+                    alt123=2;
                 }
 
 
-                switch (alt125) {
+                switch (alt123) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:5: any=~ ( LEFT_CURLY | RIGHT_CURLY )
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1749:5: any=~ ( LEFT_CURLY | RIGHT_CURLY )
             	    {
             	    any=(Token)input.LT(1);
             	    if ( (input.LA(1)>=VT_COMPILATION_UNIT && input.LA(1)<=THEN)||(input.LA(1)>=MISC && input.LA(1)<=MULTI_LINE_COMMENT) ) {
@@ -15401,24 +15339,24 @@
             	    }
             	    break;
             	case 2 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:87: curly_chunk_data[true]
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1749:87: curly_chunk_data[true]
             	    {
-            	    pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk_data6940);
-            	    curly_chunk_data357=curly_chunk_data(true);
+            	    pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk_data6929);
+            	    curly_chunk_data355=curly_chunk_data(true);
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, curly_chunk_data357.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, curly_chunk_data355.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop125;
+            	    break loop123;
                 }
             } while (true);
 
-            rc1=(Token)match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk_data6951); if (state.failed) return retval;
+            rc1=(Token)match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk_data6940); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rc1_tree = (Object)adaptor.create(rc1);
             adaptor.addChild(root_0, rc1_tree);
@@ -15460,7 +15398,7 @@
     };
 
     // $ANTLR start "paren_chunk"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1760:1: paren_chunk : pc= paren_chunk_data[false] -> VT_PAREN_CHUNK[$pc.start,text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1759:1: paren_chunk : pc= paren_chunk_data[false] -> VT_PAREN_CHUNK[$pc.start,text] ;
     public final DRLParser.paren_chunk_return paren_chunk() throws RecognitionException {
         DRLParser.paren_chunk_return retval = new DRLParser.paren_chunk_return();
         retval.start = input.LT(1);
@@ -15475,10 +15413,10 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1763:3: (pc= paren_chunk_data[false] -> VT_PAREN_CHUNK[$pc.start,text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1763:5: pc= paren_chunk_data[false]
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1762:3: (pc= paren_chunk_data[false] -> VT_PAREN_CHUNK[$pc.start,text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1762:5: pc= paren_chunk_data[false]
             {
-            pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk6972);
+            pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk6961);
             pc=paren_chunk_data(false);
 
             state._fsp--;
@@ -15500,7 +15438,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1764:2: -> VT_PAREN_CHUNK[$pc.start,text]
+            // 1763:2: -> VT_PAREN_CHUNK[$pc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_PAREN_CHUNK, (pc!=null?((Token)pc.start):null), text));
 
@@ -15535,7 +15473,7 @@
     };
 
     // $ANTLR start "paren_chunk_data"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:1: paren_chunk_data[boolean isRecursive] : lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1766:1: paren_chunk_data[boolean isRecursive] : lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN ;
     public final DRLParser.paren_chunk_data_return paren_chunk_data(boolean isRecursive) throws RecognitionException {
         DRLParser.paren_chunk_data_return retval = new DRLParser.paren_chunk_data_return();
         retval.start = input.LT(1);
@@ -15545,7 +15483,7 @@
         Token lp1=null;
         Token any=null;
         Token rp1=null;
-        DRLParser.paren_chunk_data_return paren_chunk_data358 = null;
+        DRLParser.paren_chunk_data_return paren_chunk_data356 = null;
 
 
         Object lp1_tree=null;
@@ -15553,12 +15491,12 @@
         Object rp1_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1768:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1768:4: lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:4: lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN
             {
             root_0 = (Object)adaptor.nil();
 
-            lp1=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk_data6996); if (state.failed) return retval;
+            lp1=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk_data6985); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             lp1_tree = (Object)adaptor.create(lp1);
             adaptor.addChild(root_0, lp1_tree);
@@ -15571,23 +15509,23 @@
               			}	
               		
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )*
-            loop126:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1774:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )*
+            loop124:
             do {
-                int alt126=3;
-                int LA126_0 = input.LA(1);
+                int alt124=3;
+                int LA124_0 = input.LA(1);
 
-                if ( ((LA126_0>=VT_COMPILATION_UNIT && LA126_0<=STRING)||LA126_0==COMMA||(LA126_0>=AT && LA126_0<=MULTI_LINE_COMMENT)) ) {
-                    alt126=1;
+                if ( ((LA124_0>=VT_COMPILATION_UNIT && LA124_0<=STRING)||LA124_0==COMMA||(LA124_0>=AT && LA124_0<=MULTI_LINE_COMMENT)) ) {
+                    alt124=1;
                 }
-                else if ( (LA126_0==LEFT_PAREN) ) {
-                    alt126=2;
+                else if ( (LA124_0==LEFT_PAREN) ) {
+                    alt124=2;
                 }
 
 
-                switch (alt126) {
+                switch (alt124) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:5: any=~ ( LEFT_PAREN | RIGHT_PAREN )
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1774:5: any=~ ( LEFT_PAREN | RIGHT_PAREN )
             	    {
             	    any=(Token)input.LT(1);
             	    if ( (input.LA(1)>=VT_COMPILATION_UNIT && input.LA(1)<=STRING)||input.LA(1)==COMMA||(input.LA(1)>=AT && input.LA(1)<=MULTI_LINE_COMMENT) ) {
@@ -15608,24 +15546,24 @@
             	    }
             	    break;
             	case 2 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:87: paren_chunk_data[true]
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1774:87: paren_chunk_data[true]
             	    {
-            	    pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk_data7024);
-            	    paren_chunk_data358=paren_chunk_data(true);
+            	    pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk_data7013);
+            	    paren_chunk_data356=paren_chunk_data(true);
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, paren_chunk_data358.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, paren_chunk_data356.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop126;
+            	    break loop124;
                 }
             } while (true);
 
-            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk_data7035); if (state.failed) return retval;
+            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk_data7024); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rp1_tree = (Object)adaptor.create(rp1);
             adaptor.addChild(root_0, rp1_tree);
@@ -15667,7 +15605,7 @@
     };
 
     // $ANTLR start "square_chunk"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1785:1: square_chunk : sc= square_chunk_data[false] -> VT_SQUARE_CHUNK[$sc.start,text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:1: square_chunk : sc= square_chunk_data[false] -> VT_SQUARE_CHUNK[$sc.start,text] ;
     public final DRLParser.square_chunk_return square_chunk() throws RecognitionException {
         DRLParser.square_chunk_return retval = new DRLParser.square_chunk_return();
         retval.start = input.LT(1);
@@ -15682,10 +15620,10 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1788:3: (sc= square_chunk_data[false] -> VT_SQUARE_CHUNK[$sc.start,text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1788:5: sc= square_chunk_data[false]
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:3: (sc= square_chunk_data[false] -> VT_SQUARE_CHUNK[$sc.start,text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:5: sc= square_chunk_data[false]
             {
-            pushFollow(FOLLOW_square_chunk_data_in_square_chunk7056);
+            pushFollow(FOLLOW_square_chunk_data_in_square_chunk7045);
             sc=square_chunk_data(false);
 
             state._fsp--;
@@ -15707,7 +15645,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1789:2: -> VT_SQUARE_CHUNK[$sc.start,text]
+            // 1788:2: -> VT_SQUARE_CHUNK[$sc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_SQUARE_CHUNK, (sc!=null?((Token)sc.start):null), text));
 
@@ -15742,7 +15680,7 @@
     };
 
     // $ANTLR start "square_chunk_data"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1792:1: square_chunk_data[boolean isRecursive] : ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1791:1: square_chunk_data[boolean isRecursive] : ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE ;
     public final DRLParser.square_chunk_data_return square_chunk_data(boolean isRecursive) throws RecognitionException {
         DRLParser.square_chunk_data_return retval = new DRLParser.square_chunk_data_return();
         retval.start = input.LT(1);
@@ -15752,7 +15690,7 @@
         Token ls1=null;
         Token any=null;
         Token rs1=null;
-        DRLParser.square_chunk_data_return square_chunk_data359 = null;
+        DRLParser.square_chunk_data_return square_chunk_data357 = null;
 
 
         Object ls1_tree=null;
@@ -15760,12 +15698,12 @@
         Object rs1_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1793:2: (ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1793:4: ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1792:2: (ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1792:4: ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE
             {
             root_0 = (Object)adaptor.nil();
 
-            ls1=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk_data7079); if (state.failed) return retval;
+            ls1=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk_data7068); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             ls1_tree = (Object)adaptor.create(ls1);
             adaptor.addChild(root_0, ls1_tree);
@@ -15778,23 +15716,23 @@
               			}	
               		
             }
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:4: (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )*
-            loop127:
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1799:4: (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )*
+            loop125:
             do {
-                int alt127=3;
-                int LA127_0 = input.LA(1);
+                int alt125=3;
+                int LA125_0 = input.LA(1);
 
-                if ( ((LA127_0>=VT_COMPILATION_UNIT && LA127_0<=NULL)||(LA127_0>=THEN && LA127_0<=MULTI_LINE_COMMENT)) ) {
-                    alt127=1;
+                if ( ((LA125_0>=VT_COMPILATION_UNIT && LA125_0<=NULL)||(LA125_0>=THEN && LA125_0<=MULTI_LINE_COMMENT)) ) {
+                    alt125=1;
                 }
-                else if ( (LA127_0==LEFT_SQUARE) ) {
-                    alt127=2;
+                else if ( (LA125_0==LEFT_SQUARE) ) {
+                    alt125=2;
                 }
 
 
-                switch (alt127) {
+                switch (alt125) {
             	case 1 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:5: any=~ ( LEFT_SQUARE | RIGHT_SQUARE )
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1799:5: any=~ ( LEFT_SQUARE | RIGHT_SQUARE )
             	    {
             	    any=(Token)input.LT(1);
             	    if ( (input.LA(1)>=VT_COMPILATION_UNIT && input.LA(1)<=NULL)||(input.LA(1)>=THEN && input.LA(1)<=MULTI_LINE_COMMENT) ) {
@@ -15815,24 +15753,24 @@
             	    }
             	    break;
             	case 2 :
-            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:88: square_chunk_data[true]
+            	    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1799:88: square_chunk_data[true]
             	    {
-            	    pushFollow(FOLLOW_square_chunk_data_in_square_chunk_data7106);
-            	    square_chunk_data359=square_chunk_data(true);
+            	    pushFollow(FOLLOW_square_chunk_data_in_square_chunk_data7095);
+            	    square_chunk_data357=square_chunk_data(true);
 
             	    state._fsp--;
             	    if (state.failed) return retval;
-            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, square_chunk_data359.getTree());
+            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, square_chunk_data357.getTree());
 
             	    }
             	    break;
 
             	default :
-            	    break loop127;
+            	    break loop125;
                 }
             } while (true);
 
-            rs1=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk_data7117); if (state.failed) return retval;
+            rs1=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk_data7106); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rs1_tree = (Object)adaptor.create(rs1);
             adaptor.addChild(root_0, rs1_tree);
@@ -15874,7 +15812,7 @@
     };
 
     // $ANTLR start "lock_on_active_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1810:1: lock_on_active_key : {...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID -> VK_LOCK_ON_ACTIVE[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1809:1: lock_on_active_key : {...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID -> VK_LOCK_ON_ACTIVE[$start, text] ;
     public final DRLParser.lock_on_active_key_return lock_on_active_key() throws RecognitionException {
         DRLParser.lock_on_active_key_return retval = new DRLParser.lock_on_active_key_return();
         retval.start = input.LT(1);
@@ -15899,26 +15837,26 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1813:3: ({...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID -> VK_LOCK_ON_ACTIVE[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1813:5: {...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1812:3: ({...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID -> VK_LOCK_ON_ACTIVE[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1812:5: {...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "lock_on_active_key", "(validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, \"-\") && validateLT(5, DroolsSoftKeywords.ACTIVE))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key7141); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key7130); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key7145); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key7134); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key7149); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key7138); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
-            mis2=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key7153); if (state.failed) return retval; 
+            mis2=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key7142); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis2);
 
-            id3=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key7157); if (state.failed) return retval; 
+            id3=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key7146); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id3);
 
             if ( state.backtracking==0 ) {
@@ -15944,7 +15882,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1819:3: -> VK_LOCK_ON_ACTIVE[$start, text]
+            // 1818:3: -> VK_LOCK_ON_ACTIVE[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_LOCK_ON_ACTIVE, ((Token)retval.start), text));
 
@@ -15979,7 +15917,7 @@
     };
 
     // $ANTLR start "date_effective_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822:1: date_effective_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EFFECTIVE[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1821:1: date_effective_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EFFECTIVE[$start, text] ;
     public final DRLParser.date_effective_key_return date_effective_key() throws RecognitionException {
         DRLParser.date_effective_key_return retval = new DRLParser.date_effective_key_return();
         retval.start = input.LT(1);
@@ -16000,20 +15938,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1825:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EFFECTIVE[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1825:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1824:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EFFECTIVE[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1824:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "date_effective_key", "(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_date_effective_key7189); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_date_effective_key7178); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_effective_key7193); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_effective_key7182); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_date_effective_key7197); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_date_effective_key7186); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16037,7 +15975,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1829:3: -> VK_DATE_EFFECTIVE[$start, text]
+            // 1828:3: -> VK_DATE_EFFECTIVE[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DATE_EFFECTIVE, ((Token)retval.start), text));
 
@@ -16072,7 +16010,7 @@
     };
 
     // $ANTLR start "date_expires_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:1: date_expires_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EXPIRES[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1831:1: date_expires_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EXPIRES[$start, text] ;
     public final DRLParser.date_expires_key_return date_expires_key() throws RecognitionException {
         DRLParser.date_expires_key_return retval = new DRLParser.date_expires_key_return();
         retval.start = input.LT(1);
@@ -16093,20 +16031,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1835:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EXPIRES[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1835:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1834:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EXPIRES[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1834:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "date_expires_key", "(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.EXPIRES))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_date_expires_key7230); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_date_expires_key7219); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_expires_key7234); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_expires_key7223); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_date_expires_key7238); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_date_expires_key7227); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16130,7 +16068,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1839:3: -> VK_DATE_EXPIRES[$start, text]
+            // 1838:3: -> VK_DATE_EXPIRES[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DATE_EXPIRES, ((Token)retval.start), text));
 
@@ -16165,7 +16103,7 @@
     };
 
     // $ANTLR start "no_loop_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1842:1: no_loop_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_NO_LOOP[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1841:1: no_loop_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_NO_LOOP[$start, text] ;
     public final DRLParser.no_loop_key_return no_loop_key() throws RecognitionException {
         DRLParser.no_loop_key_return retval = new DRLParser.no_loop_key_return();
         retval.start = input.LT(1);
@@ -16186,20 +16124,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_NO_LOOP[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_NO_LOOP[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "no_loop_key", "(validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.LOOP))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_no_loop_key7270); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_no_loop_key7259); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_no_loop_key7274); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_no_loop_key7263); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_no_loop_key7278); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_no_loop_key7267); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16223,7 +16161,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1849:3: -> VK_NO_LOOP[$start, text]
+            // 1848:3: -> VK_NO_LOOP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_NO_LOOP, ((Token)retval.start), text));
 
@@ -16258,7 +16196,7 @@
     };
 
     // $ANTLR start "auto_focus_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1852:1: auto_focus_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_AUTO_FOCUS[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:1: auto_focus_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_AUTO_FOCUS[$start, text] ;
     public final DRLParser.auto_focus_key_return auto_focus_key() throws RecognitionException {
         DRLParser.auto_focus_key_return retval = new DRLParser.auto_focus_key_return();
         retval.start = input.LT(1);
@@ -16279,20 +16217,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AUTO_FOCUS[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1854:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AUTO_FOCUS[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1854:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "auto_focus_key", "(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.FOCUS))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_auto_focus_key7310); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_auto_focus_key7299); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_auto_focus_key7314); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_auto_focus_key7303); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_auto_focus_key7318); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_auto_focus_key7307); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16316,7 +16254,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1859:3: -> VK_AUTO_FOCUS[$start, text]
+            // 1858:3: -> VK_AUTO_FOCUS[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_AUTO_FOCUS, ((Token)retval.start), text));
 
@@ -16351,7 +16289,7 @@
     };
 
     // $ANTLR start "activation_group_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1862:1: activation_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_ACTIVATION_GROUP[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1861:1: activation_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_ACTIVATION_GROUP[$start, text] ;
     public final DRLParser.activation_group_key_return activation_group_key() throws RecognitionException {
         DRLParser.activation_group_key_return retval = new DRLParser.activation_group_key_return();
         retval.start = input.LT(1);
@@ -16372,20 +16310,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ACTIVATION_GROUP[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1864:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ACTIVATION_GROUP[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1864:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "activation_group_key", "(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.GROUP))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_activation_group_key7350); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_activation_group_key7339); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_activation_group_key7354); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_activation_group_key7343); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_activation_group_key7358); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_activation_group_key7347); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16409,7 +16347,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1869:3: -> VK_ACTIVATION_GROUP[$start, text]
+            // 1868:3: -> VK_ACTIVATION_GROUP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ACTIVATION_GROUP, ((Token)retval.start), text));
 
@@ -16444,7 +16382,7 @@
     };
 
     // $ANTLR start "agenda_group_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1872:1: agenda_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_AGENDA_GROUP[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:1: agenda_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_AGENDA_GROUP[$start, text] ;
     public final DRLParser.agenda_group_key_return agenda_group_key() throws RecognitionException {
         DRLParser.agenda_group_key_return retval = new DRLParser.agenda_group_key_return();
         retval.start = input.LT(1);
@@ -16465,20 +16403,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1875:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AGENDA_GROUP[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1875:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1874:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AGENDA_GROUP[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1874:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "agenda_group_key", "(validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.GROUP))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_agenda_group_key7390); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_agenda_group_key7379); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_agenda_group_key7394); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_agenda_group_key7383); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_agenda_group_key7398); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_agenda_group_key7387); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16502,7 +16440,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1879:3: -> VK_AGENDA_GROUP[$start, text]
+            // 1878:3: -> VK_AGENDA_GROUP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_AGENDA_GROUP, ((Token)retval.start), text));
 
@@ -16537,7 +16475,7 @@
     };
 
     // $ANTLR start "ruleflow_group_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1882:1: ruleflow_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_RULEFLOW_GROUP[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1881:1: ruleflow_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_RULEFLOW_GROUP[$start, text] ;
     public final DRLParser.ruleflow_group_key_return ruleflow_group_key() throws RecognitionException {
         DRLParser.ruleflow_group_key_return retval = new DRLParser.ruleflow_group_key_return();
         retval.start = input.LT(1);
@@ -16558,20 +16496,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1885:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_RULEFLOW_GROUP[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1885:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1884:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_RULEFLOW_GROUP[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1884:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "ruleflow_group_key", "(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.GROUP))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_ruleflow_group_key7430); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_ruleflow_group_key7419); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_ruleflow_group_key7434); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_ruleflow_group_key7423); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_ruleflow_group_key7438); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_ruleflow_group_key7427); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16595,7 +16533,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1889:3: -> VK_RULEFLOW_GROUP[$start, text]
+            // 1888:3: -> VK_RULEFLOW_GROUP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_RULEFLOW_GROUP, ((Token)retval.start), text));
 
@@ -16630,7 +16568,7 @@
     };
 
     // $ANTLR start "entry_point_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1892:1: entry_point_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_ENTRY_POINT[$start, text] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1891:1: entry_point_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_ENTRY_POINT[$start, text] ;
     public final DRLParser.entry_point_key_return entry_point_key() throws RecognitionException {
         DRLParser.entry_point_key_return retval = new DRLParser.entry_point_key_return();
         retval.start = input.LT(1);
@@ -16651,20 +16589,20 @@
         	String text = "";
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1895:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ENTRY_POINT[$start, text] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1895:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1894:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ENTRY_POINT[$start, text] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1894:5: {...}? =>id1= ID mis1= MISC id2= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.POINT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "entry_point_key", "(validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.POINT))");
             }
-            id1=(Token)match(input,ID,FOLLOW_ID_in_entry_point_key7470); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_entry_point_key7459); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_entry_point_key7474); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_entry_point_key7463); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_entry_point_key7478); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_entry_point_key7467); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -16688,7 +16626,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1899:3: -> VK_ENTRY_POINT[$start, text]
+            // 1898:3: -> VK_ENTRY_POINT[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ENTRY_POINT, ((Token)retval.start), text));
 
@@ -16723,7 +16661,7 @@
     };
 
     // $ANTLR start "duration_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1902:1: duration_key : {...}? =>id= ID -> VK_DURATION[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1901:1: duration_key : {...}? =>id= ID -> VK_DURATION[$id] ;
     public final DRLParser.duration_key_return duration_key() throws RecognitionException {
         DRLParser.duration_key_return retval = new DRLParser.duration_key_return();
         retval.start = input.LT(1);
@@ -16736,14 +16674,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1903:2: ({...}? =>id= ID -> VK_DURATION[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1903:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1902:2: ({...}? =>id= ID -> VK_DURATION[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1902:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.DURATION)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "duration_key", "(validateIdentifierKey(DroolsSoftKeywords.DURATION))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_duration_key7507); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_duration_key7496); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16762,7 +16700,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1905:3: -> VK_DURATION[$id]
+            // 1904:3: -> VK_DURATION[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DURATION, id));
 
@@ -16797,7 +16735,7 @@
     };
 
     // $ANTLR start "package_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1908:1: package_key : {...}? =>id= ID -> VK_PACKAGE[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1907:1: package_key : {...}? =>id= ID -> VK_PACKAGE[$id] ;
     public final DRLParser.package_key_return package_key() throws RecognitionException {
         DRLParser.package_key_return retval = new DRLParser.package_key_return();
         retval.start = input.LT(1);
@@ -16810,14 +16748,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1909:2: ({...}? =>id= ID -> VK_PACKAGE[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1909:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1908:2: ({...}? =>id= ID -> VK_PACKAGE[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1908:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.PACKAGE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "package_key", "(validateIdentifierKey(DroolsSoftKeywords.PACKAGE))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_package_key7534); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_package_key7523); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16836,7 +16774,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1911:3: -> VK_PACKAGE[$id]
+            // 1910:3: -> VK_PACKAGE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_PACKAGE, id));
 
@@ -16871,7 +16809,7 @@
     };
 
     // $ANTLR start "import_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1914:1: import_key : {...}? =>id= ID -> VK_IMPORT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1913:1: import_key : {...}? =>id= ID -> VK_IMPORT[$id] ;
     public final DRLParser.import_key_return import_key() throws RecognitionException {
         DRLParser.import_key_return retval = new DRLParser.import_key_return();
         retval.start = input.LT(1);
@@ -16884,14 +16822,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1915:2: ({...}? =>id= ID -> VK_IMPORT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1915:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1914:2: ({...}? =>id= ID -> VK_IMPORT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1914:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "import_key", "(validateIdentifierKey(DroolsSoftKeywords.IMPORT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_import_key7561); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_import_key7550); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16910,7 +16848,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1917:3: -> VK_IMPORT[$id]
+            // 1916:3: -> VK_IMPORT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_IMPORT, id));
 
@@ -16945,7 +16883,7 @@
     };
 
     // $ANTLR start "dialect_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1920:1: dialect_key : {...}? =>id= ID -> VK_DIALECT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1919:1: dialect_key : {...}? =>id= ID -> VK_DIALECT[$id] ;
     public final DRLParser.dialect_key_return dialect_key() throws RecognitionException {
         DRLParser.dialect_key_return retval = new DRLParser.dialect_key_return();
         retval.start = input.LT(1);
@@ -16958,14 +16896,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1921:2: ({...}? =>id= ID -> VK_DIALECT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1921:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1920:2: ({...}? =>id= ID -> VK_DIALECT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1920:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "dialect_key", "(validateIdentifierKey(DroolsSoftKeywords.DIALECT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_dialect_key7588); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_dialect_key7577); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16984,7 +16922,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1923:3: -> VK_DIALECT[$id]
+            // 1922:3: -> VK_DIALECT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DIALECT, id));
 
@@ -17019,7 +16957,7 @@
     };
 
     // $ANTLR start "prior_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1926:1: prior_key : {...}? =>id= ID -> VK_PRIOR[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1925:1: prior_key : {...}? =>id= ID -> VK_PRIOR[$id] ;
     public final DRLParser.prior_key_return prior_key() throws RecognitionException {
         DRLParser.prior_key_return retval = new DRLParser.prior_key_return();
         retval.start = input.LT(1);
@@ -17032,14 +16970,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1927:3: ({...}? =>id= ID -> VK_PRIOR[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1927:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1926:3: ({...}? =>id= ID -> VK_PRIOR[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1926:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "prior_key", "(validateIdentifierKey(DroolsSoftKeywords.PRIOR))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_prior_key7616); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_prior_key7605); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17058,7 +16996,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1929:5: -> VK_PRIOR[$id]
+            // 1928:5: -> VK_PRIOR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_PRIOR, id));
 
@@ -17093,7 +17031,7 @@
     };
 
     // $ANTLR start "entail_mode_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1932:1: entail_mode_key : {...}? =>id= ID -> VK_ENTAIL[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1931:1: entail_mode_key : {...}? =>id= ID -> VK_ENTAIL[$id] ;
     public final DRLParser.entail_mode_key_return entail_mode_key() throws RecognitionException {
         DRLParser.entail_mode_key_return retval = new DRLParser.entail_mode_key_return();
         retval.start = input.LT(1);
@@ -17106,14 +17044,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1933:3: ({...}? =>id= ID -> VK_ENTAIL[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1933:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1932:3: ({...}? =>id= ID -> VK_ENTAIL[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1932:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "entail_mode_key", "(validateIdentifierKey(DroolsSoftKeywords.ENTAIL))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_entail_mode_key7649); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_entail_mode_key7638); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17132,7 +17070,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1935:5: -> VK_ENTAIL[$id]
+            // 1934:5: -> VK_ENTAIL[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ENTAIL, id));
 
@@ -17167,7 +17105,7 @@
     };
 
     // $ANTLR start "filter_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1938:1: filter_key : {...}? =>id= ID -> VK_FILTER[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1937:1: filter_key : {...}? =>id= ID -> VK_FILTER[$id] ;
     public final DRLParser.filter_key_return filter_key() throws RecognitionException {
         DRLParser.filter_key_return retval = new DRLParser.filter_key_return();
         retval.start = input.LT(1);
@@ -17180,14 +17118,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1939:3: ({...}? =>id= ID -> VK_FILTER[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1939:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1938:3: ({...}? =>id= ID -> VK_FILTER[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1938:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.FILTER)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "filter_key", "(validateIdentifierKey(DroolsSoftKeywords.FILTER))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_filter_key7682); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_filter_key7671); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17206,7 +17144,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1941:5: -> VK_FILTER[$id]
+            // 1940:5: -> VK_FILTER[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_FILTER, id));
 
@@ -17241,7 +17179,7 @@
     };
 
     // $ANTLR start "salience_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1945:1: salience_key : {...}? =>id= ID -> VK_SALIENCE[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1944:1: salience_key : {...}? =>id= ID -> VK_SALIENCE[$id] ;
     public final DRLParser.salience_key_return salience_key() throws RecognitionException {
         DRLParser.salience_key_return retval = new DRLParser.salience_key_return();
         retval.start = input.LT(1);
@@ -17254,14 +17192,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1946:2: ({...}? =>id= ID -> VK_SALIENCE[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1946:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1945:2: ({...}? =>id= ID -> VK_SALIENCE[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1945:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "salience_key", "(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_salience_key7715); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_salience_key7704); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17280,7 +17218,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1948:3: -> VK_SALIENCE[$id]
+            // 1947:3: -> VK_SALIENCE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_SALIENCE, id));
 
@@ -17315,7 +17253,7 @@
     };
 
     // $ANTLR start "enabled_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1951:1: enabled_key : {...}? =>id= ID -> VK_ENABLED[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1950:1: enabled_key : {...}? =>id= ID -> VK_ENABLED[$id] ;
     public final DRLParser.enabled_key_return enabled_key() throws RecognitionException {
         DRLParser.enabled_key_return retval = new DRLParser.enabled_key_return();
         retval.start = input.LT(1);
@@ -17328,14 +17266,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1952:2: ({...}? =>id= ID -> VK_ENABLED[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1952:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1951:2: ({...}? =>id= ID -> VK_ENABLED[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1951:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "enabled_key", "(validateIdentifierKey(DroolsSoftKeywords.ENABLED))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_enabled_key7742); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_enabled_key7731); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17354,7 +17292,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1954:3: -> VK_ENABLED[$id]
+            // 1953:3: -> VK_ENABLED[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ENABLED, id));
 
@@ -17389,7 +17327,7 @@
     };
 
     // $ANTLR start "attributes_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1957:1: attributes_key : {...}? =>id= ID -> VK_ATTRIBUTES[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1956:1: attributes_key : {...}? =>id= ID -> VK_ATTRIBUTES[$id] ;
     public final DRLParser.attributes_key_return attributes_key() throws RecognitionException {
         DRLParser.attributes_key_return retval = new DRLParser.attributes_key_return();
         retval.start = input.LT(1);
@@ -17402,14 +17340,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1958:2: ({...}? =>id= ID -> VK_ATTRIBUTES[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1958:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1957:2: ({...}? =>id= ID -> VK_ATTRIBUTES[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1957:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "attributes_key", "(validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_attributes_key7769); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_attributes_key7758); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17428,7 +17366,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1960:3: -> VK_ATTRIBUTES[$id]
+            // 1959:3: -> VK_ATTRIBUTES[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ATTRIBUTES, id));
 
@@ -17463,7 +17401,7 @@
     };
 
     // $ANTLR start "rule_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1963:1: rule_key : {...}? =>id= ID -> VK_RULE[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1962:1: rule_key : {...}? =>id= ID -> VK_RULE[$id] ;
     public final DRLParser.rule_key_return rule_key() throws RecognitionException {
         DRLParser.rule_key_return retval = new DRLParser.rule_key_return();
         retval.start = input.LT(1);
@@ -17476,14 +17414,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1964:2: ({...}? =>id= ID -> VK_RULE[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1964:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1963:2: ({...}? =>id= ID -> VK_RULE[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1963:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.RULE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "rule_key", "(validateIdentifierKey(DroolsSoftKeywords.RULE))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_rule_key7796); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_rule_key7785); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17502,7 +17440,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1966:3: -> VK_RULE[$id]
+            // 1965:3: -> VK_RULE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_RULE, id));
 
@@ -17537,7 +17475,7 @@
     };
 
     // $ANTLR start "extend_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1969:1: extend_key : {...}? =>id= ID -> VK_EXTEND[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1968:1: extend_key : {...}? =>id= ID -> VK_EXTEND[$id] ;
     public final DRLParser.extend_key_return extend_key() throws RecognitionException {
         DRLParser.extend_key_return retval = new DRLParser.extend_key_return();
         retval.start = input.LT(1);
@@ -17550,14 +17488,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1970:2: ({...}? =>id= ID -> VK_EXTEND[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1970:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1969:2: ({...}? =>id= ID -> VK_EXTEND[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1969:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "extend_key", "(validateIdentifierKey(DroolsSoftKeywords.EXTEND))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_extend_key7823); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_extend_key7812); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17576,7 +17514,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1972:3: -> VK_EXTEND[$id]
+            // 1971:3: -> VK_EXTEND[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_EXTEND, id));
 
@@ -17611,7 +17549,7 @@
     };
 
     // $ANTLR start "template_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1975:1: template_key : {...}? =>id= ID -> VK_TEMPLATE[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1974:1: template_key : {...}? =>id= ID -> VK_TEMPLATE[$id] ;
     public final DRLParser.template_key_return template_key() throws RecognitionException {
         DRLParser.template_key_return retval = new DRLParser.template_key_return();
         retval.start = input.LT(1);
@@ -17624,14 +17562,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1976:2: ({...}? =>id= ID -> VK_TEMPLATE[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1976:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1975:2: ({...}? =>id= ID -> VK_TEMPLATE[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1975:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "template_key", "(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_template_key7850); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_template_key7839); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17650,7 +17588,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1978:3: -> VK_TEMPLATE[$id]
+            // 1977:3: -> VK_TEMPLATE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_TEMPLATE, id));
 
@@ -17685,7 +17623,7 @@
     };
 
     // $ANTLR start "query_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1981:1: query_key : {...}? =>id= ID -> VK_QUERY[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1980:1: query_key : {...}? =>id= ID -> VK_QUERY[$id] ;
     public final DRLParser.query_key_return query_key() throws RecognitionException {
         DRLParser.query_key_return retval = new DRLParser.query_key_return();
         retval.start = input.LT(1);
@@ -17698,14 +17636,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1982:2: ({...}? =>id= ID -> VK_QUERY[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1982:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1981:2: ({...}? =>id= ID -> VK_QUERY[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1981:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "query_key", "(validateIdentifierKey(DroolsSoftKeywords.QUERY))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_query_key7877); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_query_key7866); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17724,7 +17662,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1984:3: -> VK_QUERY[$id]
+            // 1983:3: -> VK_QUERY[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_QUERY, id));
 
@@ -17759,7 +17697,7 @@
     };
 
     // $ANTLR start "declare_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1987:1: declare_key : {...}? =>id= ID -> VK_DECLARE[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1986:1: declare_key : {...}? =>id= ID -> VK_DECLARE[$id] ;
     public final DRLParser.declare_key_return declare_key() throws RecognitionException {
         DRLParser.declare_key_return retval = new DRLParser.declare_key_return();
         retval.start = input.LT(1);
@@ -17772,14 +17710,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1988:2: ({...}? =>id= ID -> VK_DECLARE[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1988:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1987:2: ({...}? =>id= ID -> VK_DECLARE[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1987:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "declare_key", "(validateIdentifierKey(DroolsSoftKeywords.DECLARE))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_declare_key7904); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_declare_key7893); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17798,7 +17736,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1990:3: -> VK_DECLARE[$id]
+            // 1989:3: -> VK_DECLARE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DECLARE, id));
 
@@ -17833,7 +17771,7 @@
     };
 
     // $ANTLR start "function_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1993:1: function_key : {...}? =>id= ID -> VK_FUNCTION[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1992:1: function_key : {...}? =>id= ID -> VK_FUNCTION[$id] ;
     public final DRLParser.function_key_return function_key() throws RecognitionException {
         DRLParser.function_key_return retval = new DRLParser.function_key_return();
         retval.start = input.LT(1);
@@ -17846,14 +17784,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1994:2: ({...}? =>id= ID -> VK_FUNCTION[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1994:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1993:2: ({...}? =>id= ID -> VK_FUNCTION[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1993:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "function_key", "(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_function_key7931); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_function_key7920); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17872,7 +17810,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1996:3: -> VK_FUNCTION[$id]
+            // 1995:3: -> VK_FUNCTION[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_FUNCTION, id));
 
@@ -17907,7 +17845,7 @@
     };
 
     // $ANTLR start "global_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1999:1: global_key : {...}? =>id= ID -> VK_GLOBAL[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1998:1: global_key : {...}? =>id= ID -> VK_GLOBAL[$id] ;
     public final DRLParser.global_key_return global_key() throws RecognitionException {
         DRLParser.global_key_return retval = new DRLParser.global_key_return();
         retval.start = input.LT(1);
@@ -17920,14 +17858,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2000:2: ({...}? =>id= ID -> VK_GLOBAL[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2000:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1999:2: ({...}? =>id= ID -> VK_GLOBAL[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1999:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "global_key", "(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_global_key7958); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_global_key7947); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -17946,7 +17884,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2002:3: -> VK_GLOBAL[$id]
+            // 2001:3: -> VK_GLOBAL[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_GLOBAL, id));
 
@@ -17981,7 +17919,7 @@
     };
 
     // $ANTLR start "eval_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2005:1: eval_key : {...}? =>id= ID -> VK_EVAL[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2004:1: eval_key : {...}? =>id= ID -> VK_EVAL[$id] ;
     public final DRLParser.eval_key_return eval_key() throws RecognitionException {
         DRLParser.eval_key_return retval = new DRLParser.eval_key_return();
         retval.start = input.LT(1);
@@ -17994,14 +17932,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2006:2: ({...}? =>id= ID -> VK_EVAL[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2006:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2005:2: ({...}? =>id= ID -> VK_EVAL[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2005:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.EVAL)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "eval_key", "(validateIdentifierKey(DroolsSoftKeywords.EVAL))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_eval_key7985); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_eval_key7974); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18020,7 +17958,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2008:3: -> VK_EVAL[$id]
+            // 2007:3: -> VK_EVAL[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_EVAL, id));
 
@@ -18055,7 +17993,7 @@
     };
 
     // $ANTLR start "not_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2011:1: not_key : {...}? =>id= ID -> VK_NOT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2010:1: not_key : {...}? =>id= ID -> VK_NOT[$id] ;
     public final DRLParser.not_key_return not_key() throws RecognitionException {
         DRLParser.not_key_return retval = new DRLParser.not_key_return();
         retval.start = input.LT(1);
@@ -18068,14 +18006,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2012:2: ({...}? =>id= ID -> VK_NOT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2012:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2011:2: ({...}? =>id= ID -> VK_NOT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2011:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "not_key", "(validateIdentifierKey(DroolsSoftKeywords.NOT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_not_key8012); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_not_key8001); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18094,7 +18032,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2014:3: -> VK_NOT[$id]
+            // 2013:3: -> VK_NOT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_NOT, id));
 
@@ -18129,7 +18067,7 @@
     };
 
     // $ANTLR start "in_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2017:1: in_key : {...}? =>id= ID -> VK_IN[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2016:1: in_key : {...}? =>id= ID -> VK_IN[$id] ;
     public final DRLParser.in_key_return in_key() throws RecognitionException {
         DRLParser.in_key_return retval = new DRLParser.in_key_return();
         retval.start = input.LT(1);
@@ -18142,14 +18080,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2018:2: ({...}? =>id= ID -> VK_IN[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2018:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2017:2: ({...}? =>id= ID -> VK_IN[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2017:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "in_key", "(validateIdentifierKey(DroolsSoftKeywords.IN))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_in_key8039); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_in_key8028); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18168,7 +18106,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2020:3: -> VK_IN[$id]
+            // 2019:3: -> VK_IN[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_IN, id));
 
@@ -18203,7 +18141,7 @@
     };
 
     // $ANTLR start "or_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2023:1: or_key : {...}? =>id= ID -> VK_OR[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2022:1: or_key : {...}? =>id= ID -> VK_OR[$id] ;
     public final DRLParser.or_key_return or_key() throws RecognitionException {
         DRLParser.or_key_return retval = new DRLParser.or_key_return();
         retval.start = input.LT(1);
@@ -18216,14 +18154,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2024:2: ({...}? =>id= ID -> VK_OR[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2024:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2023:2: ({...}? =>id= ID -> VK_OR[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2023:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.OR)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "or_key", "(validateIdentifierKey(DroolsSoftKeywords.OR))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_or_key8066); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_or_key8055); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18242,7 +18180,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2026:3: -> VK_OR[$id]
+            // 2025:3: -> VK_OR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_OR, id));
 
@@ -18277,7 +18215,7 @@
     };
 
     // $ANTLR start "and_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2029:1: and_key : {...}? =>id= ID -> VK_AND[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2028:1: and_key : {...}? =>id= ID -> VK_AND[$id] ;
     public final DRLParser.and_key_return and_key() throws RecognitionException {
         DRLParser.and_key_return retval = new DRLParser.and_key_return();
         retval.start = input.LT(1);
@@ -18290,14 +18228,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2030:2: ({...}? =>id= ID -> VK_AND[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2030:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2029:2: ({...}? =>id= ID -> VK_AND[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2029:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.AND)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "and_key", "(validateIdentifierKey(DroolsSoftKeywords.AND))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_and_key8093); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_and_key8082); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18316,7 +18254,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2032:3: -> VK_AND[$id]
+            // 2031:3: -> VK_AND[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_AND, id));
 
@@ -18351,7 +18289,7 @@
     };
 
     // $ANTLR start "equiv_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2035:1: equiv_key : {...}? =>id= ID -> VK_EQUIV[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2034:1: equiv_key : {...}? =>id= ID -> VK_EQUIV[$id] ;
     public final DRLParser.equiv_key_return equiv_key() throws RecognitionException {
         DRLParser.equiv_key_return retval = new DRLParser.equiv_key_return();
         retval.start = input.LT(1);
@@ -18364,14 +18302,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2036:3: ({...}? =>id= ID -> VK_EQUIV[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2036:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2035:3: ({...}? =>id= ID -> VK_EQUIV[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2035:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.EQUIV)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "equiv_key", "(validateIdentifierKey(DroolsSoftKeywords.EQUIV))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_equiv_key8123); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_equiv_key8112); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18390,7 +18328,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2038:5: -> VK_EQUIV[$id]
+            // 2037:5: -> VK_EQUIV[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_EQUIV, id));
 
@@ -18425,7 +18363,7 @@
     };
 
     // $ANTLR start "xor_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2041:1: xor_key : {...}? =>id= ID -> VK_XOR[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2040:1: xor_key : {...}? =>id= ID -> VK_XOR[$id] ;
     public final DRLParser.xor_key_return xor_key() throws RecognitionException {
         DRLParser.xor_key_return retval = new DRLParser.xor_key_return();
         retval.start = input.LT(1);
@@ -18438,14 +18376,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2042:3: ({...}? =>id= ID -> VK_XOR[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2042:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2041:3: ({...}? =>id= ID -> VK_XOR[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2041:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.XOR)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "xor_key", "(validateIdentifierKey(DroolsSoftKeywords.XOR))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_xor_key8159); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_xor_key8148); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18464,7 +18402,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2044:5: -> VK_XOR[$id]
+            // 2043:5: -> VK_XOR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_XOR, id));
 
@@ -18499,7 +18437,7 @@
     };
 
     // $ANTLR start "implies_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2047:1: implies_key : {...}? =>id= ID -> VK_IMPLIES[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2046:1: implies_key : {...}? =>id= ID -> VK_IMPLIES[$id] ;
     public final DRLParser.implies_key_return implies_key() throws RecognitionException {
         DRLParser.implies_key_return retval = new DRLParser.implies_key_return();
         retval.start = input.LT(1);
@@ -18512,14 +18450,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2048:3: ({...}? =>id= ID -> VK_IMPLIES[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2048:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2047:3: ({...}? =>id= ID -> VK_IMPLIES[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2047:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.IMPLIES)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "implies_key", "(validateIdentifierKey(DroolsSoftKeywords.IMPLIES))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_implies_key8194); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_implies_key8183); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18538,7 +18476,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2050:5: -> VK_IMPLIES[$id]
+            // 2049:5: -> VK_IMPLIES[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_IMPLIES, id));
 
@@ -18573,7 +18511,7 @@
     };
 
     // $ANTLR start "exists_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2054:1: exists_key : {...}? =>id= ID -> VK_EXISTS[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2053:1: exists_key : {...}? =>id= ID -> VK_EXISTS[$id] ;
     public final DRLParser.exists_key_return exists_key() throws RecognitionException {
         DRLParser.exists_key_return retval = new DRLParser.exists_key_return();
         retval.start = input.LT(1);
@@ -18586,14 +18524,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2055:2: ({...}? =>id= ID -> VK_EXISTS[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2055:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2054:2: ({...}? =>id= ID -> VK_EXISTS[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2054:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.EXISTS)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "exists_key", "(validateIdentifierKey(DroolsSoftKeywords.EXISTS))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_exists_key8234); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_exists_key8223); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18612,7 +18550,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2057:3: -> VK_EXISTS[$id]
+            // 2056:3: -> VK_EXISTS[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_EXISTS, id));
 
@@ -18647,7 +18585,7 @@
     };
 
     // $ANTLR start "forall_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2060:1: forall_key : {...}? =>id= ID -> VK_FORALL[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2059:1: forall_key : {...}? =>id= ID -> VK_FORALL[$id] ;
     public final DRLParser.forall_key_return forall_key() throws RecognitionException {
         DRLParser.forall_key_return retval = new DRLParser.forall_key_return();
         retval.start = input.LT(1);
@@ -18660,14 +18598,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2061:2: ({...}? =>id= ID -> VK_FORALL[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2061:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2060:2: ({...}? =>id= ID -> VK_FORALL[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2060:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.FORALL)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "forall_key", "(validateIdentifierKey(DroolsSoftKeywords.FORALL))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_forall_key8261); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_forall_key8250); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18686,7 +18624,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2063:3: -> VK_FORALL[$id]
+            // 2062:3: -> VK_FORALL[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_FORALL, id));
 
@@ -18721,7 +18659,7 @@
     };
 
     // $ANTLR start "forany_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2066:1: forany_key : {...}? =>id= ID -> VK_FORANY[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2065:1: forany_key : {...}? =>id= ID -> VK_FORANY[$id] ;
     public final DRLParser.forany_key_return forany_key() throws RecognitionException {
         DRLParser.forany_key_return retval = new DRLParser.forany_key_return();
         retval.start = input.LT(1);
@@ -18734,14 +18672,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2067:3: ({...}? =>id= ID -> VK_FORANY[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2067:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2066:3: ({...}? =>id= ID -> VK_FORANY[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2066:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.FORANY)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "forany_key", "(validateIdentifierKey(DroolsSoftKeywords.FORANY))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_forany_key8290); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_forany_key8279); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18760,7 +18698,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2069:5: -> VK_FORANY[$id]
+            // 2068:5: -> VK_FORANY[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_FORANY, id));
 
@@ -18795,7 +18733,7 @@
     };
 
     // $ANTLR start "action_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2072:1: action_key : {...}? =>id= ID -> VK_ACTION[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2071:1: action_key : {...}? =>id= ID -> VK_ACTION[$id] ;
     public final DRLParser.action_key_return action_key() throws RecognitionException {
         DRLParser.action_key_return retval = new DRLParser.action_key_return();
         retval.start = input.LT(1);
@@ -18808,14 +18746,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2073:2: ({...}? =>id= ID -> VK_ACTION[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2073:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2072:2: ({...}? =>id= ID -> VK_ACTION[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2072:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.ACTION)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "action_key", "(validateIdentifierKey(DroolsSoftKeywords.ACTION))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_action_key8323); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_action_key8312); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18834,7 +18772,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2075:3: -> VK_ACTION[$id]
+            // 2074:3: -> VK_ACTION[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ACTION, id));
 
@@ -18869,7 +18807,7 @@
     };
 
     // $ANTLR start "reverse_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2078:1: reverse_key : {...}? =>id= ID -> VK_REVERSE[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2077:1: reverse_key : {...}? =>id= ID -> VK_REVERSE[$id] ;
     public final DRLParser.reverse_key_return reverse_key() throws RecognitionException {
         DRLParser.reverse_key_return retval = new DRLParser.reverse_key_return();
         retval.start = input.LT(1);
@@ -18882,14 +18820,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2079:2: ({...}? =>id= ID -> VK_REVERSE[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2079:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2078:2: ({...}? =>id= ID -> VK_REVERSE[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2078:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.REVERSE)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "reverse_key", "(validateIdentifierKey(DroolsSoftKeywords.REVERSE))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_reverse_key8350); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_reverse_key8339); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18908,7 +18846,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2081:3: -> VK_REVERSE[$id]
+            // 2080:3: -> VK_REVERSE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_REVERSE, id));
 
@@ -18943,7 +18881,7 @@
     };
 
     // $ANTLR start "result_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2084:1: result_key : {...}? =>id= ID -> VK_RESULT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2083:1: result_key : {...}? =>id= ID -> VK_RESULT[$id] ;
     public final DRLParser.result_key_return result_key() throws RecognitionException {
         DRLParser.result_key_return retval = new DRLParser.result_key_return();
         retval.start = input.LT(1);
@@ -18956,14 +18894,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2085:2: ({...}? =>id= ID -> VK_RESULT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2085:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2084:2: ({...}? =>id= ID -> VK_RESULT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2084:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.RESULT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "result_key", "(validateIdentifierKey(DroolsSoftKeywords.RESULT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_result_key8377); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_result_key8366); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -18982,7 +18920,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2087:3: -> VK_RESULT[$id]
+            // 2086:3: -> VK_RESULT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_RESULT, id));
 
@@ -19017,7 +18955,7 @@
     };
 
     // $ANTLR start "end_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2090:1: end_key : {...}? =>id= ID -> VK_END[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2089:1: end_key : {...}? =>id= ID -> VK_END[$id] ;
     public final DRLParser.end_key_return end_key() throws RecognitionException {
         DRLParser.end_key_return retval = new DRLParser.end_key_return();
         retval.start = input.LT(1);
@@ -19030,14 +18968,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2091:2: ({...}? =>id= ID -> VK_END[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2091:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2090:2: ({...}? =>id= ID -> VK_END[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2090:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.END)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "end_key", "(validateIdentifierKey(DroolsSoftKeywords.END))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_end_key8404); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_end_key8393); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19056,7 +18994,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2093:3: -> VK_END[$id]
+            // 2092:3: -> VK_END[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_END, id));
 
@@ -19091,7 +19029,7 @@
     };
 
     // $ANTLR start "not_end_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2096:1: not_end_key : {...}? =>any= . ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2095:1: not_end_key : {...}? =>any= . ;
     public final DRLParser.not_end_key_return not_end_key() throws RecognitionException {
         DRLParser.not_end_key_return retval = new DRLParser.not_end_key_return();
         retval.start = input.LT(1);
@@ -19103,8 +19041,8 @@
         Object any_tree=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2097:2: ({...}? =>any= . )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2097:4: {...}? =>any= .
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2096:2: ({...}? =>any= . )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2096:4: {...}? =>any= .
             {
             root_0 = (Object)adaptor.nil();
 
@@ -19150,7 +19088,7 @@
     };
 
     // $ANTLR start "init_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2101:1: init_key : {...}? =>id= ID -> VK_INIT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2100:1: init_key : {...}? =>id= ID -> VK_INIT[$id] ;
     public final DRLParser.init_key_return init_key() throws RecognitionException {
         DRLParser.init_key_return retval = new DRLParser.init_key_return();
         retval.start = input.LT(1);
@@ -19163,14 +19101,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2102:2: ({...}? =>id= ID -> VK_INIT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2102:4: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2101:2: ({...}? =>id= ID -> VK_INIT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2101:4: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.INIT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "init_key", "(validateIdentifierKey(DroolsSoftKeywords.INIT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_init_key8451); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_init_key8440); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19189,7 +19127,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2104:3: -> VK_INIT[$id]
+            // 2103:3: -> VK_INIT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_INIT, id));
 
@@ -19224,7 +19162,7 @@
     };
 
     // $ANTLR start "subject_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2108:1: subject_key : {...}? =>id= ID -> VK_SUBJECT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2107:1: subject_key : {...}? =>id= ID -> VK_SUBJECT[$id] ;
     public final DRLParser.subject_key_return subject_key() throws RecognitionException {
         DRLParser.subject_key_return retval = new DRLParser.subject_key_return();
         retval.start = input.LT(1);
@@ -19237,14 +19175,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2109:3: ({...}? =>id= ID -> VK_SUBJECT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2109:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2108:3: ({...}? =>id= ID -> VK_SUBJECT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2108:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.SUBJECT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "subject_key", "(validateIdentifierKey(DroolsSoftKeywords.SUBJECT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_subject_key8482); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_subject_key8471); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19263,7 +19201,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2111:5: -> VK_SUBJECT[$id]
+            // 2110:5: -> VK_SUBJECT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_SUBJECT, id));
 
@@ -19298,7 +19236,7 @@
     };
 
     // $ANTLR start "weight_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2115:1: weight_key : {...}? =>id= ID -> VK_WEIGHT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2114:1: weight_key : {...}? =>id= ID -> VK_WEIGHT[$id] ;
     public final DRLParser.weight_key_return weight_key() throws RecognitionException {
         DRLParser.weight_key_return retval = new DRLParser.weight_key_return();
         retval.start = input.LT(1);
@@ -19311,14 +19249,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2116:3: ({...}? =>id= ID -> VK_WEIGHT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2116:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2115:3: ({...}? =>id= ID -> VK_WEIGHT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2115:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.WEIGHT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "weight_key", "(validateIdentifierKey(DroolsSoftKeywords.WEIGHT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_weight_key8520); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_weight_key8509); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19337,7 +19275,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2118:5: -> VK_WEIGHT[$id]
+            // 2117:5: -> VK_WEIGHT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_WEIGHT, id));
 
@@ -19372,7 +19310,7 @@
     };
 
     // $ANTLR start "very_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2122:1: very_key : {...}? =>id= ID -> VK_VERY[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2121:1: very_key : {...}? =>id= ID -> VK_VERY[$id] ;
     public final DRLParser.very_key_return very_key() throws RecognitionException {
         DRLParser.very_key_return retval = new DRLParser.very_key_return();
         retval.start = input.LT(1);
@@ -19385,14 +19323,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2123:3: ({...}? =>id= ID -> VK_VERY[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2123:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2122:3: ({...}? =>id= ID -> VK_VERY[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2122:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.VERY)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "very_key", "(validateIdentifierKey(DroolsSoftKeywords.VERY))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_very_key8559); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_very_key8548); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19411,7 +19349,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2125:5: -> VK_VERY[$id]
+            // 2124:5: -> VK_VERY[$id]
             {
             }
 
@@ -19444,7 +19382,7 @@
     };
 
     // $ANTLR start "id_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2139:1: id_key : {...}? =>id= ID -> VK_CONSTRID[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2138:1: id_key : {...}? =>id= ID -> VK_CONSTRID[$id] ;
     public final DRLParser.id_key_return id_key() throws RecognitionException {
         DRLParser.id_key_return retval = new DRLParser.id_key_return();
         retval.start = input.LT(1);
@@ -19457,14 +19395,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2140:3: ({...}? =>id= ID -> VK_CONSTRID[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2140:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2139:3: ({...}? =>id= ID -> VK_CONSTRID[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2139:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.CID)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "id_key", "(validateIdentifierKey(DroolsSoftKeywords.CID))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_id_key8609); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_id_key8598); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19483,7 +19421,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2142:5: -> VK_CONSTRID[$id]
+            // 2141:5: -> VK_CONSTRID[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_CONSTRID, id));
 
@@ -19518,7 +19456,7 @@
     };
 
     // $ANTLR start "kut_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2145:1: kut_key : {...}? =>id= ID -> VK_CUT[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2144:1: kut_key : {...}? =>id= ID -> VK_CUT[$id] ;
     public final DRLParser.kut_key_return kut_key() throws RecognitionException {
         DRLParser.kut_key_return retval = new DRLParser.kut_key_return();
         retval.start = input.LT(1);
@@ -19531,14 +19469,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2146:3: ({...}? =>id= ID -> VK_CUT[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2146:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2145:3: ({...}? =>id= ID -> VK_CUT[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2145:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.CUT)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "kut_key", "(validateIdentifierKey(DroolsSoftKeywords.CUT))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_kut_key8657); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_kut_key8646); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19557,7 +19495,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2148:5: -> VK_CUT[$id]
+            // 2147:5: -> VK_CUT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_CUT, id));
 
@@ -19586,15 +19524,15 @@
     }
     // $ANTLR end "kut_key"
 
-    public static class type_key_return extends ParserRuleReturnScope {
+    public static class kind_key_return extends ParserRuleReturnScope {
         Object tree;
         public Object getTree() { return tree; }
     };
 
-    // $ANTLR start "type_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2151:1: type_key : {...}? =>id= ID -> VK_TYPE[$id] ;
-    public final DRLParser.type_key_return type_key() throws RecognitionException {
-        DRLParser.type_key_return retval = new DRLParser.type_key_return();
+    // $ANTLR start "kind_key"
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2150:1: kind_key : {...}? =>id= ID -> VK_KIND[$id] ;
+    public final DRLParser.kind_key_return kind_key() throws RecognitionException {
+        DRLParser.kind_key_return retval = new DRLParser.kind_key_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
@@ -19605,14 +19543,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2152:3: ({...}? =>id= ID -> VK_TYPE[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2152:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2151:3: ({...}? =>id= ID -> VK_KIND[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2151:5: {...}? =>id= ID
             {
-            if ( !(((validateIdentifierKey(DroolsSoftKeywords.TYPE)))) ) {
+            if ( !(((validateIdentifierKey(DroolsSoftKeywords.KIND)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
-                throw new FailedPredicateException(input, "type_key", "(validateIdentifierKey(DroolsSoftKeywords.TYPE))");
+                throw new FailedPredicateException(input, "kind_key", "(validateIdentifierKey(DroolsSoftKeywords.KIND))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_type_key8694); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_kind_key8683); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19631,9 +19569,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2154:5: -> VK_TYPE[$id]
+            // 2153:5: -> VK_KIND[$id]
             {
-                adaptor.addChild(root_0, (Object)adaptor.create(VK_TYPE, id));
+                adaptor.addChild(root_0, (Object)adaptor.create(VK_KIND, id));
 
             }
 
@@ -19658,7 +19596,7 @@
         }
         return retval;
     }
-    // $ANTLR end "type_key"
+    // $ANTLR end "kind_key"
 
     public static class args_key_return extends ParserRuleReturnScope {
         Object tree;
@@ -19666,7 +19604,7 @@
     };
 
     // $ANTLR start "args_key"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2157:1: args_key : {...}? =>id= ID -> VK_PARAMS[$id] ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2156:1: args_key : {...}? =>id= ID -> VK_ARGS[$id] ;
     public final DRLParser.args_key_return args_key() throws RecognitionException {
         DRLParser.args_key_return retval = new DRLParser.args_key_return();
         retval.start = input.LT(1);
@@ -19679,14 +19617,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2158:3: ({...}? =>id= ID -> VK_PARAMS[$id] )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2158:5: {...}? =>id= ID
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2157:3: ({...}? =>id= ID -> VK_ARGS[$id] )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2157:5: {...}? =>id= ID
             {
             if ( !(((validateIdentifierKey(DroolsSoftKeywords.ARGS)))) ) {
                 if (state.backtracking>0) {state.failed=true; return retval;}
                 throw new FailedPredicateException(input, "args_key", "(validateIdentifierKey(DroolsSoftKeywords.ARGS))");
             }
-            id=(Token)match(input,ID,FOLLOW_ID_in_args_key8731); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_args_key8720); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -19705,8 +19643,10 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2160:5: -> VK_PARAMS[$id]
+            // 2159:5: -> VK_ARGS[$id]
             {
+                adaptor.addChild(root_0, (Object)adaptor.create(VK_ARGS, id));
+
             }
 
             retval.tree = root_0;}
@@ -19738,24 +19678,24 @@
     };
 
     // $ANTLR start "approx_symb"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2168:1: approx_symb : APPROX -> VK_APPROX ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2167:1: approx_symb : APPROX -> VK_APPROX ;
     public final DRLParser.approx_symb_return approx_symb() throws RecognitionException {
         DRLParser.approx_symb_return retval = new DRLParser.approx_symb_return();
         retval.start = input.LT(1);
 
         Object root_0 = null;
 
-        Token APPROX360=null;
+        Token APPROX358=null;
 
-        Object APPROX360_tree=null;
+        Object APPROX358_tree=null;
         RewriteRuleTokenStream stream_APPROX=new RewriteRuleTokenStream(adaptor,"token APPROX");
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2169:3: ( APPROX -> VK_APPROX )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2169:5: APPROX
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2168:3: ( APPROX -> VK_APPROX )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:2168:5: APPROX
             {
-            APPROX360=(Token)match(input,APPROX,FOLLOW_APPROX_in_approx_symb8772); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_APPROX.add(APPROX360);
+            APPROX358=(Token)match(input,APPROX,FOLLOW_APPROX_in_approx_symb8761); if (state.failed) return retval; 
+            if ( state.backtracking==0 ) stream_APPROX.add(APPROX358);
 
 
 
@@ -19770,7 +19710,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 2169:12: -> VK_APPROX
+            // 2168:12: -> VK_APPROX
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_APPROX, "VK_APPROX"));
 
@@ -19811,13 +19751,13 @@
         state._fsp--;
         if (state.failed) return ;
         // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:24: ( constr_parameters )?
-        int alt128=2;
-        int LA128_0 = input.LA(1);
+        int alt126=2;
+        int LA126_0 = input.LA(1);
 
-        if ( (LA128_0==AT) ) {
-            alt128=1;
+        if ( (LA126_0==AT) ) {
+            alt126=1;
         }
-        switch (alt128) {
+        switch (alt126) {
             case 1 :
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:24: constr_parameters
                 {
@@ -19849,13 +19789,13 @@
         state._fsp--;
         if (state.failed) return ;
         // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:881:26: ( constr_parameters )?
-        int alt129=2;
-        int LA129_0 = input.LA(1);
+        int alt127=2;
+        int LA127_0 = input.LA(1);
 
-        if ( (LA129_0==AT) ) {
-            alt129=1;
+        if ( (LA127_0==AT) ) {
+            alt127=1;
         }
-        switch (alt129) {
+        switch (alt127) {
             case 1 :
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:881:26: constr_parameters
                 {
@@ -19887,13 +19827,13 @@
         state._fsp--;
         if (state.failed) return ;
         // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:891:24: ( constr_parameters )?
-        int alt130=2;
-        int LA130_0 = input.LA(1);
+        int alt128=2;
+        int LA128_0 = input.LA(1);
 
-        if ( (LA130_0==AT) ) {
-            alt130=1;
+        if ( (LA128_0==AT) ) {
+            alt128=1;
         }
-        switch (alt130) {
+        switch (alt128) {
             case 1 :
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:891:24: constr_parameters
                 {
@@ -19925,13 +19865,13 @@
         state._fsp--;
         if (state.failed) return ;
         // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:901:29: ( constr_parameters )?
-        int alt131=2;
-        int LA131_0 = input.LA(1);
+        int alt129=2;
+        int LA129_0 = input.LA(1);
 
-        if ( (LA131_0==AT) ) {
-            alt131=1;
+        if ( (LA129_0==AT) ) {
+            alt129=1;
         }
-        switch (alt131) {
+        switch (alt129) {
             case 1 :
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:901:29: constr_parameters
                 {
@@ -19954,23 +19894,23 @@
     // $ANTLR start synpred5_DRL
     public final void synpred5_DRL_fragment() throws RecognitionException {   
         // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:5: ( or_key ( constr_parameters )? | DOUBLE_PIPE )
-        int alt133=2;
-        int LA133_0 = input.LA(1);
+        int alt131=2;
+        int LA131_0 = input.LA(1);
 
-        if ( (LA133_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.OR))))) {
-            alt133=1;
+        if ( (LA131_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.OR))))) {
+            alt131=1;
         }
-        else if ( (LA133_0==DOUBLE_PIPE) ) {
-            alt133=2;
+        else if ( (LA131_0==DOUBLE_PIPE) ) {
+            alt131=2;
         }
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 133, 0, input);
+                new NoViableAltException("", 131, 0, input);
 
             throw nvae;
         }
-        switch (alt133) {
+        switch (alt131) {
             case 1 :
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:6: or_key ( constr_parameters )?
                 {
@@ -19980,13 +19920,13 @@
                 state._fsp--;
                 if (state.failed) return ;
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:14: ( constr_parameters )?
-                int alt132=2;
-                int LA132_0 = input.LA(1);
+                int alt130=2;
+                int LA130_0 = input.LA(1);
 
-                if ( (LA132_0==AT) ) {
-                    alt132=1;
+                if ( (LA130_0==AT) ) {
+                    alt130=1;
                 }
-                switch (alt132) {
+                switch (alt130) {
                     case 1 :
                         // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:913:14: constr_parameters
                         {
@@ -20027,13 +19967,13 @@
         state._fsp--;
         if (state.failed) return ;
         // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:25: ( square_chunk )?
-        int alt134=2;
-        int LA134_0 = input.LA(1);
+        int alt132=2;
+        int LA132_0 = input.LA(1);
 
-        if ( (LA134_0==LEFT_SQUARE) ) {
-            alt134=1;
+        if ( (LA132_0==LEFT_SQUARE) ) {
+            alt132=1;
         }
-        switch (alt134) {
+        switch (alt132) {
             case 1 :
                 // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:25: square_chunk
                 {
@@ -20055,45 +19995,45 @@
 
     // $ANTLR start synpred7_DRL
     public final void synpred7_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:5: ( and_key ( square_chunk )? | DOUBLE_AMPER )
-        int alt136=2;
-        int LA136_0 = input.LA(1);
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:5: ( and_key ( constr_parameters )? | DOUBLE_AMPER )
+        int alt134=2;
+        int LA134_0 = input.LA(1);
 
-        if ( (LA136_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.AND))))) {
-            alt136=1;
+        if ( (LA134_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.AND))))) {
+            alt134=1;
         }
-        else if ( (LA136_0==DOUBLE_AMPER) ) {
-            alt136=2;
+        else if ( (LA134_0==DOUBLE_AMPER) ) {
+            alt134=2;
         }
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 136, 0, input);
+                new NoViableAltException("", 134, 0, input);
 
             throw nvae;
         }
-        switch (alt136) {
+        switch (alt134) {
             case 1 :
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:6: and_key ( square_chunk )?
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:6: and_key ( constr_parameters )?
                 {
-                pushFollow(FOLLOW_and_key_in_synpred7_DRL2960);
+                pushFollow(FOLLOW_and_key_in_synpred7_DRL2954);
                 and_key();
 
                 state._fsp--;
                 if (state.failed) return ;
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:14: ( square_chunk )?
-                int alt135=2;
-                int LA135_0 = input.LA(1);
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:14: ( constr_parameters )?
+                int alt133=2;
+                int LA133_0 = input.LA(1);
 
-                if ( (LA135_0==LEFT_SQUARE) ) {
-                    alt135=1;
+                if ( (LA133_0==AT) ) {
+                    alt133=1;
                 }
-                switch (alt135) {
+                switch (alt133) {
                     case 1 :
-                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:14: square_chunk
+                        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:14: constr_parameters
                         {
-                        pushFollow(FOLLOW_square_chunk_in_synpred7_DRL2962);
-                        square_chunk();
+                        pushFollow(FOLLOW_constr_parameters_in_synpred7_DRL2956);
+                        constr_parameters();
 
                         state._fsp--;
                         if (state.failed) return ;
@@ -20107,9 +20047,9 @@
                 }
                 break;
             case 2 :
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:29: DOUBLE_AMPER
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:34: DOUBLE_AMPER
                 {
-                match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred7_DRL2966); if (state.failed) return ;
+                match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred7_DRL2960); if (state.failed) return ;
 
                 }
                 break;
@@ -20119,10 +20059,10 @@
 
     // $ANTLR start synpred8_DRL
     public final void synpred8_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:4: ( SEMICOLON )
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:5: SEMICOLON
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:969:4: ( SEMICOLON )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:969:5: SEMICOLON
         {
-        match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred8_DRL3126); if (state.failed) return ;
+        match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred8_DRL3115); if (state.failed) return ;
 
         }
     }
@@ -20130,27 +20070,27 @@
 
     // $ANTLR start synpred9_DRL
     public final void synpred9_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:12: ( LEFT_PAREN ( or_key | and_key ) )
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:13: LEFT_PAREN ( or_key | and_key )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:975:12: ( LEFT_PAREN ( or_key | and_key ) )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:975:13: LEFT_PAREN ( or_key | and_key )
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred9_DRL3163); if (state.failed) return ;
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:24: ( or_key | and_key )
-        int alt137=2;
-        int LA137_0 = input.LA(1);
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred9_DRL3152); if (state.failed) return ;
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:975:24: ( or_key | and_key )
+        int alt135=2;
+        int LA135_0 = input.LA(1);
 
-        if ( (LA137_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.AND)))||((validateIdentifierKey(DroolsSoftKeywords.OR)))))) {
-            int LA137_1 = input.LA(2);
+        if ( (LA135_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.AND)))||((validateIdentifierKey(DroolsSoftKeywords.OR)))))) {
+            int LA135_1 = input.LA(2);
 
             if ( (((validateIdentifierKey(DroolsSoftKeywords.OR)))) ) {
-                alt137=1;
+                alt135=1;
             }
             else if ( (((validateIdentifierKey(DroolsSoftKeywords.AND)))) ) {
-                alt137=2;
+                alt135=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 137, 1, input);
+                    new NoViableAltException("", 135, 1, input);
 
                 throw nvae;
             }
@@ -20158,15 +20098,15 @@
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 137, 0, input);
+                new NoViableAltException("", 135, 0, input);
 
             throw nvae;
         }
-        switch (alt137) {
+        switch (alt135) {
             case 1 :
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:25: or_key
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:975:25: or_key
                 {
-                pushFollow(FOLLOW_or_key_in_synpred9_DRL3166);
+                pushFollow(FOLLOW_or_key_in_synpred9_DRL3155);
                 or_key();
 
                 state._fsp--;
@@ -20175,9 +20115,9 @@
                 }
                 break;
             case 2 :
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:32: and_key
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:975:32: and_key
                 {
-                pushFollow(FOLLOW_and_key_in_synpred9_DRL3168);
+                pushFollow(FOLLOW_and_key_in_synpred9_DRL3157);
                 and_key();
 
                 state._fsp--;
@@ -20195,27 +20135,27 @@
 
     // $ANTLR start synpred10_DRL
     public final void synpred10_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:5: ( LEFT_PAREN ( or_key | and_key ) )
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:6: LEFT_PAREN ( or_key | and_key )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:5: ( LEFT_PAREN ( or_key | and_key ) )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:6: LEFT_PAREN ( or_key | and_key )
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred10_DRL3291); if (state.failed) return ;
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:17: ( or_key | and_key )
-        int alt138=2;
-        int LA138_0 = input.LA(1);
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred10_DRL3280); if (state.failed) return ;
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:17: ( or_key | and_key )
+        int alt136=2;
+        int LA136_0 = input.LA(1);
 
-        if ( (LA138_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.AND)))||((validateIdentifierKey(DroolsSoftKeywords.OR)))))) {
-            int LA138_1 = input.LA(2);
+        if ( (LA136_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.AND)))||((validateIdentifierKey(DroolsSoftKeywords.OR)))))) {
+            int LA136_1 = input.LA(2);
 
             if ( (((validateIdentifierKey(DroolsSoftKeywords.OR)))) ) {
-                alt138=1;
+                alt136=1;
             }
             else if ( (((validateIdentifierKey(DroolsSoftKeywords.AND)))) ) {
-                alt138=2;
+                alt136=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 138, 1, input);
+                    new NoViableAltException("", 136, 1, input);
 
                 throw nvae;
             }
@@ -20223,15 +20163,15 @@
         else {
             if (state.backtracking>0) {state.failed=true; return ;}
             NoViableAltException nvae =
-                new NoViableAltException("", 138, 0, input);
+                new NoViableAltException("", 136, 0, input);
 
             throw nvae;
         }
-        switch (alt138) {
+        switch (alt136) {
             case 1 :
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:18: or_key
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:18: or_key
                 {
-                pushFollow(FOLLOW_or_key_in_synpred10_DRL3294);
+                pushFollow(FOLLOW_or_key_in_synpred10_DRL3283);
                 or_key();
 
                 state._fsp--;
@@ -20240,9 +20180,9 @@
                 }
                 break;
             case 2 :
-                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:25: and_key
+                // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:25: and_key
                 {
-                pushFollow(FOLLOW_and_key_in_synpred10_DRL3296);
+                pushFollow(FOLLOW_and_key_in_synpred10_DRL3285);
                 and_key();
 
                 state._fsp--;
@@ -20260,10 +20200,10 @@
 
     // $ANTLR start synpred11_DRL
     public final void synpred11_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1185:5: ( LEFT_PAREN )
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1185:6: LEFT_PAREN
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:5: ( LEFT_PAREN )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:6: LEFT_PAREN
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred11_DRL4252); if (state.failed) return ;
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred11_DRL4241); if (state.failed) return ;
 
         }
     }
@@ -20271,15 +20211,15 @@
 
     // $ANTLR start synpred12_DRL
     public final void synpred12_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1284:5: ( and_constr SINGLE_PIPE )
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1284:6: and_constr SINGLE_PIPE
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1283:5: ( and_constr SINGLE_PIPE )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1283:6: and_constr SINGLE_PIPE
         {
-        pushFollow(FOLLOW_and_constr_in_synpred12_DRL4795);
+        pushFollow(FOLLOW_and_constr_in_synpred12_DRL4784);
         and_constr();
 
         state._fsp--;
         if (state.failed) return ;
-        match(input,SINGLE_PIPE,FOLLOW_SINGLE_PIPE_in_synpred12_DRL4797); if (state.failed) return ;
+        match(input,SINGLE_PIPE,FOLLOW_SINGLE_PIPE_in_synpred12_DRL4786); if (state.failed) return ;
 
         }
     }
@@ -20287,15 +20227,15 @@
 
     // $ANTLR start synpred13_DRL
     public final void synpred13_DRL_fragment() throws RecognitionException {   
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1314:5: ( unary_constr SINGLE_AMPER )
-        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1314:6: unary_constr SINGLE_AMPER
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1313:5: ( unary_constr SINGLE_AMPER )
+        // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1313:6: unary_constr SINGLE_AMPER
         {
-        pushFollow(FOLLOW_unary_constr_in_synpred13_DRL5136);
+        pushFollow(FOLLOW_unary_constr_in_synpred13_DRL5125);
         unary_constr();
 
         state._fsp--;
         if (state.failed) return ;
-        match(input,SINGLE_AMPER,FOLLOW_SINGLE_AMPER_in_synpred13_DRL5138); if (state.failed) return ;
+        match(input,SINGLE_AMPER,FOLLOW_SINGLE_AMPER_in_synpred13_DRL5127); if (state.failed) return ;
 
         }
     }
@@ -20493,11 +20433,11 @@
     protected DFA17 dfa17 = new DFA17(this);
     protected DFA29 dfa29 = new DFA29(this);
     protected DFA38 dfa38 = new DFA38(this);
-    protected DFA63 dfa63 = new DFA63(this);
+    protected DFA61 dfa61 = new DFA61(this);
+    protected DFA80 dfa80 = new DFA80(this);
     protected DFA82 dfa82 = new DFA82(this);
-    protected DFA84 dfa84 = new DFA84(this);
-    protected DFA98 dfa98 = new DFA98(this);
-    protected DFA106 dfa106 = new DFA106(this);
+    protected DFA96 dfa96 = new DFA96(this);
+    protected DFA104 dfa104 = new DFA104(this);
     static final String DFA1_eotS =
         "\12\uffff";
     static final String DFA1_eofS =
@@ -20509,10 +20449,10 @@
     static final String DFA1_acceptS =
         "\2\uffff\2\2\1\uffff\4\2\1\1";
     static final String DFA1_specialS =
-        "\1\uffff\1\0\2\uffff\1\1\5\uffff}>";
+        "\1\uffff\1\1\2\uffff\1\0\5\uffff}>";
     static final String[] DFA1_transitionS = {
             "\1\1",
-            "\1\4\2\uffff\1\5\1\7\6\uffff\1\6\1\10\26\uffff\1\3",
+            "\1\4\2\uffff\1\5\1\6\6\uffff\1\10\1\7\26\uffff\1\3",
             "",
             "",
             "\1\uffff",
@@ -20560,6 +20500,21 @@
         	int _s = s;
             switch ( s ) {
                     case 0 : 
+                        int LA1_4 = input.LA(1);
+
+                         
+                        int index1_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (((validateIdentifierKey(DroolsSoftKeywords.PACKAGE)))) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index1_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
                         int LA1_1 = input.LA(1);
 
                          
@@ -20572,31 +20527,16 @@
 
                         else if ( (LA1_1==STRING) ) {s = 5;}
 
-                        else if ( (LA1_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 6;}
+                        else if ( (LA1_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {s = 6;}
 
-                        else if ( (LA1_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {s = 7;}
+                        else if ( (LA1_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 7;}
 
-                        else if ( (LA1_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 8;}
+                        else if ( (LA1_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 8;}
 
                          
                         input.seek(index1_1);
                         if ( s>=0 ) return s;
                         break;
-                    case 1 : 
-                        int LA1_4 = input.LA(1);
-
-                         
-                        int index1_4 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (((validateIdentifierKey(DroolsSoftKeywords.PACKAGE)))) ) {s = 9;}
-
-                        else if ( (true) ) {s = 8;}
-
-                         
-                        input.seek(index1_4);
-                        if ( s>=0 ) return s;
-                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -20619,7 +20559,7 @@
         "\1\uffff\1\0\1\uffff\1\1\1\2\13\uffff}>";
     static final String[] DFA5_transitionS = {
             "\1\1",
-            "\1\3\2\uffff\1\4\1\6\6\uffff\1\7\1\5\26\uffff\1\2",
+            "\1\3\2\uffff\1\4\1\6\6\uffff\1\5\1\7\26\uffff\1\2",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -20681,15 +20621,15 @@
                         s = -1;
                         if ( (LA5_1==MISC) && ((((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))||((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))||((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))||((validateIdentifierKey(DroolsSoftKeywords.DATE!
 ) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))))) {s = 2;}
 
-                        else if ( (LA5_1==ID) && ((!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIden!
 tifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifier!
 Key(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoft
Keywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPOR!
 T))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((va!
 lidateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifie
rKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(Dr!
 oolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoft!
 Keywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCT
ION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((val!
 idateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateI!
 dentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(Dro
olsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoft!
 Keywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&
&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((vali!
 dateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdenti!
 fierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoft
Keywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeyword!
 s.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateL!
 T(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT
))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdent!
 ifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, Droo!
 lsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.
DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywo!
 rds.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&!
 ((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIden
tifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierK!
 ey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(Dro!
 olsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.
QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeyword!
 s.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QU!
 ERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((valid
ateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierK!
 ey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT!
 (1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftK
eywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.D!
 ECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function"!
 ) ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validat
eIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdenti!
 fierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateI!
 dentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoft
Keywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKey!
 words.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "functi!
 on") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((vali
dateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIde!
 ntifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(!
 DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywo
rds.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPO!
 RT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(!
 (validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifi
erKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(D!
 roolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2!
 , "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))
)||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((va!
 lidateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validate!
 IdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(Dr
oolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSof!
 tKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywo!
 rds.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))
&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((val!
 idateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateI!
 dentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSof
tKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, Drool!
 sSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((
validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifie!
 rKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(D!
 roolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywo
rds.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLO!
 BAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))!
 ||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1
, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, Drool!
 sSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsS!
 oftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "
function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(!
 ((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((vali!
 dateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentif
ierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, Droo!
 lsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validat!
 eLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPO
RT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateL!
 T(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(!
 DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeyw
ords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GL!
 OBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((v
alidateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIde!
 ntifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifie!
 rKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftK
eywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLAR!
 E)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.!
 TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validat
eIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(Dro!
 olsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(D!
 roolsSoftKeywords.IMPORT))))||!((((((validateLT(1, "import") && valida
teLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&!
 &((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((valida!
 teIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1
, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "impo!
 rt") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKe!
 ywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)
))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((v!
 alidateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((valid!
 ateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(Drool
sSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && val!
 idateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftK!
 eywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "
function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateI!
 dentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifier!
 Key(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKe
ywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IM!
 PORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)!
 ))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateL
T(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSof!
 tKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(Droo!
 lsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE))
)&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))!
 ||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1!
 , DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKey
words.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsS!
 oftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))!
 )||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIden
tifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey!
 (DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifie!
 rKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftK
eywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywo!
 rds.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FU!
 NCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateI
dentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((vali!
 dateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1!
 , DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKe
ywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECL!
 ARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))!
 &&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateId
entifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifier!
 Key(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateL!
 T(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywor
ds.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))))) {s = 3;}
+                        else if ( (LA5_1==ID) && ((!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIden!
 tifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, Dro!
 olsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords
.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPO!
 RT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))|!
 |((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((val
idateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(!
 1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, Dr!
 oolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeyword
s.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "fun!
 ction") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(!
 ((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, Dro
olsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdent!
 ifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(Drool!
 sSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.T
EMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2,!
  "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(!
 (validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifi
erKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateL!
 T(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, D!
 roolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywo
rds.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((va!
 lidateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validate!
 IdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(Dro
olsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey!
 (DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoft!
 Keywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&
((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.!
 IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validat!
 eIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "i
mport") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoft!
 Keywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywor!
 ds.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(
(validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((val!
 idateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((!
 ((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "impo
rt") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(Drool!
 sSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && valid!
 ateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IM
PORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))!
 )||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((!
 validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, D
roolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(Dro!
 olsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeyw!
 ords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))|
|((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((!
 (validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((valida!
 teIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, Drool
sSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeyw!
 ords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))!
 ||(((validateLT(1, "import") && validateLT(2, "function") ))&&((valida
teIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdenti!
 fierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierK!
 ey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKe
ywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.!
 FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTI!
 ON))))))||!((((((validateLT(1, "import") && validateLT(2, "function") 
))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdent!
 ifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierK!
 ey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeyw
ords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeyw!
 ords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TE!
 MPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateI
dentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validate!
 LT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((val!
 idateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoft
Keywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSof!
 tKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywo!
 rds.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((val
idateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierK!
 ey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifie!
 rKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKe
ywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||!
 (((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validat!
 eIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(Dr
oolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, Dro!
 olsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywo!
 rds.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function")
 ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((valid!
 ateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(!
 1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(
DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSof!
 tKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeyword!
 s.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((
(validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateId!
 entifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(Drool!
 sSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "f
unction") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2!
 , "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeyword!
 s.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((v
alidateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierK!
 ey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Drool!
 sSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.
IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywo!
 rds.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKe!
 ywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((v
alidateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validate!
 IdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdent!
 ifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKey
words.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!((((((validateLT(1, "import") && validat!
 eLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE!
 )))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateId
entifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateId!
 entifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKey!
 words.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)
))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((v!
 alidateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((valida!
 teLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsS
oftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, DroolsSoftKeyword!
 s.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)!
 )))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentif
ierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(!
 DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Drools!
 SoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.F
UNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((!
 validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((valid!
 ateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey
(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.Q!
 UERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))!
 )||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIde
ntifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, Dro!
 olsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(Drool!
 sSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLO
BAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((!
 validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((va!
 lidateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Dro
olsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Dr!
 oolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSo!
 ftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUE
RY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&(!
 (validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(!
 1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKe
ywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.!
 QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)!
 ))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((vali
dateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKe!
 y(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))||!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(D!
 roolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeyword
s.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))))) {s = 3;}
 
-                        else if ( (LA5_1==STRING) && ((!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIden!
 tifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifier!
 Key(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.T
EMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))|!
 |!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIden!
 tifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(Drool
sSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.!
 ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER!
 )))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentif
ierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(!
 DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.!
 DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(
((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifi!
 erKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSo!
 ftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENT
AIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))|!
 |((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentif!
 ierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(Dro
olsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIAL!
 ECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((val!
 idateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierK
ey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKe!
 ywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUE!
 RY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((
validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierK!
 ey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoft!
 Keywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT
)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!(((((va!
 lidateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey!
 (DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeyw
ords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))!
 ||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdenti!
 fierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(Dr
oolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIA!
 LECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((va!
 lidateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifier
Key(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftK!
 eywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QU!
 ERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||(
(validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifier!
 Key(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSof!
 tKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALEC
T)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((valida!
 teIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifie!
 rKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(Drool
sSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALEC!
 T)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((valid!
 ateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey
(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeyw!
 ords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY!
 ))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((va
lidateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey!
 (DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKe!
 ywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT))
)||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateI!
 dentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentif!
 ierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeyword
s.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))!
 ))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateI!
 dentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(Dr
oolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FIL!
 TER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIden
tifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierK!
 ey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))|
|!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdent!
 ifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, Drool!
 sSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.
ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)!
 ))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIden!
 tifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(
DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.D!
 IALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))))) {s = 4;}
+                        else if ( (LA5_1==STRING) && ((!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIden!
 tifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifier!
 Key(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.T
EMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))|!
 |!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIden!
 tifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(Drool
sSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.!
 ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER!
 )))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentif
ierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(!
 DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.!
 DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(
((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifi!
 erKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSo!
 ftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENT
AIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))|!
 |((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentif!
 ierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(Dro
olsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIAL!
 ECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((val!
 idateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierK
ey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKe!
 ywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUE!
 RY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((
validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierK!
 ey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKe!
 ywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)
))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!(((((va!
 lidateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey!
 (DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeyw
ords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))!
 ||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((va!
 lidateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(Dr
oolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateLT(1, DroolsSoftKeywords.TE!
 MPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((va!
 lidateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifier
Key(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftK!
 eywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QU!
 ERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||(
(validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifier!
 Key(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSof!
 tKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALEC
T)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((valida!
 teIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIden!
 tifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeyw
ords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)!
 )))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((valid!
 ateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey
(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeyw!
 ords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY!
 ))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((va
lidateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey!
 (DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKe!
 ywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT))
)||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateI!
 dentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentif!
 ierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeyword
s.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))!
 ))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateI!
 dentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(Dr
oolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FIL!
 TER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIden
tifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierK!
 ey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))|
|!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdent!
 ifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, Drool!
 sSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.
ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)!
 ))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIden!
 tifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(
DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.D!
 IALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY))))))))) {s = 4;}
 
-                        else if ( (LA5_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 5;}
+                        else if ( (LA5_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 5;}
 
                         else if ( (LA5_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {s = 6;}
 
-                        else if ( (LA5_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 7;}
+                        else if ( (LA5_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 7;}
 
                          
                         input.seek(index5_1);
@@ -20714,7 +20654,7 @@
 
                         else if ( ((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))) ) {s = 13;}
 
-                        else if ( (!(((((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))) ) {s = 14;}
+                        else if ( (!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))))) ) {s = 14;}
 
                         else if ( (((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) ) {s = 15;}
 
@@ -20750,19 +20690,19 @@
         }
     }
     static final String DFA12_eotS =
-        "\23\uffff";
+        "\16\uffff";
     static final String DFA12_eofS =
-        "\23\uffff";
+        "\16\uffff";
     static final String DFA12_minS =
-        "\2\153\1\uffff\1\153\1\uffff\1\153\1\4\3\153\2\u008a\1\153\1\u008a"+
-        "\1\157\1\153\1\u008a\1\153\1\157";
+        "\2\153\1\uffff\1\153\1\uffff\1\153\1\u008a\3\153\2\u008a\1\157\1"+
+        "\153";
     static final String DFA12_maxS =
-        "\1\157\1\161\1\uffff\1\u0089\1\uffff\1\153\1\u0099\3\u0089\2\u008a"+
-        "\1\u0089\1\u008a\2\u0089\1\u008a\2\u0089";
+        "\1\157\1\161\1\uffff\1\u0089\1\uffff\1\153\1\u008a\3\u0089\2\u008a"+
+        "\2\u0089";
     static final String DFA12_acceptS =
-        "\2\uffff\1\2\1\uffff\1\1\16\uffff";
+        "\2\uffff\1\2\1\uffff\1\1\11\uffff";
     static final String DFA12_specialS =
-        "\23\uffff}>";
+        "\16\uffff}>";
     static final String[] DFA12_transitionS = {
             "\1\2\3\uffff\1\1",
             "\1\3\3\uffff\1\2\1\uffff\1\4",
@@ -20770,19 +20710,14 @@
             "\1\7\1\5\2\uffff\1\2\2\4\2\2\25\uffff\1\6",
             "",
             "\1\10",
-            "\u0086\2\1\11\17\2",
+            "\1\11",
             "\2\2\2\uffff\1\2\2\4\1\uffff\1\2\25\uffff\1\12",
             "\1\4\1\5\2\uffff\1\2\31\uffff\1\13",
-            "\1\14\3\uffff\1\2\2\4\1\2\26\uffff\1\15",
-            "\1\16",
-            "\1\17",
-            "\2\2\2\uffff\1\2\2\4\1\uffff\1\2\25\uffff\1\20",
-            "\1\21",
+            "\1\4\3\uffff\1\2\2\4\27\uffff\1\6",
+            "\1\14",
+            "\1\15",
             "\1\2\2\4\27\uffff\1\12",
-            "\1\4\3\uffff\1\2\31\uffff\1\13",
-            "\1\22",
-            "\1\4\3\uffff\1\2\2\4\27\uffff\1\15",
-            "\1\2\2\4\27\uffff\1\20"
+            "\1\4\3\uffff\1\2\31\uffff\1\13"
     };
 
     static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
@@ -20877,23 +20812,23 @@
     static final String DFA29_eofS =
         "\12\uffff";
     static final String DFA29_minS =
-        "\2\153\3\uffff\1\0\4\uffff";
+        "\2\153\5\uffff\1\0\2\uffff";
     static final String DFA29_maxS =
-        "\1\u008b\1\u008e\3\uffff\1\0\4\uffff";
+        "\1\u008b\1\u008e\5\uffff\1\0\2\uffff";
     static final String DFA29_acceptS =
-        "\2\uffff\2\2\1\1\1\uffff\4\2";
+        "\2\uffff\4\2\1\1\1\uffff\2\2";
     static final String DFA29_specialS =
-        "\1\0\1\1\3\uffff\1\2\4\uffff}>";
+        "\1\1\1\2\5\uffff\1\0\2\uffff}>";
     static final String[] DFA29_transitionS = {
             "\1\1\6\uffff\1\2\2\uffff\1\2\25\uffff\1\2",
-            "\1\4\2\uffff\1\5\1\10\3\uffff\1\6\2\uffff\1\11\1\7\26\uffff"+
+            "\1\6\2\uffff\1\7\1\5\3\uffff\1\11\2\uffff\1\4\1\10\26\uffff"+
             "\1\3",
             "",
             "",
             "",
-            "\1\uffff",
             "",
             "",
+            "\1\uffff",
             "",
             ""
     };
@@ -20935,6 +20870,21 @@
         	int _s = s;
             switch ( s ) {
                     case 0 : 
+                        int LA29_7 = input.LA(1);
+
+                         
+                        int index29_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))) ) {s = 6;}
+
+                        else if ( ((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) ) {s = 9;}
+
+                         
+                        input.seek(index29_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
                         int LA29_0 = input.LA(1);
 
                          
@@ -20949,7 +20899,7 @@
                         input.seek(index29_0);
                         if ( s>=0 ) return s;
                         break;
-                    case 1 : 
+                    case 2 : 
                         int LA29_1 = input.LA(1);
 
                          
@@ -20958,37 +20908,22 @@
                         s = -1;
                         if ( (LA29_1==MISC) && ((((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))||((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))||((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))||((validateIdentifierKey(DroolsSoftKeywords.DAT!
 E) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))))) {s = 3;}
 
-                        else if ( (LA29_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.EXTEND))))) {s = 4;}
+                        else if ( (LA29_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 4;}
 
-                        else if ( (LA29_1==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))))) {s = 5;}
+                        else if ( (LA29_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {s = 5;}
 
-                        else if ( (LA29_1==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))))) {s = 6;}
+                        else if ( (LA29_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.EXTEND))))) {s = 6;}
 
-                        else if ( (LA29_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 7;}
+                        else if ( (LA29_1==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))))) {s = 7;}
 
-                        else if ( (LA29_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))||((validateIdentifierKey(DroolsSoftKeywords.PRIOR)))))) {s = 8;}
+                        else if ( (LA29_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 8;}
 
-                        else if ( (LA29_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 9;}
+                        else if ( (LA29_1==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))))) {s = 9;}
 
                          
                         input.seek(index29_1);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
-                        int LA29_5 = input.LA(1);
-
-                         
-                        int index29_5 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))) ) {s = 4;}
-
-                        else if ( ((((validateIdentifierKey(DroolsSoftKeywords.FILTER)))||((validateIdentifierKey(DroolsSoftKeywords.ENTAIL)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) ) {s = 9;}
-
-                         
-                        input.seek(index29_5);
-                        if ( s>=0 ) return s;
-                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -21128,19 +21063,19 @@
             throw nvae;
         }
     }
-    static final String DFA63_eotS =
+    static final String DFA61_eotS =
         "\12\uffff";
-    static final String DFA63_eofS =
+    static final String DFA61_eofS =
         "\12\uffff";
-    static final String DFA63_minS =
+    static final String DFA61_minS =
         "\1\153\1\0\10\uffff";
-    static final String DFA63_maxS =
+    static final String DFA61_maxS =
         "\1\157\1\0\10\uffff";
-    static final String DFA63_acceptS =
+    static final String DFA61_acceptS =
         "\2\uffff\1\7\1\1\1\2\1\3\1\4\1\5\1\6\1\10";
-    static final String DFA63_specialS =
+    static final String DFA61_specialS =
         "\1\uffff\1\0\10\uffff}>";
-    static final String[] DFA63_transitionS = {
+    static final String[] DFA61_transitionS = {
             "\1\1\3\uffff\1\2",
             "\1\uffff",
             "",
@@ -21153,47 +21088,47 @@
             ""
     };
 
-    static final short[] DFA63_eot = DFA.unpackEncodedString(DFA63_eotS);
-    static final short[] DFA63_eof = DFA.unpackEncodedString(DFA63_eofS);
-    static final char[] DFA63_min = DFA.unpackEncodedStringToUnsignedChars(DFA63_minS);
-    static final char[] DFA63_max = DFA.unpackEncodedStringToUnsignedChars(DFA63_maxS);
-    static final short[] DFA63_accept = DFA.unpackEncodedString(DFA63_acceptS);
-    static final short[] DFA63_special = DFA.unpackEncodedString(DFA63_specialS);
-    static final short[][] DFA63_transition;
+    static final short[] DFA61_eot = DFA.unpackEncodedString(DFA61_eotS);
+    static final short[] DFA61_eof = DFA.unpackEncodedString(DFA61_eofS);
+    static final char[] DFA61_min = DFA.unpackEncodedStringToUnsignedChars(DFA61_minS);
+    static final char[] DFA61_max = DFA.unpackEncodedStringToUnsignedChars(DFA61_maxS);
+    static final short[] DFA61_accept = DFA.unpackEncodedString(DFA61_acceptS);
+    static final short[] DFA61_special = DFA.unpackEncodedString(DFA61_specialS);
+    static final short[][] DFA61_transition;
 
     static {
-        int numStates = DFA63_transitionS.length;
-        DFA63_transition = new short[numStates][];
+        int numStates = DFA61_transitionS.length;
+        DFA61_transition = new short[numStates][];
         for (int i=0; i<numStates; i++) {
-            DFA63_transition[i] = DFA.unpackEncodedString(DFA63_transitionS[i]);
+            DFA61_transition[i] = DFA.unpackEncodedString(DFA61_transitionS[i]);
         }
     }
 
-    class DFA63 extends DFA {
+    class DFA61 extends DFA {
 
-        public DFA63(BaseRecognizer recognizer) {
+        public DFA61(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 63;
-            this.eot = DFA63_eot;
-            this.eof = DFA63_eof;
-            this.min = DFA63_min;
-            this.max = DFA63_max;
-            this.accept = DFA63_accept;
-            this.special = DFA63_special;
-            this.transition = DFA63_transition;
+            this.decisionNumber = 61;
+            this.eot = DFA61_eot;
+            this.eof = DFA61_eof;
+            this.min = DFA61_min;
+            this.max = DFA61_max;
+            this.accept = DFA61_accept;
+            this.special = DFA61_special;
+            this.transition = DFA61_transition;
         }
         public String getDescription() {
-            return "959:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )";
+            return "958:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | lhs_forany | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA63_1 = input.LA(1);
+                        int LA61_1 = input.LA(1);
 
                          
-                        int index63_1 = input.index();
+                        int index61_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.EXISTS)))) ) {s = 3;}
@@ -21211,30 +21146,30 @@
                         else if ( (true) ) {s = 9;}
 
                          
-                        input.seek(index63_1);
+                        input.seek(index61_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 63, _s, input);
+                new NoViableAltException(getDescription(), 61, _s, input);
             error(nvae);
             throw nvae;
         }
     }
-    static final String DFA82_eotS =
+    static final String DFA80_eotS =
         "\13\uffff";
-    static final String DFA82_eofS =
+    static final String DFA80_eofS =
         "\13\uffff";
-    static final String DFA82_minS =
+    static final String DFA80_minS =
         "\1\152\1\0\11\uffff";
-    static final String DFA82_maxS =
+    static final String DFA80_maxS =
         "\1\u008b\1\0\11\uffff";
-    static final String DFA82_acceptS =
+    static final String DFA80_acceptS =
         "\2\uffff\1\2\7\uffff\1\1";
-    static final String DFA82_specialS =
+    static final String DFA80_specialS =
         "\1\uffff\1\0\11\uffff}>";
-    static final String[] DFA82_transitionS = {
+    static final String[] DFA80_transitionS = {
             "\3\2\2\uffff\1\1\2\2\6\uffff\2\2\21\uffff\1\2",
             "\1\uffff",
             "",
@@ -21248,47 +21183,47 @@
             ""
     };
 
-    static final short[] DFA82_eot = DFA.unpackEncodedString(DFA82_eotS);
-    static final short[] DFA82_eof = DFA.unpackEncodedString(DFA82_eofS);
-    static final char[] DFA82_min = DFA.unpackEncodedStringToUnsignedChars(DFA82_minS);
-    static final char[] DFA82_max = DFA.unpackEncodedStringToUnsignedChars(DFA82_maxS);
-    static final short[] DFA82_accept = DFA.unpackEncodedString(DFA82_acceptS);
-    static final short[] DFA82_special = DFA.unpackEncodedString(DFA82_specialS);
-    static final short[][] DFA82_transition;
+    static final short[] DFA80_eot = DFA.unpackEncodedString(DFA80_eotS);
+    static final short[] DFA80_eof = DFA.unpackEncodedString(DFA80_eofS);
+    static final char[] DFA80_min = DFA.unpackEncodedStringToUnsignedChars(DFA80_minS);
+    static final char[] DFA80_max = DFA.unpackEncodedStringToUnsignedChars(DFA80_maxS);
+    static final short[] DFA80_accept = DFA.unpackEncodedString(DFA80_acceptS);
+    static final short[] DFA80_special = DFA.unpackEncodedString(DFA80_specialS);
+    static final short[][] DFA80_transition;
 
     static {
-        int numStates = DFA82_transitionS.length;
-        DFA82_transition = new short[numStates][];
+        int numStates = DFA80_transitionS.length;
+        DFA80_transition = new short[numStates][];
         for (int i=0; i<numStates; i++) {
-            DFA82_transition[i] = DFA.unpackEncodedString(DFA82_transitionS[i]);
+            DFA80_transition[i] = DFA.unpackEncodedString(DFA80_transitionS[i]);
         }
     }
 
-    class DFA82 extends DFA {
+    class DFA80 extends DFA {
 
-        public DFA82(BaseRecognizer recognizer) {
+        public DFA80(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 82;
-            this.eot = DFA82_eot;
-            this.eof = DFA82_eof;
-            this.min = DFA82_min;
-            this.max = DFA82_max;
-            this.accept = DFA82_accept;
-            this.special = DFA82_special;
-            this.transition = DFA82_transition;
+            this.decisionNumber = 80;
+            this.eot = DFA80_eot;
+            this.eof = DFA80_eof;
+            this.min = DFA80_min;
+            this.max = DFA80_max;
+            this.accept = DFA80_accept;
+            this.special = DFA80_special;
+            this.transition = DFA80_transition;
         }
         public String getDescription() {
-            return "1185:3: ( ( LEFT_PAREN )=>args= paren_chunk )?";
+            return "1184:3: ( ( LEFT_PAREN )=>args= paren_chunk )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA82_1 = input.LA(1);
+                        int LA80_1 = input.LA(1);
 
                          
-                        int index82_1 = input.index();
+                        int index80_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred11_DRL()) ) {s = 10;}
@@ -21296,30 +21231,30 @@
                         else if ( (true) ) {s = 2;}
 
                          
-                        input.seek(index82_1);
+                        input.seek(index80_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 82, _s, input);
+                new NoViableAltException(getDescription(), 80, _s, input);
             error(nvae);
             throw nvae;
         }
     }
-    static final String DFA84_eotS =
+    static final String DFA82_eotS =
         "\14\uffff";
-    static final String DFA84_eofS =
+    static final String DFA82_eofS =
         "\14\uffff";
-    static final String DFA84_minS =
+    static final String DFA82_minS =
         "\1\152\1\0\12\uffff";
-    static final String DFA84_maxS =
+    static final String DFA82_maxS =
         "\1\u008b\1\0\12\uffff";
-    static final String DFA84_acceptS =
+    static final String DFA82_acceptS =
         "\2\uffff\1\2\1\3\7\uffff\1\1";
-    static final String DFA84_specialS =
+    static final String DFA82_specialS =
         "\1\uffff\1\0\12\uffff}>";
-    static final String[] DFA84_transitionS = {
+    static final String[] DFA82_transitionS = {
             "\3\3\2\uffff\1\1\2\3\6\uffff\2\3\17\uffff\1\2\1\uffff\1\3",
             "\1\uffff",
             "",
@@ -21334,47 +21269,47 @@
             ""
     };
 
-    static final short[] DFA84_eot = DFA.unpackEncodedString(DFA84_eotS);
-    static final short[] DFA84_eof = DFA.unpackEncodedString(DFA84_eofS);
-    static final char[] DFA84_min = DFA.unpackEncodedStringToUnsignedChars(DFA84_minS);
-    static final char[] DFA84_max = DFA.unpackEncodedStringToUnsignedChars(DFA84_maxS);
-    static final short[] DFA84_accept = DFA.unpackEncodedString(DFA84_acceptS);
-    static final short[] DFA84_special = DFA.unpackEncodedString(DFA84_specialS);
-    static final short[][] DFA84_transition;
+    static final short[] DFA82_eot = DFA.unpackEncodedString(DFA82_eotS);
+    static final short[] DFA82_eof = DFA.unpackEncodedString(DFA82_eofS);
+    static final char[] DFA82_min = DFA.unpackEncodedStringToUnsignedChars(DFA82_minS);
+    static final char[] DFA82_max = DFA.unpackEncodedStringToUnsignedChars(DFA82_maxS);
+    static final short[] DFA82_accept = DFA.unpackEncodedString(DFA82_acceptS);
+    static final short[] DFA82_special = DFA.unpackEncodedString(DFA82_specialS);
+    static final short[][] DFA82_transition;
 
     static {
-        int numStates = DFA84_transitionS.length;
-        DFA84_transition = new short[numStates][];
+        int numStates = DFA82_transitionS.length;
+        DFA82_transition = new short[numStates][];
         for (int i=0; i<numStates; i++) {
-            DFA84_transition[i] = DFA.unpackEncodedString(DFA84_transitionS[i]);
+            DFA82_transition[i] = DFA.unpackEncodedString(DFA82_transitionS[i]);
         }
     }
 
-    class DFA84 extends DFA {
+    class DFA82 extends DFA {
 
-        public DFA84(BaseRecognizer recognizer) {
+        public DFA82(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 84;
-            this.eot = DFA84_eot;
-            this.eof = DFA84_eof;
-            this.min = DFA84_min;
-            this.max = DFA84_max;
-            this.accept = DFA84_accept;
-            this.special = DFA84_special;
-            this.transition = DFA84_transition;
+            this.decisionNumber = 82;
+            this.eot = DFA82_eot;
+            this.eof = DFA82_eof;
+            this.min = DFA82_min;
+            this.max = DFA82_max;
+            this.accept = DFA82_accept;
+            this.special = DFA82_special;
+            this.transition = DFA82_transition;
         }
         public String getDescription() {
-            return "1199:4: ({...}? paren_chunk | square_chunk )?";
+            return "1198:4: ({...}? paren_chunk | square_chunk )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA84_1 = input.LA(1);
+                        int LA82_1 = input.LA(1);
 
                          
-                        int index84_1 = input.index();
+                        int index82_1 = input.index();
                         input.rewind();
                         s = -1;
                         if ( ((input.LA(1) == LEFT_PAREN)) ) {s = 11;}
@@ -21382,35 +21317,34 @@
                         else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index84_1);
+                        input.seek(index82_1);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 84, _s, input);
+                new NoViableAltException(getDescription(), 82, _s, input);
             error(nvae);
             throw nvae;
         }
     }
-    static final String DFA98_eotS =
+    static final String DFA96_eotS =
         "\20\uffff";
-    static final String DFA98_eofS =
+    static final String DFA96_eofS =
         "\20\uffff";
-    static final String DFA98_minS =
-        "\2\153\1\uffff\1\0\14\uffff";
-    static final String DFA98_maxS =
-        "\1\157\1\u008f\1\uffff\1\0\14\uffff";
-    static final String DFA98_acceptS =
-        "\2\uffff\1\3\1\uffff\1\2\12\uffff\1\1";
-    static final String DFA98_specialS =
-        "\3\uffff\1\0\14\uffff}>";
-    static final String[] DFA98_transitionS = {
+    static final String DFA96_minS =
+        "\2\153\13\uffff\1\0\2\uffff";
+    static final String DFA96_maxS =
+        "\1\157\1\u008f\13\uffff\1\0\2\uffff";
+    static final String DFA96_acceptS =
+        "\2\uffff\1\3\1\2\13\uffff\1\1";
+    static final String DFA96_specialS =
+        "\15\uffff\1\0\2\uffff}>";
+    static final String[] DFA96_transitionS = {
             "\1\1\3\uffff\1\2",
-            "\2\4\2\uffff\1\3\3\uffff\1\4\15\uffff\6\4\2\uffff\1\4\5\uffff"+
-            "\1\4",
+            "\2\3\2\uffff\1\15\3\uffff\1\3\15\uffff\6\3\2\uffff\1\3\5\uffff"+
+            "\1\3",
             "",
-            "\1\uffff",
             "",
             "",
             "",
@@ -21421,84 +21355,87 @@
             "",
             "",
             "",
+            "\1\uffff",
             "",
             ""
     };
 
-    static final short[] DFA98_eot = DFA.unpackEncodedString(DFA98_eotS);
-    static final short[] DFA98_eof = DFA.unpackEncodedString(DFA98_eofS);
-    static final char[] DFA98_min = DFA.unpackEncodedStringToUnsignedChars(DFA98_minS);
-    static final char[] DFA98_max = DFA.unpackEncodedStringToUnsignedChars(DFA98_maxS);
-    static final short[] DFA98_accept = DFA.unpackEncodedString(DFA98_acceptS);
-    static final short[] DFA98_special = DFA.unpackEncodedString(DFA98_specialS);
-    static final short[][] DFA98_transition;
+    static final short[] DFA96_eot = DFA.unpackEncodedString(DFA96_eotS);
+    static final short[] DFA96_eof = DFA.unpackEncodedString(DFA96_eofS);
+    static final char[] DFA96_min = DFA.unpackEncodedStringToUnsignedChars(DFA96_minS);
+    static final char[] DFA96_max = DFA.unpackEncodedStringToUnsignedChars(DFA96_maxS);
+    static final short[] DFA96_accept = DFA.unpackEncodedString(DFA96_acceptS);
+    static final short[] DFA96_special = DFA.unpackEncodedString(DFA96_specialS);
+    static final short[][] DFA96_transition;
 
     static {
-        int numStates = DFA98_transitionS.length;
-        DFA98_transition = new short[numStates][];
+        int numStates = DFA96_transitionS.length;
+        DFA96_transition = new short[numStates][];
         for (int i=0; i<numStates; i++) {
-            DFA98_transition[i] = DFA.unpackEncodedString(DFA98_transitionS[i]);
+            DFA96_transition[i] = DFA.unpackEncodedString(DFA96_transitionS[i]);
         }
     }
 
-    class DFA98 extends DFA {
+    class DFA96 extends DFA {
 
-        public DFA98(BaseRecognizer recognizer) {
+        public DFA96(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 98;
-            this.eot = DFA98_eot;
-            this.eof = DFA98_eof;
-            this.min = DFA98_min;
-            this.max = DFA98_max;
-            this.accept = DFA98_accept;
-            this.special = DFA98_special;
-            this.transition = DFA98_transition;
+            this.decisionNumber = 96;
+            this.eot = DFA96_eot;
+            this.eof = DFA96_eof;
+            this.min = DFA96_min;
+            this.max = DFA96_max;
+            this.accept = DFA96_accept;
+            this.special = DFA96_special;
+            this.transition = DFA96_transition;
         }
         public String getDescription() {
-            return "1387:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );";
+            return "1386:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA98_3 = input.LA(1);
+                        int LA96_13 = input.LA(1);
 
                          
-                        int index98_3 = input.index();
+                        int index96_13 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.EVAL)))) ) {s = 15;}
 
-                        else if ( (true) ) {s = 4;}
+                        else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index98_3);
+                        input.seek(index96_13);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 98, _s, input);
+                new NoViableAltException(getDescription(), 96, _s, input);
             error(nvae);
             throw nvae;
         }
     }
-    static final String DFA106_eotS =
+    static final String DFA104_eotS =
         "\64\uffff";
-    static final String DFA106_eofS =
+    static final String DFA104_eofS =
         "\64\uffff";
-    static final String DFA106_minS =
-        "\2\153\11\uffff\1\153\1\4\15\uffff\1\0\17\uffff\7\0\3\uffff";
-    static final String DFA106_maxS =
-        "\2\u008f\11\uffff\1\u0089\1\u0099\15\uffff\1\0\17\uffff\7\0\3\uffff";
-    static final String DFA106_acceptS =
-        "\2\uffff\1\2\5\uffff\1\3\1\4\1\3\2\uffff\1\3\15\uffff\11\3\15\uffff"+
-        "\1\3\1\uffff\1\1";
-    static final String DFA106_specialS =
-        "\1\0\1\1\11\uffff\1\2\1\3\15\uffff\1\4\17\uffff\1\5\1\6\1\7\1\10"+
-        "\1\11\1\12\1\13\3\uffff}>";
-    static final String[] DFA106_transitionS = {
+    static final String DFA104_minS =
+        "\2\153\11\uffff\1\153\1\4\15\uffff\1\0\17\uffff\2\0\1\uffff\5\0"+
+        "\2\uffff";
+    static final String DFA104_maxS =
+        "\2\u008f\11\uffff\1\u0089\1\u0099\15\uffff\1\0\17\uffff\2\0\1\uffff"+
+        "\5\0\2\uffff";
+    static final String DFA104_acceptS =
+        "\2\uffff\1\2\5\uffff\1\3\1\4\1\3\2\uffff\1\3\15\uffff\11\3\10\uffff"+
+        "\1\3\6\uffff\1\1";
+    static final String DFA104_specialS =
+        "\1\0\1\1\11\uffff\1\2\1\3\15\uffff\1\4\17\uffff\1\5\1\6\1\uffff"+
+        "\1\7\1\10\1\11\1\12\1\13\2\uffff}>";
+    static final String[] DFA104_transitionS = {
             "\1\1\3\uffff\1\11\21\uffff\6\2\10\uffff\1\10",
             "\1\13\2\uffff\1\15\1\14\3\15\3\uffff\4\15\4\uffff\2\15\7\uffff"+
             "\3\15\5\uffff\1\12",
@@ -21513,8 +21450,8 @@
             "",
             "\1\43\1\34\1\uffff\1\43\1\32\1\37\1\40\1\43\3\uffff\2\43\1"+
             "\36\1\35\4\uffff\1\41\1\42\7\uffff\2\43\1\33",
-            "\147\61\1\52\2\61\1\53\1\60\6\61\1\56\1\54\17\61\1\55\1\57"+
-            "\21\61",
+            "\147\54\1\52\2\54\1\55\1\53\6\54\1\60\1\56\17\54\1\57\1\61"+
+            "\21\54",
             "",
             "",
             "",
@@ -21546,272 +21483,272 @@
             "",
             "\1\uffff",
             "\1\uffff",
+            "",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
             "",
-            "",
             ""
     };
 
-    static final short[] DFA106_eot = DFA.unpackEncodedString(DFA106_eotS);
-    static final short[] DFA106_eof = DFA.unpackEncodedString(DFA106_eofS);
-    static final char[] DFA106_min = DFA.unpackEncodedStringToUnsignedChars(DFA106_minS);
-    static final char[] DFA106_max = DFA.unpackEncodedStringToUnsignedChars(DFA106_maxS);
-    static final short[] DFA106_accept = DFA.unpackEncodedString(DFA106_acceptS);
-    static final short[] DFA106_special = DFA.unpackEncodedString(DFA106_specialS);
-    static final short[][] DFA106_transition;
+    static final short[] DFA104_eot = DFA.unpackEncodedString(DFA104_eotS);
+    static final short[] DFA104_eof = DFA.unpackEncodedString(DFA104_eofS);
+    static final char[] DFA104_min = DFA.unpackEncodedStringToUnsignedChars(DFA104_minS);
+    static final char[] DFA104_max = DFA.unpackEncodedStringToUnsignedChars(DFA104_maxS);
+    static final short[] DFA104_accept = DFA.unpackEncodedString(DFA104_acceptS);
+    static final short[] DFA104_special = DFA.unpackEncodedString(DFA104_specialS);
+    static final short[][] DFA104_transition;
 
     static {
-        int numStates = DFA106_transitionS.length;
-        DFA106_transition = new short[numStates][];
+        int numStates = DFA104_transitionS.length;
+        DFA104_transition = new short[numStates][];
         for (int i=0; i<numStates; i++) {
-            DFA106_transition[i] = DFA.unpackEncodedString(DFA106_transitionS[i]);
+            DFA104_transition[i] = DFA.unpackEncodedString(DFA104_transitionS[i]);
         }
     }
 
-    class DFA106 extends DFA {
+    class DFA104 extends DFA {
 
-        public DFA106(BaseRecognizer recognizer) {
+        public DFA104(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 106;
-            this.eot = DFA106_eot;
-            this.eof = DFA106_eof;
-            this.min = DFA106_min;
-            this.max = DFA106_max;
-            this.accept = DFA106_accept;
-            this.special = DFA106_special;
-            this.transition = DFA106_transition;
+            this.decisionNumber = 104;
+            this.eot = DFA104_eot;
+            this.eof = DFA104_eof;
+            this.min = DFA104_min;
+            this.max = DFA104_max;
+            this.accept = DFA104_accept;
+            this.special = DFA104_special;
+            this.transition = DFA104_transition;
         }
         public String getDescription() {
-            return "1452:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator (ans= constr_parameters )? expression_value -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )? | custom_operator (ans= constr_parameters )? ( expression_value )? -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )? | LEFT_PAREN or_restr_connective RIGHT_PAREN );";
+            return "1451:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator (ans= constr_parameters )? expression_value -> ^( simple_operator expression_value ) ( ^( constr_parameters ) )? | custom_operator (ans= constr_parameters )? ( expression_value )? -> ^( custom_operator ( expression_value )? ) ( ^( constr_parameters ) )? | LEFT_PAREN or_restr_connective RIGHT_PAREN );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA106_0 = input.LA(1);
+                        int LA104_0 = input.LA(1);
 
                          
-                        int index106_0 = input.index();
+                        int index104_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA106_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 1;}
+                        if ( (LA104_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 1;}
 
-                        else if ( ((LA106_0>=EQUAL && LA106_0<=NOT_EQUAL)) ) {s = 2;}
+                        else if ( ((LA104_0>=EQUAL && LA104_0<=NOT_EQUAL)) ) {s = 2;}
 
-                        else if ( (LA106_0==APPROX) ) {s = 8;}
+                        else if ( (LA104_0==APPROX) ) {s = 8;}
 
-                        else if ( (LA106_0==LEFT_PAREN) ) {s = 9;}
+                        else if ( (LA104_0==LEFT_PAREN) ) {s = 9;}
 
                          
-                        input.seek(index106_0);
+                        input.seek(index104_0);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA106_1 = input.LA(1);
+                        int LA104_1 = input.LA(1);
 
                          
-                        int index106_1 = input.index();
+                        int index104_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA106_1==APPROX) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 10;}
+                        if ( (LA104_1==APPROX) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 10;}
 
-                        else if ( (LA106_1==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 11;}
+                        else if ( (LA104_1==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 11;}
 
-                        else if ( (LA106_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 12;}
+                        else if ( (LA104_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 12;}
 
-                        else if ( (LA106_1==STRING||(LA106_1>=COMMA && LA106_1<=AT)||(LA106_1>=BOOL && LA106_1<=DOUBLE_AMPER)||(LA106_1>=SINGLE_PIPE && LA106_1<=SINGLE_AMPER)||(LA106_1>=FLOAT && LA106_1<=LEFT_SQUARE)) && (((isPluggableEvaluator(false))))) {s = 13;}
+                        else if ( (LA104_1==STRING||(LA104_1>=COMMA && LA104_1<=AT)||(LA104_1>=BOOL && LA104_1<=DOUBLE_AMPER)||(LA104_1>=SINGLE_PIPE && LA104_1<=SINGLE_AMPER)||(LA104_1>=FLOAT && LA104_1<=LEFT_SQUARE)) && (((isPluggableEvaluator(false))))) {s = 13;}
 
                          
-                        input.seek(index106_1);
+                        input.seek(index104_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA106_11 = input.LA(1);
+                        int LA104_11 = input.LA(1);
 
                          
-                        int index106_11 = input.index();
+                        int index104_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA106_11==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 26;}
+                        if ( (LA104_11==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 26;}
 
-                        else if ( (LA106_11==LEFT_SQUARE) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 27;}
+                        else if ( (LA104_11==LEFT_SQUARE) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 27;}
 
-                        else if ( (LA106_11==DOT) && (((isPluggableEvaluator(false))))) {s = 28;}
+                        else if ( (LA104_11==DOT) && (((isPluggableEvaluator(false))))) {s = 28;}
 
-                        else if ( (LA106_11==DOUBLE_AMPER) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 29;}
+                        else if ( (LA104_11==DOUBLE_AMPER) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 29;}
 
-                        else if ( (LA106_11==DOUBLE_PIPE) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 30;}
+                        else if ( (LA104_11==DOUBLE_PIPE) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 30;}
 
-                        else if ( (LA106_11==COMMA) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 31;}
+                        else if ( (LA104_11==COMMA) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 31;}
 
-                        else if ( (LA106_11==RIGHT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 32;}
+                        else if ( (LA104_11==RIGHT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 32;}
 
-                        else if ( (LA106_11==SINGLE_PIPE) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 33;}
+                        else if ( (LA104_11==SINGLE_PIPE) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 33;}
 
-                        else if ( (LA106_11==SINGLE_AMPER) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 34;}
+                        else if ( (LA104_11==SINGLE_AMPER) && ((((isPluggableEvaluator(false)))||((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) {s = 34;}
 
-                        else if ( (LA106_11==ID||LA106_11==STRING||LA106_11==AT||(LA106_11>=BOOL && LA106_11<=INT)||(LA106_11>=FLOAT && LA106_11<=NULL)) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 35;}
+                        else if ( (LA104_11==ID||LA104_11==STRING||LA104_11==AT||(LA104_11>=BOOL && LA104_11<=INT)||(LA104_11>=FLOAT && LA104_11<=NULL)) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 35;}
 
                          
-                        input.seek(index106_11);
+                        input.seek(index104_11);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA106_12 = input.LA(1);
+                        int LA104_12 = input.LA(1);
 
                          
-                        int index106_12 = input.index();
+                        int index104_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA106_12==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 42;}
+                        if ( (LA104_12==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 42;}
 
-                        else if ( (LA106_12==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 43;}
+                        else if ( (LA104_12==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 43;}
 
-                        else if ( (LA106_12==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 44;}
+                        else if ( ((LA104_12>=VT_COMPILATION_UNIT && LA104_12<=SEMICOLON)||(LA104_12>=DOT && LA104_12<=DOT_STAR)||(LA104_12>=COMMA && LA104_12<=WHEN)||(LA104_12>=DOUBLE_PIPE && LA104_12<=NOT_EQUAL)||(LA104_12>=LEFT_SQUARE && LA104_12<=MULTI_LINE_COMMENT)) && (((isPluggableEvaluator(false))))) {s = 44;}
 
-                        else if ( (LA106_12==FLOAT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 45;}
+                        else if ( (LA104_12==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 45;}
 
-                        else if ( (LA106_12==BOOL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 46;}
+                        else if ( (LA104_12==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 46;}
 
-                        else if ( (LA106_12==NULL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 47;}
+                        else if ( (LA104_12==FLOAT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 47;}
 
-                        else if ( (LA106_12==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 48;}
+                        else if ( (LA104_12==BOOL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 48;}
 
-                        else if ( ((LA106_12>=VT_COMPILATION_UNIT && LA106_12<=SEMICOLON)||(LA106_12>=DOT && LA106_12<=DOT_STAR)||(LA106_12>=COMMA && LA106_12<=WHEN)||(LA106_12>=DOUBLE_PIPE && LA106_12<=NOT_EQUAL)||(LA106_12>=LEFT_SQUARE && LA106_12<=MULTI_LINE_COMMENT)) && (((isPluggableEvaluator(false))))) {s = 49;}
+                        else if ( (LA104_12==NULL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 49;}
 
                          
-                        input.seek(index106_12);
+                        input.seek(index104_12);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA106_26 = input.LA(1);
+                        int LA104_26 = input.LA(1);
 
                          
-                        int index106_26 = input.index();
+                        int index104_26 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {s = 51;}
 
-                        else if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {s = 49;}
+                        else if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {s = 44;}
 
                          
-                        input.seek(index106_26);
+                        input.seek(index104_26);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA106_42 = input.LA(1);
+                        int LA104_42 = input.LA(1);
 
                          
-                        int index106_42 = input.index();
+                        int index104_42 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 51;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 49;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 44;}
 
                          
-                        input.seek(index106_42);
+                        input.seek(index104_42);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA106_43 = input.LA(1);
+                        int LA104_43 = input.LA(1);
 
                          
-                        int index106_43 = input.index();
+                        int index104_43 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 51;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 49;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 44;}
 
                          
-                        input.seek(index106_43);
+                        input.seek(index104_43);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA106_44 = input.LA(1);
+                        int LA104_45 = input.LA(1);
 
                          
-                        int index106_44 = input.index();
+                        int index104_45 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 51;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 49;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 44;}
 
                          
-                        input.seek(index106_44);
+                        input.seek(index104_45);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA106_45 = input.LA(1);
+                        int LA104_46 = input.LA(1);
 
                          
-                        int index106_45 = input.index();
+                        int index104_46 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 51;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 49;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 44;}
 
                          
-                        input.seek(index106_45);
+                        input.seek(index104_46);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA106_46 = input.LA(1);
+                        int LA104_47 = input.LA(1);
 
                          
-                        int index106_46 = input.index();
+                        int index104_47 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 51;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 49;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 44;}
 
                          
-                        input.seek(index106_46);
+                        input.seek(index104_47);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA106_47 = input.LA(1);
+                        int LA104_48 = input.LA(1);
 
                          
-                        int index106_47 = input.index();
+                        int index104_48 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 51;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 49;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 44;}
 
                          
-                        input.seek(index106_47);
+                        input.seek(index104_48);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA106_48 = input.LA(1);
+                        int LA104_49 = input.LA(1);
 
                          
-                        int index106_48 = input.index();
+                        int index104_49 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 51;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 49;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 44;}
 
                          
-                        input.seek(index106_48);
+                        input.seek(index104_49);
                         if ( s>=0 ) return s;
                         break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 106, _s, input);
+                new NoViableAltException(getDescription(), 104, _s, input);
             error(nvae);
             throw nvae;
         }
@@ -21995,344 +21932,342 @@
     public static final BitSet FOLLOW_lhs_and_in_lhs_or2664 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
     public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or2676 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_lhs_and_in_lhs_or2711 = new BitSet(new long[]{0x0000000000000002L,0x0100080000000000L});
-    public static final BitSet FOLLOW_or_key_in_lhs_or2738 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_square_chunk_in_lhs_or2740 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_or_key_in_lhs_or2738 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L});
+    public static final BitSet FOLLOW_constr_parameters_in_lhs_or2740 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
     public static final BitSet FOLLOW_DOUBLE_PIPE_in_lhs_or2753 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
     public static final BitSet FOLLOW_lhs_and_in_lhs_or2764 = new BitSet(new long[]{0x0000000000000002L,0x0100080000000000L});
     public static final BitSet FOLLOW_hedge_in_lhs_or2794 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
     public static final BitSet FOLLOW_lhs_or_in_lhs_or2796 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_very_key_in_hedge2838 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and2874 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_and_key_in_lhs_and2884 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_square_chunk_in_lhs_and2889 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L});
-    public static final BitSet FOLLOW_constr_parameters_in_lhs_and2895 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2904 = new BitSet(new long[]{0x0000000000000000L,0x0002880000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and2910 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2947 = new BitSet(new long[]{0x0000000000000002L,0x0200080000000000L});
-    public static final BitSet FOLLOW_and_key_in_lhs_and2977 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_constr_parameters_in_lhs_and2979 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_square_chunk_in_lhs_and2982 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_lhs_and2995 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3009 = new BitSet(new long[]{0x0000000000000002L,0x0200080000000000L});
-    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3053 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_lhs_not_binding_in_lhs_unary3061 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3067 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3073 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary3079 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_lhs_forany_in_lhs_unary3085 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary3091 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_unary3102 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary3108 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_pattern_source_in_lhs_unary3116 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_lhs_unary3130 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_exists_key_in_lhs_exist3146 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3173 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist3180 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3188 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist3195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist3210 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_key_in_lhs_not_binding3256 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_fact_binding_in_lhs_not_binding3258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_key_in_lhs_not3281 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_not3303 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not3310 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_not3319 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not3325 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_not3335 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_eval_key_in_lhs_eval3374 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval3383 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forall_key_in_lhs_forall3410 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall3415 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_pattern_source_in_lhs_forall3423 = new BitSet(new long[]{0x0000000000000000L,0x0002880000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall3429 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forany_key_in_lhs_forany3460 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forany3467 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_forany3478 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
-    public static final BitSet FOLLOW_subject_key_in_lhs_forany3497 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_forany3501 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
-    public static final BitSet FOLLOW_weight_key_in_lhs_forany3512 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_forany3516 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forany3532 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_pattern_source3593 = new BitSet(new long[]{0x0000000000000002L,0x0C00000000000000L});
-    public static final BitSet FOLLOW_over_clause_in_pattern_source3597 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
-    public static final BitSet FOLLOW_FROM_in_pattern_source3607 = new BitSet(new long[]{0x0000000000000000L,0x3000080000000000L});
-    public static final BitSet FOLLOW_accumulate_statement_in_pattern_source3627 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_collect_statement_in_pattern_source3643 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_entrypoint_statement_in_pattern_source3660 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_from_source_in_pattern_source3676 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_OVER_in_over_clause3708 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_over_elements_in_over_clause3713 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
-    public static final BitSet FOLLOW_COMMA_in_over_clause3720 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_over_elements_in_over_clause3725 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
-    public static final BitSet FOLLOW_ID_in_over_elements3740 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
-    public static final BitSet FOLLOW_COLON_in_over_elements3747 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_over_elements3756 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_over_elements3763 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement3789 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement3798 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_lhs_or_in_accumulate_statement3806 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3811 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_accumulate_init_clause_in_accumulate_statement3821 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_accumulate_id_clause_in_accumulate_statement3827 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement3835 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_init_key_in_accumulate_init_clause3881 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3891 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3896 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_action_key_in_accumulate_init_clause3907 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3911 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3916 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_reverse_key_in_accumulate_init_clause3928 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3932 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3937 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
-    public static final BitSet FOLLOW_result_key_in_accumulate_init_clause3953 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3959 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk4017 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_paren_chunk_data4041 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_set_in_accumulate_paren_chunk_data4053 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data4069 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data4080 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_accumulate_id_clause4096 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_id_clause4102 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_collect_statement4124 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement4133 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_pattern_source_in_collect_statement4140 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement4145 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_entry_point_key_in_entrypoint_statement4172 = new BitSet(new long[]{0x0000000000000000L,0x0000480000000000L});
-    public static final BitSet FOLLOW_entrypoint_id_in_entrypoint_statement4180 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_entrypoint_id4206 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_entrypoint_id4223 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_from_source4243 = new BitSet(new long[]{0x0000000000000002L,0x0000900000000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_from_source4258 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_expression_chain_in_from_source4265 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOT_in_expression_chain4298 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_expression_chain4305 = new BitSet(new long[]{0x0000000000000002L,0x0000900000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_chain4321 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_square_chunk_in_expression_chain4335 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_expression_chain_in_expression_chain4346 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_binding_in_lhs_pattern4382 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_lhs_pattern4397 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_label_in_fact_binding4425 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_fact_in_fact_binding4431 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding4438 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_fact_binding_expression_in_fact_binding4446 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding4454 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_fact_binding_expression4495 = new BitSet(new long[]{0x0000000000000002L,0x0100080000000000L});
-    public static final BitSet FOLLOW_or_key_in_fact_binding_expression4507 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_binding_expression4513 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_fact_in_fact_binding_expression4518 = new BitSet(new long[]{0x0000000000000002L,0x0100080000000000L});
-    public static final BitSet FOLLOW_pattern_type_in_fact4558 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact4563 = new BitSet(new long[]{0x0000000000000000L,0x0002880000000000L});
-    public static final BitSet FOLLOW_constraints_in_fact4574 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact4580 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
-    public static final BitSet FOLLOW_constr_parameters_in_fact4587 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_key_in_lhs_and2884 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L});
+    public static final BitSet FOLLOW_constr_parameters_in_lhs_and2892 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2901 = new BitSet(new long[]{0x0000000000000000L,0x0002880000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and2907 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2941 = new BitSet(new long[]{0x0000000000000002L,0x0200080000000000L});
+    public static final BitSet FOLLOW_and_key_in_lhs_and2971 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L});
+    public static final BitSet FOLLOW_constr_parameters_in_lhs_and2973 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_lhs_and2987 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3001 = new BitSet(new long[]{0x0000000000000002L,0x0200080000000000L});
+    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3042 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_lhs_not_binding_in_lhs_unary3050 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3056 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3062 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary3068 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_lhs_forany_in_lhs_unary3074 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary3080 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_unary3091 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary3097 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_pattern_source_in_lhs_unary3105 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_lhs_unary3119 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_exists_key_in_lhs_exist3135 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3162 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist3169 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3177 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist3184 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist3199 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_key_in_lhs_not_binding3245 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_fact_binding_in_lhs_not_binding3247 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_key_in_lhs_not3270 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_not3292 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not3299 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_not3308 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not3314 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_not3324 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_key_in_lhs_eval3363 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval3372 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forall_key_in_lhs_forall3399 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall3404 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_pattern_source_in_lhs_forall3412 = new BitSet(new long[]{0x0000000000000000L,0x0002880000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall3418 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forany_key_in_lhs_forany3449 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forany3456 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_forany3467 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
+    public static final BitSet FOLLOW_subject_key_in_lhs_forany3486 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_forany3490 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
+    public static final BitSet FOLLOW_weight_key_in_lhs_forany3501 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_forany3505 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forany3521 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_pattern_source3582 = new BitSet(new long[]{0x0000000000000002L,0x0C00000000000000L});
+    public static final BitSet FOLLOW_over_clause_in_pattern_source3586 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
+    public static final BitSet FOLLOW_FROM_in_pattern_source3596 = new BitSet(new long[]{0x0000000000000000L,0x3000080000000000L});
+    public static final BitSet FOLLOW_accumulate_statement_in_pattern_source3616 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_collect_statement_in_pattern_source3632 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_entrypoint_statement_in_pattern_source3649 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_from_source_in_pattern_source3665 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_OVER_in_over_clause3697 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_over_elements_in_over_clause3702 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
+    public static final BitSet FOLLOW_COMMA_in_over_clause3709 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_over_elements_in_over_clause3714 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
+    public static final BitSet FOLLOW_ID_in_over_elements3729 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_COLON_in_over_elements3736 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_over_elements3745 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_over_elements3752 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement3778 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement3787 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_lhs_or_in_accumulate_statement3795 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3800 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_accumulate_init_clause_in_accumulate_statement3810 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_accumulate_id_clause_in_accumulate_statement3816 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement3824 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_init_key_in_accumulate_init_clause3870 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3880 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3885 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_action_key_in_accumulate_init_clause3896 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3900 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3905 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_reverse_key_in_accumulate_init_clause3917 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3921 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3926 = new BitSet(new long[]{0x0000000000000000L,0x0001080000000000L});
+    public static final BitSet FOLLOW_result_key_in_accumulate_init_clause3942 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3948 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk4006 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_paren_chunk_data4030 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_set_in_accumulate_paren_chunk_data4042 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data4058 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data4069 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_accumulate_id_clause4085 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_id_clause4091 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_collect_statement4113 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement4122 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_pattern_source_in_collect_statement4129 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement4134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_entry_point_key_in_entrypoint_statement4161 = new BitSet(new long[]{0x0000000000000000L,0x0000480000000000L});
+    public static final BitSet FOLLOW_entrypoint_id_in_entrypoint_statement4169 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_entrypoint_id4195 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_entrypoint_id4212 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_from_source4232 = new BitSet(new long[]{0x0000000000000002L,0x0000900000000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_from_source4247 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_expression_chain_in_from_source4254 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOT_in_expression_chain4287 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_expression_chain4294 = new BitSet(new long[]{0x0000000000000002L,0x0000900000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_chain4310 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_square_chunk_in_expression_chain4324 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_expression_chain_in_expression_chain4335 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_binding_in_lhs_pattern4371 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_lhs_pattern4386 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_label_in_fact_binding4414 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_fact_in_fact_binding4420 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding4427 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_fact_binding_expression_in_fact_binding4435 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding4443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_fact_binding_expression4484 = new BitSet(new long[]{0x0000000000000002L,0x0100080000000000L});
+    public static final BitSet FOLLOW_or_key_in_fact_binding_expression4496 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_binding_expression4502 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_fact_in_fact_binding_expression4507 = new BitSet(new long[]{0x0000000000000002L,0x0100080000000000L});
+    public static final BitSet FOLLOW_pattern_type_in_fact4547 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact4552 = new BitSet(new long[]{0x0000000000000000L,0x0002880000000000L});
+    public static final BitSet FOLLOW_constraints_in_fact4563 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact4569 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
+    public static final BitSet FOLLOW_constr_parameters_in_fact4576 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constraint_in_constraints4622 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
+    public static final BitSet FOLLOW_COMMA_in_constraints4626 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
     public static final BitSet FOLLOW_constraint_in_constraints4633 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
-    public static final BitSet FOLLOW_COMMA_in_constraints4637 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_constraint_in_constraints4644 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
-    public static final BitSet FOLLOW_or_constr_in_constraint4658 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_or_constr_config_in_or_constr4691 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr4713 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr4749 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr_config4808 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L});
-    public static final BitSet FOLLOW_SINGLE_PIPE_in_or_constr_config4819 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
-    public static final BitSet FOLLOW_constr_parameters_in_or_constr_config4868 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr_config4894 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr_config4964 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_constr_config_in_and_constr5006 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr5030 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr5069 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr_config5149 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
-    public static final BitSet FOLLOW_SINGLE_AMPER_in_and_constr_config5160 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L});
-    public static final BitSet FOLLOW_constr_parameters_in_and_constr_config5209 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr_config5240 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr_config5321 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_eval_key_in_unary_constr5370 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_unary_constr5373 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_field_constraint_in_unary_constr5378 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr5384 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
-    public static final BitSet FOLLOW_or_constr_in_unary_constr5394 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr5399 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_label_in_field_constraint5419 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint5421 = new BitSet(new long[]{0x0000000000000002L,0x0000880000000000L,0x000000000000807FL});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint5428 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ARROW_in_field_constraint5434 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_field_constraint5438 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint5496 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint5498 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_label5525 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
-    public static final BitSet FOLLOW_COLON_in_label5532 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective5553 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective5559 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective5569 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective5590 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective5596 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective5603 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
-    public static final BitSet FOLLOW_compound_operator_in_constraint_expression5631 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_simple_operator_in_constraint_expression5636 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
-    public static final BitSet FOLLOW_constr_parameters_in_constraint_expression5640 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
-    public static final BitSet FOLLOW_expression_value_in_constraint_expression5643 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_custom_operator_in_constraint_expression5665 = new BitSet(new long[]{0x0000000000000002L,0x00C4C80000000000L,0x0000000000000180L});
-    public static final BitSet FOLLOW_constr_parameters_in_constraint_expression5669 = new BitSet(new long[]{0x0000000000000002L,0x00C4C80000000000L,0x0000000000000180L});
-    public static final BitSet FOLLOW_expression_value_in_constraint_expression5672 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression5696 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
-    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression5705 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression5710 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EQUAL_in_simple_operator5753 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GREATER_in_simple_operator5812 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GREATER_EQUAL_in_simple_operator5851 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LESS_in_simple_operator5886 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LESS_EQUAL_in_simple_operator5921 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_EQUAL_in_simple_operator5956 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_key_in_custom_operator6028 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_approx_symb_in_custom_operator6036 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_operator_key_in_custom_operator6039 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_square_chunk_in_custom_operator6047 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_in_key_in_compound_operator6092 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_not_key_in_compound_operator6097 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_in_key_in_compound_operator6099 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator6110 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator6118 = new BitSet(new long[]{0x0000000000000000L,0x0003000000000000L});
-    public static final BitSet FOLLOW_COMMA_in_compound_operator6122 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator6127 = new BitSet(new long[]{0x0000000000000000L,0x0003000000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator6135 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AT_in_constr_parameters6170 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_constr_parameters6175 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
-    public static final BitSet FOLLOW_constr_attr_in_constr_parameters6182 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_constr_parameters6187 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_c_param_id_in_constr_attr6223 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_c_param_type_in_constr_attr6235 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_c_param_args_in_constr_attr6243 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_c_param_cut_in_constr_attr6251 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_c_param_prior_in_constr_attr6259 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_id_key_in_c_param_id6281 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_EQUALS_in_c_param_id6288 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_STRING_in_c_param_id6297 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_type_key_in_c_param_type6318 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_EQUALS_in_c_param_type6325 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_STRING_in_c_param_type6334 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_kut_key_in_c_param_cut6357 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_EQUALS_in_c_param_cut6364 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_STRING_in_c_param_cut6373 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_args_key_in_c_param_args6395 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_EQUALS_in_c_param_args6402 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_STRING_in_c_param_args6411 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_prior_key_in_c_param_prior6434 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_EQUALS_in_c_param_prior6441 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_STRING_in_c_param_prior6451 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_operator_key6491 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_neg_operator_key6536 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_expression_value6573 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_constraint_in_expression_value6578 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_value6584 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_literal_constraint6603 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_literal_constraint6610 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_literal_constraint6617 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_literal_constraint6624 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_literal_constraint6631 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_pattern_type6646 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_DOT_in_pattern_type6652 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_pattern_type6656 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_dimension_definition_in_pattern_type6671 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_ID_in_data_type6699 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_DOT_in_data_type6705 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_data_type6709 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_dimension_definition_in_data_type6714 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition6743 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition6750 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path6764 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_DOT_in_accessor_path6768 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path6772 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_ID_in_accessor_element6796 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_square_chunk_in_accessor_element6802 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_rhs_chunk_data_in_rhs_chunk6831 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_THEN_in_rhs_chunk_data6850 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_not_end_key_in_rhs_chunk_data6859 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_end_key_in_rhs_chunk_data6865 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_rhs_chunk_data6870 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk6889 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk_data6912 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_set_in_curly_chunk_data6924 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk_data6940 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk_data6951 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk6972 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk_data6996 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_set_in_paren_chunk_data7008 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk_data7024 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk_data7035 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk7056 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk_data7079 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_set_in_square_chunk_data7091 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk_data7106 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk_data7117 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key7141 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_lock_on_active_key7145 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key7149 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_lock_on_active_key7153 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key7157 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_date_effective_key7189 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_date_effective_key7193 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_date_effective_key7197 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_date_expires_key7230 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_date_expires_key7234 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_date_expires_key7238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_no_loop_key7270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_no_loop_key7274 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_no_loop_key7278 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_auto_focus_key7310 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_auto_focus_key7314 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_auto_focus_key7318 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_activation_group_key7350 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_activation_group_key7354 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_activation_group_key7358 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_agenda_group_key7390 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_agenda_group_key7394 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_agenda_group_key7398 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_ruleflow_group_key7430 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_ruleflow_group_key7434 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_ruleflow_group_key7438 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_entry_point_key7470 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_MISC_in_entry_point_key7474 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_ID_in_entry_point_key7478 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_duration_key7507 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_package_key7534 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_import_key7561 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_dialect_key7588 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_prior_key7616 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_entail_mode_key7649 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_filter_key7682 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_salience_key7715 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_enabled_key7742 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_attributes_key7769 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_rule_key7796 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_extend_key7823 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_template_key7850 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_query_key7877 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_declare_key7904 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_key7931 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_global_key7958 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_eval_key7985 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_not_key8012 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_in_key8039 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_or_key8066 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_and_key8093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_equiv_key8123 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_xor_key8159 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_implies_key8194 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_exists_key8234 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_forall_key8261 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_forany_key8290 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_action_key8323 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_reverse_key8350 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_result_key8377 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_end_key8404 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_init_key8451 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_subject_key8482 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_weight_key8520 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_very_key8559 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_id_key8609 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_kut_key8657 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_type_key8694 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_args_key8731 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_APPROX_in_approx_symb8772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_constr_in_constraint4647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_constr_config_in_or_constr4680 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr4702 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr4738 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr_config4797 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L});
+    public static final BitSet FOLLOW_SINGLE_PIPE_in_or_constr_config4808 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
+    public static final BitSet FOLLOW_constr_parameters_in_or_constr_config4857 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr_config4883 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr_config4953 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_constr_config_in_and_constr4995 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr5019 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr5058 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr_config5138 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+    public static final BitSet FOLLOW_SINGLE_AMPER_in_and_constr_config5149 = new BitSet(new long[]{0x0000000000000000L,0x0004880000000000L});
+    public static final BitSet FOLLOW_constr_parameters_in_and_constr_config5198 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr_config5229 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr_config5310 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_key_in_unary_constr5359 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_unary_constr5362 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_field_constraint_in_unary_constr5367 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr5373 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L});
+    public static final BitSet FOLLOW_or_constr_in_unary_constr5383 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr5388 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_label_in_field_constraint5408 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint5410 = new BitSet(new long[]{0x0000000000000002L,0x0000880000000000L,0x000000000000807FL});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint5417 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ARROW_in_field_constraint5423 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_field_constraint5427 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint5485 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint5487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_label5514 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_COLON_in_label5521 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective5542 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective5548 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective5558 = new BitSet(new long[]{0x0000000000000002L,0x0100000000000000L});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective5579 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective5585 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective5592 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
+    public static final BitSet FOLLOW_compound_operator_in_constraint_expression5620 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_simple_operator_in_constraint_expression5625 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
+    public static final BitSet FOLLOW_constr_parameters_in_constraint_expression5629 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
+    public static final BitSet FOLLOW_expression_value_in_constraint_expression5632 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_custom_operator_in_constraint_expression5654 = new BitSet(new long[]{0x0000000000000002L,0x00C4C80000000000L,0x0000000000000180L});
+    public static final BitSet FOLLOW_constr_parameters_in_constraint_expression5658 = new BitSet(new long[]{0x0000000000000002L,0x00C4C80000000000L,0x0000000000000180L});
+    public static final BitSet FOLLOW_expression_value_in_constraint_expression5661 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression5685 = new BitSet(new long[]{0x0000000000000000L,0x0000880000000000L,0x000000000000807EL});
+    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression5694 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression5699 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EQUAL_in_simple_operator5742 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GREATER_in_simple_operator5801 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GREATER_EQUAL_in_simple_operator5840 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LESS_in_simple_operator5875 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LESS_EQUAL_in_simple_operator5910 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_EQUAL_in_simple_operator5945 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_key_in_custom_operator6017 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_approx_symb_in_custom_operator6025 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_operator_key_in_custom_operator6028 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_square_chunk_in_custom_operator6036 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_in_key_in_compound_operator6081 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_not_key_in_compound_operator6086 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_in_key_in_compound_operator6088 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator6099 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator6107 = new BitSet(new long[]{0x0000000000000000L,0x0003000000000000L});
+    public static final BitSet FOLLOW_COMMA_in_compound_operator6111 = new BitSet(new long[]{0x0000000000000000L,0x00C4C80000000000L,0x0000000000000180L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator6116 = new BitSet(new long[]{0x0000000000000000L,0x0003000000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator6124 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AT_in_constr_parameters6159 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_constr_parameters6164 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
+    public static final BitSet FOLLOW_constr_attr_in_constr_parameters6171 = new BitSet(new long[]{0x0000000000000000L,0x0002080000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_constr_parameters6176 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_c_param_id_in_constr_attr6212 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_c_param_kind_in_constr_attr6224 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_c_param_args_in_constr_attr6232 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_c_param_cut_in_constr_attr6240 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_c_param_prior_in_constr_attr6248 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_id_key_in_c_param_id6270 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_EQUALS_in_c_param_id6277 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_STRING_in_c_param_id6286 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_kind_key_in_c_param_kind6307 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_EQUALS_in_c_param_kind6314 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_STRING_in_c_param_kind6323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_kut_key_in_c_param_cut6346 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_EQUALS_in_c_param_cut6353 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_STRING_in_c_param_cut6362 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_args_key_in_c_param_args6384 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_EQUALS_in_c_param_args6391 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_STRING_in_c_param_args6400 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_prior_key_in_c_param_prior6423 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_EQUALS_in_c_param_prior6430 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_STRING_in_c_param_prior6440 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_operator_key6480 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_neg_operator_key6525 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_expression_value6562 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_constraint_in_expression_value6567 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_value6573 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal_constraint6592 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal_constraint6599 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal_constraint6606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal_constraint6613 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_literal_constraint6620 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_pattern_type6635 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_DOT_in_pattern_type6641 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_pattern_type6645 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_dimension_definition_in_pattern_type6660 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_ID_in_data_type6688 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_DOT_in_data_type6694 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_data_type6698 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_dimension_definition_in_data_type6703 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition6732 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition6739 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path6753 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_DOT_in_accessor_path6757 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path6761 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_ID_in_accessor_element6785 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_square_chunk_in_accessor_element6791 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_rhs_chunk_data_in_rhs_chunk6820 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_THEN_in_rhs_chunk_data6839 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_not_end_key_in_rhs_chunk_data6848 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_end_key_in_rhs_chunk_data6854 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_rhs_chunk_data6859 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk6878 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk_data6901 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_set_in_curly_chunk_data6913 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk_data6929 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk_data6940 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk6961 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk_data6985 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_set_in_paren_chunk_data6997 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk_data7013 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk_data7024 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk7045 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk_data7068 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_set_in_square_chunk_data7080 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk_data7095 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000003FFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk_data7106 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key7130 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_lock_on_active_key7134 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key7138 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_lock_on_active_key7142 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key7146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_date_effective_key7178 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_date_effective_key7182 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_date_effective_key7186 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_date_expires_key7219 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_date_expires_key7223 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_date_expires_key7227 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_no_loop_key7259 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_no_loop_key7263 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_no_loop_key7267 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_auto_focus_key7299 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_auto_focus_key7303 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_auto_focus_key7307 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_activation_group_key7339 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_activation_group_key7343 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_activation_group_key7347 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_agenda_group_key7379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_agenda_group_key7383 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_agenda_group_key7387 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_ruleflow_group_key7419 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_ruleflow_group_key7423 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_ruleflow_group_key7427 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_entry_point_key7459 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_MISC_in_entry_point_key7463 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_ID_in_entry_point_key7467 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_duration_key7496 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_package_key7523 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_import_key7550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_dialect_key7577 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_prior_key7605 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_entail_mode_key7638 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_filter_key7671 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_salience_key7704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_enabled_key7731 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_attributes_key7758 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_rule_key7785 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_extend_key7812 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_template_key7839 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_query_key7866 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_declare_key7893 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_key7920 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_global_key7947 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_eval_key7974 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_not_key8001 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_in_key8028 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_or_key8055 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_and_key8082 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_equiv_key8112 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_xor_key8148 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_implies_key8183 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_exists_key8223 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_forall_key8250 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_forany_key8279 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_action_key8312 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_reverse_key8339 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_result_key8366 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_end_key8393 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_init_key8440 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_subject_key8471 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_weight_key8509 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_very_key8548 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_id_key8598 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_kut_key8646 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_kind_key8683 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_args_key8720 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_APPROX_in_approx_symb8761 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_LEFT_PAREN_in_synpred1_DRL2312 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
     public static final BitSet FOLLOW_or_key_in_synpred1_DRL2314 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
     public static final BitSet FOLLOW_constr_parameters_in_synpred1_DRL2316 = new BitSet(new long[]{0x0000000000000002L});
@@ -22351,20 +22286,20 @@
     public static final BitSet FOLLOW_LEFT_PAREN_in_synpred6_DRL2862 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
     public static final BitSet FOLLOW_and_key_in_synpred6_DRL2864 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
     public static final BitSet FOLLOW_square_chunk_in_synpred6_DRL2866 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_key_in_synpred7_DRL2960 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_square_chunk_in_synpred7_DRL2962 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred7_DRL2966 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMICOLON_in_synpred8_DRL3126 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred9_DRL3163 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_or_key_in_synpred9_DRL3166 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_key_in_synpred9_DRL3168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred10_DRL3291 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_or_key_in_synpred10_DRL3294 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_key_in_synpred10_DRL3296 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred11_DRL4252 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_constr_in_synpred12_DRL4795 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L});
-    public static final BitSet FOLLOW_SINGLE_PIPE_in_synpred12_DRL4797 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_unary_constr_in_synpred13_DRL5136 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
-    public static final BitSet FOLLOW_SINGLE_AMPER_in_synpred13_DRL5138 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_key_in_synpred7_DRL2954 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
+    public static final BitSet FOLLOW_constr_parameters_in_synpred7_DRL2956 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred7_DRL2960 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMICOLON_in_synpred8_DRL3115 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred9_DRL3152 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_or_key_in_synpred9_DRL3155 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_key_in_synpred9_DRL3157 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred10_DRL3280 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_or_key_in_synpred10_DRL3283 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_key_in_synpred10_DRL3285 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred11_DRL4241 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_constr_in_synpred12_DRL4784 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L});
+    public static final BitSet FOLLOW_SINGLE_PIPE_in_synpred12_DRL4786 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_unary_constr_in_synpred13_DRL5125 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+    public static final BitSet FOLLOW_SINGLE_AMPER_in_synpred13_DRL5127 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -1,4 +1,4 @@
-// $ANTLR 3.1.1 /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g 2009-05-20 03:15:20
+// $ANTLR 3.1.1 /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g 2009-05-23 11:52:09
 
 	package org.drools.lang;
 
@@ -36,12 +36,11 @@
 
 public class DescrBuilderTree extends TreeParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VT_COMPILATION_UNIT", "VT_FUNCTION_IMPORT", "VT_FACT", "VT_CONSTRAINTS", "VT_LABEL", "VT_QUERY_ID", "VT_TEMPLATE_ID", "VT_TYPE_DECLARE_ID", "VT_RULE_ID", "VT_ENTRYPOINT_ID", "VT_SLOT_ID", "VT_SLOT", "VT_RULE_ATTRIBUTES", "VT_RHS_CHUNK", "VT_CURLY_CHUNK", "VT_SQUARE_CHUNK", "VT_PAREN_CHUNK", "VT_BEHAVIOR", "VT_AND_IMPLICIT", "VT_AND_PREFIX", "VT_OR_PREFIX", "VT_AND_INFIX", "VT_OR_INFIX", "VT_EQUIV", "VT_XOR", "VT_IMPLIES", "VT_ACCUMULATE_INIT_CLAUSE", "VT_ACCUMULATE_ID_CLAUSE", "VT_FROM_SOURCE", "VT_EXPRESSION_CHAIN", "VT_PATTERN", "VT_FACT_BINDING", "VT_FACT_OR", "VT_BIND_FIELD", "VT_FIELD", "VT_ACCESSOR_PATH", "VT_ACCESSOR_ELEMENT", "VT_DATA_TYPE", "VT_PATTERN_TYPE", "VT_PACKAGE_ID", "VT_IMPORT_ID", "VT_GLOBAL_ID", "VT_FUNCTION_ID", "VT_PARAM_LIST", "VT_CONSTRID", "VT_HEDGE", "VT_CONSTR_ATTRIBUTES", "VT_CUT", "VT_PRIOR", "VT_ARGS", "VT_TYPE", "VK_DATE_EFFECTIVE", "VK_DATE_EXPIRES", "VK_LOCK_ON_ACTIVE", "VK_NO_LOOP", "VK_AUTO!
 _FOCUS", "VK_ACTIVATION_GROUP", "VK_AGENDA_GROUP", "VK_RULEFLOW_GROUP", "VK_DURATION", "VK_DIALECT", "VK_SALIENCE", "VK_ENABLED", "VK_ATTRIBUTES", "VK_RULE", "VK_EXTEND", "VK_IMPORT", "VK_PACKAGE", "VK_TEMPLATE", "VK_QUERY", "VK_DECLARE", "VK_FUNCTION", "VK_GLOBAL", "VK_EVAL", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EQUIV", "VK_XOR", "VK_IMPLIES", "VK_EXISTS", "VK_FORALL", "VK_FORANY", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "VK_END", "VK_INIT", "VK_SUBJECT", "VK_WEIGHT", "VK_CUT", "VK_APPROX", "VK_ENTAIL", "VK_PRIOR", "VK_FILTER", "VK_AT", "VK_CONSTRID", "VK_ARGS", "VK_TYPE", "SEMICOLON", "ID", "DOT", "DOT_STAR", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "COLLECT", "SINGLE_PIPE", "SINGLE_AMPER", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "TH!
 EN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "APPROX", "EOL", "WS", "Esca
peSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "CUT", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "VT_COMPILATION_UNIT", "VT_FUNCTION_IMPORT", "VT_FACT", "VT_CONSTRAINTS", "VT_LABEL", "VT_QUERY_ID", "VT_TEMPLATE_ID", "VT_TYPE_DECLARE_ID", "VT_RULE_ID", "VT_ENTRYPOINT_ID", "VT_SLOT_ID", "VT_SLOT", "VT_RULE_ATTRIBUTES", "VT_RHS_CHUNK", "VT_CURLY_CHUNK", "VT_SQUARE_CHUNK", "VT_PAREN_CHUNK", "VT_BEHAVIOR", "VT_AND_IMPLICIT", "VT_AND_PREFIX", "VT_OR_PREFIX", "VT_AND_INFIX", "VT_OR_INFIX", "VT_EQUIV", "VT_XOR", "VT_IMPLIES", "VT_ACCUMULATE_INIT_CLAUSE", "VT_ACCUMULATE_ID_CLAUSE", "VT_FROM_SOURCE", "VT_EXPRESSION_CHAIN", "VT_PATTERN", "VT_FACT_BINDING", "VT_FACT_OR", "VT_BIND_FIELD", "VT_FIELD", "VT_ACCESSOR_PATH", "VT_ACCESSOR_ELEMENT", "VT_DATA_TYPE", "VT_PATTERN_TYPE", "VT_PACKAGE_ID", "VT_IMPORT_ID", "VT_GLOBAL_ID", "VT_FUNCTION_ID", "VT_PARAM_LIST", "VT_CONSTRID", "VT_HEDGE", "VT_CONSTR_ATTRIBUTES", "VT_CUT", "VT_PRIOR", "VT_ARGS", "VT_KIND", "VK_DATE_EFFECTIVE", "VK_DATE_EXPIRES", "VK_LOCK_ON_ACTIVE", "VK_NO_LOOP", "VK_AUTO!
 _FOCUS", "VK_ACTIVATION_GROUP", "VK_AGENDA_GROUP", "VK_RULEFLOW_GROUP", "VK_DURATION", "VK_DIALECT", "VK_SALIENCE", "VK_ENABLED", "VK_ATTRIBUTES", "VK_RULE", "VK_EXTEND", "VK_IMPORT", "VK_PACKAGE", "VK_TEMPLATE", "VK_QUERY", "VK_DECLARE", "VK_FUNCTION", "VK_GLOBAL", "VK_EVAL", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EQUIV", "VK_XOR", "VK_IMPLIES", "VK_EXISTS", "VK_FORALL", "VK_FORANY", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "VK_END", "VK_INIT", "VK_SUBJECT", "VK_WEIGHT", "VK_CUT", "VK_APPROX", "VK_ENTAIL", "VK_PRIOR", "VK_FILTER", "VK_AT", "VK_CONSTRID", "VK_ARGS", "VK_KIND", "SEMICOLON", "ID", "DOT", "DOT_STAR", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "COLLECT", "SINGLE_PIPE", "SINGLE_AMPER", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "TH!
 EN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "APPROX", "EOL", "WS", "Esca
peSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "CUT", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
     };
     public static final int VT_ACCESSOR_ELEMENT=40;
     public static final int ACCUMULATE=124;
     public static final int VT_DATA_TYPE=41;
-    public static final int VK_TYPE=105;
     public static final int DOT_STAR=109;
     public static final int VK_APPROX=98;
     public static final int VK_OPERATOR=92;
@@ -49,7 +48,6 @@
     public static final int VK_FUNCTION=75;
     public static final int VK_GLOBAL=76;
     public static final int VK_AND=82;
-    public static final int VT_TYPE=54;
     public static final int EQUALS=116;
     public static final int SH_STYLE_SINGLE_LINE_COMMENT=151;
     public static final int VK_AUTO_FOCUS=59;
@@ -81,6 +79,7 @@
     public static final int NULL=136;
     public static final int BOOL=118;
     public static final int VK_ENTAIL=99;
+    public static final int VT_KIND=54;
     public static final int VK_QUERY=73;
     public static final int VK_SUBJECT=95;
     public static final int INT=119;
@@ -187,6 +186,7 @@
     public static final int LEFT_SQUARE=137;
     public static final int GREATER_EQUAL=131;
     public static final int OctalEscape=149;
+    public static final int VK_KIND=105;
     public static final int VK_INIT=94;
     public static final int STRING=110;
 
@@ -2314,7 +2314,7 @@
                 int alt31=2;
                 int LA31_0 = input.LA(1);
 
-                if ( (LA31_0==VK_CUT||LA31_0==VK_PRIOR||(LA31_0>=VK_CONSTRID && LA31_0<=VK_TYPE)) ) {
+                if ( (LA31_0==VK_CUT||LA31_0==VK_PRIOR||(LA31_0>=VK_CONSTRID && LA31_0<=VK_KIND)) ) {
                     alt31=1;
                 }
 
@@ -2360,7 +2360,7 @@
 
 
     // $ANTLR start "constr_attribute"
-    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:221:1: constr_attribute returns [AttributeDescr attributeDescr] : ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_TYPE value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) ) ;
+    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:221:1: constr_attribute returns [AttributeDescr attributeDescr] : ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_KIND value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) ) ;
     public final AttributeDescr constr_attribute() throws RecognitionException {
         AttributeDescr attributeDescr = null;
 
@@ -2368,10 +2368,10 @@
         DroolsTree value=null;
 
         try {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:222:3: ( ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_TYPE value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) ) )
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:222:5: ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_TYPE value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:222:3: ( ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_KIND value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:222:5: ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_KIND value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) )
             {
-            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:222:5: ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_TYPE value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) )
+            // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:222:5: ( ^(attrName= VK_CONSTRID value= STRING ) | ^(attrName= VK_ARGS value= STRING ) | ^(attrName= VK_KIND value= STRING ) | ^(attrName= VK_CUT value= STRING ) | ^(attrName= VK_PRIOR value= STRING ) )
             int alt32=5;
             switch ( input.LA(1) ) {
             case VK_CONSTRID:
@@ -2384,7 +2384,7 @@
                 alt32=2;
                 }
                 break;
-            case VK_TYPE:
+            case VK_KIND:
                 {
                 alt32=3;
                 }
@@ -2432,9 +2432,9 @@
                     }
                     break;
                 case 3 :
-                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:225:5: ^(attrName= VK_TYPE value= STRING )
+                    // /home/davide/Projects/Eclipse_Drools/drools/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:225:5: ^(attrName= VK_KIND value= STRING )
                     {
-                    attrName=(DroolsTree)match(input,VK_TYPE,FOLLOW_VK_TYPE_in_constr_attribute1186); 
+                    attrName=(DroolsTree)match(input,VK_KIND,FOLLOW_VK_KIND_in_constr_attribute1186); 
 
                     match(input, Token.DOWN, null); 
                     value=(DroolsTree)match(input,STRING,FOLLOW_STRING_in_constr_attribute1190); 
@@ -5363,7 +5363,7 @@
     public static final BitSet FOLLOW_STRING_in_constr_attribute1159 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_ARGS_in_constr_attribute1170 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_STRING_in_constr_attribute1174 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_TYPE_in_constr_attribute1186 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_VK_KIND_in_constr_attribute1186 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_STRING_in_constr_attribute1190 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_CUT_in_constr_attribute1203 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_STRING_in_constr_attribute1207 = new BitSet(new long[]{0x0000000000000008L});

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DroolsSoftKeywords.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DroolsSoftKeywords.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/DroolsSoftKeywords.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -69,7 +69,7 @@
     public static final String VERY = "very";
     public static final String CID = "id";
     public static final String CUT = "cut";
-    public static final String TYPE = "type";
+    public static final String KIND = "kind";
     public static final String ARGS = "args";
      	
 	

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AccumulateDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -123,6 +123,12 @@
     public void addDescr(final BaseDescr patternDescr) {
         throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
     }
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {
+    	throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
+    }
+    
+    
 
     public void insertBeforeLast(final Class clazz ,final BaseDescr baseDescr ) {
         throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -34,6 +34,10 @@
     public void addDescr(final BaseDescr baseDescr) {
         this.descrs.add( baseDescr );
     }
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {
+        this.descrs.add( 0 , baseDescr );
+    }
 
     public void insertDescr(int index,
                             final BaseDescr baseDescr) {

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AttributeDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -45,4 +45,8 @@
     public void setValue(final String value) {
         this.value = value;
     }
+    
+    public String toString() {
+    	return "[Attribute Descr : @"+this.name+"="+this.value+"]";
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/BaseDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -41,6 +41,8 @@
     private boolean			  cutter		   = false;
     private String 			  params 		   = null;
     private String 			  label			   = null;
+    private String 			  prior			   = null;
+    
   
      
     public int getId() {
@@ -179,4 +181,18 @@
 		
 		return label;
 	}
+
+	/**
+	 * @param prior the prior to set
+	 */
+	public void setPrior(String prior) {
+		this.prior = prior;
+	}
+
+	/**
+	 * @return the prior
+	 */
+	public String getPrior() {
+		return prior;
+	}
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/CollectDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -66,8 +66,14 @@
     }
 
     public void addOrMerge(BaseDescr baseDescr) {
-        throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
+    	throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
     }
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {
+    	throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
+    }
+    
+    
 
     public PatternDescr getInputPattern() {
         return this.inputPattern;

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ConditionalElementDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -23,6 +23,7 @@
     public void insertBeforeLast(final Class<?> clazz ,final BaseDescr baseDescr );
     
     public void addDescr(BaseDescr baseDescr);
+    public void addDescrFirst(BaseDescr baseDescr);
     
     public void addOrMerge(final BaseDescr baseDescr);
     

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -8,6 +8,7 @@
 import java.util.Map.Entry;
 
 import org.drools.RuntimeDroolsException;
+import org.drools.lang.DroolsSoftKeywords;
 import org.drools.lang.DroolsTree;
 
 /**
@@ -526,23 +527,28 @@
 	private void fillWithAttribs(BaseDescr descr, List<AttributeDescr> attribs) {
 		Map<String,String> atts = buildAttributes(attribs);
 		
-		String params = atts.get("args");
-		String id = atts.get("id");
-		String cutS = atts.get("cut");
+		String params = atts.get(DroolsSoftKeywords.ARGS);
+		
+		String id = atts.get(DroolsSoftKeywords.CID);
+		String cutS = atts.get(DroolsSoftKeywords.CUT);
 			boolean cutter = cutS == null ? false : Boolean.parseBoolean(cutS);
-		String type = atts.get("type");
-		String prior = atts.get("prior");
+		String type = atts.get(DroolsSoftKeywords.KIND);
+		String prior = atts.get(DroolsSoftKeywords.PRIOR);
 						
-		String p = params == null ? null : params;
+		String p = params == null ? null : "args:"+params;
 		if (p == null)
-			p = type;
+			if (type != null)
+				p = "kind:"+type;
 		else 
-			p+= type;
+			if (type != null)
+				p+= ",kind:"+type;
 			
 		descr.setParams(p);
 			
 		descr.setCutter(cutter);		
 		descr.setLabel(id);		
+		
+		descr.setPrior(prior);
 	}
 	
 	
@@ -1637,6 +1643,8 @@
 		fieldConstraint.setEndCharacter(aeList.get(aeList.size() - 1)
 				.getEndCharacter());
 
+		//fillWithAttribs(fieldConstraint, buildAttributes(ex aeList.get(0)))
+		
 		return fieldConstraint;
 	}
 

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -19,6 +19,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.drools.RuntimeDroolsException;
+
 public class EqvDescr extends BaseDescr
     implements
     ConditionalElementDescr {
@@ -32,9 +34,20 @@
     }
 
     public void addDescr(final BaseDescr baseDescr) {
+    	if (this.descrs.size() >= 2)
+        	throw new RuntimeDroolsException("Eqv is Binary");
+    	
         this.descrs.add( baseDescr );
     }
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {
+    	if (this.descrs.size() >= 2)
+        	throw new RuntimeDroolsException("Eqv is Binary");
+    	
+        this.descrs.add( 0 , baseDescr );
+    }
 
+        
     public void insertDescr(int index,
                             final BaseDescr baseDescr) {
         this.descrs.add( index,

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EvalDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -72,6 +72,11 @@
         throw new UnsupportedOperationException("Can't add descriptors to "+this.getClass().getName());        
     }
     
+    public void addDescrFirst(final BaseDescr baseDescr) {
+    	throw new UnsupportedOperationException("Can't add descriptors to "+this.getClass().getName());
+    }
+    
+    
     public void insertBeforeLast(final Class clazz ,final BaseDescr baseDescr ) { 
         throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
     }    

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ExistsDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -40,6 +40,10 @@
         this.descrs.add( baseDescr );
     }
     
+    public void addDescrFirst(final BaseDescr baseDescr) {    	    
+        this.descrs.add( 0 , baseDescr );
+    }
+    
     public void insertBeforeLast(final Class clazz ,final BaseDescr baseDescr ) { 
         throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
     }    

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForAnyDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForAnyDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForAnyDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -45,6 +45,10 @@
         // cast to make sure we are adding a pattern descriptor
         this.descriptors.add( baseDescr );
     }
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {    	    
+        this.descriptors.add( 0 , baseDescr );
+    }
 
     public void insertBeforeLast(final Class clazz,
                                  final BaseDescr baseDescr) {

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -45,6 +45,10 @@
         // cast to make sure we are adding a pattern descriptor
         this.patterns.add( baseDescr );
     }
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {    	    
+        this.patterns.add( 0 , baseDescr );
+    }
 
     public void insertBeforeLast(final Class clazz,
                                  final BaseDescr baseDescr) {

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/FromDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -23,6 +23,10 @@
         throw new UnsupportedOperationException("Can't add descriptors to "+this.getClass().getName());        
     }
     
+    public void addDescrFirst(final BaseDescr baseDescr) {
+        throw new UnsupportedOperationException("Can't add descriptors to "+this.getClass().getName());        
+    }
+    
     public void insertBeforeLast(final Class clazz ,final BaseDescr baseDescr ) { 
         throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
     }    

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/HedgeDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/HedgeDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/HedgeDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -42,6 +42,10 @@
         this.descrs.add( baseDescr );
     }
     
+    public void addDescrFirst(final BaseDescr baseDescr) {    	    
+        this.descrs.add( 0 , baseDescr );
+    }
+    
     public void insertBeforeLast(final Class clazz ,final BaseDescr baseDescr ) { 
         throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
     }    

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ImpliesDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ImpliesDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/ImpliesDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -41,6 +41,10 @@
                          baseDescr );
     }
 
+    public void addDescrFirst(final BaseDescr baseDescr) {    	    
+        this.descrs.add( 0 , baseDescr );
+    }
+    
     public void insertBeforeLast(final Class clazz,
                              final BaseDescr baseDescr) {
         if ( this.descrs.isEmpty() ) {

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -29,6 +29,9 @@
     public static final int   TYPE_NUMBER      = 2;
     public static final int   TYPE_STRING      = 3;
     public static final int   TYPE_BOOLEAN     = 4;
+    public static final int   TYPE_OBJECT      = 5;
+    public static final int   TYPE_CLASS       = 99;
+    
 
     private static final long serialVersionUID = 400L;
     private int               type;

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/NotDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -40,6 +40,10 @@
         this.descrs.add( baseDescr );
     }
     
+    public void addDescrFirst(final BaseDescr baseDescr) {    	    
+        this.descrs.add( 0 , baseDescr );
+    }
+    
     public void insertBeforeLast(final Class clazz ,final BaseDescr baseDescr ) { 
         throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
     }    

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -55,6 +55,10 @@
         this.descrs.add( baseDescr );
     }
 
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {    	    
+        this.descrs.add( 0 , baseDescr );
+    }
 
     public List getDescrs() {
         return this.descrs;

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -19,6 +19,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.drools.RuntimeDroolsException;
+
 public class XorDescr extends BaseDescr
     implements
     ConditionalElementDescr {
@@ -32,9 +34,20 @@
     }
 
     public void addDescr(final BaseDescr baseDescr) {
+    	if (this.descrs.size() >= 2)
+        	throw new RuntimeDroolsException("Xor is Binary");
+    	
         this.descrs.add( baseDescr );
     }
+    
 
+    public void addDescrFirst(final BaseDescr baseDescr) {
+        if (this.descrs.size() >= 2)
+        	throw new RuntimeDroolsException("Xor is Binary");
+        
+        this.descrs.add( 0 , baseDescr );
+    }
+
     public void insertDescr(int index,
                             final BaseDescr baseDescr) {
         this.descrs.add( index,

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java	2009-05-26 08:05:07 UTC (rev 26720)
@@ -16,29 +16,25 @@
  * limitations under the License.
  */
 
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
-import java.net.URL;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 import java.util.StringTokenizer;
 
-import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.OutputKeys;
@@ -47,25 +43,30 @@
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXSource;
 import javax.xml.transform.stream.StreamResult;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-import javax.xml.validation.Validator;
 
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.ProviderInitializationException;
+import org.drools.RuleBaseConfiguration;
 import org.drools.RuntimeDroolsException;
+import org.drools.base.ClassFieldAccessorStore;
+import org.drools.base.evaluators.TimeIntervalParser;
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderConfiguration;
-import org.drools.builder.KnowledgeBuilderError;
-import org.drools.builder.KnowledgeBuilderErrors;
 import org.drools.builder.KnowledgeBuilderFactory;
-import org.drools.builder.ResourceType;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.builder.impl.KnowledgeBuilderProviderImpl;
 import org.drools.compiler.DrlParser;
+import org.drools.compiler.PackageBuilder;
 import org.drools.compiler.PackageBuilderConfiguration;
 import org.drools.compiler.ReturnValueDescr;
+import org.drools.compiler.TypeDeclarationError;
 import org.drools.definition.KnowledgePackage;
-import org.drools.io.ResourceFactory;
-import org.drools.io.impl.ClassPathResource;
+import org.drools.definitions.impl.KnowledgePackageImp;
+import org.drools.factmodel.ClassDefinition;
+import org.drools.facttemplates.FactTemplate;
+import org.drools.io.InternalResource;
 import org.drools.lang.DroolsSoftKeywords;
 import org.drools.lang.descr.AccessorDescr;
 import org.drools.lang.descr.AccumulateDescr;
@@ -75,7 +76,6 @@
 import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.BehaviorDescr;
 import org.drools.lang.descr.CollectDescr;
-import org.drools.lang.descr.ConditionalElementDescr;
 import org.drools.lang.descr.CutDescr;
 import org.drools.lang.descr.DeclarativeInvokerDescr;
 import org.drools.lang.descr.EntryPointDescr;
@@ -118,257 +118,272 @@
 import org.drools.lang.descr.TypeFieldDescr;
 import org.drools.lang.descr.VariableRestrictionDescr;
 import org.drools.lang.descr.XorDescr;
+import org.drools.rule.Package;
+import org.drools.rule.TypeDeclaration;
+import org.drools.rule.TypeDeclaration.DurationAccessorSetter;
+import org.drools.rule.TypeDeclaration.TimestampAccessorSetter;
+import org.drools.spi.InternalReadAccessor;
 import org.drools.util.ReflectiveVisitor;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
+import org.w3c.dom.Node;
 
-
 /**
- * This utility will take a AST of a rule package, and emit XML.
- * This can be used in porting from DRL to XML.
+ * This utility will take a AST of a rule package, and emit XML. This can be
+ * used in porting from DRL to XML.
+ * 
  * @author <a href="mailto:jayaramcs at gmail.com">Author Jayaram C S</a>
  */
-public class RuleMLDumper extends ReflectiveVisitor
-    implements
-    PackageDescrDumper,
-    DroolsDescrVisitor{
+public class RuleMLDumper extends ReflectiveVisitor implements
+		PackageDescrDumper, DroolsDescrVisitor {
 
-	
+	static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
 
-	static final String JAXP_SCHEMA_LANGUAGE =
-	    "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
+	static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
 
-	static final String W3C_XML_SCHEMA =
-	    "http://www.w3.org/2001/XMLSchema"; 
+	static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
 
-	static final String JAXP_SCHEMA_SOURCE =
-	    "http://java.sun.com/xml/jaxp/properties/schemaSource";
-
 	static final String NAFFOLOGEQ = "naffologeq";
 
-	
-	
-	static final DocumentBuilderFactory naffologeqFactory = DocumentBuilderFactory.newInstance();
-	
-	
+	static final DocumentBuilderFactory naffologeqFactory = DocumentBuilderFactory
+			.newInstance();
+
 	static final Map<String, DocumentBuilderFactory> validators = new HashMap<String, DocumentBuilderFactory>();
-	
-	private DocumentBuilderFactory doxFactory = DocumentBuilderFactory.newInstance();
-		
+
+	private DocumentBuilderFactory doxFactory = DocumentBuilderFactory
+			.newInstance();
+
 	private Document dox;
-	
+
 	private RuleMLContext context;
 	
-//	
-//	
-//	{
-//		validators.put(NAFFOLOGEQ, naffologeqFactory);
-//				
-//		for (String lang : validators.keySet()) {
-//			DocumentBuilderFactory factory = validators.get(lang);
-//			factory.setNamespaceAware(true);
-//			factory.setValidating(true);
-//		
-//			factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
-//			
-//			String resLoc = "org/ruleml/"+lang+".xsd";
-//			URL res;
-//			try {
-//				
-//				res = ((ClassPathResource) ResourceFactory.newClassPathResource(resLoc)).getURL();
-//					File schemaFile = new File(res.getFile());
-//				
-//				factory.setAttribute(JAXP_SCHEMA_SOURCE, schemaFile.toString());
-//				
-//			} catch (IOException e) {				
-//				e.printStackTrace();
-//			} 
-//								
-//			
-//			
-//		}
-//		
-//	}
-//	
-//	
-//	
 	
 	
+	private boolean IMPERFECT = false;
+
+	//	
+	//	
+	// {
+	// validators.put(NAFFOLOGEQ, naffologeqFactory);
+	//				
+	// for (String lang : validators.keySet()) {
+	// DocumentBuilderFactory factory = validators.get(lang);
+	// factory.setNamespaceAware(true);
+	// factory.setValidating(true);
+	//		
+	// factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
+	//			
+	// String resLoc = "org/ruleml/"+lang+".xsd";
+	// URL res;
+	// try {
+	//				
+	// res = ((ClassPathResource)
+	// ResourceFactory.newClassPathResource(resLoc)).getURL();
+	// File schemaFile = new File(res.getFile());
+	//				
+	// factory.setAttribute(JAXP_SCHEMA_SOURCE, schemaFile.toString());
+	//				
+	// } catch (IOException e) {
+	// e.printStackTrace();
+	// }
+	//								
+	//			
+	//			
+	// }
+	//		
+	// }
+	//	
+	//	
+	//	
+
 	public RuleMLDumper() {
 		try {
 
-			doxFactory.setNamespaceAware(true);			
+			doxFactory.setNamespaceAware(true);
 			dox = doxFactory.newDocumentBuilder().newDocument();
 			context = new RuleMLContext();
-			
-												
+
 		} catch (ParserConfigurationException pce) {
 			pce.printStackTrace();
 		} catch (IllegalArgumentException x) {
-			x.printStackTrace(); 			
-		}		
+			x.printStackTrace();
+		}
 	}
-	
-	
-//	public void test() {
-//		
-//		for (String lang : validators.keySet()) {
-//			
-//			DocumentBuilderFactory factory = validators.get(lang);	
-//			
-//									
-//				ByteArrayOutputStream bos = new ByteArrayOutputStream();
-//				format(dox, bos);
-//				ByteArrayInputStream bs = new ByteArrayInputStream(
-//						bos.toByteArray()
-//						);
-//				
-//				try {
-//					
-//					DocumentBuilder dob = factory.newDocumentBuilder();
-//						dob.setErrorHandler(new ErrorHandler () {
-//
-//							public void error(SAXParseException exception)
-//									throws SAXException {
-//								System.err.println("Error");
-//								exception.printStackTrace();
-//								
-//							}
-//
-//							public void fatalError(SAXParseException exception)
-//									throws SAXException {
-//								System.err.println("Fatal Error");
-//								exception.printStackTrace();
-//								
-//							}
-//
-//							public void warning(SAXParseException exception)
-//									throws SAXException {
-//								System.err.println("Warning");
-//								exception.printStackTrace();
-//							}
-//							
-//						});
-//					dob.parse(bs);
-//					System.out.println(lang.toUpperCase()+ "\t\t\t\t true\n");
-//					
-//				} catch (SAXException e) {
-//					
-//					System.out.println(lang.toUpperCase()+ "\t\t\t\t false\n");
-//					System.out.println(e.toString());
-//					
-//				} catch (IOException e) {
-//					// 
-//					System.out.println(e.toString());
-//				} catch (ParserConfigurationException e) {
-//					System.out.println(e.toString());
-//				
-//				}
-//											
-//			  
-//		}
-//		
-//	}
-		
 
-	
-	
-	
-//	public void test2(String schemaId) {
-//		
-//		
-//		String resLoc = "org/ruleml/"+schemaId+".xsd";
-//		URL schemaURL = null;
-//		try {
-//			
-//			schemaURL = ((ClassPathResource) ResourceFactory.newClassPathResource(resLoc)).getURL();						
-//			
-//		} catch (IOException e) {
-//			// 
-//			e.printStackTrace();
-//		}
-//		
+	// public void test() {
+	//		
+	// for (String lang : validators.keySet()) {
+	//			
+	// DocumentBuilderFactory factory = validators.get(lang);
+	//			
+	//									
+	// ByteArrayOutputStream bos = new ByteArrayOutputStream();
+	// format(dox, bos);
+	// ByteArrayInputStream bs = new ByteArrayInputStream(
+	// bos.toByteArray()
+	// );
+	//				
+	// try {
+	//					
+	// DocumentBuilder dob = factory.newDocumentBuilder();
+	// dob.setErrorHandler(new ErrorHandler () {
+	//
+	// public void error(SAXParseException exception)
+	// throws SAXException {
+	// System.err.println("Error");
+	// exception.printStackTrace();
+	//								
+	// }
+	//
+	// public void fatalError(SAXParseException exception)
+	// throws SAXException {
+	// System.err.println("Fatal Error");
+	// exception.printStackTrace();
+	//								
+	// }
+	//
+	// public void warning(SAXParseException exception)
+	// throws SAXException {
+	// System.err.println("Warning");
+	// exception.printStackTrace();
+	// }
+	//							
+	// });
+	// dob.parse(bs);
+	// System.out.println(lang.toUpperCase()+ "\t\t\t\t true\n");
+	//					
+	// } catch (SAXException e) {
+	//					
+	// System.out.println(lang.toUpperCase()+ "\t\t\t\t false\n");
+	// System.out.println(e.toString());
+	//					
+	// } catch (IOException e) {
+	// //
+	// System.out.println(e.toString());
+	// } catch (ParserConfigurationException e) {
+	// System.out.println(e.toString());
+	//				
+	// }
+	//											
+	//			  
+	// }
+	//		
+	// }
+
+	// public void test2(String schemaId) {
+	//		
+	//		
+	// String resLoc = "org/ruleml/"+schemaId+".xsd";
+	// URL schemaURL = null;
+	// try {
+	//			
+	// schemaURL = ((ClassPathResource)
+	// ResourceFactory.newClassPathResource(resLoc)).getURL();
+	//			
+	// } catch (IOException e) {
+	// //
+	// e.printStackTrace();
+	// }
+	//		
+	// ByteArrayOutputStream bos = new ByteArrayOutputStream();
+	// format(dox, bos);
+	// ByteArrayInputStream bs = new ByteArrayInputStream(
+	// bos.toByteArray()
+	// );
+	//		
+	//		
+	// Schema schema = null;
+	// try {
+	// String language = XMLConstants.W3C_XML_SCHEMA_NS_URI;
+	// SchemaFactory factory = SchemaFactory.newInstance(language);
+	// schema = factory.newSchema(schemaURL);
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// }
+	//
+	// try {
+	// Validator validator = schema.newValidator();
+	// SAXSource source = new SAXSource(
+	// new InputSource(bs));
+	//
+	//
+	// validator.validate(source);
+	// System.out.println();
+	// System.out.println("Validation passed.");
+	//
+	// } catch (Exception e) {
+	// // catching all validation exceptions
+	// System.out.println();
+	// System.out.println(e.toString());
+	// }
+	//			  			  			  			    	
+	// }
+
+	public synchronized String dump(InputStream drl, InputStream config) {
+
+		try {
+
+			Properties props = new Properties();
+			if (config != null) {
+				props.load(config);
+				// load evaluators (static)
+			}
+			KnowledgeBuilderConfiguration pbConf = new PackageBuilderConfiguration(
+					props);
+
+			DrlParser parser = new DrlParser();
+			PackageDescr pkD = parser.parse(drl);
+			
+
+			testAndLoadDynamicTypes(pkD,pbConf);
+
+			return dump(pkD);
+
+		} catch (Exception e) {
+			e.printStackTrace();
+			return e.toString();
+		}
+
+	}
+
+	private void testAndLoadDynamicTypes(PackageDescr pkD, KnowledgeBuilderConfiguration knowledgeBuilderConfiguration) {
+		if (pkD.getTypeDeclarations().size() > 0) {
+
+			PackageBuilder pkBuilder = new PackageBuilder((PackageBuilderConfiguration) knowledgeBuilderConfiguration );
+			pkBuilder.addPackage(pkD);
+			List<KnowledgePackage> pkgs = new ArrayList<KnowledgePackage>(1);
+			Package[] pkArray = pkBuilder.getPackages();
+			for (int j = 0; j < pkArray.length; j++)
+				pkgs.add(new KnowledgePackageImp(pkArray[j]));
+
+			final KnowledgeBase kbase = KnowledgeBaseFactory
+					.newKnowledgeBase(new RuleBaseConfiguration());
+			kbase.addKnowledgePackages(pkgs);
+
+			context.setKBase(kbase);
+		}
+	}
+
+	public String dump(PackageDescr packageDescr) {
+		return dump(packageDescr, new PackageBuilderConfiguration() ,"out.ruleml");
+	}
+
+	public synchronized String dump(final PackageDescr packageDescr,
+			KnowledgeBuilderConfiguration knowledgeBuilderConfiguration, String fileName) {
+
+		testAndLoadDynamicTypes(packageDescr,knowledgeBuilderConfiguration);
+
+		this.visitPackageDescr(packageDescr);
+
 //		ByteArrayOutputStream bos = new ByteArrayOutputStream();
 //		format(dox, bos);
-//		ByteArrayInputStream bs = new ByteArrayInputStream(
-//				bos.toByteArray()
-//				);
-//		
-//		
-//		Schema schema = null;
-//	    try {
-//	      String language = XMLConstants.W3C_XML_SCHEMA_NS_URI;
-//	      SchemaFactory factory = SchemaFactory.newInstance(language);
-//	      schema = factory.newSchema(schemaURL);
-//	    } catch (Exception e) {
-//	      e.printStackTrace();
-//	    }
-//
-//	    	try {
-//		     Validator validator = schema.newValidator();			     
-//			 	SAXSource source = new SAXSource(
-//			        new InputSource(bs));
-//
-//
-//			      validator.validate(source);
-//			      System.out.println();
-//			      System.out.println("Validation passed.");
-//
-//			    } catch (Exception e) {
-//			      // catching all validation exceptions
-//			      System.out.println();
-//			      System.out.println(e.toString());
-//			    }
-//			  			  			  			    	
-//	}
 
-    public synchronized String dump(InputStream drl, InputStream config) {
-    	    	    	
-    	try {   
-    		
-    		if (config != null) {
-    			Properties props = new Properties();
-    				props.load(config);    			
-    			KnowledgeBuilderConfiguration conf = new PackageBuilderConfiguration(props);
-    		}
-        		    	        	        	
-    		DrlParser parser = new DrlParser();
-    		PackageDescr pkD = parser.parse(drl);
-    		
-    		    		
-    		return dump(pkD);
-    		
-    	} catch (Exception e) {
-    		e.printStackTrace();
-    		return e.toString();
-    	} 
-    	
-
-    }
-	
-    
-    
-    public String dump(PackageDescr packageDescr) {
-		return dump(packageDescr, "out.ruleml");
-	}
-	
-    public synchronized String dump(final PackageDescr packageDescr, String fileName) {
-    	this.visitPackageDescr(packageDescr);
-    	
-    	
-    	ByteArrayOutputStream bos = new ByteArrayOutputStream();
-    	format(dox,bos);
-    	
-    	FileOutputStream fos;
+		FileOutputStream fos;
 		try {
 			fos = new FileOutputStream(fileName);
-			format(dox,fos);
-	    	fos.flush();
-	    	fos.close();
+			format(dox, fos);
+			fos.flush();
+			fos.close();
 		} catch (FileNotFoundException e) {
 			// 
 			e.printStackTrace();
@@ -376,896 +391,900 @@
 			// 
 			e.printStackTrace();
 		}
-    	
-    	
-    	String xml = bos.toString();
-    	
-    	return xml;
-    }
 
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    public void visitAndDescr(final AndDescr descr) {
-    	Element and = dox.createElement("And");
-    	
-    	if (descr.getLabel() != null && ! descr.getLabel().equals("")) 
-    		attachId(and,descr.getLabel(),false);
-    	
-    	if (descr.getParams() != null && ! descr.getParams().equals("")) {
-    		and.setAttribute("kind", descr.getParams());
-    	}
-    		
-    	//At pattern level, a field binding is always ALSO followed by its Restriction
-    	//So we have to work around this...
-    	visitChildrenExcludeDuplicates(and, descr.getDescrs());
-    	
-    	
-        context.getCurrentElement().appendChild(and);
-    }
+//		String xml = bos.toString();
 
-    
-    
+//		return xml;
+		return format(dox);
+	}
+	
+	
+	
+	private void decorateWithAttribs(Element elem, BaseDescr descr) {
+		if (descr.getLabel() != null)
+			attachId(elem,descr.getLabel(),false);
+		
+		if (descr.isCutter()) {
+			if (IMPERFECT) {
+				elem.setAttribute("cut","true");
+			} else {
+				Element cut = dox.createElement("cut");										
+				elem.appendChild(dox.createComment("unsupported attribute - "+format(cut)));
+			}
+		}
+		
+		String kindS = descr.getParams();	
+			if (kindS != null) {					
+				if (IMPERFECT) {
+					elem.setAttribute("kind",kindS);
+				} else {
+					Element kind = dox.createElement("kind");				
+					kind.setTextContent(kindS);			
+					elem.appendChild(dox.createComment("unsupported attribute - "+format(kind)));
+				}
+			}
+									
+		String priorS = descr.getPrior();
+			if (priorS != null) {
+				Element degree = dox.createElement("degree");
+					Element data = dox.createElement("Data");
+						data.setTextContent(priorS);
+						degree.appendChild(data);
+				if (IMPERFECT) {
+					elem.appendChild(degree);
+				} else {
+					elem.appendChild(dox.createComment(format(degree)));
+				}
+			}
+	}
+	
 
+	public void visitAndDescr(final AndDescr descr) {
+		Element and = dox.createElement("And");
+			decorateWithAttribs(and,descr);
 
+//		if (descr.getLabel() != null && !descr.getLabel().equals(""))
+//			attachId(and, descr.getLabel(), false);
+//
+//		if (descr.getParams() != null && !descr.getParams().equals("")) {
+//			and.setAttribute("kind", descr.getParams());
+//		}
+
+		// At pattern level, a field binding is always ALSO followed by its
+		// Restriction
+		// So we have to work around this...
+
+		visitChildrenExcludeDuplicates(and, checkListType(descr.getDescrs()));
+
+		context.getCurrentElement().appendChild(and);
+	}
+
+	@SuppressWarnings("unchecked")
+	private List<? extends BaseDescr> checkListType(List descrs) {
+		return descrs;
+	}
+
 	public void visitAttributeDescr(final AttributeDescr attributeDescr) {
-		//TODO
+		// TODO
 		throw new UnsupportedOperationException();
-    }
+	}
 
-    public void visitVariableRestrictionDescr(final VariableRestrictionDescr descr) {
-    	Element prevElem = context.getCurrentElement();
-		 
-		 visitEvaluatorBasedRestrictionDescr(descr);
-		 
-		 Element atom = context.setCurrentElement(prevElem);	// set by visitEBRD
-		 
-		 
-		 buildAccessorPathExpression(atom,descr.getText());
-	  		
-		 if (descr.isNegated()) {
-	  			Element neg = dox.createElement("Neg");
-	  				neg.appendChild(atom);
-	  			context.getCurrentElement().appendChild(neg);
-	  		} else {
-	  			context.getCurrentElement().appendChild(atom);
-	  		}
-		 
-    }
+	public void visitVariableRestrictionDescr(
+			final VariableRestrictionDescr descr) {
+		Element prevElem = context.getCurrentElement();
 
-    
-    public void visitPatternDescr(final PatternDescr descr) {
-    	
-    	context.setClassType(descr.getObjectType());
-    	
-    	String varName = "";
-    	if (descr.getIdentifier() != null) {
-    		varName = context.getRuleName()+"."+descr.getIdentifier();
-    	} else {
-    		varName = context.getRuleName()+"."+context.getClassType();
-    	}
-    		    	    	
-    	context.setCurrentObjectVariable(varName);
-    	
-    	Element atom = dox.createElement("Atom");
+		visitEvaluatorBasedRestrictionDescr(descr);
 
-    		if (descr.getLabel() != null)
-    			attachId(atom, descr.getLabel(),false);
-    	
-    		Element pattern = dox.createElement("Rel");
-    			pattern.setTextContent(descr.getObjectType());    			
-    		atom.appendChild(pattern);		
-    			
-    		
-    		BaseDescr mainArg = (BaseDescr) descr.getConstraint();
-  		    	    		    		    		    			    			    		    
-    			Element var = dox.createElement("Var");
-    			var.setTextContent(context.getCurrentObjectVariable());
-    			
-    			Element varDefinition = dox.createElement("Reify");
-    				visitChild(varDefinition,mainArg);
-//    			
-    			Element eq = buildEquality(context.getCurrentObjectVariable(),varDefinition,true);
-    			
-    			atom.appendChild(eq);
-//    			context.addVariableDefinition(context.getCurrentObjectVariable(), 
-//    							;
-    			
-        context.getCurrentElement().appendChild(atom);
-    }
-    
-    private Element buildEquality(String varName, Element expression, boolean oriented) {
-		Element equals = dox.createElement("Equals");
-			equals.setAttribute("oriented", oriented ? "yes" : "no" );
+		Element atom = context.setCurrentElement(prevElem); // set by visitEBRD
+
+		buildAccessorPathExpression(atom, descr.getText());
+
+		if (descr.isNegated()) {
+			Element neg = dox.createElement("Neg");
+			neg.appendChild(atom);
+			context.getCurrentElement().appendChild(neg);
+		} else {
+			context.getCurrentElement().appendChild(atom);
+		}
+
+	}
+
+	public void visitPatternDescr(final PatternDescr descr) {
+
+		context.setClassType(descr.getObjectType());
+
+		String varName = "";
+		if (descr.getIdentifier() != null) {
+			varName = context.getRuleName() + "." + descr.getIdentifier();
+		} else {
+			varName = context.getRuleName() + "." + context.getClassType();
+		}
+
+		varName = context.trySetCurrentObjectVariable(varName);
+		// getter, so it is validated
+		// context.addVariable(varName, "");
+
+		Element atom = dox.createElement("Atom");
+		attachId(atom, context.getCurrentObjectVariable(), true);
+
+		Element pattern = dox.createElement("Rel");
+		pattern.setTextContent(descr.getObjectType());
+		atom.appendChild(pattern);
+
+		Element patternDefinition = dox.createElement("Reify");
+		FieldConstraintDescr typeDescr = new FieldConstraintDescr("class");
+		LiteralRestrictionDescr classRestr = new LiteralRestrictionDescr("isA", false, "",
+				context.getMappedClass(descr.getObjectType()), LiteralRestrictionDescr.TYPE_CLASS);
+			classRestr = (LiteralRestrictionDescr) inheritDecorations(classRestr, descr);
+		typeDescr.addRestriction(classRestr);
 			
-			Element lhs = dox.createElement("lhs");
-				Element var = dox.createElement("Var");
-					var.setTextContent(varName);
-				lhs.appendChild(var);
-		
-			Element rhs = dox.createElement("rhs");
-			if (expression.getNodeName().equals("Atom")) {
-				
-				Element reify = dox.createElement("Reify");			
-					reify.appendChild(expression);										
-				rhs.appendChild(reify);
-				
-			} else if (expression.getNodeName().equals("Expr")) {
-				
-				rhs.appendChild(expression);
-				
-			} else if (expression.getNodeName().equals("Reify")) {
-				
-				rhs.appendChild(expression);
-				
-			} else if (expression.getNodeName().equals("slot")) {
-				
-				Element slot = expression;
-				Element field = (Element) slot.getChildNodes().item(0);
-				Element obj = (Element) slot.getChildNodes().item(1);
-								
-				Element expr = buildGetterExpression(field.getTextContent() , obj.getTextContent());
-//
-				rhs.appendChild(expr);
-				
-			} else {
-				throw new UnsupportedOperationException(expression.getNodeName());
-			}
-			
-			equals.appendChild(lhs);
-			equals.appendChild(rhs);		
-		return equals;
+		descr.getConstraint().addDescrFirst(typeDescr);
+
+		visitChild(patternDefinition, (BaseDescr) descr.getConstraint());
+		atom.appendChild(patternDefinition);
+
+		context.getCurrentElement().appendChild(atom);
 	}
 
-    
-    
-    private Element buildGetterExpression(String fldName, String var) {
-    	Element expr = dox.createElement("Expr");
+	private Element buildGetterExpression(String fldName, String var) {
+		Element expr = dox.createElement("Expr");
 		expr.setAttribute("in", "yes");
-			Element functor = dox.createElement("Fun");			
-				functor.setTextContent("get"+ fldName.substring(0,1).toUpperCase()+ fldName.substring(1));
-			attachAsOp(expr,functor);
-	
-			Element varArg = dox.createElement("Var");
-				varArg.setTextContent(var);
-			expr.appendChild(varArg);
-		
+		Element functor = dox.createElement("Fun");
+		functor.setTextContent("get" + fldName.substring(0, 1).toUpperCase()
+				+ fldName.substring(1));
+		attachAsOp(expr, functor);
+
+		Element varArg = dox.createElement("Var");
+		varArg.setTextContent(var);
+		expr.appendChild(varArg);
+
 		return expr;
-    }
+	}
 
-	private void attachAsOp(Element atom) {
-    	Element op = dox.createElement("op");
-    		op.appendChild(atom);    		
-    	context.getCurrentElement().appendChild(op);
-    }
-	
-	private void attachAsOp(Element atom, Element rel) {
-    	Element op = dox.createElement("op");
-    		op.appendChild(rel);    		
-    	atom.appendChild(op);
-    }
+	private void attachAsOp(Element father, Element child) {
+		Element op = dox.createElement("op");
+		op.appendChild(child);
+		father.appendChild(op);
+	}
 
-	  
-	  public void visitFieldBindingDescr(final FieldBindingDescr descr) {
-		  
-		  String varName = context.currentObjectVariable+"."+descr.getIdentifier();
-		  		  	
-		  	context.setCurrentFieldVariable(varName);
-		  	context.setCurrentField(descr.getFieldConstraint().getFieldName());
-		  //bypass the fieldConstraint as it would redefine the variable name
-		  	List<BaseDescr> list = descr.getFieldConstraint().getRestrictions();
-		  	if (list.size() > 0) {
-		  		visitChildren(context.getCurrentElement(), list);
-		  	} else {
-		  		Element atom = dox.createElement("Atom");
-		  			Element var = dox.createElement("Var");
-		  				var.setTextContent(context.getCurrentFieldVariable());
-		  			atom.appendChild(var);
-		  		
-		  		context.getCurrentElement().appendChild(atom);
-		  		
-	  	    	Element expr = buildGetterExpression(context.getCurrentField(),context.getCurrentObjectVariable());		  			  	    		  	    		  
-		  		context.addVariableDefinition(context.getCurrentFieldVariable(), buildEquality(varName, expr,true));
-		  		// Simple declaration binding
-		  	}
-		  
-	  }
-	  
-	  public void visitFieldConstraintDescr(FieldConstraintDescr descr) {
-		  context.setCurrentField(descr.getFieldName());
-		  context.setCurrentFieldVariable(null);
-		  			  		  
-		  	//visitChildren(context.getCurrentElement(),descr.getRestrictions());
-		  	List<BaseDescr> list = descr.getRestrictions();
-		  	if (list.size() > 0) {
-		  		visitChildren(context.getCurrentElement(), list);
-		  	} else {		  		
-		  		// Empty field restriction, nothing to do
-		  		throw new RuntimeDroolsException("Error: impossible to find an useless field constraint " + descr.toString());
-		  	}  			  			  			  
-		  
-	  }
-	  
-//
-    public void visitCollectDescr(final CollectDescr descr) {
-    	System.err.println("RuleML does not support COLLECT construct");
-    }
-//
-    public void visitAccumulateDescr(final AccumulateDescr descr) {
-    	System.err.println("RuleML does not support ACCUMULATE construct");
-    }
-//
-    public void visitFromDescr(final FromDescr descr) {
-    	System.err.println("RuleML does not support FROM construct");
-    }
-//
-    public void visitForallDescr(final ForallDescr descr) {
-    	//TODO
-    	throw new UnsupportedOperationException();
-    }
-    
+	public void visitFieldBindingDescr(final FieldBindingDescr descr) {
 
-    public void visitEvalDescr(final EvalDescr descr) {
-    	Element atom = dox.createElement("Atom");    
-			Element eval = dox.createElement("Rel");
-				eval.setTextContent("eval");
-			attachAsOp(atom, eval);
+		String varName = context.currentObjectVariable + "."
+				+ descr.getIdentifier();
+
+		context.setCurrentField(descr.getFieldConstraint().getFieldName());
+		context.trySetCurrentFieldVariable(varName);
+
+		// bypass the fieldConstraint
+		List<? extends BaseDescr> list = checkListType(descr
+				.getFieldConstraint().getRestrictions());
 			
-			Element expr = dox.createElement("Expr");
-				expr.setAttribute("in","yes");
-					Element fun = dox.createElement("Fun");
-						fun.setTextContent("eval");
-					Element data = dox.createElement("Data");
-						data.setTextContent(descr.getContent().toString());
-				expr.appendChild(fun);
-				expr.appendChild(data);
-			atom.appendChild(expr);    			
-    	context.getCurrentElement().appendChild(atom);
-    }
-//
-    public void visitExistsDescr(final ExistsDescr descr) {
-    	//TODO
-    	throw new UnsupportedOperationException();
-    }
-//
-  
-    public void visitFunctionDescr(final FunctionDescr functionDescr) {
-    	//TODO
-    	throw new UnsupportedOperationException();
-    }
-//
-    
-    
-    
-    	
-    
-    
-    public void visitLiteralRestrictionDescr(final LiteralRestrictionDescr descr) {
-    	
-		 Element prevElem = context.getCurrentElement();
-		 
-		 visitEvaluatorBasedRestrictionDescr(descr);
-		 
-		 Element atom = context.setCurrentElement(prevElem);	// set by visitEBRD
-		 		 
-		  	if (descr.getValue() != null) {
-		  		Element data = dox.createElement("Data");
-		  			data.setTextContent(descr.getValue().toString());
-		  			data.setAttribute("xsi:type",mapType(descr.getType()));
-		  			atom.appendChild(data);
-		  	}
-		  	
-		  	
-		  	if (descr.isNegated()) {
-	  			Element neg = dox.createElement("Neg");
-	  				neg.appendChild(atom);
-	  			context.getCurrentElement().appendChild(neg);
-	  		} else {
-	  			context.getCurrentElement().appendChild(atom);
-	  		}		  		  	  			  			  			  			  	
-    }
-    
-    
-    private String mapType(int type) {
-    	switch (type) {
-    		case LiteralRestrictionDescr.TYPE_BOOLEAN : return "xs:boolean";
-    		case LiteralRestrictionDescr.TYPE_NUMBER : return "xs:decimal";
-    		case LiteralRestrictionDescr.TYPE_STRING : return "xs:string";
-    		case LiteralRestrictionDescr.TYPE_NULL : throw new RuntimeException("Found literal of type null");
-    		default : throw new RuntimeException("Found literal of type unknown " + type);
-    	}
-    }
+//			for (BaseDescr d : list) {
+//				inheritDecorations(d,descr);
+//			}
+		
+		if (list.size() > 0) {
+			visitChildren(context.getCurrentElement(), list);
+		} else {
+			// Unconstrained field binding		Object( $var : field )
+			Element atom = dox.createElement("Atom");
+				decorateWithAttribs(atom,descr);
+			Element rel = dox.createElement("Rel");
+			attachAsOp(atom, rel);
 
+			Element slot = dox.createElement("slot");
+			Element field = dox.createElement("Ind");
+			field.setTextContent(context.getCurrentField());
+			slot.appendChild(field);
 
-//
-    public void visitQualifiedIdentifierRestrictionDescr(final QualifiedIdentifierRestrictionDescr descr) {
-    	
-    	Element prevElem = context.getCurrentElement();
-		 
-		 visitEvaluatorBasedRestrictionDescr(descr);
-		 
-		 Element atom = context.setCurrentElement(prevElem);	// set by visitEBRD
-		 
-//    	Element atom = dox.createElement("Atom");
-//    	
-//    	Element rel = dox.createElement("Rel");
-//  			rel.setTextContent(descr.getEvaluator());
-//  		attachAsOp(atom,rel);	
-//  	
-//  		
-//  		Element slot = dox.createElement("slot");
-//  		Element field = dox.createElement("Ind");
-//  			field.setTextContent(context.getCurrentField());		  		
-//  			slot.appendChild(field);
-//  	
-//  		Element value = dox.createElement("Var");		  		
-//  			value.setTextContent(context.getCurrentObjectVariable());
-//  		slot.appendChild(value);
-//  		
-//  		String varField = context.getCurrentFieldVariable();
-//  		if (varField == null) {
-//  				  				  			
-//  			atom.appendChild(slot);
-//  			
-//  		} else {
-//  			context.addVariableDefinition(varField, buildEquality(varField, slot));
-//  			
-//  			Element var = dox.createElement("Var");
-//  				var.setTextContent(varField);
-//  			atom.appendChild(var);
-//  		}
-	  
-  		buildAccessorPathExpression(atom,descr.getText());
-  		
-  		if (descr.isNegated()) {
-  			Element neg = dox.createElement("Neg");
-  				neg.appendChild(atom);
-  			context.getCurrentElement().appendChild(neg);
-  		} else {
-  			context.getCurrentElement().appendChild(atom);
-  		}
-    }
-    
-    
-    private void buildAccessorPathExpression(Element atom, String text) {
+			Element value = dox.createElement("Var");
+			value.setTextContent(context.getCurrentFieldVariable());
+			slot.appendChild(value);
+
+			atom.appendChild(slot);
+
+			context.getCurrentElement().appendChild(atom);
+		}
+
+	}
+
+	private BaseDescr inheritDecorations(BaseDescr target, BaseDescr source) {
+		// TODO Auto-generated method stub
+		target.setLabel(source.getLabel());
+		target.setCutter(source.isCutter());
+		target.setParams(source.getParams());
+		//@TODO @FIXME
+		target.setPrior(source.getPrior());
 		
-    	LinkedList<String> steps = new LinkedList<String>();
-		StringTokenizer tok = new StringTokenizer(text,".");
-    		while (tok.hasMoreTokens())
-    			steps.addFirst(tok.nextToken());
-    		
-    	String root = steps.getLast();
-    	String candidateVar = context.contextualizeVar(root);
+		return target;
+	}
+
+	public void visitFieldConstraintDescr(FieldConstraintDescr descr) {
+
+		context.setCurrentField(descr.getFieldName());
+		context.trySetCurrentFieldVariable(null);
+
+		List<? extends BaseDescr> list = checkListType(descr.getRestrictions());
+//		for (BaseDescr d : list) {
+//			inheritDecorations(d,descr);
+//		}
 		
-		if ( root.equals("this") ) {
-			//this is replaced by the current object variable
+		if (list.size() > 0) {
+			visitChildren(context.getCurrentElement(), list);
+		} else {
+			// Empty field restriction, nothing to do
+			throw new RuntimeDroolsException(
+					"Error: impossible to find an useless field constraint "
+							+ descr.toString());
+		}
+
+	}
+
+	//
+	public void visitCollectDescr(final CollectDescr descr) {
+		System.err.println("RuleML does not support COLLECT construct");
+	}
+
+	//
+	public void visitAccumulateDescr(final AccumulateDescr descr) {
+		System.err.println("RuleML does not support ACCUMULATE construct");
+	}
+
+	//
+	public void visitFromDescr(final FromDescr descr) {
+		System.err.println("RuleML does not support FROM construct");
+	}
+
+	//
+	public void visitForallDescr(final ForallDescr descr) {
+		// TODO
+		throw new UnsupportedOperationException();
+	}
+
+	public void visitEvalDescr(final EvalDescr descr) {
+		Element atom = dox.createElement("Atom");
+			decorateWithAttribs(atom,descr);
+		
+		Element eval = dox.createElement("Rel");
+		eval.setTextContent("eval");
+		attachAsOp(atom, eval);
+
+		Element expr = dox.createElement("Expr");
+		expr.setAttribute("in", "yes");
+		Element fun = dox.createElement("Fun");
+		fun.setTextContent("eval");
+		Element data = dox.createElement("Data");
+		data.setTextContent(descr.getContent().toString());
+		expr.appendChild(fun);
+		expr.appendChild(data);
+		atom.appendChild(expr);
+		context.getCurrentElement().appendChild(atom);
+	}
+
+	//
+	public void visitExistsDescr(final ExistsDescr descr) {
+		// TODO
+		throw new UnsupportedOperationException();
+	}
+
+	//
+
+	public void visitFunctionDescr(final FunctionDescr functionDescr) {
+		// TODO
+		throw new UnsupportedOperationException();
+	}
+
+	//
+
+	public void visitLiteralRestrictionDescr(final LiteralRestrictionDescr descr) {
+
+		Element prevElem = context.getCurrentElement();
+
+		visitEvaluatorBasedRestrictionDescr(descr);
+
+		Element atom = context.setCurrentElement(prevElem); // set by visitEBRD
+
+		if (descr.getValue() != null) {
+			Element data = dox.createElement("Ind");
+			data.setTextContent(descr.getValue().toString());
+			data.setAttribute("type", reflectType(descr.getType()));
+			atom.appendChild(data);
+		}
+
+		if (descr.isNegated()) {
+			Element neg = dox.createElement("Neg");
+			neg.appendChild(atom);
+			context.getCurrentElement().appendChild(neg);
+		} else {
+			context.getCurrentElement().appendChild(atom);
+		}
+	}
+
+	private String reflectType(int type) {
+		switch (type) {
+		case LiteralRestrictionDescr.TYPE_BOOLEAN:
+			return Boolean.class.getName();
+		case LiteralRestrictionDescr.TYPE_NUMBER:
+			return Number.class.getName();
+		case LiteralRestrictionDescr.TYPE_STRING:
+			return String.class.getName();
+		case LiteralRestrictionDescr.TYPE_OBJECT:
+			return Object.class.getName();
+		case LiteralRestrictionDescr.TYPE_CLASS:
+			return Class.class.getName();
+		case LiteralRestrictionDescr.TYPE_NULL:
+			throw new RuntimeException("Found literal of type null");
+		default:
+			throw new RuntimeException("Found literal of type unknown " + type);
+		}
+	}
+
+	//
+	public void visitQualifiedIdentifierRestrictionDescr(
+			final QualifiedIdentifierRestrictionDescr descr) {
+
+		Element prevElem = context.getCurrentElement();
+
+		visitEvaluatorBasedRestrictionDescr(descr);
+
+		Element atom = context.setCurrentElement(prevElem); // set by visitEBRD
+
+		// Element atom = dox.createElement("Atom");
+		//    	
+		// Element rel = dox.createElement("Rel");
+		// rel.setTextContent(descr.getEvaluator());
+		// attachAsOp(atom,rel);
+		//  	
+		//  		
+		// Element slot = dox.createElement("slot");
+		// Element field = dox.createElement("Ind");
+		// field.setTextContent(context.getCurrentField());
+		// slot.appendChild(field);
+		//  	
+		// Element value = dox.createElement("Var");
+		// value.setTextContent(context.getCurrentObjectVariable());
+		// slot.appendChild(value);
+		//  		
+		// String varField = context.getCurrentFieldVariable();
+		// if (varField == null) {
+		//  				  				  			
+		// atom.appendChild(slot);
+		//  			
+		// } else {
+		// context.addVariableDefinition(varField, buildEquality(varField,
+		// slot));
+		//  			
+		// Element var = dox.createElement("Var");
+		// var.setTextContent(varField);
+		// atom.appendChild(var);
+		// }
+
+		buildAccessorPathExpression(atom, descr.getText());
+
+		if (descr.isNegated()) {
+			Element neg = dox.createElement("Neg");
+			neg.appendChild(atom);
+			context.getCurrentElement().appendChild(neg);
+		} else {
+			context.getCurrentElement().appendChild(atom);
+		}
+	}
+
+	private void buildAccessorPathExpression(Element atom, String text) {
+
+		LinkedList<String> steps = new LinkedList<String>();
+		StringTokenizer tok = new StringTokenizer(text, ".");
+		while (tok.hasMoreTokens())
+			steps.addFirst(tok.nextToken());
+
+		String root = steps.getLast();
+		String candidateVar = context.contextualizeVar(root);
+
+		if (root.equals("this")) {
+			// this is replaced by the current object variable
 			steps.removeLast();
 			steps.addLast(context.getCurrentObjectVariable());
-		} else if (! context.isVariable(candidateVar)) {
-			//supposed to be an implicit "this"
+		} else if (!context.isVariable(candidateVar)) {
+			// supposed to be an implicit "this"
 			steps.addLast(context.getCurrentObjectVariable());
 		} else {
-			//must be a known variable
+			// must be a known variable
 			steps.removeLast();
 			steps.addLast(candidateVar);
 		}
-		    	    	
-    		
+
 		Element expr = walkPath(steps);
-    		
+
 		atom.appendChild(expr);
 	}
-    
-    private Element walkPath(LinkedList<String> steps) {
-    	String source = steps.removeFirst();
-    	
-    	Element ans = null;
-    	
-    	if (steps.size() > 0) {
-    		//there are more steps, so this is a getter
-    		Element expr = dox.createElement("Expr");
-    			Element fun = dox.createElement("Fun");
-    				source = "get" + source.substring(0,1).toUpperCase() + source.substring(1);
-    				fun.setTextContent(source);
-    			expr.appendChild(fun);	
-    			
-    			expr.appendChild(walkPath(steps));
-    			
-    		ans = expr;	
- 
-    	} else { 
-    		
-    		ans = dox.createElement("Var");
-    			ans.setTextContent(source);
-    		//will do the normalization earlier
-    		
-    	}
-    			    		
-    	return ans;
-    }
 
+	private Element walkPath(LinkedList<String> steps) {
+		String source = steps.removeFirst();
 
+		Element ans = null;
+
+		if (steps.size() > 0) {
+			// there are more steps, so this is a getter
+			Element expr = dox.createElement("Expr");
+			Element fun = dox.createElement("Fun");
+			source = "get" + source.substring(0, 1).toUpperCase()
+					+ source.substring(1);
+			fun.setTextContent(source);
+			expr.appendChild(fun);
+
+			expr.appendChild(walkPath(steps));
+
+			ans = expr;
+
+		} else {
+
+			ans = dox.createElement("Var");
+			ans.setTextContent(source);
+			// will do the normalization earlier
+
+		}
+
+		return ans;
+	}
+
 	//
-    public void visitNotDescr(final NotDescr descr) {
-    	    	
-    	Element neg = dox.createElement("Neg");
-    	    		    
-    		visitChildren(neg,descr.getDescrs());
-    		    	
-    	context.getCurrentElement().appendChild(neg);
-    }
+	public void visitNotDescr(final NotDescr descr) {
 
-    
-    
-    
-    
-    
-    
-    public void visitOrDescr(final OrDescr descr) {
-    	Element or = dox.createElement("Or");
-    	
-    	if (descr.getLabel() != null && ! descr.getLabel().equals("")) 
-    		attachId(or,descr.getLabel(),false);
-    	
-     	if (descr.getParams() != null && ! descr.getParams().equals("")) {
-    		or.setAttribute("kind", descr.getParams());
-    	}
-   
-    	
-    	visitChildren(or, descr.getDescrs());
-    	
-        context.getCurrentElement().appendChild(or);
-    }
+		Element neg = dox.createElement("Neg");
+			decorateWithAttribs(neg,descr);
 
-    
-    private Element newLem(String name) {
-    	return dox.createElement(name);
-    }
-    
-    public void visitPackageDescr(final PackageDescr packageDescr) {
-    	    	
-    	Element root = dox.createElement("RuleML");
-    		root.setAttribute("xmlns","http://www.ruleml.org/0.91/xsd");
-    		root.setAttribute("xmlns:xs","http://www.w3.org/2001/XMLSchema");
-    		root.setAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
-    		root.setAttribute("xsi:schemaLocation","http://www.ruleml.org/0.91/xsd http://www.ruleml.org/0.91/xsd/naffologeq.xsd");    	    		
-    		
-   	
-    		
-    	//Assert rules in a package
-    	Element elassert = newLem("Assert");
-    			Element ruleBase = newLem("Rulebase");
-    		
-    				attachId(ruleBase, packageDescr.getName(), false);
-    	
-//    		visitChildren(elassert,packageDescr.getAttributes());
-//    		visitChildren(elassert,packageDescr.getFactTemplates());
-//    		visitChildren(elassert,packageDescr.getFunctionImports());
-//    		visitChildren(elassert,packageDescr.getFunctions());
-//    		visitChildren(elassert,packageDescr.getGlobals());
-//    		visitChildren(elassert,packageDescr.getImports());
-//    		visitChildren(elassert,packageDescr.getTypeDeclarations());
-    		visitChildren(ruleBase,packageDescr.getRules());
-    		
-//    	
-    		
-    		
-//    	for (String varId : context.getVariables())
-//    		rulebase.appendChild(context.getVariable(varId));
-    		
-    			elassert.appendChild(ruleBase);
-    	root.appendChild(elassert);
-    	dox.appendChild(root);
-    }
+		visitChildren(neg, checkListType(descr.getDescrs()));
 
-    public void visitPredicateDescr(final PredicateDescr descr) {
-    	//TODO
-    	throw new UnsupportedOperationException();
-    }
+		context.getCurrentElement().appendChild(neg);
+	}
 
-    
-    public void visitRestrictionConnectiveDescr(final RestrictionConnectiveDescr descr) {
-    	Element atom = dox.createElement("Atom");
-    	Element reify = dox.createElement("Reify");
-    		Element connective = null;
-    			if (descr.getConnective() == RestrictionConnectiveDescr.AND)
-    				connective = dox.createElement("And");
-    			else if (descr.getConnective() == RestrictionConnectiveDescr.OR)
-    				connective = dox.createElement("Or");
-    			else throw new UnsupportedOperationException("Found unknown connective "+descr.getConnective());
-    		visitChildren(connective, descr.getRestrictions());
-    	    	    			
-    	reify.appendChild(connective);
-    	atom.appendChild(reify);
-    	context.getCurrentElement().appendChild(atom);
-    }
-    
-    public void visitReturnValueRestrictionDescr(final ReturnValueRestrictionDescr descr) {
-    	//TODO
-    	throw new UnsupportedOperationException();
-    }
-    
-    public void visitRuleDescr(final RuleDescr descr) {
-    	
-    	context.setRuleName(descr.getName());
-    	    	
-    	String priorS = null;
-    	String modeS = null;
-    	String kindS = null;
-    	
-    	AttributeDescr prior = descr.getAttributes().get(DroolsSoftKeywords.PRIOR);
-    		if (prior != null)
-    			priorS = prior.getValue();
-    		
-    	AttributeDescr mode = descr.getAttributes().get(DroolsSoftKeywords.ENTAIL);
-    		if (mode != null)
-    			modeS = mode.getValue();
-    		
-    	AttributeDescr kind = descr.getAttributes().get(DroolsSoftKeywords.TYPE);
-    		if (kind != null)
-    			kindS = mode.getValue();	
-    			    	        	    	
-    	Element arrow = null;    	    
-    	if (modeS != null && modeS.equalsIgnoreCase("equivalence")) {
-    		arrow = newLem("Equivalent");    		
-    	} else {
-    		arrow = newLem("Implies");
-    	}
-//    	    	
-    	arrow.setAttribute("direction", "forward");
-    	if (kindS != null)
-    		arrow.setAttribute("kind", kindS);
-//    	
-    	attachId(arrow,descr.getName(),false);
-	
-    	if (priorS != null) {
-    		Element degree = dox.createElement("Degree");
-    			Element data = dox.createElement("Data");
-    				data.setTextContent(priorS);
-    			degree.appendChild(data);
-    		arrow.appendChild(degree);
-    	}
-//    	
-//    	
-//    	
-    	Element body = dox.createElement("body");
-    		visitChild(body,descr.getLhs());
-    	arrow.appendChild(body);	
-    	
-    	Element head = dox.createElement("head");
-			Element atom = dox.createElement("Atom");
-				atom.appendChild(dox.createElement("Rel"));
-				Element cons = dox.createElement("Data");
-					cons.setTextContent(descr.getConsequence().toString());
-				atom.appendChild(cons);
-			head.appendChild(atom);
-    	arrow.appendChild(head);
-//    
-    	context.getCurrentElement().appendChild(arrow);
-    	
-    	
-    }
+	public void visitOrDescr(final OrDescr descr) {
+		Element or = dox.createElement("Or");
+			decorateWithAttribs(or,descr);
 
-    public void visitQueryDescr(final QueryDescr descr) {
-    	//TODO
-    	throw new UnsupportedOperationException();
-    }
+//		if (descr.getLabel() != null && !descr.getLabel().equals(""))
+//			attachId(or, descr.getLabel(), false);
+//
+//		if (descr.getParams() != null && !descr.getParams().equals("")) {
+//			or.setAttribute("kind", descr.getParams());
+//		}
 
-    
-    
-    public void format(Document dox, OutputStream out) {
-    	    	    	
-    	try {
+		visitChildren(or, checkListType(descr.getDescrs()));
 
+		context.getCurrentElement().appendChild(or);
+	}
+
+	public void visitPackageDescr(final PackageDescr packageDescr) {
+
+		context.setPackageName(packageDescr.getName());
+
+		Element root = dox.createElement("RuleML");
+		root.setAttribute("xmlns", "http://www.ruleml.org/0.91/xsd");
+		root.setAttribute("xmlns:xs", "http://www.w3.org/2001/XMLSchema");
+		root.setAttribute("xmlns:xsi",
+				"http://www.w3.org/2001/XMLSchema-instance");
+		root
+				.setAttribute("xsi:schemaLocation",
+						"http://www.ruleml.org/0.91/xsd http://www.ruleml.org/0.91/xsd/naffologeq.xsd");
+
+		attachId(root,"org.drools.DRL",false);
+		
+		// Assert rules in a package
+		Element elassert = dox.createElement("Assert");
+		Element ruleBase = dox.createElement("Rulebase");
+
+		attachId(ruleBase, packageDescr.getName(), false);
+
+		// visitChildren(elassert,packageDescr.getAttributes());
+		// visitChildren(elassert,packageDescr.getFactTemplates());
+		// visitChildren(elassert,packageDescr.getFunctionImports());
+		// visitChildren(elassert,packageDescr.getFunctions());
+		// visitChildren(elassert,packageDescr.getGlobals());
+		visitChildren(elassert, packageDescr.getImports());
+		visitChildren(elassert, packageDescr.getTypeDeclarations());
+		visitChildren(ruleBase, packageDescr.getRules());
+
+		elassert.appendChild(ruleBase);
+		root.appendChild(elassert);
+		dox.appendChild(root);
+	}
+
+	public void visitPredicateDescr(final PredicateDescr descr) {
+		// TODO
+		throw new UnsupportedOperationException();
+	}
+
+	public void visitRestrictionConnectiveDescr(
+			final RestrictionConnectiveDescr descr) {
+		//Element atom = dox.createElement("Atom");
+		//Element reify = dox.createElement("Reify");
+		Element connective = null;
+		if (descr.getConnective() == RestrictionConnectiveDescr.AND)
+			connective = dox.createElement("And");
+		else if (descr.getConnective() == RestrictionConnectiveDescr.OR)
+			connective = dox.createElement("Or");
+		else
+			throw new UnsupportedOperationException("Found unknown connective "
+					+ descr.getConnective());
+		
+		decorateWithAttribs(connective,descr);
+		
+		visitChildren(connective, descr.getRestrictions());
+
+		//reify.appendChild(connective);
+		//atom.appendChild(reify);
+		//context.getCurrentElement().appendChild(atom);
+		context.getCurrentElement().appendChild(connective);
+	}
+
+	public void visitReturnValueRestrictionDescr(
+			final ReturnValueRestrictionDescr descr) {
+		// TODO
+		throw new UnsupportedOperationException();
+	}
+
+	public void visitRuleDescr(final RuleDescr descr) {
+
+		context.setRuleName(descr.getName());
+
+		String priorS = null;
+		String modeS = null;
+		String kindS = null;
+
+		AttributeDescr priorA = descr.getAttributes().get(
+				DroolsSoftKeywords.PRIOR);
+		if (priorA != null)
+			priorS = priorA.getValue();
+
+		AttributeDescr modeA = descr.getAttributes().get(
+				DroolsSoftKeywords.ENTAIL);
+		if (modeA != null)
+			modeS = modeA.getValue();
+
+		AttributeDescr kindA = descr.getAttributes()
+				.get(DroolsSoftKeywords.KIND);
+		if (kindA != null)
+			kindS = kindA.getValue();
+
+		Element arrow = null;
+		if (modeS != null && modeS.equalsIgnoreCase("equivalence")) {
+			arrow = dox.createElement("Equivalent");
+		} else {
+			arrow = dox.createElement("Implies");
+		}
+		
+		//    	    	
+		arrow.setAttribute("direction", "forward");
+		
+		
+		if (kindS != null) {
+			Element kind = dox.createElement("kind");				
+				kind.setTextContent(kindS);					
+			if (IMPERFECT) {
+				arrow.appendChild(kind);
+			} else {
+				arrow.appendChild(dox.createComment(format(kind)));
+			}
+		}
+		
+		
+		attachId(arrow, descr.getName(), false);
+
+		
+		if (priorS != null) {
+			Element degree = dox.createElement("degree");
+				Element data = dox.createElement("Data");
+					data.setTextContent(priorS);
+					degree.appendChild(data);
+			if (IMPERFECT) {
+				arrow.appendChild(degree);
+			} else {
+				arrow.appendChild(dox.createComment(format(degree)));
+			}
+		}
+		//    	
+		//    	
+		//    	
+		Element body = dox.createElement("body");
+		visitChild(body, descr.getLhs());
+		arrow.appendChild(body);
+
+		Element head = dox.createElement("head");
+		Element atom = dox.createElement("Atom");
+		atom.appendChild(dox.createElement("Rel"));
+		Element cons = dox.createElement("Data");
+		cons.setTextContent(descr.getConsequence().toString().trim());
+		atom.appendChild(cons);
+		head.appendChild(atom);
+		arrow.appendChild(head);
+		//    
+
+		Element forall = dox.createElement("Forall");
+		for (String varS : context.getVariables()) {
+			Element decl = dox.createElement("declare");
+			Element var = dox.createElement("Var");
+			var.setAttribute("type", context.getVarType(varS));
+			var.setTextContent(varS);
+			decl.appendChild(var);
+			forall.appendChild(decl);
+		}
+
+		Element formula = dox.createElement("formula");
+		formula.appendChild(arrow);
+		forall.appendChild(formula);
+
+		context.getCurrentElement().appendChild(forall);
+
+	}
+
+	public void visitQueryDescr(final QueryDescr descr) {
+		// TODO
+		throw new UnsupportedOperationException();
+	}
+
+	public void format(Node dox, OutputStream out) {
+
+		try {
+
 			// create DOMSource for source XML document
 			Source xmlSource = new DOMSource(dox);
-			
-		    Result result = new StreamResult(new OutputStreamWriter(out,"UTF-8"));  
-		     
+
+			Result result = new StreamResult(new OutputStreamWriter(out,
+					"UTF-8"));
+
 			TransformerFactory transformerFactory = TransformerFactory
 					.newInstance();
-			transformerFactory.setAttribute("indent-number", 4); 
-		      		      
+			transformerFactory.setAttribute("indent-number", 4);
+
 			Transformer transformer = transformerFactory.newTransformer();
-				transformer.setOutputProperty(OutputKeys.INDENT, "yes");	
-				
-			transformer.setOutputProperty("indent", "yes");	//Java XML Indent
+			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
 
+			transformer.setOutputProperty("indent", "yes"); // Java XML Indent
+
 			// transform and deliver content to client
 			transformer.transform(xmlSource, result);
 		} catch (Exception e) {
-			
+
 		}
-		
-		
 
-    }
+	}
 
-
-
-    private void attachId(Element element, String label, boolean isVar) {
+	private void attachId(Element element, String label, boolean isVar) {
 		Element oid = dox.createElement("oid");
-			Element holder = dox.createElement(isVar ? "Var" : "Data");
-				if (isVar)
-					holder.setAttribute("xsi:type","xs:ID");
-				holder.setTextContent(label);
-			oid.appendChild(holder);
-		element.appendChild(oid);		
+		Element holder = dox.createElement(isVar ? "Var" : "Data");
+		
+		holder.setTextContent(label);
+		oid.appendChild(holder);
+		element.appendChild(oid);
 	}
-    
-    
-    protected void visitChildren(Element curElem, List<? extends BaseDescr> children) {
-    	Element prevEl = context.getCurrentElement();
-    	for (BaseDescr child : children) {
-    		context.setCurrentElement(curElem);
-    		visit(child);    		
-    	}
-    	context.setCurrentElement(prevEl);
-    }
-    
-    
-    protected void visitChildrenExcludeDuplicates(Element curElem, List<? extends BaseDescr> children) {
-    	Element prevEl = context.getCurrentElement();
-    	BaseDescr previous = null;
-    	for (BaseDescr child : children) {
-    		context.setCurrentElement(curElem);
-    		
-    		if (previous != null && previous instanceof FieldBindingDescr) {
-    			if ( ((FieldBindingDescr) previous).getFieldConstraint() != child ) {
-    				//VISIT THE CHILD ONLY IF IT IS HAS NOT YET BEEN...
-    				visit(child);
-    			}
-    				
-    		} else {
-    			visit(child);
-    		}
-    		previous = child;
-    	}
-    	context.setCurrentElement(prevEl);
-    }
-    
-    
-    
-    
-    protected void visitChild(Element curElem, BaseDescr child) {
-    		Element popEl = context.getCurrentElement();
-    			context.setCurrentElement(curElem);
-    			visit(child);    	
-    		context.setCurrentElement(popEl);
-    }
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
 
+	protected void visitChildren(Element curElem,
+			List<? extends BaseDescr> children) {
+		Element prevEl = context.getCurrentElement();
+		for (BaseDescr child : children) {
+			context.setCurrentElement(curElem);
+			visit(child);
+		}
+		context.setCurrentElement(prevEl);
+	}
 
+	protected void visitChildrenExcludeDuplicates(Element curElem,
+			List<? extends BaseDescr> children) {
+		Element prevEl = context.getCurrentElement();
+		BaseDescr previous = null;
+		for (BaseDescr child : children) {
+			context.setCurrentElement(curElem);
 
+			if (previous != null && previous instanceof FieldBindingDescr) {
+				if (((FieldBindingDescr) previous).getFieldConstraint() != child) {
+					// VISIT THE CHILD ONLY IF IT IS HAS NOT YET BEEN...
+					visit(child);
+				}
 
+			} else {
+				visit(child);
+			}
+			previous = child;
+		}
+		context.setCurrentElement(prevEl);
+	}
 
+	protected void visitChild(Element curElem, BaseDescr child) {
+		Element popEl = context.getCurrentElement();
+		context.setCurrentElement(curElem);
+		visit(child);
+		context.setCurrentElement(popEl);
+	}
 
 	public void visitAccessorDescr(AccessorDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();	
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitActionDescr(ActionDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitBehaviorDescr(BehaviorDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitCutDescr(CutDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitDeclarativeInvokerDescr(DeclarativeInvokerDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitEntryPointDescr(EntryPointDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitEqvDescr(EqvDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitEvaluatorBasedRestrictionDescr(
 			EvaluatorBasedRestrictionDescr descr) {
-						
+
 		Element atom = dox.createElement("Atom");
-			context.setCurrentElement(atom);
-    	
-    	Element rel = dox.createElement("Rel");
-  			rel.setTextContent(descr.getEvaluator());
-  		attachAsOp(atom,rel);	
-  	
-  		
-  		Element slot = dox.createElement("slot");
-  		Element field = dox.createElement("Ind");
-  			field.setTextContent(context.getCurrentField());		  		
-  			slot.appendChild(field);
-  	
-  		Element value = dox.createElement("Var");		  		
-  			value.setTextContent(context.getCurrentObjectVariable());
-  		slot.appendChild(value);
-  		
-  		String varField = context.getCurrentFieldVariable();
-  		if (varField == null) {
-  				  				  			
-  			atom.appendChild(slot);
-  			
-  		} else {
-  			context.addVariableDefinition(varField, buildEquality(varField, slot,true));
-  			
-  			Element var = dox.createElement("Var");
-  				var.setTextContent(varField);
-  			atom.appendChild(var);
-  		}
-  		
-  		
+			decorateWithAttribs(atom,descr);
+			
+		context.setCurrentElement(atom);
+
+		Element rel = dox.createElement("Rel");
+		rel.setTextContent(descr.getEvaluator());
+		attachAsOp(atom, rel);
+
+		Element slot = dox.createElement("slot");
+		Element field = dox.createElement("Ind");
+		field.setTextContent(context.getCurrentField());
+		slot.appendChild(field);
+
+		Element value = dox.createElement("Var");
+		if (context.getCurrentFieldVariable() != null)
+			value.setTextContent(context.getCurrentFieldVariable());
+		slot.appendChild(value);
+
+		atom.appendChild(slot);
+
 	}
 
-
 	public void visitFactTemplateDescr(FactTemplateDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();		
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitFieldAccessDescr(FieldAccessDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();		
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitForAnyDescr(ForAnyDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitFunctionCallDescr(FunctionCallDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();		
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitFunctionImportDescr(FunctionImportDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitGlobalDescr(GlobalDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitHedgeDescr(HedgeDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();		
+		throw new UnsupportedOperationException();
 	}
 
+	public void visitImportDescr(ImportDescr descr) {
+		String qName = descr.getTarget();
+		String name = qName.substring(qName.lastIndexOf('.') + 1);
 
-	public void visitImportDescr(ImportDescr descr) {
-		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();	
+		context.mapClass(name, qName);
 	}
 
-
 	public void visitMethodAccessDescr(MethodAccessDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitPatternSourceDescr(PatternSourceDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitProcessDescr(ProcessDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitRestriction(Restriction descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitReturnValueDescr(ReturnValueDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitSlidingWindowDescr(SlidingWindowDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
+	public boolean isEmpty(String string) {
+		return (string == null || string.trim().length() == 0);
+	}
 
 	public void visitTypeDeclarationDescr(TypeDeclarationDescr descr) {
-		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		context.mapClass(descr.getTypeName(), context.getPackageName() + "."
+				+ descr.getTypeName());
+
 	}
 
-
 	public void visitTypeFieldDescr(TypeFieldDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitXorDescr(XorDescr descr) {
 		// TODO Auto-generated method stub
-    	throw new UnsupportedOperationException();
+		throw new UnsupportedOperationException();
 	}
 
-
 	public void visitImpliesDescr(ImpliesDescr descr) {
-		//No body / head element wrappers to denote it is just an operator
+		// No body / head element wrappers to denote it is just an operator
 		Element imp = dox.createElement("Implies");
-    	
-    	if (descr.getLabel() != null && ! descr.getLabel().equals("")) 
-    		attachId(imp,descr.getLabel(),false);
-    	
-    	if (descr.getParams() != null && ! descr.getParams().equals("")) {
-    		imp.setAttribute("kind", descr.getParams());
-    	}
-    		
-    	//At pattern level, a field binding is always ALSO followed by its Restriction
-    	//So we have to work around this...
-    	visitChildren(imp, descr.getDescrs());
-    	
-    	
-        context.getCurrentElement().appendChild(imp);
-	}
+			decorateWithAttribs(imp,descr);
 
+		if (descr.getLabel() != null && !descr.getLabel().equals(""))
+			attachId(imp, descr.getLabel(), false);
 
+		if (descr.getParams() != null && !descr.getParams().equals("")) {
+			imp.setAttribute("kind", descr.getParams());
+		}
 
+		// At pattern level, a field binding is always ALSO followed by its
+		// Restriction
+		// So we have to work around this...
+		visitChildren(imp, checkListType(descr.getDescrs()));
 
+		context.getCurrentElement().appendChild(imp);
+	}
+
 	
 	
 	
+	private String format(Node node) {
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		
+		format(node,baos);
+		
+		String ans = baos.toString();
+		
+		if (! (node instanceof Document)) {
+			int last = ans.indexOf('>'); 
+			ans = ans.substring(Math.min(last+1,ans.length()));
+		}
+		return ans;
+	}
 	
 	
 	
@@ -1275,79 +1294,96 @@
 	
 	
 	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-class RuleMLContext {
-    	
-    	private Element currentElement;
-    	
-    	private String ruleName;
-    	
-    	private String classType;
-    	
-    	private String currentObjectVariable;
-    	    	
-    	private String currentField;
-    	
-    	private String currentFieldVariable;
-    	
-    	private Map<String, Element> variables = new HashMap<String, Element>();
-    	
-    	
-    	
-    	public String validateVariable(String id) {
-    		if (variables.containsKey(id)) {
-    			
-    			int idx = id.lastIndexOf("_");
-    			if (idx < 0) {
-    				id = id+"_1";
-    			} else {
-    				String tail = id.substring(idx+1);
-    				try {
-    					int cod = Integer.valueOf(tail) + 1;
-    					id = id.substring(0,idx)+"_"+cod;
-    				} catch (NumberFormatException nfe) {
-    					id = id+"_1";
-    				}
-    			}
-    			return validateVariable(id);	
-    		} 
-    		return id;
-    	}
-    	
-    	public void addVariableDefinition(String id, Element element) {
-    		variables.put(id,element);
-    	}
-    	
-    	public Element getVariable(String id) {
-    		return variables.get(id);
-    	}
-    	
-    	public boolean isVariable(String id) {
-    		return variables.containsKey(id);
-    	}
-    	
-    	public String contextualizeVar(String id) {
-    		for (String varId : variables.keySet())
-    			if (varId.startsWith(this.getRuleName()) && varId.endsWith(id))
-    				return varId;
-    		return "";
-    	}
-    	
-    	public Collection<String> getVariables() {
-    		return variables.keySet();
-    	}
-    	
-    	
+	private class RuleMLContext {
+
+		private Element currentElement;
+
+		private String ruleName;
+
+		private String classType;
+
+		private String currentObjectVariable;
+
+		private String currentField;
+
+		private String currentFieldVariable;
+
+		private Map<String, String> variables = new HashMap<String, String>();
+
+		private Map<String, String> classMap = new HashMap<String, String>();
+
+		private String packageName;
+
+		private KnowledgeBase kBase;
+
+		public String validateVariable(String id) {
+			if (variables.containsKey(id)) {
+
+				int idx = id.lastIndexOf("_");
+				if (idx < 0) {
+					id = id + "_1";
+				} else {
+					String tail = id.substring(idx + 1);
+					try {
+						int cod = Integer.valueOf(tail) + 1;
+						id = id.substring(0, idx) + "_" + cod;
+					} catch (NumberFormatException nfe) {
+						id = id + "_1";
+					}
+				}
+				return validateVariable(id);
+			}
+			return id;
+		}
+
+		public String getMappedClass(String objectType) {
+			return this.classMap.get(objectType);
+		}
+
+		public void setKBase(KnowledgeBase kbase) {
+			this.kBase = kbase;
+		}
+
+		public String getPackageName() {
+			return packageName;
+		}
+
+		public void setPackageName(String pk) {
+			this.packageName = pk;
+		}
+
+		public void mapClass(String name, String qName) {
+			this.classMap.put(name, qName);
+
+		}
+
+		public String getVarType(String varS) {
+
+			return variables.get(varS);
+		}
+
+		public void addVariable(String id, String type) {
+			variables.put(id, type);
+		}
+
+		public Set<String> getVariables() {
+			return variables.keySet();
+		}
+
+		public boolean isVariable(String id) {
+			return variables.containsKey(id);
+		}
+
+		public String contextualizeVar(String id) {
+			for (String varId : variables.keySet())
+				if (varId.startsWith(this.getRuleName()) && varId.endsWith(id))
+					return varId;
+			return "";
+		}
+
 		/**
-		 * @param currentElement the currentElement to set
+		 * @param currentElement
+		 *            the currentElement to set
 		 */
 		public Element setCurrentElement(Element currentElement) {
 			Element ans = this.currentElement;
@@ -1363,9 +1399,13 @@
 		}
 
 		/**
-		 * @param ruleName the ruleName to set
+		 * @param ruleName
+		 *            the ruleName to set
 		 */
-		public void setRuleName(String ruleName) {
+		private void setRuleName(String ruleName) {
+
+			this.variables.clear();
+
 			this.ruleName = ruleName;
 		}
 
@@ -1377,7 +1417,8 @@
 		}
 
 		/**
-		 * @param className the className to set
+		 * @param className
+		 *            the className to set
 		 */
 		public void setClassType(String className) {
 			this.classType = className;
@@ -1391,10 +1432,16 @@
 		}
 
 		/**
-		 * @param currentObjectVariable the currentObjectVariable to set
+		 * @param currentObjectVariable
+		 *            the currentObjectVariable to set
 		 */
-		public void setCurrentObjectVariable(String currentObjectVariable) {
-			this.currentObjectVariable = validateVariable(currentObjectVariable);
+		public String trySetCurrentObjectVariable(String currentObjectVariable) {
+			String name = validateVariable(currentObjectVariable);
+			this.currentObjectVariable = name;
+
+			addVariable(this.currentObjectVariable, this.classMap.get(this
+					.getClassType()));
+			return name;
 		}
 
 		/**
@@ -1405,7 +1452,8 @@
 		}
 
 		/**
-		 * @param currentField the currentField to set
+		 * @param currentField
+		 *            the currentField to set
 		 */
 		public void setCurrentField(String currentField) {
 			this.currentField = currentField;
@@ -1419,40 +1467,62 @@
 		}
 
 		/**
-		 * @param currentFieldVariable the currentFieldVariable to set
+		 * @param currentFieldVariable
+		 *            the currentFieldVariable to set
 		 */
-		public void setCurrentFieldVariable(String currentFieldVariable) {
-			this.currentFieldVariable = validateVariable(currentFieldVariable);
+		public String trySetCurrentFieldVariable(String currentFieldVariable) {
+			if (currentFieldVariable == null) {
+				
+				this.currentFieldVariable = null;
+				return null;
+				
+			} else {
+			
+				this.currentFieldVariable = validateVariable(currentFieldVariable);
+
+				addVariable(this.currentFieldVariable, reflect(getCurrentField(),
+						this.classMap.get(this.getClassType())));
+
+				return getCurrentFieldVariable();
+			}
 		}
 
+		private String reflect(String fldName, String clazz) {
+			try {
+				String getterName = "get"
+						+ fldName.substring(0, 1).toUpperCase()
+						+ fldName.substring(1);
+
+				Class klass = null;
+				try {
+					klass = Class.forName(clazz);
+				} catch (ClassNotFoundException cnfe) {
+					int j = clazz.lastIndexOf('.');
+					klass = kBase.getFactType(clazz.substring(0, j),
+							clazz.substring(j + 1)).getFactClass();
+				}
+
+				Method getter = klass.getMethod(getterName);
+
+				return getter.getReturnType().getName();
+
+			} catch (Exception e) {
+				e.printStackTrace();
+				return "";
+			}
+		}
+
 		/**
 		 * @return the currentFieldVariable
 		 */
 		public String getCurrentFieldVariable() {
 			return currentFieldVariable;
 		}
-    	
-		
+
 		public Element appendChild(Element el) {
 			return (Element) this.getCurrentElement().appendChild(el);
 		}
-    	
-    }
 
+	}
 
-    
-    
-    
-    
-    
 }
-
-
-
-
-
-
-
-
-
-

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2009-05-26 08:05:07 UTC (rev 26720)
@@ -70,7 +70,7 @@
   VT_CUT;
   VT_PRIOR;
   VT_ARGS;
-  VT_TYPE;
+  VT_KIND;
 	
 
 	VK_DATE_EFFECTIVE;
@@ -131,7 +131,7 @@
   VK_CONSTRID;
   
   VK_ARGS;
-  VK_TYPE;
+  VK_KIND;
 }
 
 @parser::header {
@@ -910,7 +910,7 @@
 	
 	
 	|	(lhs_and -> lhs_and) 
-		( (or_key  constr_parameters? |DOUBLE_PIPE)=> (value=or_key square_chunk? {orToken = $value.start;} 
+		( (or_key  constr_parameters? |DOUBLE_PIPE)=> (value=or_key constr_parameters? {orToken = $value.start;} 
 		  |pipe=DOUBLE_PIPE {orToken = $pipe; emit($DOUBLE_PIPE, DroolsEditorType.SYMBOL);}) 
 	{	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	}
 		lhs_and 
@@ -935,24 +935,23 @@
 	Token andToken = null;
 }	:	(LEFT_PAREN and_key square_chunk?)=> 
 		LEFT_PAREN {	emit($LEFT_PAREN, DroolsEditorType.SYMBOL);	} 
-			and=and_key
-			square_chunk?
+			and=and_key			
 			constr_parameters?
 	{	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	}
 			lhs_unary+ 
 		RIGHT_PAREN {	emit($RIGHT_PAREN, DroolsEditorType.SYMBOL);	}  // PREFIX
-		-> ^(VT_AND_PREFIX[$and.start] square_chunk? constr_parameters? lhs_unary+ RIGHT_PAREN)
+		-> ^(VT_AND_PREFIX[$and.start] constr_parameters? lhs_unary+ RIGHT_PAREN)
 		
 	|	
 	
 	(lhs_unary -> lhs_unary) 
-		( (and_key square_chunk? |DOUBLE_AMPER)=> 
-		( value=and_key constr_parameters? square_chunk? {andToken = $value.start; } 
+		( (and_key constr_parameters? |DOUBLE_AMPER)=> 
+		( value=and_key constr_parameters?  {andToken = $value.start; } 
 		  |amper=DOUBLE_AMPER {andToken = $amper; emit($DOUBLE_AMPER, DroolsEditorType.SYMBOL);}
 		) 
 	{	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	}
 		lhs_unary 
-		-> ^(VT_AND_INFIX[andToken] square_chunk? constr_parameters? $lhs_and  lhs_unary ) )*			  
+		-> ^(VT_AND_INFIX[andToken] constr_parameters? $lhs_and  lhs_unary ) )*			  
 	;
 
 lhs_unary
@@ -1602,7 +1601,7 @@
 constr_attr
   :  
     c_param_id    
-    | c_param_type
+    | c_param_kind
     | c_param_args
     | c_param_cut
     | c_param_prior    
@@ -1616,9 +1615,9 @@
     cid=STRING    
   ;
 
-c_param_type
+c_param_kind
   :
-    type_key^
+    kind_key^
     EQUALS!
     type=STRING    
   ;  
@@ -2148,16 +2147,16 @@
     ->  VK_CUT[$id]
   ;
   
-type_key  
-  : {(validateIdentifierKey(DroolsSoftKeywords.TYPE))}?=>  id=ID
+kind_key  
+  : {(validateIdentifierKey(DroolsSoftKeywords.KIND))}?=>  id=ID
   { emit($id, DroolsEditorType.KEYWORD);  }
-    ->  VK_TYPE[$id]
+    ->  VK_KIND[$id]
   ;  
 
 args_key  
   : {(validateIdentifierKey(DroolsSoftKeywords.ARGS))}?=>  id=ID
   { emit($id, DroolsEditorType.KEYWORD);  }
-    ->  VK_PARAMS[$id]
+    ->  VK_ARGS[$id]
   ;  
     
   

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g	2009-05-26 08:04:21 UTC (rev 26719)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g	2009-05-26 08:05:07 UTC (rev 26720)
@@ -222,7 +222,7 @@
   : (
     ^(attrName=VK_CONSTRID value=STRING) 
   | ^(attrName=VK_ARGS value=STRING)  
-  | ^(attrName=VK_TYPE value=STRING)   
+  | ^(attrName=VK_KIND value=STRING)   
   | ^(attrName=VK_CUT value=STRING)   
   | ^(attrName=VK_PRIOR value=STRING)   
   )




More information about the jboss-svn-commits mailing list