[jboss-svn-commits] JBL Code SVN: r24070 - in labs/jbossrules/branches/etirelli: drools-compiler/src/main/java/org/drools/lang and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Nov 24 11:51:52 EST 2008


Author: porcelli
Date: 2008-11-24 11:51:51 -0500 (Mon, 24 Nov 2008)
New Revision: 24070

Modified:
   labs/jbossrules/branches/etirelli/drools-compiler/.classpath
   labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
   labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
   labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java
   labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java
   labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DRL.g
   labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g
   labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g
   labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestDRL.java
   labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestTree2TestDRL.java
   labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/Tree2TestDRL.java
   labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTest.testsuite
   labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTreeWalkerTest.testsuite
   labs/jbossrules/branches/etirelli/drools-verifier/.classpath
Log:
update to ANTLR 3.1.1 and improving on dynamic operators syntax

Modified: labs/jbossrules/branches/etirelli/drools-compiler/.classpath
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/.classpath	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/.classpath	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1,23 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3/xstream-1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0.1/antlr-runtime-3.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/gunit/1.0.1/gunit-1.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.0.1/antlr-3.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.1-SNAPSHOT/mvel2-2.0.1-SNAPSHOT.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**/*.java" including="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3/xstream-1.3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
+	<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
+	<classpathentry kind="src" path="/drools-core"/>
+	<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.1-SNAPSHOT/mvel2-2.0.1-SNAPSHOT.jar"/>
+	<classpathentry kind="src" path="/drools-api"/>
+	<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/antlr/gunit/1.0.3b/gunit-1.0.3b.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar" sourcepath="/ANTLR_SOURCE/"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1,4 +1,4 @@
-// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-11-24 10:27:36
+// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-11-24 14:42:04
 
 	package org.drools.lang;
 
@@ -12,134 +12,129 @@
 import java.util.Map;
 import java.util.HashMap;
 public class DRLLexer extends Lexer {
-    public static final int COMMA=91;
+    public static final int COMMA=86;
     public static final int VT_PATTERN_TYPE=39;
     public static final int VT_ACCUMULATE_ID_CLAUSE=28;
     public static final int VK_DIALECT=54;
     public static final int VK_FUNCTION=65;
-    public static final int END=88;
-    public static final int HexDigit=124;
+    public static final int END=83;
+    public static final int HexDigit=119;
     public static final int VK_ATTRIBUTES=57;
     public static final int VT_EXPRESSION_CHAIN=30;
-    public static final int MISC=120;
+    public static final int MISC=115;
     public static final int VT_AND_PREFIX=23;
     public static final int VK_QUERY=63;
-    public static final int THEN=117;
+    public static final int THEN=112;
     public static final int VK_AUTO_FOCUS=49;
-    public static final int DOT=86;
+    public static final int DOT=81;
     public static final int VK_IMPORT=60;
     public static final int VT_SLOT=15;
     public static final int VT_PACKAGE_ID=40;
-    public static final int LEFT_SQUARE=115;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=128;
+    public static final int LEFT_SQUARE=110;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=123;
     public static final int VT_DATA_TYPE=38;
-    public static final int VK_MATCHES=69;
     public static final int VT_FACT=6;
-    public static final int LEFT_CURLY=118;
-    public static final int AT=93;
-    public static final int LEFT_PAREN=90;
-    public static final int DOUBLE_AMPER=100;
+    public static final int LEFT_CURLY=113;
+    public static final int AT=88;
+    public static final int LEFT_PAREN=85;
+    public static final int DOUBLE_AMPER=95;
     public static final int VT_QUERY_ID=9;
     public static final int VT_ACCESSOR_PATH=36;
     public static final int VT_LABEL=8;
-    public static final int WHEN=96;
+    public static final int WHEN=91;
     public static final int VT_ENTRYPOINT_ID=13;
-    public static final int VK_SOUNDSLIKE=71;
     public static final int VK_SALIENCE=55;
     public static final int VT_FIELD=35;
-    public static final int WS=122;
-    public static final int OVER=102;
-    public static final int STRING=89;
-    public static final int VK_AND=77;
+    public static final int WS=117;
+    public static final int OVER=97;
+    public static final int STRING=84;
+    public static final int VK_AND=72;
     public static final int VT_ACCESSOR_ELEMENT=37;
-    public static final int VT_ACCUMULATE_INIT_CLAUSE=27;
     public static final int VK_GLOBAL=66;
-    public static final int VK_REVERSE=81;
+    public static final int VT_ACCUMULATE_INIT_CLAUSE=27;
+    public static final int VK_REVERSE=76;
     public static final int VT_BEHAVIOR=21;
-    public static final int GRAVE_ACCENT=127;
+    public static final int GRAVE_ACCENT=122;
     public static final int VK_DURATION=53;
     public static final int VT_SQUARE_CHUNK=19;
-    public static final int VK_FORALL=79;
+    public static final int VK_FORALL=74;
     public static final int VT_PAREN_CHUNK=20;
     public static final int VT_COMPILATION_UNIT=4;
-    public static final int COLLECT=105;
+    public static final int COLLECT=100;
     public static final int VK_ENABLED=56;
-    public static final int EQUALS=95;
-    public static final int VK_RESULT=82;
-    public static final int UnicodeEscape=125;
+    public static final int VK_RESULT=77;
+    public static final int EQUALS=90;
+    public static final int UnicodeEscape=120;
     public static final int VK_PACKAGE=61;
     public static final int VT_RULE_ID=12;
-    public static final int EQUAL=107;
+    public static final int EQUAL=102;
     public static final int VK_NO_LOOP=48;
-    public static final int SEMICOLON=84;
+    public static final int SEMICOLON=79;
     public static final int VK_TEMPLATE=62;
     public static final int VT_AND_IMPLICIT=22;
-    public static final int NULL=114;
-    public static final int COLON=94;
-    public static final int MULTI_LINE_COMMENT=130;
+    public static final int NULL=109;
+    public static final int COLON=89;
+    public static final int MULTI_LINE_COMMENT=125;
     public static final int VT_RULE_ATTRIBUTES=16;
-    public static final int RIGHT_SQUARE=116;
+    public static final int RIGHT_SQUARE=111;
     public static final int VK_AGENDA_GROUP=51;
     public static final int VT_FACT_OR=33;
-    public static final int VK_NOT=74;
+    public static final int VK_NOT=69;
     public static final int VK_DATE_EXPIRES=46;
-    public static final int ARROW=106;
-    public static final int FLOAT=113;
-    public static final int INIT=104;
+    public static final int ARROW=101;
+    public static final int FLOAT=108;
+    public static final int INIT=99;
     public static final int VK_EXTEND=59;
     public static final int VT_SLOT_ID=14;
     public static final int VT_CURLY_CHUNK=18;
     public static final int VT_OR_PREFIX=24;
-    public static final int DOUBLE_PIPE=99;
-    public static final int LESS=110;
+    public static final int DOUBLE_PIPE=94;
+    public static final int LESS=105;
     public static final int VT_TYPE_DECLARE_ID=11;
     public static final int VT_PATTERN=31;
     public static final int VK_DATE_EFFECTIVE=45;
-    public static final int EscapeSequence=123;
-    public static final int VK_EXISTS=78;
-    public static final int INT=98;
+    public static final int EscapeSequence=118;
+    public static final int VK_EXISTS=73;
+    public static final int INT=93;
     public static final int VT_BIND_FIELD=34;
     public static final int VK_RULE=58;
     public static final int VK_EVAL=67;
-    public static final int GREATER=108;
+    public static final int GREATER=103;
     public static final int VT_FACT_BINDING=32;
-    public static final int ID=85;
-    public static final int FROM=101;
-    public static final int NOT_EQUAL=112;
-    public static final int RIGHT_CURLY=119;
-    public static final int VK_OPERATOR=83;
-    public static final int VK_ENTRY_POINT=73;
+    public static final int ID=80;
+    public static final int FROM=96;
+    public static final int NOT_EQUAL=107;
+    public static final int RIGHT_CURLY=114;
+    public static final int VK_OPERATOR=78;
+    public static final int VK_ENTRY_POINT=68;
     public static final int VT_PARAM_LIST=44;
     public static final int VT_AND_INFIX=25;
-    public static final int BOOL=97;
+    public static final int BOOL=92;
     public static final int VT_FROM_SOURCE=29;
-    public static final int VK_CONTAINS=68;
     public static final int VK_LOCK_ON_ACTIVE=47;
     public static final int VT_FUNCTION_IMPORT=5;
-    public static final int VK_IN=75;
+    public static final int VK_IN=70;
     public static final int VT_RHS_CHUNK=17;
-    public static final int VK_MEMBEROF=72;
-    public static final int GREATER_EQUAL=109;
+    public static final int GREATER_EQUAL=104;
     public static final int VT_OR_INFIX=26;
-    public static final int DOT_STAR=87;
-    public static final int VK_OR=76;
+    public static final int DOT_STAR=82;
+    public static final int VK_OR=71;
     public static final int VT_GLOBAL_ID=42;
-    public static final int LESS_EQUAL=111;
-    public static final int ACCUMULATE=103;
+    public static final int LESS_EQUAL=106;
+    public static final int ACCUMULATE=98;
     public static final int VK_RULEFLOW_GROUP=52;
     public static final int VT_FUNCTION_ID=43;
     public static final int EOF=-1;
     public static final int VT_CONSTRAINTS=7;
     public static final int VT_IMPORT_ID=41;
-    public static final int EOL=121;
+    public static final int EOL=116;
     public static final int VK_ACTIVATION_GROUP=50;
-    public static final int OctalEscape=126;
-    public static final int VK_ACTION=80;
-    public static final int VK_EXCLUDES=70;
-    public static final int RIGHT_PAREN=92;
+    public static final int OctalEscape=121;
+    public static final int VK_ACTION=75;
+    public static final int RIGHT_PAREN=87;
     public static final int VT_TEMPLATE_ID=10;
     public static final int VK_DECLARE=64;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=129;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=124;
 
     	private List<DroolsParserException> errors = new ArrayList<DroolsParserException>();
     	private DroolsParserExceptionFactory errorMessageFactory = new DroolsParserExceptionFactory(null, null);
@@ -191,10 +186,10 @@
         try {
             int _type = WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:17: ( ' ' | '\\t' | '\\f' | EOL )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1677:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1677:17: ( ' ' | '\\t' | '\\f' | EOL )+
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:17: ( ' ' | '\\t' | '\\f' | EOL )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1677:17: ( ' ' | '\\t' | '\\f' | EOL )+
             int cnt1=0;
             loop1:
             do {
@@ -226,28 +221,28 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:19: ' '
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1677:19: ' '
             	    {
             	    match(' '); if (state.failed) return ;
 
             	    }
             	    break;
             	case 2 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:19: '\\t'
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1678:19: '\\t'
             	    {
             	    match('\t'); if (state.failed) return ;
 
             	    }
             	    break;
             	case 3 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1714:19: '\\f'
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1679:19: '\\f'
             	    {
             	    match('\f'); if (state.failed) return ;
 
             	    }
             	    break;
             	case 4 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1715:19: EOL
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1680:19: EOL
             	    {
             	    mEOL(); if (state.failed) return ;
 
@@ -281,10 +276,10 @@
     // $ANTLR start "EOL"
     public final void mEOL() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1686:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
 
@@ -309,7 +304,7 @@
             }
             switch (alt2) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:14: ( '\\r\\n' )=> '\\r\\n'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (state.failed) return ;
 
@@ -317,14 +312,14 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1723:25: '\\r'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1688:25: '\\r'
                     {
                     match('\r'); if (state.failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1724:25: '\\n'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1689:25: '\\n'
                     {
                     match('\n'); if (state.failed) return ;
 
@@ -347,10 +342,10 @@
         try {
             int _type = INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:2: ( ( '-' )? ( '0' .. '9' )+ )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:4: ( '-' )? ( '0' .. '9' )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:2: ( ( '-' )? ( '0' .. '9' )+ )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:4: ( '-' )? ( '0' .. '9' )+
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:4: ( '-' )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:4: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -359,7 +354,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:5: '-'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:5: '-'
                     {
                     match('-'); if (state.failed) return ;
 
@@ -368,7 +363,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:10: ( '0' .. '9' )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:10: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -382,7 +377,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1729:11: '0' .. '9'
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (state.failed) return ;
 
@@ -415,10 +410,10 @@
         try {
             int _type = FLOAT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:4: ( '-' )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:4: ( '-' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -427,7 +422,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:5: '-'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:5: '-'
                     {
                     match('-'); if (state.failed) return ;
 
@@ -436,7 +431,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:10: ( '0' .. '9' )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:10: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -450,7 +445,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:11: '0' .. '9'
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (state.failed) return ;
 
@@ -468,7 +463,7 @@
             } while (true);
 
             match('.'); if (state.failed) return ;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:26: ( '0' .. '9' )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:26: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -482,7 +477,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1733:27: '0' .. '9'
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (state.failed) return ;
 
@@ -515,7 +510,7 @@
         try {
             int _type = STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -534,13 +529,13 @@
             }
             switch (alt10) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
                     {
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
                     {
                     match('\"'); if (state.failed) return ;
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
                     loop8:
                     do {
                         int alt8=3;
@@ -556,14 +551,14 @@
 
                         switch (alt8) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:15: EscapeSequence
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (state.failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:32: ~ ( '\\\\' | '\"' )
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:32: ~ ( '\\\\' | '\"' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -592,13 +587,13 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1703:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
                     {
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1703:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1703:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
                     {
                     match('\''); if (state.failed) return ;
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1703:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
                     loop9:
                     do {
                         int alt9=3;
@@ -614,14 +609,14 @@
 
                         switch (alt9) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:16: EscapeSequence
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1703:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (state.failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:33: ~ ( '\\\\' | '\\'' )
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1703:33: ~ ( '\\\\' | '\\'' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -662,8 +657,8 @@
     // $ANTLR start "HexDigit"
     public final void mHexDigit() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1742:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1742:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1707:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1707: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();
@@ -687,7 +682,7 @@
     // $ANTLR start "EscapeSequence"
     public final void mEscapeSequence() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1746: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 )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1711: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);
 
@@ -774,7 +769,7 @@
             }
             switch (alt11) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1746: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' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1711: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)<='}') ) {
@@ -791,14 +786,14 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:9: UnicodeEscape
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1715:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (state.failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1751:9: OctalEscape
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1716:9: OctalEscape
                     {
                     mOctalEscape(); if (state.failed) return ;
 
@@ -815,7 +810,7 @@
     // $ANTLR start "OctalEscape"
     public final void mOctalEscape() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
             int alt12=3;
             int LA12_0 = input.LA(1);
 
@@ -863,25 +858,25 @@
             }
             switch (alt12) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (state.failed) return ;
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:14: ( '0' .. '3' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:15: '0' .. '3'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:14: ( '0' .. '3' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (state.failed) return ;
 
                     }
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:25: ( '0' .. '7' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:26: '0' .. '7'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:25: ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
                     }
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:36: ( '0' .. '7' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:37: '0' .. '7'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:36: ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
@@ -891,18 +886,18 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (state.failed) return ;
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:14: ( '0' .. '7' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:15: '0' .. '7'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:14: ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
                     }
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:25: ( '0' .. '7' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:26: '0' .. '7'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:25: ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
@@ -912,11 +907,11 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1758:9: '\\\\' ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1723:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (state.failed) return ;
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1758:14: ( '0' .. '7' )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1758:15: '0' .. '7'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1723:14: ( '0' .. '7' )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1723:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (state.failed) return ;
 
@@ -936,8 +931,8 @@
     // $ANTLR start "UnicodeEscape"
     public final void mUnicodeEscape() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1763:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1763:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1728:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1728:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (state.failed) return ;
             match('u'); if (state.failed) return ;
@@ -959,10 +954,10 @@
         try {
             int _type = BOOL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:2: ( ( 'true' | 'false' ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:4: ( 'true' | 'false' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1732:2: ( ( 'true' | 'false' ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1732:4: ( 'true' | 'false' )
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:4: ( 'true' | 'false' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1732:4: ( 'true' | 'false' )
             int alt13=2;
             int LA13_0 = input.LA(1);
 
@@ -981,7 +976,7 @@
             }
             switch (alt13) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:5: 'true'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1732:5: 'true'
                     {
                     match("true"); if (state.failed) return ;
 
@@ -989,7 +984,7 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:12: 'false'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1732:12: 'false'
                     {
                     match("false"); if (state.failed) return ;
 
@@ -1015,8 +1010,8 @@
         try {
             int _type = ACCUMULATE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:2: ( 'accumulate' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:4: 'accumulate'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:2: ( 'accumulate' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:4: 'accumulate'
             {
             match("accumulate"); if (state.failed) return ;
 
@@ -1036,8 +1031,8 @@
         try {
             int _type = COLLECT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:2: ( 'collect' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:4: 'collect'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1740:2: ( 'collect' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1740:4: 'collect'
             {
             match("collect"); if (state.failed) return ;
 
@@ -1057,8 +1052,8 @@
         try {
             int _type = END;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:5: ( 'end' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:7: 'end'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:5: ( 'end' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:7: 'end'
             {
             match("end"); if (state.failed) return ;
 
@@ -1078,8 +1073,8 @@
         try {
             int _type = FROM;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:2: ( 'from' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:4: 'from'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:2: ( 'from' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:4: 'from'
             {
             match("from"); if (state.failed) return ;
 
@@ -1099,8 +1094,8 @@
         try {
             int _type = INIT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:2: ( 'init' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:4: 'init'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1751:2: ( 'init' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1751:4: 'init'
             {
             match("init"); if (state.failed) return ;
 
@@ -1120,8 +1115,8 @@
         try {
             int _type = NULL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1790:2: ( 'null' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1790:4: 'null'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1755:2: ( 'null' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1755:4: 'null'
             {
             match("null"); if (state.failed) return ;
 
@@ -1141,8 +1136,8 @@
         try {
             int _type = OVER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1794:2: ( 'over' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1794:4: 'over'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1759:2: ( 'over' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1759:4: 'over'
             {
             match("over"); if (state.failed) return ;
 
@@ -1162,8 +1157,8 @@
         try {
             int _type = THEN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:2: ( 'then' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:4: 'then'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1763:2: ( 'then' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1763:4: 'then'
             {
             match("then"); if (state.failed) return ;
 
@@ -1183,8 +1178,8 @@
         try {
             int _type = WHEN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:2: ( 'when' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:4: 'when'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:2: ( 'when' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:4: 'when'
             {
             match("when"); if (state.failed) return ;
 
@@ -1204,8 +1199,8 @@
         try {
             int _type = GRAVE_ACCENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:2: ( '`' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:4: '`'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:2: ( '`' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:4: '`'
             {
             match('`'); if (state.failed) return ;
 
@@ -1224,8 +1219,8 @@
         try {
             int _type = AT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1809:4: ( '@' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1809:6: '@'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1774:4: ( '@' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1774:6: '@'
             {
             match('@'); if (state.failed) return ;
 
@@ -1244,8 +1239,8 @@
         try {
             int _type = EQUALS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1813:2: ( '=' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1813:4: '='
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:2: ( '=' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:4: '='
             {
             match('='); if (state.failed) return ;
 
@@ -1264,8 +1259,8 @@
         try {
             int _type = SEMICOLON;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1817:2: ( ';' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1817:4: ';'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:2: ( ';' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:4: ';'
             {
             match(';'); if (state.failed) return ;
 
@@ -1284,8 +1279,8 @@
         try {
             int _type = DOT_STAR;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1821:2: ( '.*' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1821:4: '.*'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:2: ( '.*' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:4: '.*'
             {
             match(".*"); if (state.failed) return ;
 
@@ -1305,8 +1300,8 @@
         try {
             int _type = COLON;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1825:2: ( ':' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1825:4: ':'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1790:2: ( ':' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1790:4: ':'
             {
             match(':'); if (state.failed) return ;
 
@@ -1325,8 +1320,8 @@
         try {
             int _type = EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1829:2: ( '==' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1829:4: '=='
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1794:2: ( '==' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1794:4: '=='
             {
             match("=="); if (state.failed) return ;
 
@@ -1346,8 +1341,8 @@
         try {
             int _type = NOT_EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1833:2: ( '!=' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1833:4: '!='
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:2: ( '!=' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:4: '!='
             {
             match("!="); if (state.failed) return ;
 
@@ -1367,8 +1362,8 @@
         try {
             int _type = GREATER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1837:2: ( '>' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1837:4: '>'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:2: ( '>' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:4: '>'
             {
             match('>'); if (state.failed) return ;
 
@@ -1387,8 +1382,8 @@
         try {
             int _type = GREATER_EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1841:2: ( '>=' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1841:4: '>='
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:2: ( '>=' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:4: '>='
             {
             match(">="); if (state.failed) return ;
 
@@ -1408,8 +1403,8 @@
         try {
             int _type = LESS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:2: ( '<' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:4: '<'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1810:2: ( '<' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1810:4: '<'
             {
             match('<'); if (state.failed) return ;
 
@@ -1428,8 +1423,8 @@
         try {
             int _type = LESS_EQUAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1849:2: ( '<=' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1849:4: '<='
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1814:2: ( '<=' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1814:4: '<='
             {
             match("<="); if (state.failed) return ;
 
@@ -1449,8 +1444,8 @@
         try {
             int _type = ARROW;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1853:2: ( '->' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1853:4: '->'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1818:2: ( '->' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1818:4: '->'
             {
             match("->"); if (state.failed) return ;
 
@@ -1470,7 +1465,7 @@
         try {
             int _type = ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1857: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' )+ '%' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822: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);
 
@@ -1489,7 +1484,7 @@
             }
             switch (alt16) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1857:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822: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();
@@ -1501,7 +1496,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1857:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
                     loop14:
                     do {
                         int alt14=2;
@@ -1539,7 +1534,7 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1858:4: '%' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+ '%'
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1823: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') ) {
@@ -1552,7 +1547,7 @@
                         recover(mse);
                         throw mse;}
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1858:54: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1823:54: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )+
                     int cnt15=0;
                     loop15:
                     do {
@@ -1614,8 +1609,8 @@
         try {
             int _type = LEFT_PAREN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:9: ( '(' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:11: '('
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1828:9: ( '(' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1828:11: '('
             {
             match('('); if (state.failed) return ;
 
@@ -1634,8 +1629,8 @@
         try {
             int _type = RIGHT_PAREN;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:9: ( ')' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:11: ')'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:9: ( ')' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:11: ')'
             {
             match(')'); if (state.failed) return ;
 
@@ -1654,8 +1649,8 @@
         try {
             int _type = LEFT_SQUARE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:9: ( '[' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:11: '['
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1836:9: ( '[' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1836:11: '['
             {
             match('['); if (state.failed) return ;
 
@@ -1674,8 +1669,8 @@
         try {
             int _type = RIGHT_SQUARE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1875:9: ( ']' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1875:11: ']'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1840:9: ( ']' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1840:11: ']'
             {
             match(']'); if (state.failed) return ;
 
@@ -1694,8 +1689,8 @@
         try {
             int _type = LEFT_CURLY;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1879:9: ( '{' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1879:11: '{'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:9: ( '{' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:11: '{'
             {
             match('{'); if (state.failed) return ;
 
@@ -1714,8 +1709,8 @@
         try {
             int _type = RIGHT_CURLY;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1883:9: ( '}' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1883:11: '}'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1848:9: ( '}' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1848:11: '}'
             {
             match('}'); if (state.failed) return ;
 
@@ -1734,8 +1729,8 @@
         try {
             int _type = COMMA;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:7: ( ',' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:9: ','
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:7: ( ',' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:9: ','
             {
             match(','); if (state.failed) return ;
 
@@ -1754,8 +1749,8 @@
         try {
             int _type = DOT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1889:5: ( '.' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1889:7: '.'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1854:5: ( '.' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1854:7: '.'
             {
             match('.'); if (state.failed) return ;
 
@@ -1774,8 +1769,8 @@
         try {
             int _type = DOUBLE_AMPER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1893:2: ( '&&' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1893:4: '&&'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1858:2: ( '&&' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1858:4: '&&'
             {
             match("&&"); if (state.failed) return ;
 
@@ -1795,8 +1790,8 @@
         try {
             int _type = DOUBLE_PIPE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1897:2: ( '||' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1897:4: '||'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1862:2: ( '||' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1862:4: '||'
             {
             match("||"); if (state.failed) return ;
 
@@ -1816,11 +1811,11 @@
         try {
             int _type = SH_STYLE_SINGLE_LINE_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1901:2: ( '#' ( options {greedy=false; } : . )* EOL )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1901:4: '#' ( options {greedy=false; } : . )* EOL
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1866:2: ( '#' ( options {greedy=false; } : . )* EOL )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1866:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (state.failed) return ;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1901:8: ( options {greedy=false; } : . )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1866:8: ( options {greedy=false; } : . )*
             loop17:
             do {
                 int alt17=2;
@@ -1839,7 +1834,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1901:35: .
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1866:35: .
             	    {
             	    matchAny(); if (state.failed) return ;
 
@@ -1871,12 +1866,12 @@
         try {
             int _type = C_STYLE_SINGLE_LINE_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1907:2: ( '//' ( options {greedy=false; } : . )* EOL )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1907:4: '//' ( options {greedy=false; } : . )* EOL
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1872:2: ( '//' ( options {greedy=false; } : . )* EOL )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1872:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (state.failed) return ;
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1907:9: ( options {greedy=false; } : . )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1872:9: ( options {greedy=false; } : . )*
             loop18:
             do {
                 int alt18=2;
@@ -1895,7 +1890,7 @@
 
                 switch (alt18) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1907:36: .
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1872:36: .
             	    {
             	    matchAny(); if (state.failed) return ;
 
@@ -1927,12 +1922,12 @@
         try {
             int _type = MULTI_LINE_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1912:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1912:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1877:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1877:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (state.failed) return ;
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1912:9: ( options {greedy=false; } : . )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1877:9: ( options {greedy=false; } : . )*
             loop19:
             do {
                 int alt19=2;
@@ -1957,7 +1952,7 @@
 
                 switch (alt19) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1912:35: .
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1877:35: .
             	    {
             	    matchAny(); if (state.failed) return ;
 
@@ -1990,7 +1985,7 @@
         try {
             int _type = MISC;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1916:7: ( '!' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '/' | '\\'' | '\\\\' | '|' | '&' )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1881:7: ( '!' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '/' | '\\'' | '\\\\' | '|' | '&' )
             // /Users/porcelli/Documents/dev/drools-trunk/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)<='_')||input.LA(1)=='|' ) {
@@ -2320,8 +2315,8 @@
 
     // $ANTLR start synpred1_DRL
     public final void synpred1_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:14: ( '\\r\\n' )
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:16: '\\r\\n'
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:14: ( '\\r\\n' )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:16: '\\r\\n'
         {
         match("\r\n"); if (state.failed) return ;
 

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1,4 +1,4 @@
-// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-11-24 10:27:35
+// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-11-24 14:42:03
 
 	package org.drools.lang;
 	
@@ -18,135 +18,130 @@
 
 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_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", "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_CONTAINS", "VK_MATCHES", "VK_EXCLUDES", "VK_SOUNDSLIKE", "VK_MEMBEROF", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EXISTS", "VK_FORALL", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "SEMICOLON", "ID", "DOT", "DOT_STAR", "END", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "INIT", "COLLECT", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "GRAVE_ACCENT", "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_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", "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_EXISTS", "VK_FORALL", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "SEMICOLON", "ID", "DOT", "DOT_STAR", "END", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "INIT", "COLLECT", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "GRAVE_ACCENT", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
     };
-    public static final int COMMA=91;
+    public static final int COMMA=86;
     public static final int VT_PATTERN_TYPE=39;
     public static final int VT_ACCUMULATE_ID_CLAUSE=28;
     public static final int VK_DIALECT=54;
     public static final int VK_FUNCTION=65;
-    public static final int END=88;
-    public static final int HexDigit=124;
+    public static final int END=83;
+    public static final int HexDigit=119;
     public static final int VK_ATTRIBUTES=57;
     public static final int VT_EXPRESSION_CHAIN=30;
-    public static final int MISC=120;
+    public static final int MISC=115;
     public static final int VT_AND_PREFIX=23;
     public static final int VK_QUERY=63;
-    public static final int THEN=117;
+    public static final int THEN=112;
     public static final int VK_AUTO_FOCUS=49;
-    public static final int DOT=86;
+    public static final int DOT=81;
     public static final int VK_IMPORT=60;
     public static final int VT_SLOT=15;
     public static final int VT_PACKAGE_ID=40;
-    public static final int LEFT_SQUARE=115;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=128;
+    public static final int LEFT_SQUARE=110;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=123;
     public static final int VT_DATA_TYPE=38;
     public static final int VT_FACT=6;
-    public static final int VK_MATCHES=69;
-    public static final int LEFT_CURLY=118;
-    public static final int AT=93;
-    public static final int DOUBLE_AMPER=100;
-    public static final int LEFT_PAREN=90;
+    public static final int LEFT_CURLY=113;
+    public static final int AT=88;
+    public static final int DOUBLE_AMPER=95;
+    public static final int LEFT_PAREN=85;
     public static final int VT_QUERY_ID=9;
     public static final int VT_ACCESSOR_PATH=36;
     public static final int VT_LABEL=8;
-    public static final int WHEN=96;
+    public static final int WHEN=91;
     public static final int VT_ENTRYPOINT_ID=13;
-    public static final int WS=122;
+    public static final int WS=117;
     public static final int VT_FIELD=35;
     public static final int VK_SALIENCE=55;
-    public static final int VK_SOUNDSLIKE=71;
-    public static final int OVER=102;
-    public static final int VK_AND=77;
-    public static final int STRING=89;
+    public static final int OVER=97;
+    public static final int VK_AND=72;
+    public static final int STRING=84;
     public static final int VT_ACCESSOR_ELEMENT=37;
     public static final int VT_ACCUMULATE_INIT_CLAUSE=27;
     public static final int VK_GLOBAL=66;
-    public static final int VK_REVERSE=81;
+    public static final int VK_REVERSE=76;
     public static final int VT_BEHAVIOR=21;
-    public static final int GRAVE_ACCENT=127;
+    public static final int GRAVE_ACCENT=122;
     public static final int VK_DURATION=53;
     public static final int VT_SQUARE_CHUNK=19;
-    public static final int VK_FORALL=79;
+    public static final int VK_FORALL=74;
     public static final int VT_PAREN_CHUNK=20;
     public static final int VT_COMPILATION_UNIT=4;
-    public static final int COLLECT=105;
+    public static final int COLLECT=100;
     public static final int VK_ENABLED=56;
-    public static final int EQUALS=95;
-    public static final int VK_RESULT=82;
-    public static final int UnicodeEscape=125;
+    public static final int VK_RESULT=77;
+    public static final int EQUALS=90;
+    public static final int UnicodeEscape=120;
     public static final int VK_PACKAGE=61;
     public static final int VT_RULE_ID=12;
-    public static final int EQUAL=107;
+    public static final int EQUAL=102;
     public static final int VK_NO_LOOP=48;
-    public static final int SEMICOLON=84;
+    public static final int SEMICOLON=79;
     public static final int VK_TEMPLATE=62;
     public static final int VT_AND_IMPLICIT=22;
-    public static final int NULL=114;
-    public static final int COLON=94;
-    public static final int MULTI_LINE_COMMENT=130;
+    public static final int NULL=109;
+    public static final int COLON=89;
+    public static final int MULTI_LINE_COMMENT=125;
     public static final int VT_RULE_ATTRIBUTES=16;
-    public static final int RIGHT_SQUARE=116;
+    public static final int RIGHT_SQUARE=111;
     public static final int VK_AGENDA_GROUP=51;
     public static final int VT_FACT_OR=33;
-    public static final int VK_NOT=74;
+    public static final int VK_NOT=69;
     public static final int VK_DATE_EXPIRES=46;
-    public static final int ARROW=106;
-    public static final int FLOAT=113;
-    public static final int INIT=104;
+    public static final int ARROW=101;
+    public static final int FLOAT=108;
+    public static final int INIT=99;
     public static final int VK_EXTEND=59;
     public static final int VT_SLOT_ID=14;
     public static final int VT_CURLY_CHUNK=18;
     public static final int VT_OR_PREFIX=24;
-    public static final int DOUBLE_PIPE=99;
-    public static final int LESS=110;
+    public static final int DOUBLE_PIPE=94;
+    public static final int LESS=105;
     public static final int VT_TYPE_DECLARE_ID=11;
     public static final int VT_PATTERN=31;
     public static final int VK_DATE_EFFECTIVE=45;
-    public static final int EscapeSequence=123;
-    public static final int VK_EXISTS=78;
-    public static final int INT=98;
+    public static final int EscapeSequence=118;
+    public static final int VK_EXISTS=73;
+    public static final int INT=93;
     public static final int VT_BIND_FIELD=34;
     public static final int VK_RULE=58;
     public static final int VK_EVAL=67;
-    public static final int GREATER=108;
+    public static final int GREATER=103;
     public static final int VT_FACT_BINDING=32;
-    public static final int FROM=101;
-    public static final int ID=85;
-    public static final int NOT_EQUAL=112;
-    public static final int RIGHT_CURLY=119;
-    public static final int VK_OPERATOR=83;
-    public static final int BOOL=97;
+    public static final int FROM=96;
+    public static final int ID=80;
+    public static final int NOT_EQUAL=107;
+    public static final int RIGHT_CURLY=114;
+    public static final int VK_OPERATOR=78;
+    public static final int BOOL=92;
     public static final int VT_AND_INFIX=25;
     public static final int VT_PARAM_LIST=44;
-    public static final int VK_ENTRY_POINT=73;
+    public static final int VK_ENTRY_POINT=68;
     public static final int VT_FROM_SOURCE=29;
     public static final int VK_LOCK_ON_ACTIVE=47;
-    public static final int VK_CONTAINS=68;
     public static final int VT_FUNCTION_IMPORT=5;
-    public static final int VK_IN=75;
+    public static final int VK_IN=70;
     public static final int VT_RHS_CHUNK=17;
-    public static final int GREATER_EQUAL=109;
-    public static final int VK_MEMBEROF=72;
+    public static final int GREATER_EQUAL=104;
     public static final int VT_OR_INFIX=26;
-    public static final int DOT_STAR=87;
-    public static final int VK_OR=76;
+    public static final int DOT_STAR=82;
+    public static final int VK_OR=71;
     public static final int VT_GLOBAL_ID=42;
-    public static final int LESS_EQUAL=111;
-    public static final int ACCUMULATE=103;
+    public static final int LESS_EQUAL=106;
+    public static final int ACCUMULATE=98;
     public static final int VK_RULEFLOW_GROUP=52;
     public static final int VT_FUNCTION_ID=43;
     public static final int EOF=-1;
     public static final int VT_CONSTRAINTS=7;
-    public static final int EOL=121;
+    public static final int EOL=116;
     public static final int VT_IMPORT_ID=41;
     public static final int VK_ACTIVATION_GROUP=50;
-    public static final int OctalEscape=126;
-    public static final int VK_ACTION=80;
-    public static final int VK_EXCLUDES=70;
-    public static final int RIGHT_PAREN=92;
+    public static final int OctalEscape=121;
+    public static final int VK_ACTION=75;
+    public static final int RIGHT_PAREN=87;
     public static final int VT_TEMPLATE_ID=10;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=129;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=124;
     public static final int VK_DECLARE=64;
 
     // delegates
@@ -274,7 +269,7 @@
     	
     	private boolean isPluggableEvaluator( int offset, boolean negated ) {
     		String text2Validate = retrieveLT( offset );
-    	    return text2Validate == null ? false : DroolsSoftKeywords.isOperator( text2Validate, negated );
+    	        return text2Validate == null ? false : DroolsSoftKeywords.isOperator( text2Validate, negated );
     	}
     	
     	private boolean isPluggableEvaluator( boolean negated ) {
@@ -429,7 +424,7 @@
     };
 
     // $ANTLR start "compilation_unit"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:398:1: compilation_unit : ( package_statement )? ( statement )* EOF -> ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:1: compilation_unit : ( package_statement )? ( statement )* EOF -> ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* ) ;
     public final DRLParser.compilation_unit_return compilation_unit() throws RecognitionException {
         DRLParser.compilation_unit_return retval = new DRLParser.compilation_unit_return();
         retval.start = input.LT(1);
@@ -447,17 +442,17 @@
         RewriteRuleSubtreeStream stream_package_statement=new RewriteRuleSubtreeStream(adaptor,"rule package_statement");
         RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:399:2: ( ( package_statement )? ( statement )* EOF -> ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:399:4: ( package_statement )? ( statement )* EOF
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:394:2: ( ( package_statement )? ( statement )* EOF -> ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:394:4: ( package_statement )? ( statement )* EOF
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:399:4: ( package_statement )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:394:4: ( package_statement )?
             int alt1=2;
             alt1 = dfa1.predict(input);
             switch (alt1) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:399:4: package_statement
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:394:4: package_statement
                     {
-                    pushFollow(FOLLOW_package_statement_in_compilation_unit396);
+                    pushFollow(FOLLOW_package_statement_in_compilation_unit376);
                     package_statement1=package_statement();
 
                     state._fsp--;
@@ -469,7 +464,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:400:3: ( statement )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:395:3: ( statement )*
             loop2:
             do {
                 int alt2=2;
@@ -482,9 +477,9 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:400:3: statement
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:395:3: statement
             	    {
-            	    pushFollow(FOLLOW_statement_in_compilation_unit401);
+            	    pushFollow(FOLLOW_statement_in_compilation_unit381);
             	    statement2=statement();
 
             	    state._fsp--;
@@ -499,13 +494,13 @@
                 }
             } while (true);
 
-            EOF3=(Token)match(input,EOF,FOLLOW_EOF_in_compilation_unit406); if (state.failed) return retval; 
+            EOF3=(Token)match(input,EOF,FOLLOW_EOF_in_compilation_unit386); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_EOF.add(EOF3);
 
 
 
             // AST REWRITE
-            // elements: package_statement, statement
+            // elements: statement, package_statement
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -515,20 +510,20 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 402:3: -> ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* )
+            // 397:3: -> ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:402:6: ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:397:6: ^( VT_COMPILATION_UNIT ( package_statement )? ( statement )* )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_COMPILATION_UNIT, "VT_COMPILATION_UNIT"), root_1);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:402:28: ( package_statement )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:397:28: ( package_statement )?
                 if ( stream_package_statement.hasNext() ) {
                     adaptor.addChild(root_1, stream_package_statement.nextTree());
 
                 }
                 stream_package_statement.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:402:47: ( statement )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:397:47: ( statement )*
                 while ( stream_statement.hasNext() ) {
                     adaptor.addChild(root_1, stream_statement.nextTree());
 
@@ -603,7 +598,7 @@
     };
 
     // $ANTLR start "package_statement"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:441:1: package_statement : package_key package_id ( SEMICOLON )? -> ^( package_key package_id ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:436:1: package_statement : package_key package_id ( SEMICOLON )? -> ^( package_key package_id ) ;
     public final DRLParser.package_statement_return package_statement() throws RecognitionException {
         DRLParser.package_statement_return retval = new DRLParser.package_statement_return();
         retval.start = input.LT(1);
@@ -622,22 +617,22 @@
         RewriteRuleSubtreeStream stream_package_id=new RewriteRuleSubtreeStream(adaptor,"rule package_id");
          pushParaphrases(DroolsParaphraseTypes.PACKAGE); if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.PACKAGE); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:444:2: ( package_key package_id ( SEMICOLON )? -> ^( package_key package_id ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:444:4: package_key package_id ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:439:2: ( package_key package_id ( SEMICOLON )? -> ^( package_key package_id ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:439:4: package_key package_id ( SEMICOLON )?
             {
-            pushFollow(FOLLOW_package_key_in_package_statement461);
+            pushFollow(FOLLOW_package_key_in_package_statement441);
             package_key4=package_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_package_key.add(package_key4.getTree());
-            pushFollow(FOLLOW_package_id_in_package_statement465);
+            pushFollow(FOLLOW_package_id_in_package_statement445);
             package_id5=package_id();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_package_id.add(package_id5.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:445:14: ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:440:14: ( SEMICOLON )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -646,9 +641,9 @@
             }
             switch (alt3) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:445:14: SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:440:14: SEMICOLON
                     {
-                    SEMICOLON6=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_package_statement467); if (state.failed) return retval; 
+                    SEMICOLON6=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_package_statement447); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON6);
 
 
@@ -673,9 +668,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 447:3: -> ^( package_key package_id )
+            // 442:3: -> ^( package_key package_id )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:447:6: ^( package_key package_id )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:442:6: ^( package_key package_id )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_package_key.nextNode(), root_1);
@@ -719,7 +714,7 @@
     };
 
     // $ANTLR start "package_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:450:1: package_id : id+= ID (id+= DOT id+= ID )* -> ^( VT_PACKAGE_ID ( ID )+ ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:445:1: package_id : id+= ID (id+= DOT id+= ID )* -> ^( VT_PACKAGE_ID ( ID )+ ) ;
     public final DRLParser.package_id_return package_id() throws RecognitionException {
         DRLParser.package_id_return retval = new DRLParser.package_id_return();
         retval.start = input.LT(1);
@@ -734,16 +729,16 @@
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:451:2: (id+= ID (id+= DOT id+= ID )* -> ^( VT_PACKAGE_ID ( ID )+ ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:451:4: id+= ID (id+= DOT id+= ID )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:446:2: (id+= ID (id+= DOT id+= ID )* -> ^( VT_PACKAGE_ID ( ID )+ ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:446:4: id+= ID (id+= DOT id+= ID )*
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_package_id494); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_package_id474); 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);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:451:11: (id+= DOT id+= ID )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:446:11: (id+= DOT id+= ID )*
             loop4:
             do {
                 int alt4=2;
@@ -756,15 +751,15 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:451:13: id+= DOT id+= ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:446:13: id+= DOT id+= ID
             	    {
-            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_package_id500); if (state.failed) return retval; 
+            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_package_id480); 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_package_id504); if (state.failed) return retval; 
+            	    id=(Token)match(input,ID,FOLLOW_ID_in_package_id484); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_ID.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
@@ -796,9 +791,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 454:3: -> ^( VT_PACKAGE_ID ( ID )+ )
+            // 449:3: -> ^( VT_PACKAGE_ID ( ID )+ )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:454:6: ^( VT_PACKAGE_ID ( ID )+ )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:449:6: ^( VT_PACKAGE_ID ( ID )+ )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PACKAGE_ID, "VT_PACKAGE_ID"), root_1);
@@ -846,7 +841,7 @@
     };
 
     // $ANTLR start "statement"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:457:1: statement options {k=2; } : ( rule_attribute | {...}? => function_import_statement | import_statement | global | function | {...}? => template | {...}? => type_declaration | rule | query );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:452:1: statement options {k=2; } : ( rule_attribute | {...}? => function_import_statement | import_statement | global | function | {...}? => template | {...}? => type_declaration | rule | query );
     public final DRLParser.statement_return statement() throws RecognitionException {
         DRLParser.statement_return retval = new DRLParser.statement_return();
         retval.start = input.LT(1);
@@ -874,16 +869,16 @@
 
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:460:3: ( rule_attribute | {...}? => function_import_statement | import_statement | global | function | {...}? => template | {...}? => type_declaration | rule | query )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:455:3: ( rule_attribute | {...}? => function_import_statement | import_statement | global | function | {...}? => template | {...}? => type_declaration | rule | query )
             int alt5=9;
             alt5 = dfa5.predict(input);
             switch (alt5) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:460:5: rule_attribute
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:455:5: rule_attribute
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_rule_attribute_in_statement542);
+                    pushFollow(FOLLOW_rule_attribute_in_statement522);
                     rule_attribute7=rule_attribute();
 
                     state._fsp--;
@@ -893,7 +888,7 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:461:3: {...}? => function_import_statement
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:456:3: {...}? => function_import_statement
                     {
                     root_0 = (Object)adaptor.nil();
 
@@ -901,7 +896,7 @@
                         if (state.backtracking>0) {state.failed=true; return retval;}
                         throw new FailedPredicateException(input, "statement", "(validateLT(1, \"import\") && validateLT(2, \"function\") )");
                     }
-                    pushFollow(FOLLOW_function_import_statement_in_statement549);
+                    pushFollow(FOLLOW_function_import_statement_in_statement529);
                     function_import_statement8=function_import_statement();
 
                     state._fsp--;
@@ -911,11 +906,11 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:462:4: import_statement
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:457:4: import_statement
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_import_statement_in_statement555);
+                    pushFollow(FOLLOW_import_statement_in_statement535);
                     import_statement9=import_statement();
 
                     state._fsp--;
@@ -925,11 +920,11 @@
                     }
                     break;
                 case 4 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:463:4: global
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:458:4: global
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_global_in_statement561);
+                    pushFollow(FOLLOW_global_in_statement541);
                     global10=global();
 
                     state._fsp--;
@@ -939,11 +934,11 @@
                     }
                     break;
                 case 5 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:464:4: function
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:459:4: function
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_function_in_statement567);
+                    pushFollow(FOLLOW_function_in_statement547);
                     function11=function();
 
                     state._fsp--;
@@ -953,7 +948,7 @@
                     }
                     break;
                 case 6 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:465:4: {...}? => template
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:460:4: {...}? => template
                     {
                     root_0 = (Object)adaptor.nil();
 
@@ -961,7 +956,7 @@
                         if (state.backtracking>0) {state.failed=true; return retval;}
                         throw new FailedPredicateException(input, "statement", "(validateLT(1, DroolsSoftKeywords.TEMPLATE))");
                     }
-                    pushFollow(FOLLOW_template_in_statement575);
+                    pushFollow(FOLLOW_template_in_statement555);
                     template12=template();
 
                     state._fsp--;
@@ -971,7 +966,7 @@
                     }
                     break;
                 case 7 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:466:4: {...}? => type_declaration
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:461:4: {...}? => type_declaration
                     {
                     root_0 = (Object)adaptor.nil();
 
@@ -979,7 +974,7 @@
                         if (state.backtracking>0) {state.failed=true; return retval;}
                         throw new FailedPredicateException(input, "statement", "(validateLT(1, DroolsSoftKeywords.DECLARE))");
                     }
-                    pushFollow(FOLLOW_type_declaration_in_statement583);
+                    pushFollow(FOLLOW_type_declaration_in_statement563);
                     type_declaration13=type_declaration();
 
                     state._fsp--;
@@ -989,11 +984,11 @@
                     }
                     break;
                 case 8 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:467:4: rule
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:462:4: rule
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_rule_in_statement588);
+                    pushFollow(FOLLOW_rule_in_statement568);
                     rule14=rule();
 
                     state._fsp--;
@@ -1003,11 +998,11 @@
                     }
                     break;
                 case 9 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:468:4: query
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:463:4: query
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_query_in_statement593);
+                    pushFollow(FOLLOW_query_in_statement573);
                     query15=query();
 
                     state._fsp--;
@@ -1044,7 +1039,7 @@
     };
 
     // $ANTLR start "import_statement"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:471:1: import_statement : import_key import_name[DroolsParaphraseTypes.IMPORT] ( SEMICOLON )? -> ^( import_key import_name ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:466:1: import_statement : import_key import_name[DroolsParaphraseTypes.IMPORT] ( SEMICOLON )? -> ^( import_key import_name ) ;
     public final DRLParser.import_statement_return import_statement() throws RecognitionException {
         DRLParser.import_statement_return retval = new DRLParser.import_statement_return();
         retval.start = input.LT(1);
@@ -1063,22 +1058,22 @@
         RewriteRuleSubtreeStream stream_import_name=new RewriteRuleSubtreeStream(adaptor,"rule import_name");
          pushParaphrases(DroolsParaphraseTypes.IMPORT); if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.IMPORT_STATEMENT);  
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:474:2: ( import_key import_name[DroolsParaphraseTypes.IMPORT] ( SEMICOLON )? -> ^( import_key import_name ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:474:4: import_key import_name[DroolsParaphraseTypes.IMPORT] ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:469:2: ( import_key import_name[DroolsParaphraseTypes.IMPORT] ( SEMICOLON )? -> ^( import_key import_name ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:469:4: import_key import_name[DroolsParaphraseTypes.IMPORT] ( SEMICOLON )?
             {
-            pushFollow(FOLLOW_import_key_in_import_statement615);
+            pushFollow(FOLLOW_import_key_in_import_statement595);
             import_key16=import_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_import_key.add(import_key16.getTree());
-            pushFollow(FOLLOW_import_name_in_import_statement617);
+            pushFollow(FOLLOW_import_name_in_import_statement597);
             import_name17=import_name(DroolsParaphraseTypes.IMPORT);
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_import_name.add(import_name17.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:474:57: ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:469:57: ( SEMICOLON )?
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -1087,9 +1082,9 @@
             }
             switch (alt6) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:474:57: SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:469:57: SEMICOLON
                     {
-                    SEMICOLON18=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_import_statement620); if (state.failed) return retval; 
+                    SEMICOLON18=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_import_statement600); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON18);
 
 
@@ -1104,7 +1099,7 @@
 
 
             // AST REWRITE
-            // elements: import_name, import_key
+            // elements: import_key, import_name
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1114,9 +1109,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 476:3: -> ^( import_key import_name )
+            // 471:3: -> ^( import_key import_name )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:476:6: ^( import_key import_name )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:471:6: ^( import_key import_name )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_import_key.nextNode(), root_1);
@@ -1160,7 +1155,7 @@
     };
 
     // $ANTLR start "function_import_statement"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:479:1: function_import_statement : imp= import_key function_key import_name[DroolsParaphraseTypes.FUNCTION_IMPORT] ( SEMICOLON )? -> ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:474:1: function_import_statement : imp= import_key function_key import_name[DroolsParaphraseTypes.FUNCTION_IMPORT] ( SEMICOLON )? -> ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name ) ;
     public final DRLParser.function_import_statement_return function_import_statement() throws RecognitionException {
         DRLParser.function_import_statement_return retval = new DRLParser.function_import_statement_return();
         retval.start = input.LT(1);
@@ -1182,28 +1177,28 @@
         RewriteRuleSubtreeStream stream_import_name=new RewriteRuleSubtreeStream(adaptor,"rule import_name");
          pushParaphrases(DroolsParaphraseTypes.FUNCTION_IMPORT); if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.FUNCTION_IMPORT_STATEMENT); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:482:2: (imp= import_key function_key import_name[DroolsParaphraseTypes.FUNCTION_IMPORT] ( SEMICOLON )? -> ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:482:4: imp= import_key function_key import_name[DroolsParaphraseTypes.FUNCTION_IMPORT] ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:477:2: (imp= import_key function_key import_name[DroolsParaphraseTypes.FUNCTION_IMPORT] ( SEMICOLON )? -> ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:477:4: imp= import_key function_key import_name[DroolsParaphraseTypes.FUNCTION_IMPORT] ( SEMICOLON )?
             {
-            pushFollow(FOLLOW_import_key_in_function_import_statement658);
+            pushFollow(FOLLOW_import_key_in_function_import_statement638);
             imp=import_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_import_key.add(imp.getTree());
-            pushFollow(FOLLOW_function_key_in_function_import_statement660);
+            pushFollow(FOLLOW_function_key_in_function_import_statement640);
             function_key19=function_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_function_key.add(function_key19.getTree());
-            pushFollow(FOLLOW_import_name_in_function_import_statement662);
+            pushFollow(FOLLOW_import_name_in_function_import_statement642);
             import_name20=import_name(DroolsParaphraseTypes.FUNCTION_IMPORT);
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_import_name.add(import_name20.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:482:83: ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:477:83: ( SEMICOLON )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -1212,9 +1207,9 @@
             }
             switch (alt7) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:482:83: SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:477:83: SEMICOLON
                     {
-                    SEMICOLON21=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_function_import_statement665); if (state.failed) return retval; 
+                    SEMICOLON21=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_function_import_statement645); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON21);
 
 
@@ -1229,7 +1224,7 @@
 
 
             // AST REWRITE
-            // elements: import_name, function_key
+            // elements: function_key, import_name
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1239,9 +1234,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 484:3: -> ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name )
+            // 479:3: -> ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:484:6: ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:479:6: ^( VT_FUNCTION_IMPORT[$imp.start] function_key import_name )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_FUNCTION_IMPORT, (imp!=null?((Token)imp.start):null)), root_1);
@@ -1286,7 +1281,7 @@
     };
 
     // $ANTLR start "import_name"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:487:1: import_name[DroolsParaphraseTypes importType] : id+= ID (id+= DOT id+= ID )* (id+= DOT_STAR )? -> ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:482:1: import_name[DroolsParaphraseTypes importType] : id+= ID (id+= DOT id+= ID )* (id+= DOT_STAR )? -> ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? ) ;
     public final DRLParser.import_name_return import_name(DroolsParaphraseTypes importType) throws RecognitionException {
         DRLParser.import_name_return retval = new DRLParser.import_name_return();
         retval.start = input.LT(1);
@@ -1302,16 +1297,16 @@
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:488:2: (id+= ID (id+= DOT id+= ID )* (id+= DOT_STAR )? -> ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:488:4: id+= ID (id+= DOT id+= ID )* (id+= DOT_STAR )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:483:2: (id+= ID (id+= DOT id+= ID )* (id+= DOT_STAR )? -> ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:483:4: id+= ID (id+= DOT id+= ID )* (id+= DOT_STAR )?
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_import_name699); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_import_name679); 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);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:488:11: (id+= DOT id+= ID )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:483:11: (id+= DOT id+= ID )*
             loop8:
             do {
                 int alt8=2;
@@ -1324,15 +1319,15 @@
 
                 switch (alt8) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:488:13: id+= DOT id+= ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:483:13: id+= DOT id+= ID
             	    {
-            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_import_name705); if (state.failed) return retval; 
+            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_import_name685); 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_import_name709); if (state.failed) return retval; 
+            	    id=(Token)match(input,ID,FOLLOW_ID_in_import_name689); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_ID.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
@@ -1347,7 +1342,7 @@
                 }
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:488:33: (id+= DOT_STAR )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:483:33: (id+= DOT_STAR )?
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -1356,9 +1351,9 @@
             }
             switch (alt9) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:488:33: id+= DOT_STAR
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:483:33: id+= DOT_STAR
                     {
-                    id=(Token)match(input,DOT_STAR,FOLLOW_DOT_STAR_in_import_name716); if (state.failed) return retval; 
+                    id=(Token)match(input,DOT_STAR,FOLLOW_DOT_STAR_in_import_name696); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_DOT_STAR.add(id);
 
                     if (list_id==null) list_id=new ArrayList();
@@ -1377,7 +1372,7 @@
 
 
             // AST REWRITE
-            // elements: DOT_STAR, ID
+            // elements: ID, DOT_STAR
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1387,9 +1382,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 491:3: -> ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? )
+            // 486:3: -> ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:6: ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:486:6: ^( VT_IMPORT_ID ( ID )+ ( DOT_STAR )? )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_IMPORT_ID, "VT_IMPORT_ID"), root_1);
@@ -1402,7 +1397,7 @@
 
                 }
                 stream_ID.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:25: ( DOT_STAR )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:486:25: ( DOT_STAR )?
                 if ( stream_DOT_STAR.hasNext() ) {
                     adaptor.addChild(root_1, stream_DOT_STAR.nextNode());
 
@@ -1443,7 +1438,7 @@
     };
 
     // $ANTLR start "global"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:494:1: global : global_key data_type global_id ( SEMICOLON )? -> ^( global_key data_type global_id ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:489:1: global : global_key data_type global_id ( SEMICOLON )? -> ^( global_key data_type global_id ) ;
     public final DRLParser.global_return global() throws RecognitionException {
         DRLParser.global_return retval = new DRLParser.global_return();
         retval.start = input.LT(1);
@@ -1465,28 +1460,28 @@
         RewriteRuleSubtreeStream stream_global_key=new RewriteRuleSubtreeStream(adaptor,"rule global_key");
          pushParaphrases(DroolsParaphraseTypes.GLOBAL);  if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.GLOBAL); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:497:2: ( global_key data_type global_id ( SEMICOLON )? -> ^( global_key data_type global_id ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:497:4: global_key data_type global_id ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:492:2: ( global_key data_type global_id ( SEMICOLON )? -> ^( global_key data_type global_id ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:492:4: global_key data_type global_id ( SEMICOLON )?
             {
-            pushFollow(FOLLOW_global_key_in_global756);
+            pushFollow(FOLLOW_global_key_in_global736);
             global_key22=global_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_global_key.add(global_key22.getTree());
-            pushFollow(FOLLOW_data_type_in_global758);
+            pushFollow(FOLLOW_data_type_in_global738);
             data_type23=data_type();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_data_type.add(data_type23.getTree());
-            pushFollow(FOLLOW_global_id_in_global760);
+            pushFollow(FOLLOW_global_id_in_global740);
             global_id24=global_id();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_global_id.add(global_id24.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:497:35: ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:492:35: ( SEMICOLON )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1495,9 +1490,9 @@
             }
             switch (alt10) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:497:35: SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:492:35: SEMICOLON
                     {
-                    SEMICOLON25=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_global762); if (state.failed) return retval; 
+                    SEMICOLON25=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_global742); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON25);
 
 
@@ -1512,7 +1507,7 @@
 
 
             // AST REWRITE
-            // elements: global_id, global_key, data_type
+            // elements: global_id, data_type, global_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1522,9 +1517,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 499:3: -> ^( global_key data_type global_id )
+            // 494:3: -> ^( global_key data_type global_id )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:499:6: ^( global_key data_type global_id )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:494:6: ^( global_key data_type global_id )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_global_key.nextNode(), root_1);
@@ -1569,7 +1564,7 @@
     };
 
     // $ANTLR start "global_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:502:1: global_id : id= ID -> VT_GLOBAL_ID[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:497:1: global_id : id= ID -> VT_GLOBAL_ID[$id] ;
     public final DRLParser.global_id_return global_id() throws RecognitionException {
         DRLParser.global_id_return retval = new DRLParser.global_id_return();
         retval.start = input.LT(1);
@@ -1582,10 +1577,10 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:503:2: (id= ID -> VT_GLOBAL_ID[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:503:4: id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:498:2: (id= ID -> VT_GLOBAL_ID[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:498:4: id= ID
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_global_id791); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_global_id771); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -1605,7 +1600,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 506:3: -> VT_GLOBAL_ID[$id]
+            // 501:3: -> VT_GLOBAL_ID[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_GLOBAL_ID, id));
 
@@ -1640,7 +1635,7 @@
     };
 
     // $ANTLR start "function"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:509:1: function : function_key ( data_type )? function_id parameters curly_chunk -> ^( function_key ( data_type )? function_id parameters curly_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:504:1: function : function_key ( data_type )? function_id parameters curly_chunk -> ^( function_key ( data_type )? function_id parameters curly_chunk ) ;
     public final DRLParser.function_return function() throws RecognitionException {
         DRLParser.function_return retval = new DRLParser.function_return();
         retval.start = input.LT(1);
@@ -1665,16 +1660,16 @@
         RewriteRuleSubtreeStream stream_function_id=new RewriteRuleSubtreeStream(adaptor,"rule function_id");
          pushParaphrases(DroolsParaphraseTypes.FUNCTION); if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.FUNCTION);  
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:2: ( function_key ( data_type )? function_id parameters curly_chunk -> ^( function_key ( data_type )? function_id parameters curly_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:4: function_key ( data_type )? function_id parameters curly_chunk
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:507:2: ( function_key ( data_type )? function_id parameters curly_chunk -> ^( function_key ( data_type )? function_id parameters curly_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:507:4: function_key ( data_type )? function_id parameters curly_chunk
             {
-            pushFollow(FOLLOW_function_key_in_function823);
+            pushFollow(FOLLOW_function_key_in_function803);
             function_key26=function_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_function_key.add(function_key26.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:17: ( data_type )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:507:17: ( data_type )?
             int alt11=2;
             int LA11_0 = input.LA(1);
 
@@ -1687,9 +1682,9 @@
             }
             switch (alt11) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:17: data_type
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:507:17: data_type
                     {
-                    pushFollow(FOLLOW_data_type_in_function825);
+                    pushFollow(FOLLOW_data_type_in_function805);
                     data_type27=data_type();
 
                     state._fsp--;
@@ -1701,19 +1696,19 @@
 
             }
 
-            pushFollow(FOLLOW_function_id_in_function828);
+            pushFollow(FOLLOW_function_id_in_function808);
             function_id28=function_id();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_function_id.add(function_id28.getTree());
-            pushFollow(FOLLOW_parameters_in_function830);
+            pushFollow(FOLLOW_parameters_in_function810);
             parameters29=parameters();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_parameters.add(parameters29.getTree());
-            pushFollow(FOLLOW_curly_chunk_in_function832);
+            pushFollow(FOLLOW_curly_chunk_in_function812);
             curly_chunk30=curly_chunk();
 
             state._fsp--;
@@ -1722,7 +1717,7 @@
 
 
             // AST REWRITE
-            // elements: curly_chunk, function_id, function_key, data_type, parameters
+            // elements: curly_chunk, function_id, data_type, parameters, function_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1732,14 +1727,14 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 513:3: -> ^( function_key ( data_type )? function_id parameters curly_chunk )
+            // 508:3: -> ^( function_key ( data_type )? function_id parameters curly_chunk )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:6: ^( function_key ( data_type )? function_id parameters curly_chunk )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:508:6: ^( function_key ( data_type )? function_id parameters curly_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_function_key.nextNode(), root_1);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:21: ( data_type )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:508:21: ( data_type )?
                 if ( stream_data_type.hasNext() ) {
                     adaptor.addChild(root_1, stream_data_type.nextTree());
 
@@ -1786,7 +1781,7 @@
     };
 
     // $ANTLR start "function_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:516:1: function_id : id= ID -> VT_FUNCTION_ID[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:511:1: function_id : id= ID -> VT_FUNCTION_ID[$id] ;
     public final DRLParser.function_id_return function_id() throws RecognitionException {
         DRLParser.function_id_return retval = new DRLParser.function_id_return();
         retval.start = input.LT(1);
@@ -1799,10 +1794,10 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:517:2: (id= ID -> VT_FUNCTION_ID[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:517:4: id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:2: (id= ID -> VT_FUNCTION_ID[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:4: id= ID
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_function_id862); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_function_id842); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -1822,7 +1817,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 520:3: -> VT_FUNCTION_ID[$id]
+            // 515:3: -> VT_FUNCTION_ID[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_FUNCTION_ID, id));
 
@@ -1857,7 +1852,7 @@
     };
 
     // $ANTLR start "query"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:523:1: query : query_key query_id ( parameters )? normal_lhs_block END ( SEMICOLON )? -> ^( query_key query_id ( parameters )? normal_lhs_block END ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:518:1: query : query_key query_id ( parameters )? normal_lhs_block END ( SEMICOLON )? -> ^( query_key query_id ( parameters )? normal_lhs_block END ) ;
     public final DRLParser.query_return query() throws RecognitionException {
         DRLParser.query_return retval = new DRLParser.query_return();
         retval.start = input.LT(1);
@@ -1885,16 +1880,16 @@
         RewriteRuleSubtreeStream stream_query_id=new RewriteRuleSubtreeStream(adaptor,"rule query_id");
          pushParaphrases(DroolsParaphraseTypes.QUERY); if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.QUERY); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:526:2: ( query_key query_id ( parameters )? normal_lhs_block END ( SEMICOLON )? -> ^( query_key query_id ( parameters )? normal_lhs_block END ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:526:4: query_key query_id ( parameters )? normal_lhs_block END ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:2: ( query_key query_id ( parameters )? normal_lhs_block END ( SEMICOLON )? -> ^( query_key query_id ( parameters )? normal_lhs_block END ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:4: query_key query_id ( parameters )? normal_lhs_block END ( SEMICOLON )?
             {
-            pushFollow(FOLLOW_query_key_in_query894);
+            pushFollow(FOLLOW_query_key_in_query874);
             query_key31=query_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_query_key.add(query_key31.getTree());
-            pushFollow(FOLLOW_query_id_in_query896);
+            pushFollow(FOLLOW_query_id_in_query876);
             query_id32=query_id();
 
             state._fsp--;
@@ -1903,14 +1898,14 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:528:3: ( parameters )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:523:3: ( parameters )?
             int alt12=2;
             alt12 = dfa12.predict(input);
             switch (alt12) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:528:3: parameters
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:523:3: parameters
                     {
-                    pushFollow(FOLLOW_parameters_in_query904);
+                    pushFollow(FOLLOW_parameters_in_query884);
                     parameters33=parameters();
 
                     state._fsp--;
@@ -1925,16 +1920,16 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION);	
             }
-            pushFollow(FOLLOW_normal_lhs_block_in_query913);
+            pushFollow(FOLLOW_normal_lhs_block_in_query893);
             normal_lhs_block34=normal_lhs_block();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_normal_lhs_block.add(normal_lhs_block34.getTree());
-            END35=(Token)match(input,END,FOLLOW_END_in_query918); if (state.failed) return retval; 
+            END35=(Token)match(input,END,FOLLOW_END_in_query898); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_END.add(END35);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:531:7: ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:526:7: ( SEMICOLON )?
             int alt13=2;
             int LA13_0 = input.LA(1);
 
@@ -1943,9 +1938,9 @@
             }
             switch (alt13) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:531:7: SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:526:7: SEMICOLON
                     {
-                    SEMICOLON36=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_query920); if (state.failed) return retval; 
+                    SEMICOLON36=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_query900); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON36);
 
 
@@ -1961,7 +1956,7 @@
 
 
             // AST REWRITE
-            // elements: normal_lhs_block, query_id, END, parameters, query_key
+            // elements: query_key, normal_lhs_block, query_id, END, parameters
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -1971,15 +1966,15 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 534:3: -> ^( query_key query_id ( parameters )? normal_lhs_block END )
+            // 529:3: -> ^( query_key query_id ( parameters )? normal_lhs_block END )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:534:6: ^( query_key query_id ( parameters )? normal_lhs_block END )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:529:6: ^( query_key query_id ( parameters )? normal_lhs_block END )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_query_key.nextNode(), root_1);
 
                 adaptor.addChild(root_1, stream_query_id.nextTree());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:534:27: ( parameters )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:529:27: ( parameters )?
                 if ( stream_parameters.hasNext() ) {
                     adaptor.addChild(root_1, stream_parameters.nextTree());
 
@@ -2025,7 +2020,7 @@
     };
 
     // $ANTLR start "query_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:537:1: query_id : (id= ID -> VT_QUERY_ID[$id] | id= STRING -> VT_QUERY_ID[$id] );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:532:1: query_id : (id= ID -> VT_QUERY_ID[$id] | id= STRING -> VT_QUERY_ID[$id] );
     public final DRLParser.query_id_return query_id() throws RecognitionException {
         DRLParser.query_id_return retval = new DRLParser.query_id_return();
         retval.start = input.LT(1);
@@ -2039,7 +2034,7 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:538:2: (id= ID -> VT_QUERY_ID[$id] | id= STRING -> VT_QUERY_ID[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:533:2: (id= ID -> VT_QUERY_ID[$id] | id= STRING -> VT_QUERY_ID[$id] )
             int alt14=2;
             int LA14_0 = input.LA(1);
 
@@ -2058,9 +2053,9 @@
             }
             switch (alt14) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:538:5: id= ID
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:533:5: id= ID
                     {
-                    id=(Token)match(input,ID,FOLLOW_ID_in_query_id955); if (state.failed) return retval; 
+                    id=(Token)match(input,ID,FOLLOW_ID_in_query_id935); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_ID.add(id);
 
                     if ( state.backtracking==0 ) {
@@ -2080,7 +2075,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 540:65: -> VT_QUERY_ID[$id]
+                    // 535:65: -> VT_QUERY_ID[$id]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_QUERY_ID, id));
 
@@ -2090,9 +2085,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:541:5: id= STRING
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:5: id= STRING
                     {
-                    id=(Token)match(input,STRING,FOLLOW_STRING_in_query_id971); if (state.failed) return retval; 
+                    id=(Token)match(input,STRING,FOLLOW_STRING_in_query_id951); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_STRING.add(id);
 
                     if ( state.backtracking==0 ) {
@@ -2112,7 +2107,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 543:65: -> VT_QUERY_ID[$id]
+                    // 538:65: -> VT_QUERY_ID[$id]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_QUERY_ID, id));
 
@@ -2149,7 +2144,7 @@
     };
 
     // $ANTLR start "parameters"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:546:1: parameters : LEFT_PAREN ( param_definition ( COMMA param_definition )* )? RIGHT_PAREN -> ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:541:1: parameters : LEFT_PAREN ( param_definition ( COMMA param_definition )* )? RIGHT_PAREN -> ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN ) ;
     public final DRLParser.parameters_return parameters() throws RecognitionException {
         DRLParser.parameters_return retval = new DRLParser.parameters_return();
         retval.start = input.LT(1);
@@ -2172,16 +2167,16 @@
         RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
         RewriteRuleSubtreeStream stream_param_definition=new RewriteRuleSubtreeStream(adaptor,"rule param_definition");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:547:2: ( LEFT_PAREN ( param_definition ( COMMA param_definition )* )? RIGHT_PAREN -> ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:547:4: LEFT_PAREN ( param_definition ( COMMA param_definition )* )? RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:542:2: ( LEFT_PAREN ( param_definition ( COMMA param_definition )* )? RIGHT_PAREN -> ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:542:4: LEFT_PAREN ( param_definition ( COMMA param_definition )* )? RIGHT_PAREN
             {
-            LEFT_PAREN37=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_parameters990); if (state.failed) return retval; 
+            LEFT_PAREN37=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_parameters970); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN37);
 
             if ( state.backtracking==0 ) {
               	emit(LEFT_PAREN37, DroolsEditorType.SYMBOL);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:548:4: ( param_definition ( COMMA param_definition )* )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:543:4: ( param_definition ( COMMA param_definition )* )?
             int alt16=2;
             int LA16_0 = input.LA(1);
 
@@ -2190,15 +2185,15 @@
             }
             switch (alt16) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:548:6: param_definition ( COMMA param_definition )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:543:6: param_definition ( COMMA param_definition )*
                     {
-                    pushFollow(FOLLOW_param_definition_in_parameters999);
+                    pushFollow(FOLLOW_param_definition_in_parameters979);
                     param_definition38=param_definition();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_param_definition.add(param_definition38.getTree());
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:548:23: ( COMMA param_definition )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:543:23: ( COMMA param_definition )*
                     loop15:
                     do {
                         int alt15=2;
@@ -2211,15 +2206,15 @@
 
                         switch (alt15) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:548:24: COMMA param_definition
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:543:24: COMMA param_definition
                     	    {
-                    	    COMMA39=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameters1002); if (state.failed) return retval; 
+                    	    COMMA39=(Token)match(input,COMMA,FOLLOW_COMMA_in_parameters982); if (state.failed) return retval; 
                     	    if ( state.backtracking==0 ) stream_COMMA.add(COMMA39);
 
                     	    if ( state.backtracking==0 ) {
                     	      	emit(COMMA39, DroolsEditorType.SYMBOL);	
                     	    }
-                    	    pushFollow(FOLLOW_param_definition_in_parameters1006);
+                    	    pushFollow(FOLLOW_param_definition_in_parameters986);
                     	    param_definition40=param_definition();
 
                     	    state._fsp--;
@@ -2240,7 +2235,7 @@
 
             }
 
-            RIGHT_PAREN41=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_parameters1015); if (state.failed) return retval; 
+            RIGHT_PAREN41=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_parameters995); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN41);
 
             if ( state.backtracking==0 ) {
@@ -2259,14 +2254,14 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 550:3: -> ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN )
+            // 545:3: -> ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:550:6: ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:545:6: ^( VT_PARAM_LIST ( param_definition )* RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PARAM_LIST, "VT_PARAM_LIST"), root_1);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:550:22: ( param_definition )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:545:22: ( param_definition )*
                 while ( stream_param_definition.hasNext() ) {
                     adaptor.addChild(root_1, stream_param_definition.nextTree());
 
@@ -2308,7 +2303,7 @@
     };
 
     // $ANTLR start "param_definition"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:553:1: param_definition : ( data_type )? argument ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:548:1: param_definition : ( data_type )? argument ;
     public final DRLParser.param_definition_return param_definition() throws RecognitionException {
         DRLParser.param_definition_return retval = new DRLParser.param_definition_return();
         retval.start = input.LT(1);
@@ -2322,19 +2317,19 @@
 
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:2: ( ( data_type )? argument )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:4: ( data_type )? argument
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:549:2: ( ( data_type )? argument )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:549:4: ( data_type )? argument
             {
             root_0 = (Object)adaptor.nil();
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:4: ( data_type )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:549:4: ( data_type )?
             int alt17=2;
             alt17 = dfa17.predict(input);
             switch (alt17) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:4: data_type
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:549:4: data_type
                     {
-                    pushFollow(FOLLOW_data_type_in_param_definition1041);
+                    pushFollow(FOLLOW_data_type_in_param_definition1021);
                     data_type42=data_type();
 
                     state._fsp--;
@@ -2346,7 +2341,7 @@
 
             }
 
-            pushFollow(FOLLOW_argument_in_param_definition1044);
+            pushFollow(FOLLOW_argument_in_param_definition1024);
             argument43=argument();
 
             state._fsp--;
@@ -2381,7 +2376,7 @@
     };
 
     // $ANTLR start "argument"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:557:1: argument : ID ( dimension_definition )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:552:1: argument : ID ( dimension_definition )* ;
     public final DRLParser.argument_return argument() throws RecognitionException {
         DRLParser.argument_return retval = new DRLParser.argument_return();
         retval.start = input.LT(1);
@@ -2395,12 +2390,12 @@
         Object ID44_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:558:2: ( ID ( dimension_definition )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:558:4: ID ( dimension_definition )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:553:2: ( ID ( dimension_definition )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:553:4: ID ( dimension_definition )*
             {
             root_0 = (Object)adaptor.nil();
 
-            ID44=(Token)match(input,ID,FOLLOW_ID_in_argument1055); if (state.failed) return retval;
+            ID44=(Token)match(input,ID,FOLLOW_ID_in_argument1035); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             ID44_tree = (Object)adaptor.create(ID44);
             adaptor.addChild(root_0, ID44_tree);
@@ -2408,7 +2403,7 @@
             if ( state.backtracking==0 ) {
               	emit(ID44, DroolsEditorType.IDENTIFIER);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:559:3: ( dimension_definition )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:3: ( dimension_definition )*
             loop18:
             do {
                 int alt18=2;
@@ -2421,9 +2416,9 @@
 
                 switch (alt18) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:559:3: dimension_definition
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:3: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_argument1061);
+            	    pushFollow(FOLLOW_dimension_definition_in_argument1041);
             	    dimension_definition45=dimension_definition();
 
             	    state._fsp--;
@@ -2467,7 +2462,7 @@
     };
 
     // $ANTLR start "type_declaration"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:562:1: type_declaration : declare_key type_declare_id ( decl_metadata )* ( decl_field )* END -> ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:557:1: type_declaration : declare_key type_declare_id ( decl_metadata )* ( decl_field )* END -> ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END ) ;
     public final DRLParser.type_declaration_return type_declaration() throws RecognitionException {
         DRLParser.type_declaration_return retval = new DRLParser.type_declaration_return();
         retval.start = input.LT(1);
@@ -2492,22 +2487,22 @@
         RewriteRuleSubtreeStream stream_type_declare_id=new RewriteRuleSubtreeStream(adaptor,"rule type_declare_id");
          pushParaphrases(DroolsParaphraseTypes.TYPE_DECLARE); if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.TYPE_DECLARATION); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:565:2: ( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END -> ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:565:4: declare_key type_declare_id ( decl_metadata )* ( decl_field )* END
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:560:2: ( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END -> ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:560:4: declare_key type_declare_id ( decl_metadata )* ( decl_field )* END
             {
-            pushFollow(FOLLOW_declare_key_in_type_declaration1084);
+            pushFollow(FOLLOW_declare_key_in_type_declaration1064);
             declare_key46=declare_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_declare_key.add(declare_key46.getTree());
-            pushFollow(FOLLOW_type_declare_id_in_type_declaration1087);
+            pushFollow(FOLLOW_type_declare_id_in_type_declaration1067);
             type_declare_id47=type_declare_id();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_type_declare_id.add(type_declare_id47.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:566:3: ( decl_metadata )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:561:3: ( decl_metadata )*
             loop19:
             do {
                 int alt19=2;
@@ -2520,9 +2515,9 @@
 
                 switch (alt19) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:566:3: decl_metadata
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:561:3: decl_metadata
             	    {
-            	    pushFollow(FOLLOW_decl_metadata_in_type_declaration1091);
+            	    pushFollow(FOLLOW_decl_metadata_in_type_declaration1071);
             	    decl_metadata48=decl_metadata();
 
             	    state._fsp--;
@@ -2537,7 +2532,7 @@
                 }
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:567:3: ( decl_field )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:562:3: ( decl_field )*
             loop20:
             do {
                 int alt20=2;
@@ -2550,9 +2545,9 @@
 
                 switch (alt20) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:567:3: decl_field
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:562:3: decl_field
             	    {
-            	    pushFollow(FOLLOW_decl_field_in_type_declaration1096);
+            	    pushFollow(FOLLOW_decl_field_in_type_declaration1076);
             	    decl_field49=decl_field();
 
             	    state._fsp--;
@@ -2567,7 +2562,7 @@
                 }
             } while (true);
 
-            END50=(Token)match(input,END,FOLLOW_END_in_type_declaration1101); if (state.failed) return retval; 
+            END50=(Token)match(input,END,FOLLOW_END_in_type_declaration1081); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_END.add(END50);
 
             if ( state.backtracking==0 ) {
@@ -2576,7 +2571,7 @@
 
 
             // AST REWRITE
-            // elements: type_declare_id, declare_key, decl_metadata, decl_field, END
+            // elements: decl_metadata, END, type_declare_id, decl_field, declare_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2586,21 +2581,21 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 570:3: -> ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END )
+            // 565:3: -> ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:570:6: ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:565:6: ^( declare_key type_declare_id ( decl_metadata )* ( decl_field )* END )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_declare_key.nextNode(), root_1);
 
                 adaptor.addChild(root_1, stream_type_declare_id.nextTree());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:570:36: ( decl_metadata )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:565:36: ( decl_metadata )*
                 while ( stream_decl_metadata.hasNext() ) {
                     adaptor.addChild(root_1, stream_decl_metadata.nextTree());
 
                 }
                 stream_decl_metadata.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:570:51: ( decl_field )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:565:51: ( decl_field )*
                 while ( stream_decl_field.hasNext() ) {
                     adaptor.addChild(root_1, stream_decl_field.nextTree());
 
@@ -2645,7 +2640,7 @@
     };
 
     // $ANTLR start "type_declare_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:573:1: type_declare_id : id= ID -> VT_TYPE_DECLARE_ID[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:568:1: type_declare_id : id= ID -> VT_TYPE_DECLARE_ID[$id] ;
     public final DRLParser.type_declare_id_return type_declare_id() throws RecognitionException {
         DRLParser.type_declare_id_return retval = new DRLParser.type_declare_id_return();
         retval.start = input.LT(1);
@@ -2658,10 +2653,10 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:574:2: (id= ID -> VT_TYPE_DECLARE_ID[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:574:5: id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:569:2: (id= ID -> VT_TYPE_DECLARE_ID[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:569:5: id= ID
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_type_declare_id1136); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_type_declare_id1116); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -2681,7 +2676,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 576:72: -> VT_TYPE_DECLARE_ID[$id]
+            // 571:72: -> VT_TYPE_DECLARE_ID[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_TYPE_DECLARE_ID, id));
 
@@ -2716,7 +2711,7 @@
     };
 
     // $ANTLR start "decl_metadata"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:579:1: decl_metadata : AT ID paren_chunk -> ^( AT ID paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:574:1: decl_metadata : AT ID paren_chunk -> ^( AT ID paren_chunk ) ;
     public final DRLParser.decl_metadata_return decl_metadata() throws RecognitionException {
         DRLParser.decl_metadata_return retval = new DRLParser.decl_metadata_return();
         retval.start = input.LT(1);
@@ -2734,22 +2729,22 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:580:2: ( AT ID paren_chunk -> ^( AT ID paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:580:4: AT ID paren_chunk
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:575:2: ( AT ID paren_chunk -> ^( AT ID paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:575:4: AT ID paren_chunk
             {
-            AT51=(Token)match(input,AT,FOLLOW_AT_in_decl_metadata1155); if (state.failed) return retval; 
+            AT51=(Token)match(input,AT,FOLLOW_AT_in_decl_metadata1135); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_AT.add(AT51);
 
             if ( state.backtracking==0 ) {
               	emit(AT51, DroolsEditorType.SYMBOL);	
             }
-            ID52=(Token)match(input,ID,FOLLOW_ID_in_decl_metadata1163); if (state.failed) return retval; 
+            ID52=(Token)match(input,ID,FOLLOW_ID_in_decl_metadata1143); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(ID52);
 
             if ( state.backtracking==0 ) {
               	emit(ID52, DroolsEditorType.IDENTIFIER);	
             }
-            pushFollow(FOLLOW_paren_chunk_in_decl_metadata1170);
+            pushFollow(FOLLOW_paren_chunk_in_decl_metadata1150);
             paren_chunk53=paren_chunk();
 
             state._fsp--;
@@ -2758,7 +2753,7 @@
 
 
             // AST REWRITE
-            // elements: ID, AT, paren_chunk
+            // elements: ID, paren_chunk, AT
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2768,9 +2763,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 585:3: -> ^( AT ID paren_chunk )
+            // 580:3: -> ^( AT ID paren_chunk )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:585:6: ^( AT ID paren_chunk )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:580:6: ^( AT ID paren_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_AT.nextNode(), root_1);
@@ -2812,7 +2807,7 @@
     };
 
     // $ANTLR start "decl_field"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:588:1: decl_field : ID ( decl_field_initialization )? COLON data_type ( decl_metadata )* -> ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:583:1: decl_field : ID ( decl_field_initialization )? COLON data_type ( decl_metadata )* -> ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* ) ;
     public final DRLParser.decl_field_return decl_field() throws RecognitionException {
         DRLParser.decl_field_return retval = new DRLParser.decl_field_return();
         retval.start = input.LT(1);
@@ -2836,16 +2831,16 @@
         RewriteRuleSubtreeStream stream_decl_field_initialization=new RewriteRuleSubtreeStream(adaptor,"rule decl_field_initialization");
         RewriteRuleSubtreeStream stream_data_type=new RewriteRuleSubtreeStream(adaptor,"rule data_type");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:589:2: ( ID ( decl_field_initialization )? COLON data_type ( decl_metadata )* -> ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:589:4: ID ( decl_field_initialization )? COLON data_type ( decl_metadata )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:584:2: ( ID ( decl_field_initialization )? COLON data_type ( decl_metadata )* -> ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:584:4: ID ( decl_field_initialization )? COLON data_type ( decl_metadata )*
             {
-            ID54=(Token)match(input,ID,FOLLOW_ID_in_decl_field1193); if (state.failed) return retval; 
+            ID54=(Token)match(input,ID,FOLLOW_ID_in_decl_field1173); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(ID54);
 
             if ( state.backtracking==0 ) {
               	emit(ID54, DroolsEditorType.IDENTIFIER);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:590:3: ( decl_field_initialization )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:585:3: ( decl_field_initialization )?
             int alt21=2;
             int LA21_0 = input.LA(1);
 
@@ -2854,9 +2849,9 @@
             }
             switch (alt21) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:590:3: decl_field_initialization
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:585:3: decl_field_initialization
                     {
-                    pushFollow(FOLLOW_decl_field_initialization_in_decl_field1199);
+                    pushFollow(FOLLOW_decl_field_initialization_in_decl_field1179);
                     decl_field_initialization55=decl_field_initialization();
 
                     state._fsp--;
@@ -2868,19 +2863,19 @@
 
             }
 
-            COLON56=(Token)match(input,COLON,FOLLOW_COLON_in_decl_field1205); if (state.failed) return retval; 
+            COLON56=(Token)match(input,COLON,FOLLOW_COLON_in_decl_field1185); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_COLON.add(COLON56);
 
             if ( state.backtracking==0 ) {
               	emit(COLON56, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_data_type_in_decl_field1211);
+            pushFollow(FOLLOW_data_type_in_decl_field1191);
             data_type57=data_type();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_data_type.add(data_type57.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:3: ( decl_metadata )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:588:3: ( decl_metadata )*
             loop22:
             do {
                 int alt22=2;
@@ -2893,9 +2888,9 @@
 
                 switch (alt22) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:3: decl_metadata
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:588:3: decl_metadata
             	    {
-            	    pushFollow(FOLLOW_decl_metadata_in_decl_field1215);
+            	    pushFollow(FOLLOW_decl_metadata_in_decl_field1195);
             	    decl_metadata58=decl_metadata();
 
             	    state._fsp--;
@@ -2913,7 +2908,7 @@
 
 
             // AST REWRITE
-            // elements: data_type, ID, decl_metadata, decl_field_initialization
+            // elements: decl_metadata, ID, decl_field_initialization, data_type
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -2923,21 +2918,21 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 594:3: -> ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* )
+            // 589:3: -> ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:594:6: ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:589:6: ^( ID ( decl_field_initialization )? data_type ( decl_metadata )* )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_ID.nextNode(), root_1);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:594:11: ( decl_field_initialization )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:589:11: ( decl_field_initialization )?
                 if ( stream_decl_field_initialization.hasNext() ) {
                     adaptor.addChild(root_1, stream_decl_field_initialization.nextTree());
 
                 }
                 stream_decl_field_initialization.reset();
                 adaptor.addChild(root_1, stream_data_type.nextTree());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:594:48: ( decl_metadata )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:589:48: ( decl_metadata )*
                 while ( stream_decl_metadata.hasNext() ) {
                     adaptor.addChild(root_1, stream_decl_metadata.nextTree());
 
@@ -2978,7 +2973,7 @@
     };
 
     // $ANTLR start "decl_field_initialization"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:597:1: decl_field_initialization : EQUALS paren_chunk -> ^( EQUALS paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:592:1: decl_field_initialization : EQUALS paren_chunk -> ^( EQUALS paren_chunk ) ;
     public final DRLParser.decl_field_initialization_return decl_field_initialization() throws RecognitionException {
         DRLParser.decl_field_initialization_return retval = new DRLParser.decl_field_initialization_return();
         retval.start = input.LT(1);
@@ -2993,16 +2988,16 @@
         RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:598:2: ( EQUALS paren_chunk -> ^( EQUALS paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:598:4: EQUALS paren_chunk
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:2: ( EQUALS paren_chunk -> ^( EQUALS paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:4: EQUALS paren_chunk
             {
-            EQUALS59=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_decl_field_initialization1243); if (state.failed) return retval; 
+            EQUALS59=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_decl_field_initialization1223); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_EQUALS.add(EQUALS59);
 
             if ( state.backtracking==0 ) {
               	emit(EQUALS59, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_paren_chunk_in_decl_field_initialization1249);
+            pushFollow(FOLLOW_paren_chunk_in_decl_field_initialization1229);
             paren_chunk60=paren_chunk();
 
             state._fsp--;
@@ -3021,9 +3016,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 600:2: -> ^( EQUALS paren_chunk )
+            // 595:2: -> ^( EQUALS paren_chunk )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:600:5: ^( EQUALS paren_chunk )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:595:5: ^( EQUALS paren_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_EQUALS.nextNode(), root_1);
@@ -3064,7 +3059,7 @@
     };
 
     // $ANTLR start "template"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:603:1: template : template_key template_id (semi1= SEMICOLON )? ( template_slot )+ END (semi2= SEMICOLON )? -> ^( template_key template_id ( template_slot )+ END ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:598:1: template : template_key template_id (semi1= SEMICOLON )? ( template_slot )+ END (semi2= SEMICOLON )? -> ^( template_key template_id ( template_slot )+ END ) ;
     public final DRLParser.template_return template() throws RecognitionException {
         DRLParser.template_return retval = new DRLParser.template_return();
         retval.start = input.LT(1);
@@ -3091,25 +3086,25 @@
         RewriteRuleSubtreeStream stream_template_key=new RewriteRuleSubtreeStream(adaptor,"rule template_key");
          pushParaphrases(DroolsParaphraseTypes.TEMPLATE); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:606:2: ( template_key template_id (semi1= SEMICOLON )? ( template_slot )+ END (semi2= SEMICOLON )? -> ^( template_key template_id ( template_slot )+ END ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:607:2: template_key template_id (semi1= SEMICOLON )? ( template_slot )+ END (semi2= SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:601:2: ( template_key template_id (semi1= SEMICOLON )? ( template_slot )+ END (semi2= SEMICOLON )? -> ^( template_key template_id ( template_slot )+ END ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:602:2: template_key template_id (semi1= SEMICOLON )? ( template_slot )+ END (semi2= SEMICOLON )?
             {
             if ( state.backtracking==0 ) {
               	beginSentence(DroolsSentenceType.TEMPLATE);	
             }
-            pushFollow(FOLLOW_template_key_in_template1286);
+            pushFollow(FOLLOW_template_key_in_template1266);
             template_key61=template_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_template_key.add(template_key61.getTree());
-            pushFollow(FOLLOW_template_id_in_template1288);
+            pushFollow(FOLLOW_template_id_in_template1268);
             template_id62=template_id();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_template_id.add(template_id62.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:609:8: (semi1= SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:604:8: (semi1= SEMICOLON )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
@@ -3118,9 +3113,9 @@
             }
             switch (alt23) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:609:8: semi1= SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:604:8: semi1= SEMICOLON
                     {
-                    semi1=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_template1295); if (state.failed) return retval; 
+                    semi1=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_template1275); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(semi1);
 
 
@@ -3132,7 +3127,7 @@
             if ( state.backtracking==0 ) {
               	emit(semi1, DroolsEditorType.SYMBOL);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:611:3: ( template_slot )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:606:3: ( template_slot )+
             int cnt24=0;
             loop24:
             do {
@@ -3146,9 +3141,9 @@
 
                 switch (alt24) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:611:3: template_slot
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:606:3: template_slot
             	    {
-            	    pushFollow(FOLLOW_template_slot_in_template1303);
+            	    pushFollow(FOLLOW_template_slot_in_template1283);
             	    template_slot63=template_slot();
 
             	    state._fsp--;
@@ -3168,10 +3163,10 @@
                 cnt24++;
             } while (true);
 
-            END64=(Token)match(input,END,FOLLOW_END_in_template1308); if (state.failed) return retval; 
+            END64=(Token)match(input,END,FOLLOW_END_in_template1288); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_END.add(END64);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:612:12: (semi2= SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:607:12: (semi2= SEMICOLON )?
             int alt25=2;
             int LA25_0 = input.LA(1);
 
@@ -3180,9 +3175,9 @@
             }
             switch (alt25) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:612:12: semi2= SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:607:12: semi2= SEMICOLON
                     {
-                    semi2=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_template1312); if (state.failed) return retval; 
+                    semi2=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_template1292); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(semi2);
 
 
@@ -3198,7 +3193,7 @@
 
 
             // AST REWRITE
-            // elements: template_slot, END, template_id, template_key
+            // elements: END, template_slot, template_key, template_id
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3208,9 +3203,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 615:3: -> ^( template_key template_id ( template_slot )+ END )
+            // 610:3: -> ^( template_key template_id ( template_slot )+ END )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:615:6: ^( template_key template_id ( template_slot )+ END )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:610:6: ^( template_key template_id ( template_slot )+ END )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_template_key.nextNode(), root_1);
@@ -3263,7 +3258,7 @@
     };
 
     // $ANTLR start "template_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:618:1: template_id : (id= ID -> VT_TEMPLATE_ID[$id] | id= STRING -> VT_TEMPLATE_ID[$id] );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:613:1: template_id : (id= ID -> VT_TEMPLATE_ID[$id] | id= STRING -> VT_TEMPLATE_ID[$id] );
     public final DRLParser.template_id_return template_id() throws RecognitionException {
         DRLParser.template_id_return retval = new DRLParser.template_id_return();
         retval.start = input.LT(1);
@@ -3277,7 +3272,7 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:619:2: (id= ID -> VT_TEMPLATE_ID[$id] | id= STRING -> VT_TEMPLATE_ID[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:614:2: (id= ID -> VT_TEMPLATE_ID[$id] | id= STRING -> VT_TEMPLATE_ID[$id] )
             int alt26=2;
             int LA26_0 = input.LA(1);
 
@@ -3296,9 +3291,9 @@
             }
             switch (alt26) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:619:5: id= ID
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:614:5: id= ID
                     {
-                    id=(Token)match(input,ID,FOLLOW_ID_in_template_id1345); if (state.failed) return retval; 
+                    id=(Token)match(input,ID,FOLLOW_ID_in_template_id1325); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_ID.add(id);
 
                     if ( state.backtracking==0 ) {
@@ -3318,7 +3313,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 621:68: -> VT_TEMPLATE_ID[$id]
+                    // 616:68: -> VT_TEMPLATE_ID[$id]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_TEMPLATE_ID, id));
 
@@ -3328,9 +3323,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:622:5: id= STRING
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:617:5: id= STRING
                     {
-                    id=(Token)match(input,STRING,FOLLOW_STRING_in_template_id1361); if (state.failed) return retval; 
+                    id=(Token)match(input,STRING,FOLLOW_STRING_in_template_id1341); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_STRING.add(id);
 
                     if ( state.backtracking==0 ) {
@@ -3350,7 +3345,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 624:68: -> VT_TEMPLATE_ID[$id]
+                    // 619:68: -> VT_TEMPLATE_ID[$id]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_TEMPLATE_ID, id));
 
@@ -3387,7 +3382,7 @@
     };
 
     // $ANTLR start "template_slot"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:627:1: template_slot : data_type slot_id ( SEMICOLON )? -> ^( VT_SLOT data_type slot_id ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:622:1: template_slot : data_type slot_id ( SEMICOLON )? -> ^( VT_SLOT data_type slot_id ) ;
     public final DRLParser.template_slot_return template_slot() throws RecognitionException {
         DRLParser.template_slot_return retval = new DRLParser.template_slot_return();
         retval.start = input.LT(1);
@@ -3405,22 +3400,22 @@
         RewriteRuleSubtreeStream stream_slot_id=new RewriteRuleSubtreeStream(adaptor,"rule slot_id");
         RewriteRuleSubtreeStream stream_data_type=new RewriteRuleSubtreeStream(adaptor,"rule data_type");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:628:2: ( data_type slot_id ( SEMICOLON )? -> ^( VT_SLOT data_type slot_id ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:628:5: data_type slot_id ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:2: ( data_type slot_id ( SEMICOLON )? -> ^( VT_SLOT data_type slot_id ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:5: data_type slot_id ( SEMICOLON )?
             {
-            pushFollow(FOLLOW_data_type_in_template_slot1381);
+            pushFollow(FOLLOW_data_type_in_template_slot1361);
             data_type65=data_type();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_data_type.add(data_type65.getTree());
-            pushFollow(FOLLOW_slot_id_in_template_slot1383);
+            pushFollow(FOLLOW_slot_id_in_template_slot1363);
             slot_id66=slot_id();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_slot_id.add(slot_id66.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:628:23: ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:23: ( SEMICOLON )?
             int alt27=2;
             int LA27_0 = input.LA(1);
 
@@ -3429,9 +3424,9 @@
             }
             switch (alt27) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:628:23: SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:23: SEMICOLON
                     {
-                    SEMICOLON67=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_template_slot1385); if (state.failed) return retval; 
+                    SEMICOLON67=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_template_slot1365); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_SEMICOLON.add(SEMICOLON67);
 
 
@@ -3446,7 +3441,7 @@
 
 
             // AST REWRITE
-            // elements: data_type, slot_id
+            // elements: slot_id, data_type
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3456,9 +3451,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 630:3: -> ^( VT_SLOT data_type slot_id )
+            // 625:3: -> ^( VT_SLOT data_type slot_id )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:630:6: ^( VT_SLOT data_type slot_id )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:625:6: ^( VT_SLOT data_type slot_id )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_SLOT, "VT_SLOT"), root_1);
@@ -3500,7 +3495,7 @@
     };
 
     // $ANTLR start "slot_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:633:1: slot_id : id= ID -> VT_SLOT_ID[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:628:1: slot_id : id= ID -> VT_SLOT_ID[$id] ;
     public final DRLParser.slot_id_return slot_id() throws RecognitionException {
         DRLParser.slot_id_return retval = new DRLParser.slot_id_return();
         retval.start = input.LT(1);
@@ -3513,10 +3508,10 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:634:2: (id= ID -> VT_SLOT_ID[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:634:4: id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:629:2: (id= ID -> VT_SLOT_ID[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:629:4: id= ID
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_slot_id1414); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_slot_id1394); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -3535,7 +3530,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 636:3: -> VT_SLOT_ID[$id]
+            // 631:3: -> VT_SLOT_ID[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_SLOT_ID, id));
 
@@ -3570,7 +3565,7 @@
     };
 
     // $ANTLR start "rule"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:639:1: rule : rule_key rule_id ( extend_key rule_id )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk -> ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:634:1: rule : rule_key rule_id ( extend_key rule_id )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk -> ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk ) ;
     public final DRLParser.rule_return rule() throws RecognitionException {
         DRLParser.rule_return retval = new DRLParser.rule_return();
         retval.start = input.LT(1);
@@ -3603,19 +3598,19 @@
         RewriteRuleSubtreeStream stream_extend_key=new RewriteRuleSubtreeStream(adaptor,"rule extend_key");
          boolean isFailed = true; pushParaphrases(DroolsParaphraseTypes.RULE); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:2: ( rule_key rule_id ( extend_key rule_id )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk -> ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:643:2: rule_key rule_id ( extend_key rule_id )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:637:2: ( rule_key rule_id ( extend_key rule_id )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk -> ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:638:2: rule_key rule_id ( extend_key rule_id )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk
             {
             if ( state.backtracking==0 ) {
               	beginSentence(DroolsSentenceType.RULE);	
             }
-            pushFollow(FOLLOW_rule_key_in_rule1451);
+            pushFollow(FOLLOW_rule_key_in_rule1431);
             rule_key68=rule_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_rule_key.add(rule_key68.getTree());
-            pushFollow(FOLLOW_rule_id_in_rule1453);
+            pushFollow(FOLLOW_rule_id_in_rule1433);
             rule_id69=rule_id();
 
             state._fsp--;
@@ -3624,20 +3619,20 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:3: ( extend_key rule_id )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:3: ( extend_key rule_id )?
             int alt28=2;
             alt28 = dfa28.predict(input);
             switch (alt28) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:4: extend_key rule_id
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:4: extend_key rule_id
                     {
-                    pushFollow(FOLLOW_extend_key_in_rule1462);
+                    pushFollow(FOLLOW_extend_key_in_rule1442);
                     extend_key70=extend_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_extend_key.add(extend_key70.getTree());
-                    pushFollow(FOLLOW_rule_id_in_rule1464);
+                    pushFollow(FOLLOW_rule_id_in_rule1444);
                     rule_id71=rule_id();
 
                     state._fsp--;
@@ -3649,7 +3644,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:25: ( decl_metadata )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:25: ( decl_metadata )*
             loop29:
             do {
                 int alt29=2;
@@ -3662,9 +3657,9 @@
 
                 switch (alt29) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:25: decl_metadata
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:25: decl_metadata
             	    {
-            	    pushFollow(FOLLOW_decl_metadata_in_rule1468);
+            	    pushFollow(FOLLOW_decl_metadata_in_rule1448);
             	    decl_metadata72=decl_metadata();
 
             	    state._fsp--;
@@ -3679,7 +3674,7 @@
                 }
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:40: ( rule_attributes )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:40: ( rule_attributes )?
             int alt30=2;
             int LA30_0 = input.LA(1);
 
@@ -3688,9 +3683,9 @@
             }
             switch (alt30) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:40: rule_attributes
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:40: rule_attributes
                     {
-                    pushFollow(FOLLOW_rule_attributes_in_rule1471);
+                    pushFollow(FOLLOW_rule_attributes_in_rule1451);
                     rule_attributes73=rule_attributes();
 
                     state._fsp--;
@@ -3702,7 +3697,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:57: ( when_part )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:57: ( when_part )?
             int alt31=2;
             int LA31_0 = input.LA(1);
 
@@ -3711,9 +3706,9 @@
             }
             switch (alt31) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:57: when_part
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:641:57: when_part
                     {
-                    pushFollow(FOLLOW_when_part_in_rule1474);
+                    pushFollow(FOLLOW_when_part_in_rule1454);
                     when_part74=when_part();
 
                     state._fsp--;
@@ -3725,7 +3720,7 @@
 
             }
 
-            pushFollow(FOLLOW_rhs_chunk_in_rule1477);
+            pushFollow(FOLLOW_rhs_chunk_in_rule1457);
             rhs_chunk75=rhs_chunk();
 
             state._fsp--;
@@ -3734,7 +3729,7 @@
 
 
             // AST REWRITE
-            // elements: rule_attributes, extend_key, rule_key, decl_metadata, rule_id, when_part, rule_id, rhs_chunk
+            // elements: rule_id, rule_id, rhs_chunk, rule_attributes, when_part, extend_key, rule_key, decl_metadata
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3744,17 +3739,17 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 647:3: -> ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk )
+            // 642:3: -> ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:647:6: ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:6: ^( rule_key rule_id ( ^( extend_key rule_id ) )? ( decl_metadata )* ( rule_attributes )? ( when_part )? rhs_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_rule_key.nextNode(), root_1);
 
                 adaptor.addChild(root_1, stream_rule_id.nextTree());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:647:25: ( ^( extend_key rule_id ) )?
-                if ( stream_extend_key.hasNext()||stream_rule_id.hasNext() ) {
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:647:25: ^( extend_key rule_id )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:25: ( ^( extend_key rule_id ) )?
+                if ( stream_rule_id.hasNext()||stream_extend_key.hasNext() ) {
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:25: ^( extend_key rule_id )
                     {
                     Object root_2 = (Object)adaptor.nil();
                     root_2 = (Object)adaptor.becomeRoot(stream_extend_key.nextNode(), root_2);
@@ -3765,21 +3760,21 @@
                     }
 
                 }
-                stream_extend_key.reset();
                 stream_rule_id.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:647:48: ( decl_metadata )*
+                stream_extend_key.reset();
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:48: ( decl_metadata )*
                 while ( stream_decl_metadata.hasNext() ) {
                     adaptor.addChild(root_1, stream_decl_metadata.nextTree());
 
                 }
                 stream_decl_metadata.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:647:63: ( rule_attributes )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:63: ( rule_attributes )?
                 if ( stream_rule_attributes.hasNext() ) {
                     adaptor.addChild(root_1, stream_rule_attributes.nextTree());
 
                 }
                 stream_rule_attributes.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:647:80: ( when_part )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:80: ( when_part )?
                 if ( stream_when_part.hasNext() ) {
                     adaptor.addChild(root_1, stream_when_part.nextTree());
 
@@ -3866,7 +3861,7 @@
     };
 
     // $ANTLR start "when_part"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:692:1: when_part : WHEN ( COLON )? normal_lhs_block -> WHEN normal_lhs_block ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:687:1: when_part : WHEN ( COLON )? normal_lhs_block -> WHEN normal_lhs_block ;
     public final DRLParser.when_part_return when_part() throws RecognitionException {
         DRLParser.when_part_return retval = new DRLParser.when_part_return();
         retval.start = input.LT(1);
@@ -3884,16 +3879,16 @@
         RewriteRuleTokenStream stream_WHEN=new RewriteRuleTokenStream(adaptor,"token WHEN");
         RewriteRuleSubtreeStream stream_normal_lhs_block=new RewriteRuleSubtreeStream(adaptor,"rule normal_lhs_block");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:2: ( WHEN ( COLON )? normal_lhs_block -> WHEN normal_lhs_block )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:5: WHEN ( COLON )? normal_lhs_block
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:688:2: ( WHEN ( COLON )? normal_lhs_block -> WHEN normal_lhs_block )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:688:5: WHEN ( COLON )? normal_lhs_block
             {
-            WHEN76=(Token)match(input,WHEN,FOLLOW_WHEN_in_when_part1521); if (state.failed) return retval; 
+            WHEN76=(Token)match(input,WHEN,FOLLOW_WHEN_in_when_part1501); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_WHEN.add(WHEN76);
 
             if ( state.backtracking==0 ) {
               	emit(WHEN76, DroolsEditorType.KEYWORD);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:694:3: ( COLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:689:3: ( COLON )?
             int alt32=2;
             int LA32_0 = input.LA(1);
 
@@ -3902,9 +3897,9 @@
             }
             switch (alt32) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:694:3: COLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:689:3: COLON
                     {
-                    COLON77=(Token)match(input,COLON,FOLLOW_COLON_in_when_part1527); if (state.failed) return retval; 
+                    COLON77=(Token)match(input,COLON,FOLLOW_COLON_in_when_part1507); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_COLON.add(COLON77);
 
 
@@ -3919,7 +3914,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION);	
             }
-            pushFollow(FOLLOW_normal_lhs_block_in_when_part1537);
+            pushFollow(FOLLOW_normal_lhs_block_in_when_part1517);
             normal_lhs_block78=normal_lhs_block();
 
             state._fsp--;
@@ -3928,7 +3923,7 @@
 
 
             // AST REWRITE
-            // elements: normal_lhs_block, WHEN
+            // elements: WHEN, normal_lhs_block
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -3938,7 +3933,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 697:2: -> WHEN normal_lhs_block
+            // 692:2: -> WHEN normal_lhs_block
             {
                 adaptor.addChild(root_0, stream_WHEN.nextNode());
                 adaptor.addChild(root_0, stream_normal_lhs_block.nextTree());
@@ -3974,7 +3969,7 @@
     };
 
     // $ANTLR start "rule_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:700:1: rule_id : (id= ID -> VT_RULE_ID[$id] | id= STRING -> VT_RULE_ID[$id] );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:695:1: rule_id : (id= ID -> VT_RULE_ID[$id] | id= STRING -> VT_RULE_ID[$id] );
     public final DRLParser.rule_id_return rule_id() throws RecognitionException {
         DRLParser.rule_id_return retval = new DRLParser.rule_id_return();
         retval.start = input.LT(1);
@@ -3988,7 +3983,7 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:701:2: (id= ID -> VT_RULE_ID[$id] | id= STRING -> VT_RULE_ID[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:2: (id= ID -> VT_RULE_ID[$id] | id= STRING -> VT_RULE_ID[$id] )
             int alt33=2;
             int LA33_0 = input.LA(1);
 
@@ -4007,9 +4002,9 @@
             }
             switch (alt33) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:701:5: id= ID
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:5: id= ID
                     {
-                    id=(Token)match(input,ID,FOLLOW_ID_in_rule_id1558); if (state.failed) return retval; 
+                    id=(Token)match(input,ID,FOLLOW_ID_in_rule_id1538); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_ID.add(id);
 
                     if ( state.backtracking==0 ) {
@@ -4029,7 +4024,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 703:64: -> VT_RULE_ID[$id]
+                    // 698:64: -> VT_RULE_ID[$id]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_RULE_ID, id));
 
@@ -4039,9 +4034,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:704:5: id= STRING
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:699:5: id= STRING
                     {
-                    id=(Token)match(input,STRING,FOLLOW_STRING_in_rule_id1574); if (state.failed) return retval; 
+                    id=(Token)match(input,STRING,FOLLOW_STRING_in_rule_id1554); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_STRING.add(id);
 
                     if ( state.backtracking==0 ) {
@@ -4061,7 +4056,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 706:64: -> VT_RULE_ID[$id]
+                    // 701:64: -> VT_RULE_ID[$id]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_RULE_ID, id));
 
@@ -4098,7 +4093,7 @@
     };
 
     // $ANTLR start "rule_attributes"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:709:1: rule_attributes : ( attributes_key COLON )? rule_attribute ( ( COMMA )? attr= rule_attribute )* -> ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:704:1: rule_attributes : ( attributes_key COLON )? rule_attribute ( ( COMMA )? attr= rule_attribute )* -> ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ ) ;
     public final DRLParser.rule_attributes_return rule_attributes() throws RecognitionException {
         DRLParser.rule_attributes_return retval = new DRLParser.rule_attributes_return();
         retval.start = input.LT(1);
@@ -4121,10 +4116,10 @@
         RewriteRuleSubtreeStream stream_attributes_key=new RewriteRuleSubtreeStream(adaptor,"rule attributes_key");
         RewriteRuleSubtreeStream stream_rule_attribute=new RewriteRuleSubtreeStream(adaptor,"rule rule_attribute");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:710:2: ( ( attributes_key COLON )? rule_attribute ( ( COMMA )? attr= rule_attribute )* -> ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:710:4: ( attributes_key COLON )? rule_attribute ( ( COMMA )? attr= rule_attribute )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:705:2: ( ( attributes_key COLON )? rule_attribute ( ( COMMA )? attr= rule_attribute )* -> ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:705:4: ( attributes_key COLON )? rule_attribute ( ( COMMA )? attr= rule_attribute )*
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:710:4: ( attributes_key COLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:705:4: ( attributes_key COLON )?
             int alt34=2;
             int LA34_0 = input.LA(1);
 
@@ -4137,15 +4132,15 @@
             }
             switch (alt34) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:710:6: attributes_key COLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:705:6: attributes_key COLON
                     {
-                    pushFollow(FOLLOW_attributes_key_in_rule_attributes1595);
+                    pushFollow(FOLLOW_attributes_key_in_rule_attributes1575);
                     attributes_key79=attributes_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_attributes_key.add(attributes_key79.getTree());
-                    COLON80=(Token)match(input,COLON,FOLLOW_COLON_in_rule_attributes1597); if (state.failed) return retval; 
+                    COLON80=(Token)match(input,COLON,FOLLOW_COLON_in_rule_attributes1577); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_COLON.add(COLON80);
 
                     if ( state.backtracking==0 ) {
@@ -4157,13 +4152,13 @@
 
             }
 
-            pushFollow(FOLLOW_rule_attribute_in_rule_attributes1607);
+            pushFollow(FOLLOW_rule_attribute_in_rule_attributes1587);
             rule_attribute81=rule_attribute();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_rule_attribute.add(rule_attribute81.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:711:18: ( ( COMMA )? attr= rule_attribute )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:18: ( ( COMMA )? attr= rule_attribute )*
             loop36:
             do {
                 int alt36=2;
@@ -4176,9 +4171,9 @@
 
                 switch (alt36) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:711:20: ( COMMA )? attr= rule_attribute
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:20: ( COMMA )? attr= rule_attribute
             	    {
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:711:20: ( COMMA )?
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:20: ( COMMA )?
             	    int alt35=2;
             	    int LA35_0 = input.LA(1);
 
@@ -4187,9 +4182,9 @@
             	    }
             	    switch (alt35) {
             	        case 1 :
-            	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:711:20: COMMA
+            	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:20: COMMA
             	            {
-            	            COMMA82=(Token)match(input,COMMA,FOLLOW_COMMA_in_rule_attributes1611); if (state.failed) return retval; 
+            	            COMMA82=(Token)match(input,COMMA,FOLLOW_COMMA_in_rule_attributes1591); if (state.failed) return retval; 
             	            if ( state.backtracking==0 ) stream_COMMA.add(COMMA82);
 
 
@@ -4201,7 +4196,7 @@
             	    if ( state.backtracking==0 ) {
             	      	emit(COMMA82, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_rule_attribute_in_rule_attributes1618);
+            	    pushFollow(FOLLOW_rule_attribute_in_rule_attributes1598);
             	    attr=rule_attribute();
 
             	    state._fsp--;
@@ -4219,7 +4214,7 @@
 
 
             // AST REWRITE
-            // elements: attributes_key, rule_attribute
+            // elements: rule_attribute, attributes_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -4229,14 +4224,14 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 712:3: -> ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ )
+            // 707:3: -> ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:712:6: ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:707:6: ^( VT_RULE_ATTRIBUTES ( attributes_key )? ( rule_attribute )+ )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_RULE_ATTRIBUTES, "VT_RULE_ATTRIBUTES"), root_1);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:712:27: ( attributes_key )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:707:27: ( attributes_key )?
                 if ( stream_attributes_key.hasNext() ) {
                     adaptor.addChild(root_1, stream_attributes_key.nextTree());
 
@@ -4285,7 +4280,7 @@
     };
 
     // $ANTLR start "rule_attribute"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:715:1: rule_attribute : ( salience | no_loop | agenda_group | duration | activation_group | auto_focus | date_effective | date_expires | enabled | ruleflow_group | lock_on_active | dialect );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:710:1: rule_attribute : ( salience | no_loop | agenda_group | duration | activation_group | auto_focus | date_effective | date_expires | enabled | ruleflow_group | lock_on_active | dialect );
     public final DRLParser.rule_attribute_return rule_attribute() throws RecognitionException {
         DRLParser.rule_attribute_return retval = new DRLParser.rule_attribute_return();
         retval.start = input.LT(1);
@@ -4320,16 +4315,16 @@
 
          pushParaphrases(DroolsParaphraseTypes.RULE_ATTRIBUTE); if ( state.backtracking==0 ) beginSentence(DroolsSentenceType.RULE_ATTRIBUTE); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:718:2: ( salience | no_loop | agenda_group | duration | activation_group | auto_focus | date_effective | date_expires | enabled | ruleflow_group | lock_on_active | dialect )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:713:2: ( salience | no_loop | agenda_group | duration | activation_group | auto_focus | date_effective | date_expires | enabled | ruleflow_group | lock_on_active | dialect )
             int alt37=12;
             alt37 = dfa37.predict(input);
             switch (alt37) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:718:4: salience
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:713:4: salience
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_salience_in_rule_attribute1657);
+                    pushFollow(FOLLOW_salience_in_rule_attribute1637);
                     salience83=salience();
 
                     state._fsp--;
@@ -4339,11 +4334,11 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:4: no_loop
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:714:4: no_loop
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_no_loop_in_rule_attribute1663);
+                    pushFollow(FOLLOW_no_loop_in_rule_attribute1643);
                     no_loop84=no_loop();
 
                     state._fsp--;
@@ -4353,11 +4348,11 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:720:4: agenda_group
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:715:4: agenda_group
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_agenda_group_in_rule_attribute1668);
+                    pushFollow(FOLLOW_agenda_group_in_rule_attribute1648);
                     agenda_group85=agenda_group();
 
                     state._fsp--;
@@ -4367,11 +4362,11 @@
                     }
                     break;
                 case 4 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:721:4: duration
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:716:4: duration
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_duration_in_rule_attribute1675);
+                    pushFollow(FOLLOW_duration_in_rule_attribute1655);
                     duration86=duration();
 
                     state._fsp--;
@@ -4381,11 +4376,11 @@
                     }
                     break;
                 case 5 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:722:4: activation_group
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:717:4: activation_group
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_activation_group_in_rule_attribute1682);
+                    pushFollow(FOLLOW_activation_group_in_rule_attribute1662);
                     activation_group87=activation_group();
 
                     state._fsp--;
@@ -4395,11 +4390,11 @@
                     }
                     break;
                 case 6 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:723:4: auto_focus
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:718:4: auto_focus
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_auto_focus_in_rule_attribute1688);
+                    pushFollow(FOLLOW_auto_focus_in_rule_attribute1668);
                     auto_focus88=auto_focus();
 
                     state._fsp--;
@@ -4409,11 +4404,11 @@
                     }
                     break;
                 case 7 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:724:4: date_effective
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:4: date_effective
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_date_effective_in_rule_attribute1694);
+                    pushFollow(FOLLOW_date_effective_in_rule_attribute1674);
                     date_effective89=date_effective();
 
                     state._fsp--;
@@ -4423,11 +4418,11 @@
                     }
                     break;
                 case 8 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:725:4: date_expires
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:720:4: date_expires
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_date_expires_in_rule_attribute1700);
+                    pushFollow(FOLLOW_date_expires_in_rule_attribute1680);
                     date_expires90=date_expires();
 
                     state._fsp--;
@@ -4437,11 +4432,11 @@
                     }
                     break;
                 case 9 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:4: enabled
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:721:4: enabled
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_enabled_in_rule_attribute1706);
+                    pushFollow(FOLLOW_enabled_in_rule_attribute1686);
                     enabled91=enabled();
 
                     state._fsp--;
@@ -4451,11 +4446,11 @@
                     }
                     break;
                 case 10 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:727:4: ruleflow_group
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:722:4: ruleflow_group
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1712);
+                    pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1692);
                     ruleflow_group92=ruleflow_group();
 
                     state._fsp--;
@@ -4465,11 +4460,11 @@
                     }
                     break;
                 case 11 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:728:4: lock_on_active
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:723:4: lock_on_active
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_lock_on_active_in_rule_attribute1718);
+                    pushFollow(FOLLOW_lock_on_active_in_rule_attribute1698);
                     lock_on_active93=lock_on_active();
 
                     state._fsp--;
@@ -4479,11 +4474,11 @@
                     }
                     break;
                 case 12 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:729:4: dialect
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:724:4: dialect
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_dialect_in_rule_attribute1723);
+                    pushFollow(FOLLOW_dialect_in_rule_attribute1703);
                     dialect94=dialect();
 
                     state._fsp--;
@@ -4523,7 +4518,7 @@
     };
 
     // $ANTLR start "date_effective"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:732:1: date_effective : date_effective_key STRING ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:727:1: date_effective : date_effective_key STRING ;
     public final DRLParser.date_effective_return date_effective() throws RecognitionException {
         DRLParser.date_effective_return retval = new DRLParser.date_effective_return();
         retval.start = input.LT(1);
@@ -4537,12 +4532,12 @@
         Object STRING96_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:733:2: ( date_effective_key STRING )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:733:4: date_effective_key STRING
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:728:2: ( date_effective_key STRING )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:728:4: date_effective_key STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_date_effective_key_in_date_effective1735);
+            pushFollow(FOLLOW_date_effective_key_in_date_effective1715);
             date_effective_key95=date_effective_key();
 
             state._fsp--;
@@ -4551,7 +4546,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            STRING96=(Token)match(input,STRING,FOLLOW_STRING_in_date_effective1740); if (state.failed) return retval;
+            STRING96=(Token)match(input,STRING,FOLLOW_STRING_in_date_effective1720); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             STRING96_tree = (Object)adaptor.create(STRING96);
             adaptor.addChild(root_0, STRING96_tree);
@@ -4588,7 +4583,7 @@
     };
 
     // $ANTLR start "date_expires"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:737:1: date_expires : date_expires_key STRING ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:732:1: date_expires : date_expires_key STRING ;
     public final DRLParser.date_expires_return date_expires() throws RecognitionException {
         DRLParser.date_expires_return retval = new DRLParser.date_expires_return();
         retval.start = input.LT(1);
@@ -4602,12 +4597,12 @@
         Object STRING98_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:738:2: ( date_expires_key STRING )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:738:4: date_expires_key STRING
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:733:2: ( date_expires_key STRING )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:733:4: date_expires_key STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_date_expires_key_in_date_expires1754);
+            pushFollow(FOLLOW_date_expires_key_in_date_expires1734);
             date_expires_key97=date_expires_key();
 
             state._fsp--;
@@ -4616,7 +4611,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            STRING98=(Token)match(input,STRING,FOLLOW_STRING_in_date_expires1759); if (state.failed) return retval;
+            STRING98=(Token)match(input,STRING,FOLLOW_STRING_in_date_expires1739); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             STRING98_tree = (Object)adaptor.create(STRING98);
             adaptor.addChild(root_0, STRING98_tree);
@@ -4653,7 +4648,7 @@
     };
 
     // $ANTLR start "enabled"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:742:1: enabled : enabled_key ( BOOL | paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:737:1: enabled : enabled_key ( BOOL | paren_chunk ) ;
     public final DRLParser.enabled_return enabled() throws RecognitionException {
         DRLParser.enabled_return retval = new DRLParser.enabled_return();
         retval.start = input.LT(1);
@@ -4669,12 +4664,12 @@
         Object BOOL100_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:743:2: ( enabled_key ( BOOL | paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:743:4: enabled_key ( BOOL | paren_chunk )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:738:2: ( enabled_key ( BOOL | paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:738:4: enabled_key ( BOOL | paren_chunk )
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_enabled_key_in_enabled1774);
+            pushFollow(FOLLOW_enabled_key_in_enabled1754);
             enabled_key99=enabled_key();
 
             state._fsp--;
@@ -4683,7 +4678,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:744:6: ( BOOL | paren_chunk )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:6: ( BOOL | paren_chunk )
             int alt38=2;
             int LA38_0 = input.LA(1);
 
@@ -4702,9 +4697,9 @@
             }
             switch (alt38) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:744:8: BOOL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:8: BOOL
                     {
-                    BOOL100=(Token)match(input,BOOL,FOLLOW_BOOL_in_enabled1787); if (state.failed) return retval;
+                    BOOL100=(Token)match(input,BOOL,FOLLOW_BOOL_in_enabled1767); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     BOOL100_tree = (Object)adaptor.create(BOOL100);
                     adaptor.addChild(root_0, BOOL100_tree);
@@ -4716,9 +4711,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:8: paren_chunk
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:740:8: paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_enabled1798);
+                    pushFollow(FOLLOW_paren_chunk_in_enabled1778);
                     paren_chunk101=paren_chunk();
 
                     state._fsp--;
@@ -4759,7 +4754,7 @@
     };
 
     // $ANTLR start "salience"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:749:1: salience : salience_key ( INT | paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:744:1: salience : salience_key ( INT | paren_chunk ) ;
     public final DRLParser.salience_return salience() throws RecognitionException {
         DRLParser.salience_return retval = new DRLParser.salience_return();
         retval.start = input.LT(1);
@@ -4775,12 +4770,12 @@
         Object INT103_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:750:2: ( salience_key ( INT | paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:750:4: salience_key ( INT | paren_chunk )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:2: ( salience_key ( INT | paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:4: salience_key ( INT | paren_chunk )
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_salience_key_in_salience1818);
+            pushFollow(FOLLOW_salience_key_in_salience1798);
             salience_key102=salience_key();
 
             state._fsp--;
@@ -4789,7 +4784,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:751:3: ( INT | paren_chunk )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:746:3: ( INT | paren_chunk )
             int alt39=2;
             int LA39_0 = input.LA(1);
 
@@ -4808,9 +4803,9 @@
             }
             switch (alt39) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:751:5: INT
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:746:5: INT
                     {
-                    INT103=(Token)match(input,INT,FOLLOW_INT_in_salience1827); if (state.failed) return retval;
+                    INT103=(Token)match(input,INT,FOLLOW_INT_in_salience1807); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     INT103_tree = (Object)adaptor.create(INT103);
                     adaptor.addChild(root_0, INT103_tree);
@@ -4822,9 +4817,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:752:5: paren_chunk
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:747:5: paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_salience1836);
+                    pushFollow(FOLLOW_paren_chunk_in_salience1816);
                     paren_chunk104=paren_chunk();
 
                     state._fsp--;
@@ -4865,7 +4860,7 @@
     };
 
     // $ANTLR start "no_loop"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:756:1: no_loop : no_loop_key ( BOOL )? ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:751:1: no_loop : no_loop_key ( BOOL )? ;
     public final DRLParser.no_loop_return no_loop() throws RecognitionException {
         DRLParser.no_loop_return retval = new DRLParser.no_loop_return();
         retval.start = input.LT(1);
@@ -4879,12 +4874,12 @@
         Object BOOL106_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:2: ( no_loop_key ( BOOL )? )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:4: no_loop_key ( BOOL )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:752:2: ( no_loop_key ( BOOL )? )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:752:4: no_loop_key ( BOOL )?
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_no_loop_key_in_no_loop1851);
+            pushFollow(FOLLOW_no_loop_key_in_no_loop1831);
             no_loop_key105=no_loop_key();
 
             state._fsp--;
@@ -4893,7 +4888,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:66: ( BOOL )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:752:66: ( BOOL )?
             int alt40=2;
             int LA40_0 = input.LA(1);
 
@@ -4902,9 +4897,9 @@
             }
             switch (alt40) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:66: BOOL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:752:66: BOOL
                     {
-                    BOOL106=(Token)match(input,BOOL,FOLLOW_BOOL_in_no_loop1856); if (state.failed) return retval;
+                    BOOL106=(Token)match(input,BOOL,FOLLOW_BOOL_in_no_loop1836); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     BOOL106_tree = (Object)adaptor.create(BOOL106);
                     adaptor.addChild(root_0, BOOL106_tree);
@@ -4947,7 +4942,7 @@
     };
 
     // $ANTLR start "auto_focus"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:761:1: auto_focus : auto_focus_key ( BOOL )? ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:756:1: auto_focus : auto_focus_key ( BOOL )? ;
     public final DRLParser.auto_focus_return auto_focus() throws RecognitionException {
         DRLParser.auto_focus_return retval = new DRLParser.auto_focus_return();
         retval.start = input.LT(1);
@@ -4961,12 +4956,12 @@
         Object BOOL108_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:2: ( auto_focus_key ( BOOL )? )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:4: auto_focus_key ( BOOL )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:2: ( auto_focus_key ( BOOL )? )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:4: auto_focus_key ( BOOL )?
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_auto_focus_key_in_auto_focus1871);
+            pushFollow(FOLLOW_auto_focus_key_in_auto_focus1851);
             auto_focus_key107=auto_focus_key();
 
             state._fsp--;
@@ -4975,7 +4970,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:69: ( BOOL )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:69: ( BOOL )?
             int alt41=2;
             int LA41_0 = input.LA(1);
 
@@ -4984,9 +4979,9 @@
             }
             switch (alt41) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:69: BOOL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:69: BOOL
                     {
-                    BOOL108=(Token)match(input,BOOL,FOLLOW_BOOL_in_auto_focus1876); if (state.failed) return retval;
+                    BOOL108=(Token)match(input,BOOL,FOLLOW_BOOL_in_auto_focus1856); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     BOOL108_tree = (Object)adaptor.create(BOOL108);
                     adaptor.addChild(root_0, BOOL108_tree);
@@ -5029,7 +5024,7 @@
     };
 
     // $ANTLR start "activation_group"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:766:1: activation_group : activation_group_key STRING ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:761:1: activation_group : activation_group_key STRING ;
     public final DRLParser.activation_group_return activation_group() throws RecognitionException {
         DRLParser.activation_group_return retval = new DRLParser.activation_group_return();
         retval.start = input.LT(1);
@@ -5043,12 +5038,12 @@
         Object STRING110_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:767:2: ( activation_group_key STRING )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:767:4: activation_group_key STRING
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:2: ( activation_group_key STRING )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:4: activation_group_key STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_activation_group_key_in_activation_group1893);
+            pushFollow(FOLLOW_activation_group_key_in_activation_group1873);
             activation_group_key109=activation_group_key();
 
             state._fsp--;
@@ -5057,7 +5052,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            STRING110=(Token)match(input,STRING,FOLLOW_STRING_in_activation_group1898); if (state.failed) return retval;
+            STRING110=(Token)match(input,STRING,FOLLOW_STRING_in_activation_group1878); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             STRING110_tree = (Object)adaptor.create(STRING110);
             adaptor.addChild(root_0, STRING110_tree);
@@ -5094,7 +5089,7 @@
     };
 
     // $ANTLR start "ruleflow_group"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:771:1: ruleflow_group : ruleflow_group_key STRING ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:766:1: ruleflow_group : ruleflow_group_key STRING ;
     public final DRLParser.ruleflow_group_return ruleflow_group() throws RecognitionException {
         DRLParser.ruleflow_group_return retval = new DRLParser.ruleflow_group_return();
         retval.start = input.LT(1);
@@ -5108,12 +5103,12 @@
         Object STRING112_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:772:2: ( ruleflow_group_key STRING )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:772:4: ruleflow_group_key STRING
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:767:2: ( ruleflow_group_key STRING )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:767:4: ruleflow_group_key STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_ruleflow_group_key_in_ruleflow_group1912);
+            pushFollow(FOLLOW_ruleflow_group_key_in_ruleflow_group1892);
             ruleflow_group_key111=ruleflow_group_key();
 
             state._fsp--;
@@ -5122,7 +5117,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            STRING112=(Token)match(input,STRING,FOLLOW_STRING_in_ruleflow_group1917); if (state.failed) return retval;
+            STRING112=(Token)match(input,STRING,FOLLOW_STRING_in_ruleflow_group1897); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             STRING112_tree = (Object)adaptor.create(STRING112);
             adaptor.addChild(root_0, STRING112_tree);
@@ -5159,7 +5154,7 @@
     };
 
     // $ANTLR start "agenda_group"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:776:1: agenda_group : agenda_group_key STRING ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:771:1: agenda_group : agenda_group_key STRING ;
     public final DRLParser.agenda_group_return agenda_group() throws RecognitionException {
         DRLParser.agenda_group_return retval = new DRLParser.agenda_group_return();
         retval.start = input.LT(1);
@@ -5173,12 +5168,12 @@
         Object STRING114_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:777:2: ( agenda_group_key STRING )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:777:4: agenda_group_key STRING
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:772:2: ( agenda_group_key STRING )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:772:4: agenda_group_key STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_agenda_group_key_in_agenda_group1931);
+            pushFollow(FOLLOW_agenda_group_key_in_agenda_group1911);
             agenda_group_key113=agenda_group_key();
 
             state._fsp--;
@@ -5187,7 +5182,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            STRING114=(Token)match(input,STRING,FOLLOW_STRING_in_agenda_group1936); if (state.failed) return retval;
+            STRING114=(Token)match(input,STRING,FOLLOW_STRING_in_agenda_group1916); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             STRING114_tree = (Object)adaptor.create(STRING114);
             adaptor.addChild(root_0, STRING114_tree);
@@ -5224,7 +5219,7 @@
     };
 
     // $ANTLR start "duration"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:781:1: duration : duration_key INT ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:776:1: duration : duration_key INT ;
     public final DRLParser.duration_return duration() throws RecognitionException {
         DRLParser.duration_return retval = new DRLParser.duration_return();
         retval.start = input.LT(1);
@@ -5238,12 +5233,12 @@
         Object INT116_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:782:2: ( duration_key INT )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:782:4: duration_key INT
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:777:2: ( duration_key INT )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:777:4: duration_key INT
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_duration_key_in_duration1950);
+            pushFollow(FOLLOW_duration_key_in_duration1930);
             duration_key115=duration_key();
 
             state._fsp--;
@@ -5252,7 +5247,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            INT116=(Token)match(input,INT,FOLLOW_INT_in_duration1955); if (state.failed) return retval;
+            INT116=(Token)match(input,INT,FOLLOW_INT_in_duration1935); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             INT116_tree = (Object)adaptor.create(INT116);
             adaptor.addChild(root_0, INT116_tree);
@@ -5289,7 +5284,7 @@
     };
 
     // $ANTLR start "dialect"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:786:1: dialect : dialect_key STRING ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:781:1: dialect : dialect_key STRING ;
     public final DRLParser.dialect_return dialect() throws RecognitionException {
         DRLParser.dialect_return retval = new DRLParser.dialect_return();
         retval.start = input.LT(1);
@@ -5303,12 +5298,12 @@
         Object STRING118_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:787:2: ( dialect_key STRING )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:787:4: dialect_key STRING
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:782:2: ( dialect_key STRING )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:782:4: dialect_key STRING
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_dialect_key_in_dialect1971);
+            pushFollow(FOLLOW_dialect_key_in_dialect1951);
             dialect_key117=dialect_key();
 
             state._fsp--;
@@ -5317,7 +5312,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            STRING118=(Token)match(input,STRING,FOLLOW_STRING_in_dialect1976); if (state.failed) return retval;
+            STRING118=(Token)match(input,STRING,FOLLOW_STRING_in_dialect1956); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             STRING118_tree = (Object)adaptor.create(STRING118);
             adaptor.addChild(root_0, STRING118_tree);
@@ -5354,7 +5349,7 @@
     };
 
     // $ANTLR start "lock_on_active"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:791:1: lock_on_active : lock_on_active_key ( BOOL )? ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:786:1: lock_on_active : lock_on_active_key ( BOOL )? ;
     public final DRLParser.lock_on_active_return lock_on_active() throws RecognitionException {
         DRLParser.lock_on_active_return retval = new DRLParser.lock_on_active_return();
         retval.start = input.LT(1);
@@ -5368,12 +5363,12 @@
         Object BOOL120_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:2: ( lock_on_active_key ( BOOL )? )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:4: lock_on_active_key ( BOOL )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:787:2: ( lock_on_active_key ( BOOL )? )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:787:4: lock_on_active_key ( BOOL )?
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_lock_on_active_key_in_lock_on_active1994);
+            pushFollow(FOLLOW_lock_on_active_key_in_lock_on_active1974);
             lock_on_active_key119=lock_on_active_key();
 
             state._fsp--;
@@ -5382,7 +5377,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_RULE_HEADER_KEYWORD);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:73: ( BOOL )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:787:73: ( BOOL )?
             int alt42=2;
             int LA42_0 = input.LA(1);
 
@@ -5391,9 +5386,9 @@
             }
             switch (alt42) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:73: BOOL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:787:73: BOOL
                     {
-                    BOOL120=(Token)match(input,BOOL,FOLLOW_BOOL_in_lock_on_active1999); if (state.failed) return retval;
+                    BOOL120=(Token)match(input,BOOL,FOLLOW_BOOL_in_lock_on_active1979); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     BOOL120_tree = (Object)adaptor.create(BOOL120);
                     adaptor.addChild(root_0, BOOL120_tree);
@@ -5436,7 +5431,7 @@
     };
 
     // $ANTLR start "normal_lhs_block"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:796:1: normal_lhs_block : ( lhs )* -> ^( VT_AND_IMPLICIT ( lhs )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:791:1: normal_lhs_block : ( lhs )* -> ^( VT_AND_IMPLICIT ( lhs )* ) ;
     public final DRLParser.normal_lhs_block_return normal_lhs_block() throws RecognitionException {
         DRLParser.normal_lhs_block_return retval = new DRLParser.normal_lhs_block_return();
         retval.start = input.LT(1);
@@ -5448,10 +5443,10 @@
 
         RewriteRuleSubtreeStream stream_lhs=new RewriteRuleSubtreeStream(adaptor,"rule lhs");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:2: ( ( lhs )* -> ^( VT_AND_IMPLICIT ( lhs )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:4: ( lhs )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:2: ( ( lhs )* -> ^( VT_AND_IMPLICIT ( lhs )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:4: ( lhs )*
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:4: ( lhs )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:4: ( lhs )*
             loop43:
             do {
                 int alt43=2;
@@ -5464,9 +5459,9 @@
 
                 switch (alt43) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:4: lhs
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:792:4: lhs
             	    {
-            	    pushFollow(FOLLOW_lhs_in_normal_lhs_block2014);
+            	    pushFollow(FOLLOW_lhs_in_normal_lhs_block1994);
             	    lhs121=lhs();
 
             	    state._fsp--;
@@ -5494,14 +5489,14 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 798:2: -> ^( VT_AND_IMPLICIT ( lhs )* )
+            // 793:2: -> ^( VT_AND_IMPLICIT ( lhs )* )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:5: ^( VT_AND_IMPLICIT ( lhs )* )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:793:5: ^( VT_AND_IMPLICIT ( lhs )* )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_AND_IMPLICIT, "VT_AND_IMPLICIT"), root_1);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:23: ( lhs )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:793:23: ( lhs )*
                 while ( stream_lhs.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs.nextTree());
 
@@ -5542,7 +5537,7 @@
     };
 
     // $ANTLR start "lhs"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:801:1: lhs : lhs_or ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:796:1: lhs : lhs_or ;
     public final DRLParser.lhs_return lhs() throws RecognitionException {
         DRLParser.lhs_return retval = new DRLParser.lhs_return();
         retval.start = input.LT(1);
@@ -5554,12 +5549,12 @@
 
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:801:5: ( lhs_or )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:801:7: lhs_or
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:796:5: ( lhs_or )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:796:7: lhs_or
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_lhs_or_in_lhs2035);
+            pushFollow(FOLLOW_lhs_or_in_lhs2015);
             lhs_or122=lhs_or();
 
             state._fsp--;
@@ -5594,7 +5589,7 @@
     };
 
     // $ANTLR start "lhs_or"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:804:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:799:1: lhs_or : ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* );
     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);
@@ -5627,7 +5622,7 @@
         	Token orToken = null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:807:3: ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:3: ( ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN ) | ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )* )
             int alt47=2;
             int LA47_0 = input.LA(1);
 
@@ -5660,15 +5655,15 @@
             }
             switch (alt47) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:807:5: ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:5: ( LEFT_PAREN or_key )=> LEFT_PAREN or= or_key ( lhs_and )+ RIGHT_PAREN
                     {
-                    LEFT_PAREN123=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_or2059); if (state.failed) return retval; 
+                    LEFT_PAREN123=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_or2039); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN123);
 
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN123, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_or_key_in_lhs_or2069);
+                    pushFollow(FOLLOW_or_key_in_lhs_or2049);
                     or=or_key();
 
                     state._fsp--;
@@ -5677,7 +5672,7 @@
                     if ( state.backtracking==0 ) {
                       	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	
                     }
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:811:4: ( lhs_and )+
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:4: ( lhs_and )+
                     int cnt44=0;
                     loop44:
                     do {
@@ -5691,9 +5686,9 @@
 
                         switch (alt44) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:811:4: lhs_and
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:4: lhs_and
                     	    {
-                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2077);
+                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2057);
                     	    lhs_and124=lhs_and();
 
                     	    state._fsp--;
@@ -5713,7 +5708,7 @@
                         cnt44++;
                     } while (true);
 
-                    RIGHT_PAREN125=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_or2083); if (state.failed) return retval; 
+                    RIGHT_PAREN125=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_or2063); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN125);
 
                     if ( state.backtracking==0 ) {
@@ -5722,7 +5717,7 @@
 
 
                     // AST REWRITE
-                    // elements: RIGHT_PAREN, lhs_and
+                    // elements: lhs_and, RIGHT_PAREN
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -5732,9 +5727,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 813:3: -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN )
+                    // 808:3: -> ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN )
                     {
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:813:6: ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:808:6: ^( VT_OR_PREFIX[$or.start] ( lhs_and )+ RIGHT_PAREN )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_OR_PREFIX, (or!=null?((Token)or.start):null)), root_1);
@@ -5758,12 +5753,12 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:814:4: ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:809:4: ( lhs_and -> lhs_and ) ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )*
                     {
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:814:4: ( lhs_and -> lhs_and )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:814:5: lhs_and
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:809:4: ( lhs_and -> lhs_and )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:809:5: lhs_and
                     {
-                    pushFollow(FOLLOW_lhs_and_in_lhs_or2106);
+                    pushFollow(FOLLOW_lhs_and_in_lhs_or2086);
                     lhs_and126=lhs_and();
 
                     state._fsp--;
@@ -5782,7 +5777,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 814:13: -> lhs_and
+                    // 809:13: -> lhs_and
                     {
                         adaptor.addChild(root_0, stream_lhs_and.nextTree());
 
@@ -5791,7 +5786,7 @@
                     retval.tree = root_0;}
                     }
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:3: ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:3: ( ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and ) )*
                     loop46:
                     do {
                         int alt46=2;
@@ -5819,9 +5814,9 @@
 
                         switch (alt46) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:5: ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:5: ( or_key | DOUBLE_PIPE )=> (value= or_key | pipe= DOUBLE_PIPE ) lhs_and
                     	    {
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:28: (value= or_key | pipe= DOUBLE_PIPE )
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:28: (value= or_key | pipe= DOUBLE_PIPE )
                     	    int alt45=2;
                     	    int LA45_0 = input.LA(1);
 
@@ -5840,9 +5835,9 @@
                     	    }
                     	    switch (alt45) {
                     	        case 1 :
-                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:29: value= or_key
+                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:29: value= or_key
                     	            {
-                    	            pushFollow(FOLLOW_or_key_in_lhs_or2128);
+                    	            pushFollow(FOLLOW_or_key_in_lhs_or2108);
                     	            value=or_key();
 
                     	            state._fsp--;
@@ -5855,9 +5850,9 @@
                     	            }
                     	            break;
                     	        case 2 :
-                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:69: pipe= DOUBLE_PIPE
+                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:69: pipe= DOUBLE_PIPE
                     	            {
-                    	            pipe=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_lhs_or2135); if (state.failed) return retval; 
+                    	            pipe=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_lhs_or2115); if (state.failed) return retval; 
                     	            if ( state.backtracking==0 ) stream_DOUBLE_PIPE.add(pipe);
 
                     	            if ( state.backtracking==0 ) {
@@ -5872,7 +5867,7 @@
                     	    if ( state.backtracking==0 ) {
                     	      	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	
                     	    }
-                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2146);
+                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2126);
                     	    lhs_and127=lhs_and();
 
                     	    state._fsp--;
@@ -5881,7 +5876,7 @@
 
 
                     	    // AST REWRITE
-                    	    // elements: lhs_and, lhs_or
+                    	    // elements: lhs_or, lhs_and
                     	    // token labels: 
                     	    // rule labels: retval
                     	    // token list labels: 
@@ -5891,9 +5886,9 @@
                     	    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     	    root_0 = (Object)adaptor.nil();
-                    	    // 818:3: -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and )
+                    	    // 813:3: -> ^( VT_OR_INFIX[orToken] $lhs_or lhs_and )
                     	    {
-                    	        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:818:6: ^( VT_OR_INFIX[orToken] $lhs_or lhs_and )
+                    	        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:813:6: ^( VT_OR_INFIX[orToken] $lhs_or lhs_and )
                     	        {
                     	        Object root_1 = (Object)adaptor.nil();
                     	        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_OR_INFIX, orToken), root_1);
@@ -5946,7 +5941,7 @@
     };
 
     // $ANTLR start "lhs_and"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:821:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:816:1: lhs_and : ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $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);
@@ -5979,7 +5974,7 @@
         	Token andToken = null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:824:3: ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:3: ( ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ RIGHT_PAREN ) | ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )* )
             int alt51=2;
             int LA51_0 = input.LA(1);
 
@@ -6012,15 +6007,15 @@
             }
             switch (alt51) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:824:5: ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:5: ( LEFT_PAREN and_key )=> LEFT_PAREN and= and_key ( lhs_unary )+ RIGHT_PAREN
                     {
-                    LEFT_PAREN128=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and2187); if (state.failed) return retval; 
+                    LEFT_PAREN128=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and2167); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN128);
 
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN128, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_and_key_in_lhs_and2197);
+                    pushFollow(FOLLOW_and_key_in_lhs_and2177);
                     and=and_key();
 
                     state._fsp--;
@@ -6029,7 +6024,7 @@
                     if ( state.backtracking==0 ) {
                       	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	
                     }
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:828:4: ( lhs_unary )+
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:4: ( lhs_unary )+
                     int cnt48=0;
                     loop48:
                     do {
@@ -6043,9 +6038,9 @@
 
                         switch (alt48) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:828:4: lhs_unary
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:4: lhs_unary
                     	    {
-                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2205);
+                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2185);
                     	    lhs_unary129=lhs_unary();
 
                     	    state._fsp--;
@@ -6065,7 +6060,7 @@
                         cnt48++;
                     } while (true);
 
-                    RIGHT_PAREN130=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and2211); if (state.failed) return retval; 
+                    RIGHT_PAREN130=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and2191); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN130);
 
                     if ( state.backtracking==0 ) {
@@ -6084,9 +6079,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 830:3: -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ RIGHT_PAREN )
+                    // 825:3: -> ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ RIGHT_PAREN )
                     {
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:830:6: ^( VT_AND_PREFIX[$and.start] ( lhs_unary )+ RIGHT_PAREN )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:825:6: ^( VT_AND_PREFIX[$and.start] ( 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);
@@ -6110,12 +6105,12 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:4: ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:826:4: ( lhs_unary -> lhs_unary ) ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )*
                     {
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:4: ( lhs_unary -> lhs_unary )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:5: lhs_unary
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:826:4: ( lhs_unary -> lhs_unary )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:826:5: lhs_unary
                     {
-                    pushFollow(FOLLOW_lhs_unary_in_lhs_and2235);
+                    pushFollow(FOLLOW_lhs_unary_in_lhs_and2215);
                     lhs_unary131=lhs_unary();
 
                     state._fsp--;
@@ -6134,7 +6129,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 831:15: -> lhs_unary
+                    // 826:15: -> lhs_unary
                     {
                         adaptor.addChild(root_0, stream_lhs_unary.nextTree());
 
@@ -6143,7 +6138,7 @@
                     retval.tree = root_0;}
                     }
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:3: ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )*
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:3: ( ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary ) )*
                     loop50:
                     do {
                         int alt50=2;
@@ -6171,9 +6166,9 @@
 
                         switch (alt50) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:5: ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:5: ( and_key | DOUBLE_AMPER )=> (value= and_key | amper= DOUBLE_AMPER ) lhs_unary
                     	    {
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:30: (value= and_key | amper= DOUBLE_AMPER )
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:30: (value= and_key | amper= DOUBLE_AMPER )
                     	    int alt49=2;
                     	    int LA49_0 = input.LA(1);
 
@@ -6192,9 +6187,9 @@
                     	    }
                     	    switch (alt49) {
                     	        case 1 :
-                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:31: value= and_key
+                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:31: value= and_key
                     	            {
-                    	            pushFollow(FOLLOW_and_key_in_lhs_and2257);
+                    	            pushFollow(FOLLOW_and_key_in_lhs_and2237);
                     	            value=and_key();
 
                     	            state._fsp--;
@@ -6207,9 +6202,9 @@
                     	            }
                     	            break;
                     	        case 2 :
-                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:73: amper= DOUBLE_AMPER
+                    	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:73: amper= DOUBLE_AMPER
                     	            {
-                    	            amper=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_lhs_and2264); if (state.failed) return retval; 
+                    	            amper=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_lhs_and2244); if (state.failed) return retval; 
                     	            if ( state.backtracking==0 ) stream_DOUBLE_AMPER.add(amper);
 
                     	            if ( state.backtracking==0 ) {
@@ -6224,7 +6219,7 @@
                     	    if ( state.backtracking==0 ) {
                     	      	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR);	
                     	    }
-                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2275);
+                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2255);
                     	    lhs_unary132=lhs_unary();
 
                     	    state._fsp--;
@@ -6243,9 +6238,9 @@
                     	    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     	    root_0 = (Object)adaptor.nil();
-                    	    // 835:3: -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary )
+                    	    // 830:3: -> ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary )
                     	    {
-                    	        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:835:6: ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary )
+                    	        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:830:6: ^( VT_AND_INFIX[andToken] $lhs_and lhs_unary )
                     	        {
                     	        Object root_1 = (Object)adaptor.nil();
                     	        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_AND_INFIX, andToken), root_1);
@@ -6298,7 +6293,7 @@
     };
 
     // $ANTLR start "lhs_unary"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:838:1: lhs_unary : ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:833:1: lhs_unary : ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | 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);
@@ -6328,12 +6323,12 @@
         Object SEMICOLON142_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:839:2: ( ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:839:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:834:2: ( ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )? )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:834:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source ) ( ( SEMICOLON )=> SEMICOLON )?
             {
             root_0 = (Object)adaptor.nil();
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:839:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:834:4: ( lhs_exist | {...}? => lhs_not_binding | lhs_not | lhs_eval | lhs_forall | LEFT_PAREN lhs_or RIGHT_PAREN | pattern_source )
             int alt52=7;
             int LA52_0 = input.LA(1);
 
@@ -6378,9 +6373,9 @@
             }
             switch (alt52) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:839:6: lhs_exist
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:834:6: lhs_exist
                     {
-                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary2306);
+                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary2286);
                     lhs_exist133=lhs_exist();
 
                     state._fsp--;
@@ -6390,13 +6385,13 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:840:4: {...}? => lhs_not_binding
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:835: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_unary2314);
+                    pushFollow(FOLLOW_lhs_not_binding_in_lhs_unary2294);
                     lhs_not_binding134=lhs_not_binding();
 
                     state._fsp--;
@@ -6406,9 +6401,9 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:841:5: lhs_not
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:836:5: lhs_not
                     {
-                    pushFollow(FOLLOW_lhs_not_in_lhs_unary2320);
+                    pushFollow(FOLLOW_lhs_not_in_lhs_unary2300);
                     lhs_not135=lhs_not();
 
                     state._fsp--;
@@ -6418,9 +6413,9 @@
                     }
                     break;
                 case 4 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:842:5: lhs_eval
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:837:5: lhs_eval
                     {
-                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary2326);
+                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary2306);
                     lhs_eval136=lhs_eval();
 
                     state._fsp--;
@@ -6430,9 +6425,9 @@
                     }
                     break;
                 case 5 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:5: lhs_forall
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:838:5: lhs_forall
                     {
-                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary2332);
+                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary2312);
                     lhs_forall137=lhs_forall();
 
                     state._fsp--;
@@ -6442,19 +6437,19 @@
                     }
                     break;
                 case 6 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:5: LEFT_PAREN lhs_or RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:839:5: LEFT_PAREN lhs_or RIGHT_PAREN
                     {
-                    LEFT_PAREN138=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary2338); if (state.failed) return retval;
+                    LEFT_PAREN138=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary2318); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN138, DroolsEditorType.SYMBOL); emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION );	
                     }
-                    pushFollow(FOLLOW_lhs_or_in_lhs_unary2349);
+                    pushFollow(FOLLOW_lhs_or_in_lhs_unary2329);
                     lhs_or139=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_or139.getTree());
-                    RIGHT_PAREN140=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary2355); if (state.failed) return retval;
+                    RIGHT_PAREN140=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary2335); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     RIGHT_PAREN140_tree = (Object)adaptor.create(RIGHT_PAREN140);
                     adaptor.addChild(root_0, RIGHT_PAREN140_tree);
@@ -6466,9 +6461,9 @@
                     }
                     break;
                 case 7 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:847:5: pattern_source
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:842:5: pattern_source
                     {
-                    pushFollow(FOLLOW_pattern_source_in_lhs_unary2363);
+                    pushFollow(FOLLOW_pattern_source_in_lhs_unary2343);
                     pattern_source141=pattern_source();
 
                     state._fsp--;
@@ -6480,7 +6475,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:849:3: ( ( SEMICOLON )=> SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:3: ( ( SEMICOLON )=> SEMICOLON )?
             int alt53=2;
             int LA53_0 = input.LA(1);
 
@@ -6493,9 +6488,9 @@
             }
             switch (alt53) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:849:4: ( SEMICOLON )=> SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:4: ( SEMICOLON )=> SEMICOLON
                     {
-                    SEMICOLON142=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_lhs_unary2377); if (state.failed) return retval;
+                    SEMICOLON142=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_lhs_unary2357); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                       	emit(SEMICOLON142, DroolsEditorType.SYMBOL);	
                     }
@@ -6534,7 +6529,7 @@
     };
 
     // $ANTLR start "lhs_exist"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:852: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 )? ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:847: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);
@@ -6560,10 +6555,10 @@
         RewriteRuleSubtreeStream stream_exists_key=new RewriteRuleSubtreeStream(adaptor,"rule exists_key");
         RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:853: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 )? ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:853:4: exists_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:848: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 )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:848: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_exist2393);
+            pushFollow(FOLLOW_exists_key_in_lhs_exist2373);
             exists_key143=exists_key();
 
             state._fsp--;
@@ -6572,7 +6567,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:10: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:850:10: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
             int alt54=3;
             int LA54_0 = input.LA(1);
 
@@ -6596,7 +6591,7 @@
             else if ( (LA54_0==ID) ) {
                 int LA54_2 = input.LA(2);
 
-                if ( (((synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.FORALL))))||(synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EXISTS))))||synpred6_DRL()||(synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.NOT))))||(synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||((synpred6_DRL()&&(validateNotWithBinding()))&&((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) ) {
+                if ( (((synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EVAL))))||(synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.EXISTS))))||synpred6_DRL()||(synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.FORALL))))||(synpred6_DRL()&&((validateIdentifierKey(DroolsSoftKeywords.NOT))))||((synpred6_DRL()&&(validateNotWithBinding()))&&((validateIdentifierKey(DroolsSoftKeywords.NOT)))))) ) {
                     alt54=1;
                 }
                 else if ( (true) ) {
@@ -6619,9 +6614,9 @@
             }
             switch (alt54) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:12: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:850:12: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
                     {
-                    pushFollow(FOLLOW_lhs_or_in_lhs_exist2420);
+                    pushFollow(FOLLOW_lhs_or_in_lhs_exist2400);
                     lhs_or144=lhs_or();
 
                     state._fsp--;
@@ -6631,21 +6626,21 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:856:5: LEFT_PAREN lhs_or RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:851:5: LEFT_PAREN lhs_or RIGHT_PAREN
                     {
-                    LEFT_PAREN145=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist2427); if (state.failed) return retval; 
+                    LEFT_PAREN145=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist2407); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN145);
 
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN145, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_lhs_or_in_lhs_exist2435);
+                    pushFollow(FOLLOW_lhs_or_in_lhs_exist2415);
                     lhs_or146=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or146.getTree());
-                    RIGHT_PAREN147=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist2442); if (state.failed) return retval; 
+                    RIGHT_PAREN147=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist2422); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN147);
 
                     if ( state.backtracking==0 ) {
@@ -6655,9 +6650,9 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:859:12: lhs_pattern
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:854:12: lhs_pattern
                     {
-                    pushFollow(FOLLOW_lhs_pattern_in_lhs_exist2457);
+                    pushFollow(FOLLOW_lhs_pattern_in_lhs_exist2437);
                     lhs_pattern148=lhs_pattern();
 
                     state._fsp--;
@@ -6672,7 +6667,7 @@
 
 
             // AST REWRITE
-            // elements: exists_key, RIGHT_PAREN, lhs_or, lhs_pattern
+            // elements: exists_key, lhs_pattern, RIGHT_PAREN, lhs_or
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -6682,26 +6677,26 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 861:10: -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+            // 856:10: -> ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:861:13: ^( exists_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:856: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);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:861:26: ( lhs_or )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:856:26: ( lhs_or )?
                 if ( stream_lhs_or.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_or.nextTree());
 
                 }
                 stream_lhs_or.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:861:34: ( lhs_pattern )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:856:34: ( lhs_pattern )?
                 if ( stream_lhs_pattern.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_pattern.nextTree());
 
                 }
                 stream_lhs_pattern.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:861:47: ( RIGHT_PAREN )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:856:47: ( RIGHT_PAREN )?
                 if ( stream_RIGHT_PAREN.hasNext() ) {
                     adaptor.addChild(root_1, stream_RIGHT_PAREN.nextNode());
 
@@ -6742,7 +6737,7 @@
     };
 
     // $ANTLR start "lhs_not_binding"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864:1: lhs_not_binding : not_key fact_binding -> ^( not_key ^( VT_PATTERN fact_binding ) ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:859: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);
@@ -6757,16 +6752,16 @@
         RewriteRuleSubtreeStream stream_fact_binding=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding");
         RewriteRuleSubtreeStream stream_not_key=new RewriteRuleSubtreeStream(adaptor,"rule not_key");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:865:2: ( not_key fact_binding -> ^( not_key ^( VT_PATTERN fact_binding ) ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:865:4: not_key fact_binding
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:860:2: ( not_key fact_binding -> ^( not_key ^( VT_PATTERN fact_binding ) ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:860:4: not_key fact_binding
             {
-            pushFollow(FOLLOW_not_key_in_lhs_not_binding2503);
+            pushFollow(FOLLOW_not_key_in_lhs_not_binding2483);
             not_key149=not_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_not_key.add(not_key149.getTree());
-            pushFollow(FOLLOW_fact_binding_in_lhs_not_binding2505);
+            pushFollow(FOLLOW_fact_binding_in_lhs_not_binding2485);
             fact_binding150=fact_binding();
 
             state._fsp--;
@@ -6785,14 +6780,14 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 866:2: -> ^( not_key ^( VT_PATTERN fact_binding ) )
+            // 861:2: -> ^( not_key ^( VT_PATTERN fact_binding ) )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:5: ^( not_key ^( VT_PATTERN fact_binding ) )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:861:5: ^( not_key ^( VT_PATTERN fact_binding ) )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_not_key.nextNode(), root_1);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:15: ^( VT_PATTERN fact_binding )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:861: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);
@@ -6836,7 +6831,7 @@
     };
 
     // $ANTLR start "lhs_not"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:869: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 )? ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864: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);
@@ -6862,10 +6857,10 @@
         RewriteRuleSubtreeStream stream_not_key=new RewriteRuleSubtreeStream(adaptor,"rule not_key");
         RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:869: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 )? ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:869:11: not_key ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864: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 )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:864: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_not2528);
+            pushFollow(FOLLOW_not_key_in_lhs_not2508);
             not_key151=not_key();
 
             state._fsp--;
@@ -6874,7 +6869,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:3: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:3: ( ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or | LEFT_PAREN lhs_or RIGHT_PAREN | lhs_pattern )
             int alt55=3;
             int LA55_0 = input.LA(1);
 
@@ -6921,12 +6916,12 @@
             }
             switch (alt55) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:5: ( LEFT_PAREN ( or_key | and_key ) )=> lhs_or
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866: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_not2550);
+                    pushFollow(FOLLOW_lhs_or_in_lhs_not2530);
                     lhs_or152=lhs_or();
 
                     state._fsp--;
@@ -6936,21 +6931,21 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:872:5: LEFT_PAREN lhs_or RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:867:5: LEFT_PAREN lhs_or RIGHT_PAREN
                     {
-                    LEFT_PAREN153=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not2557); if (state.failed) return retval; 
+                    LEFT_PAREN153=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not2537); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN153);
 
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN153, DroolsEditorType.SYMBOL); emit(Location.LOCATION_LHS_BEGIN_OF_CONDITION );	
                     }
-                    pushFollow(FOLLOW_lhs_or_in_lhs_not2566);
+                    pushFollow(FOLLOW_lhs_or_in_lhs_not2546);
                     lhs_or154=lhs_or();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or154.getTree());
-                    RIGHT_PAREN155=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not2572); if (state.failed) return retval; 
+                    RIGHT_PAREN155=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not2552); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN155);
 
                     if ( state.backtracking==0 ) {
@@ -6960,9 +6955,9 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:875:6: lhs_pattern
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:870:6: lhs_pattern
                     {
-                    pushFollow(FOLLOW_lhs_pattern_in_lhs_not2582);
+                    pushFollow(FOLLOW_lhs_pattern_in_lhs_not2562);
                     lhs_pattern156=lhs_pattern();
 
                     state._fsp--;
@@ -6987,26 +6982,26 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 876:10: -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+            // 871:10: -> ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:876:13: ^( not_key ( lhs_or )? ( lhs_pattern )? ( RIGHT_PAREN )? )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871: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);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:876:23: ( lhs_or )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:23: ( lhs_or )?
                 if ( stream_lhs_or.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_or.nextTree());
 
                 }
                 stream_lhs_or.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:876:31: ( lhs_pattern )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:31: ( lhs_pattern )?
                 if ( stream_lhs_pattern.hasNext() ) {
                     adaptor.addChild(root_1, stream_lhs_pattern.nextTree());
 
                 }
                 stream_lhs_pattern.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:876:44: ( RIGHT_PAREN )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:44: ( RIGHT_PAREN )?
                 if ( stream_RIGHT_PAREN.hasNext() ) {
                     adaptor.addChild(root_1, stream_RIGHT_PAREN.nextNode());
 
@@ -7047,7 +7042,7 @@
     };
 
     // $ANTLR start "lhs_eval"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:879:1: lhs_eval : ev= eval_key pc= paren_chunk -> ^( eval_key paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:874: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);
@@ -7062,10 +7057,10 @@
         RewriteRuleSubtreeStream stream_eval_key=new RewriteRuleSubtreeStream(adaptor,"rule eval_key");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:880:2: (ev= eval_key pc= paren_chunk -> ^( eval_key paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:880:4: ev= eval_key pc= paren_chunk
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:875:2: (ev= eval_key pc= paren_chunk -> ^( eval_key paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:875:4: ev= eval_key pc= paren_chunk
             {
-            pushFollow(FOLLOW_eval_key_in_lhs_eval2621);
+            pushFollow(FOLLOW_eval_key_in_lhs_eval2601);
             ev=eval_key();
 
             state._fsp--;
@@ -7074,7 +7069,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_EVAL);	
             }
-            pushFollow(FOLLOW_paren_chunk_in_lhs_eval2630);
+            pushFollow(FOLLOW_paren_chunk_in_lhs_eval2610);
             pc=paren_chunk();
 
             state._fsp--;
@@ -7093,7 +7088,7 @@
 
 
             // AST REWRITE
-            // elements: eval_key, paren_chunk
+            // elements: paren_chunk, eval_key
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7103,9 +7098,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 889:3: -> ^( eval_key paren_chunk )
+            // 884:3: -> ^( eval_key paren_chunk )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:889:6: ^( eval_key paren_chunk )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:884:6: ^( eval_key paren_chunk )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_eval_key.nextNode(), root_1);
@@ -7146,7 +7141,7 @@
     };
 
     // $ANTLR start "lhs_forall"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:892:1: lhs_forall : forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN -> ^( forall_key ( lhs_pattern )+ RIGHT_PAREN ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:887:1: lhs_forall : forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN -> ^( forall_key ( lhs_pattern )+ 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);
@@ -7167,22 +7162,22 @@
         RewriteRuleSubtreeStream stream_forall_key=new RewriteRuleSubtreeStream(adaptor,"rule forall_key");
         RewriteRuleSubtreeStream stream_lhs_pattern=new RewriteRuleSubtreeStream(adaptor,"rule lhs_pattern");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:893:2: ( forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN -> ^( forall_key ( lhs_pattern )+ RIGHT_PAREN ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:893:4: forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:888:2: ( forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN -> ^( forall_key ( lhs_pattern )+ RIGHT_PAREN ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:888:4: forall_key LEFT_PAREN ( lhs_pattern )+ RIGHT_PAREN
             {
-            pushFollow(FOLLOW_forall_key_in_lhs_forall2657);
+            pushFollow(FOLLOW_forall_key_in_lhs_forall2637);
             forall_key157=forall_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_forall_key.add(forall_key157.getTree());
-            LEFT_PAREN158=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall2662); if (state.failed) return retval; 
+            LEFT_PAREN158=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall2642); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN158);
 
             if ( state.backtracking==0 ) {
               	emit(LEFT_PAREN158, DroolsEditorType.SYMBOL);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:895:4: ( lhs_pattern )+
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:890:4: ( lhs_pattern )+
             int cnt56=0;
             loop56:
             do {
@@ -7196,9 +7191,9 @@
 
                 switch (alt56) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:895:4: lhs_pattern
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:890:4: lhs_pattern
             	    {
-            	    pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2670);
+            	    pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2650);
             	    lhs_pattern159=lhs_pattern();
 
             	    state._fsp--;
@@ -7218,7 +7213,7 @@
                 cnt56++;
             } while (true);
 
-            RIGHT_PAREN160=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall2676); if (state.failed) return retval; 
+            RIGHT_PAREN160=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall2656); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN160);
 
             if ( state.backtracking==0 ) {
@@ -7227,7 +7222,7 @@
 
 
             // AST REWRITE
-            // elements: RIGHT_PAREN, lhs_pattern, forall_key
+            // elements: RIGHT_PAREN, forall_key, lhs_pattern
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7237,9 +7232,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 897:3: -> ^( forall_key ( lhs_pattern )+ RIGHT_PAREN )
+            // 892:3: -> ^( forall_key ( lhs_pattern )+ RIGHT_PAREN )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:897:6: ^( forall_key ( lhs_pattern )+ RIGHT_PAREN )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:892:6: ^( forall_key ( lhs_pattern )+ RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_forall_key.nextNode(), root_1);
@@ -7288,7 +7283,7 @@
     };
 
     // $ANTLR start "pattern_source"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:900:1: pattern_source : lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:895: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);
@@ -7313,18 +7308,18 @@
 
          boolean isFailed = true;	
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:903:2: ( lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:903:4: lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:898:2: ( lhs_pattern ( over_clause )? ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )? )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:898: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_source2712);
+            pushFollow(FOLLOW_lhs_pattern_in_pattern_source2692);
             lhs_pattern161=lhs_pattern();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs_pattern161.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:904:3: ( over_clause )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:3: ( over_clause )?
             int alt57=2;
             int LA57_0 = input.LA(1);
 
@@ -7333,9 +7328,9 @@
             }
             switch (alt57) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:904:3: over_clause
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:3: over_clause
                     {
-                    pushFollow(FOLLOW_over_clause_in_pattern_source2716);
+                    pushFollow(FOLLOW_over_clause_in_pattern_source2696);
                     over_clause162=over_clause();
 
                     state._fsp--;
@@ -7347,7 +7342,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:905:3: ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:900:3: ( FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source ) )?
             int alt59=2;
             int LA59_0 = input.LA(1);
 
@@ -7356,9 +7351,9 @@
             }
             switch (alt59) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:906:4: FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:901:4: FROM ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
                     {
-                    FROM163=(Token)match(input,FROM,FOLLOW_FROM_in_pattern_source2726); if (state.failed) return retval;
+                    FROM163=(Token)match(input,FROM,FOLLOW_FROM_in_pattern_source2706); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     FROM163_tree = (Object)adaptor.create(FROM163);
                     root_0 = (Object)adaptor.becomeRoot(FROM163_tree, root_0);
@@ -7367,7 +7362,7 @@
                       	emit(FROM163, DroolsEditorType.KEYWORD);
                       			emit(Location.LOCATION_LHS_FROM);	
                     }
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:909:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:904:11: ( accumulate_statement | collect_statement | entrypoint_statement | from_source )
                     int alt58=4;
                     switch ( input.LA(1) ) {
                     case ACCUMULATE:
@@ -7409,9 +7404,9 @@
 
                     switch (alt58) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:909:14: accumulate_statement
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:904:14: accumulate_statement
                             {
-                            pushFollow(FOLLOW_accumulate_statement_in_pattern_source2746);
+                            pushFollow(FOLLOW_accumulate_statement_in_pattern_source2726);
                             accumulate_statement164=accumulate_statement();
 
                             state._fsp--;
@@ -7421,9 +7416,9 @@
                             }
                             break;
                         case 2 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:910:15: collect_statement
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:905:15: collect_statement
                             {
-                            pushFollow(FOLLOW_collect_statement_in_pattern_source2762);
+                            pushFollow(FOLLOW_collect_statement_in_pattern_source2742);
                             collect_statement165=collect_statement();
 
                             state._fsp--;
@@ -7433,9 +7428,9 @@
                             }
                             break;
                         case 3 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:911:15: entrypoint_statement
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:906:15: entrypoint_statement
                             {
-                            pushFollow(FOLLOW_entrypoint_statement_in_pattern_source2779);
+                            pushFollow(FOLLOW_entrypoint_statement_in_pattern_source2759);
                             entrypoint_statement166=entrypoint_statement();
 
                             state._fsp--;
@@ -7445,9 +7440,9 @@
                             }
                             break;
                         case 4 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:912:15: from_source
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:907:15: from_source
                             {
-                            pushFollow(FOLLOW_from_source_in_pattern_source2795);
+                            pushFollow(FOLLOW_from_source_in_pattern_source2775);
                             from_source167=from_source();
 
                             state._fsp--;
@@ -7510,7 +7505,7 @@
     };
 
     // $ANTLR start "over_clause"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:930:1: over_clause : OVER over_elements ( COMMA over_elements )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:925: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);
@@ -7528,12 +7523,12 @@
         Object COMMA170_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:2: ( OVER over_elements ( COMMA over_elements )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:4: OVER over_elements ( COMMA over_elements )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:926:2: ( OVER over_elements ( COMMA over_elements )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:926:4: OVER over_elements ( COMMA over_elements )*
             {
             root_0 = (Object)adaptor.nil();
 
-            OVER168=(Token)match(input,OVER,FOLLOW_OVER_in_over_clause2827); if (state.failed) return retval;
+            OVER168=(Token)match(input,OVER,FOLLOW_OVER_in_over_clause2807); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             OVER168_tree = (Object)adaptor.create(OVER168);
             root_0 = (Object)adaptor.becomeRoot(OVER168_tree, root_0);
@@ -7541,13 +7536,13 @@
             if ( state.backtracking==0 ) {
               	emit(OVER168, DroolsEditorType.KEYWORD);	
             }
-            pushFollow(FOLLOW_over_elements_in_over_clause2832);
+            pushFollow(FOLLOW_over_elements_in_over_clause2812);
             over_elements169=over_elements();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, over_elements169.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:932:4: ( COMMA over_elements )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:927:4: ( COMMA over_elements )*
             loop60:
             do {
                 int alt60=2;
@@ -7572,13 +7567,13 @@
 
                 switch (alt60) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:932:5: COMMA over_elements
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:927:5: COMMA over_elements
             	    {
-            	    COMMA170=(Token)match(input,COMMA,FOLLOW_COMMA_in_over_clause2839); if (state.failed) return retval;
+            	    COMMA170=(Token)match(input,COMMA,FOLLOW_COMMA_in_over_clause2819); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
             	      	emit(COMMA170, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_over_elements_in_over_clause2844);
+            	    pushFollow(FOLLOW_over_elements_in_over_clause2824);
             	    over_elements171=over_elements();
 
             	    state._fsp--;
@@ -7622,7 +7617,7 @@
     };
 
     // $ANTLR start "over_elements"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:935:1: over_elements : id1= ID COLON id2= ID paren_chunk -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:930: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);
@@ -7642,28 +7637,28 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:2: (id1= ID COLON id2= ID paren_chunk -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:4: id1= ID COLON id2= ID paren_chunk
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:2: (id1= ID COLON id2= ID paren_chunk -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:4: id1= ID COLON id2= ID paren_chunk
             {
-            id1=(Token)match(input,ID,FOLLOW_ID_in_over_elements2859); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_over_elements2839); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
             if ( state.backtracking==0 ) {
               	emit(id1, DroolsEditorType.IDENTIFIER);	
             }
-            COLON172=(Token)match(input,COLON,FOLLOW_COLON_in_over_elements2866); if (state.failed) return retval; 
+            COLON172=(Token)match(input,COLON,FOLLOW_COLON_in_over_elements2846); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_COLON.add(COLON172);
 
             if ( state.backtracking==0 ) {
               	emit(COLON172, DroolsEditorType.SYMBOL);	
             }
-            id2=(Token)match(input,ID,FOLLOW_ID_in_over_elements2875); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_over_elements2855); 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_elements2882);
+            pushFollow(FOLLOW_paren_chunk_in_over_elements2862);
             paren_chunk173=paren_chunk();
 
             state._fsp--;
@@ -7684,9 +7679,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 940:2: -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk )
+            // 935:2: -> ^( VT_BEHAVIOR $id1 $id2 paren_chunk )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:940:5: ^( VT_BEHAVIOR $id1 $id2 paren_chunk )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:935: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);
@@ -7729,7 +7724,7 @@
     };
 
     // $ANTLR start "accumulate_statement"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943: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 ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:938: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);
@@ -7759,10 +7754,10 @@
         RewriteRuleSubtreeStream stream_accumulate_init_clause=new RewriteRuleSubtreeStream(adaptor,"rule accumulate_init_clause");
         RewriteRuleSubtreeStream stream_accumulate_id_clause=new RewriteRuleSubtreeStream(adaptor,"rule accumulate_id_clause");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944: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 ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:4: ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939: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 ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:4: ACCUMULATE LEFT_PAREN lhs_or ( COMMA )? ( accumulate_init_clause | accumulate_id_clause ) RIGHT_PAREN
             {
-            ACCUMULATE174=(Token)match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement2908); if (state.failed) return retval; 
+            ACCUMULATE174=(Token)match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement2888); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ACCUMULATE.add(ACCUMULATE174);
 
             if ( state.backtracking==0 ) {
@@ -7771,19 +7766,19 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_ACCUMULATE);	
             }
-            LEFT_PAREN175=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement2917); if (state.failed) return retval; 
+            LEFT_PAREN175=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement2897); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN175);
 
             if ( state.backtracking==0 ) {
               	emit(LEFT_PAREN175, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_lhs_or_in_accumulate_statement2925);
+            pushFollow(FOLLOW_lhs_or_in_accumulate_statement2905);
             lhs_or176=lhs_or();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_lhs_or.add(lhs_or176.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:3: ( COMMA )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943:3: ( COMMA )?
             int alt61=2;
             int LA61_0 = input.LA(1);
 
@@ -7792,9 +7787,9 @@
             }
             switch (alt61) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:3: COMMA
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943:3: COMMA
                     {
-                    COMMA177=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2930); if (state.failed) return retval; 
+                    COMMA177=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2910); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_COMMA.add(COMMA177);
 
 
@@ -7806,7 +7801,7 @@
             if ( state.backtracking==0 ) {
               	emit(COMMA177, DroolsEditorType.SYMBOL);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:3: ( accumulate_init_clause | accumulate_id_clause )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:3: ( accumulate_init_clause | accumulate_id_clause )
             int alt62=2;
             int LA62_0 = input.LA(1);
 
@@ -7825,9 +7820,9 @@
             }
             switch (alt62) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:5: accumulate_init_clause
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:5: accumulate_init_clause
                     {
-                    pushFollow(FOLLOW_accumulate_init_clause_in_accumulate_statement2940);
+                    pushFollow(FOLLOW_accumulate_init_clause_in_accumulate_statement2920);
                     accumulate_init_clause178=accumulate_init_clause();
 
                     state._fsp--;
@@ -7837,9 +7832,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:5: accumulate_id_clause
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:945:5: accumulate_id_clause
                     {
-                    pushFollow(FOLLOW_accumulate_id_clause_in_accumulate_statement2946);
+                    pushFollow(FOLLOW_accumulate_id_clause_in_accumulate_statement2926);
                     accumulate_id_clause179=accumulate_id_clause();
 
                     state._fsp--;
@@ -7851,7 +7846,7 @@
 
             }
 
-            RIGHT_PAREN180=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement2954); if (state.failed) return retval; 
+            RIGHT_PAREN180=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement2934); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN180);
 
             if ( state.backtracking==0 ) {
@@ -7863,7 +7858,7 @@
 
 
             // AST REWRITE
-            // elements: accumulate_init_clause, RIGHT_PAREN, lhs_or, accumulate_id_clause, ACCUMULATE
+            // elements: lhs_or, ACCUMULATE, accumulate_init_clause, RIGHT_PAREN, accumulate_id_clause
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -7873,21 +7868,21 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 954:3: -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN )
+            // 949:3: -> ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:954:6: ^( ACCUMULATE lhs_or ( accumulate_init_clause )? ( accumulate_id_clause )? RIGHT_PAREN )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949: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());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:954:26: ( accumulate_init_clause )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:26: ( accumulate_init_clause )?
                 if ( stream_accumulate_init_clause.hasNext() ) {
                     adaptor.addChild(root_1, stream_accumulate_init_clause.nextTree());
 
                 }
                 stream_accumulate_init_clause.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:954:50: ( accumulate_id_clause )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:50: ( accumulate_id_clause )?
                 if ( stream_accumulate_id_clause.hasNext() ) {
                     adaptor.addChild(root_1, stream_accumulate_id_clause.nextTree());
 
@@ -7929,7 +7924,7 @@
     };
 
     // $ANTLR start "accumulate_init_clause"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:1: accumulate_init_clause : INIT 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 $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:953:1: accumulate_init_clause : INIT 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 $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);
@@ -7967,10 +7962,10 @@
         RewriteRuleSubtreeStream stream_action_key=new RewriteRuleSubtreeStream(adaptor,"rule action_key");
          boolean isFailed = true;	
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:2: ( INIT 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 $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:4: INIT 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]
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:956:2: ( INIT 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 $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:956:4: INIT 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]
             {
-            INIT181=(Token)match(input,INIT,FOLLOW_INIT_in_accumulate_init_clause3000); if (state.failed) return retval; 
+            INIT181=(Token)match(input,INIT,FOLLOW_INIT_in_accumulate_init_clause2980); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_INIT.add(INIT181);
 
             if ( state.backtracking==0 ) {
@@ -7979,13 +7974,13 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_ACCUMULATE_INIT);	
             }
-            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3011);
+            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause2991);
             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());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:963:84: (cm1= COMMA )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:84: (cm1= COMMA )?
             int alt63=2;
             int LA63_0 = input.LA(1);
 
@@ -7994,9 +7989,9 @@
             }
             switch (alt63) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:963:84: cm1= COMMA
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:84: cm1= COMMA
                     {
-                    cm1=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3016); if (state.failed) return retval; 
+                    cm1=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause2996); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_COMMA.add(cm1);
 
 
@@ -8011,19 +8006,19 @@
             if ( state.backtracking==0 ) {
               	if (pc2 != null && ((DroolsTree) (pc2!=null?((Object)pc2.tree):null)).getText() != null) emit(Location.LOCATION_LHS_FROM_ACCUMULATE_ACTION);	
             }
-            pushFollow(FOLLOW_action_key_in_accumulate_init_clause3027);
+            pushFollow(FOLLOW_action_key_in_accumulate_init_clause3007);
             action_key182=action_key();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_action_key.add(action_key182.getTree());
-            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3031);
+            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3011);
             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());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:965:97: (cm2= COMMA )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:960:97: (cm2= COMMA )?
             int alt64=2;
             int LA64_0 = input.LA(1);
 
@@ -8032,9 +8027,9 @@
             }
             switch (alt64) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:965:97: cm2= COMMA
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:960:97: cm2= COMMA
                     {
-                    cm2=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3036); if (state.failed) return retval; 
+                    cm2=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3016); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_COMMA.add(cm2);
 
 
@@ -8049,7 +8044,7 @@
             if ( state.backtracking==0 ) {
               	if (pc1 != null && ((DroolsTree) (pc1!=null?((Object)pc1.tree):null)).getText() != null && pc2 != null && ((DroolsTree) (pc2!=null?((Object)pc2.tree):null)).getText() != null ) emit(Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:967:2: ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:962:2: ( reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )? )?
             int alt66=2;
             int LA66_0 = input.LA(1);
 
@@ -8062,21 +8057,21 @@
             }
             switch (alt66) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:967:4: reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:962:4: reverse_key pc3= accumulate_paren_chunk[Location.LOCATION_LHS_FROM_ACCUMULATE_REVERSE_INSIDE] (cm3= COMMA )?
                     {
-                    pushFollow(FOLLOW_reverse_key_in_accumulate_init_clause3048);
+                    pushFollow(FOLLOW_reverse_key_in_accumulate_init_clause3028);
                     reverse_key183=reverse_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_reverse_key.add(reverse_key183.getTree());
-                    pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3052);
+                    pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3032);
                     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());
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:967:100: (cm3= COMMA )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:962:100: (cm3= COMMA )?
                     int alt65=2;
                     int LA65_0 = input.LA(1);
 
@@ -8085,9 +8080,9 @@
                     }
                     switch (alt65) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:967:100: cm3= COMMA
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:962:100: cm3= COMMA
                             {
-                            cm3=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3057); if (state.failed) return retval; 
+                            cm3=(Token)match(input,COMMA,FOLLOW_COMMA_in_accumulate_init_clause3037); if (state.failed) return retval; 
                             if ( state.backtracking==0 ) stream_COMMA.add(cm3);
 
 
@@ -8113,7 +8108,7 @@
               		}	
               	
             }
-            pushFollow(FOLLOW_result_key_in_accumulate_init_clause3073);
+            pushFollow(FOLLOW_result_key_in_accumulate_init_clause3053);
             res1=result_key();
 
             state._fsp--;
@@ -8122,7 +8117,7 @@
             if ( state.backtracking==0 ) {
               	emit((res1!=null?((Token)res1.start):null), DroolsEditorType.KEYWORD);	
             }
-            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3079);
+            pushFollow(FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3059);
             pc4=accumulate_paren_chunk(Location.LOCATION_LHS_FROM_ACCUMULATE_RESULT_INSIDE);
 
             state._fsp--;
@@ -8131,28 +8126,28 @@
 
 
             // AST REWRITE
-            // elements: pc2, pc4, result_key, INIT, reverse_key, action_key, pc3, pc1
+            // elements: pc2, reverse_key, pc3, INIT, action_key, pc1, pc4, result_key
             // token labels: 
-            // rule labels: pc2, pc3, pc4, pc1, retval
+            // rule labels: pc2, pc4, pc3, pc1, retval
             // token list labels: 
             // rule list labels: 
             if ( state.backtracking==0 ) {
             retval.tree = root_0;
             RewriteRuleSubtreeStream stream_pc2=new RewriteRuleSubtreeStream(adaptor,"token pc2",pc2!=null?pc2.tree:null);
-            RewriteRuleSubtreeStream stream_pc3=new RewriteRuleSubtreeStream(adaptor,"token pc3",pc3!=null?pc3.tree:null);
             RewriteRuleSubtreeStream stream_pc4=new RewriteRuleSubtreeStream(adaptor,"token pc4",pc4!=null?pc4.tree:null);
+            RewriteRuleSubtreeStream stream_pc3=new RewriteRuleSubtreeStream(adaptor,"token pc3",pc3!=null?pc3.tree:null);
             RewriteRuleSubtreeStream stream_pc1=new RewriteRuleSubtreeStream(adaptor,"token pc1",pc1!=null?pc1.tree:null);
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 976:2: -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( INIT $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
+            // 971:2: -> ^( VT_ACCUMULATE_INIT_CLAUSE ^( INIT $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:5: ^( VT_ACCUMULATE_INIT_CLAUSE ^( INIT $pc1) ^( action_key $pc2) ( ^( reverse_key $pc3) )? ^( result_key $pc4) )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:5: ^( VT_ACCUMULATE_INIT_CLAUSE ^( INIT $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);
 
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:33: ^( INIT $pc1)
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:33: ^( INIT $pc1)
                 {
                 Object root_2 = (Object)adaptor.nil();
                 root_2 = (Object)adaptor.becomeRoot(stream_INIT.nextNode(), root_2);
@@ -8161,7 +8156,7 @@
 
                 adaptor.addChild(root_1, root_2);
                 }
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:46: ^( action_key $pc2)
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:46: ^( action_key $pc2)
                 {
                 Object root_2 = (Object)adaptor.nil();
                 root_2 = (Object)adaptor.becomeRoot(stream_action_key.nextNode(), root_2);
@@ -8170,9 +8165,9 @@
 
                 adaptor.addChild(root_1, root_2);
                 }
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:65: ( ^( reverse_key $pc3) )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:65: ( ^( reverse_key $pc3) )?
                 if ( stream_reverse_key.hasNext()||stream_pc3.hasNext() ) {
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:65: ^( reverse_key $pc3)
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:65: ^( reverse_key $pc3)
                     {
                     Object root_2 = (Object)adaptor.nil();
                     root_2 = (Object)adaptor.becomeRoot(stream_reverse_key.nextNode(), root_2);
@@ -8185,7 +8180,7 @@
                 }
                 stream_reverse_key.reset();
                 stream_pc3.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:86: ^( result_key $pc4)
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:86: ^( result_key $pc4)
                 {
                 Object root_2 = (Object)adaptor.nil();
                 root_2 = (Object)adaptor.becomeRoot(stream_result_key.nextNode(), root_2);
@@ -8242,7 +8237,7 @@
     };
 
     // $ANTLR start "accumulate_paren_chunk"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:989:1: accumulate_paren_chunk[int locationType] : pc= accumulate_paren_chunk_data[false,$locationType] -> VT_PAREN_CHUNK[$pc.start,text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:984: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);
@@ -8257,10 +8252,10 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:3: (pc= accumulate_paren_chunk_data[false,$locationType] -> VT_PAREN_CHUNK[$pc.start,text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:5: pc= accumulate_paren_chunk_data[false,$locationType]
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:987:3: (pc= accumulate_paren_chunk_data[false,$locationType] -> VT_PAREN_CHUNK[$pc.start,text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:987:5: pc= accumulate_paren_chunk_data[false,$locationType]
             {
-            pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk3137);
+            pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk3117);
             pc=accumulate_paren_chunk_data(false, locationType);
 
             state._fsp--;
@@ -8282,7 +8277,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 993:2: -> VT_PAREN_CHUNK[$pc.start,text]
+            // 988:2: -> VT_PAREN_CHUNK[$pc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_PAREN_CHUNK, (pc!=null?((Token)pc.start):null), text));
 
@@ -8317,7 +8312,7 @@
     };
 
     // $ANTLR start "accumulate_paren_chunk_data"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:996: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 ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991: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);
@@ -8335,12 +8330,12 @@
         Object rp1_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:4: lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )* rp1= RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992: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_data3161); if (state.failed) return retval;
+            lp1=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_paren_chunk_data3141); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             lp1_tree = (Object)adaptor.create(lp1);
             adaptor.addChild(root_0, lp1_tree);
@@ -8354,7 +8349,7 @@
               			}	
               		
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1005:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1000:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | accumulate_paren_chunk_data[true,-1] )*
             loop67:
             do {
                 int alt67=3;
@@ -8370,7 +8365,7 @@
 
                 switch (alt67) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1005:5: any=~ ( LEFT_PAREN | RIGHT_PAREN )
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1000: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) ) {
@@ -8391,9 +8386,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1005:87: accumulate_paren_chunk_data[true,-1]
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1000:87: accumulate_paren_chunk_data[true,-1]
             	    {
-            	    pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data3189);
+            	    pushFollow(FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data3169);
             	    accumulate_paren_chunk_data184=accumulate_paren_chunk_data(true, -1);
 
             	    state._fsp--;
@@ -8408,7 +8403,7 @@
                 }
             } while (true);
 
-            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data3200); if (state.failed) return retval;
+            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data3180); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rp1_tree = (Object)adaptor.create(rp1);
             adaptor.addChild(root_0, rp1_tree);
@@ -8450,7 +8445,7 @@
     };
 
     // $ANTLR start "accumulate_id_clause"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1015:1: accumulate_id_clause : ID paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1010: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);
@@ -8465,16 +8460,16 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1016:2: ( ID paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1016:4: ID paren_chunk
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1011:2: ( ID paren_chunk -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1011:4: ID paren_chunk
             {
-            ID185=(Token)match(input,ID,FOLLOW_ID_in_accumulate_id_clause3216); if (state.failed) return retval; 
+            ID185=(Token)match(input,ID,FOLLOW_ID_in_accumulate_id_clause3196); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(ID185);
 
             if ( state.backtracking==0 ) {
               	emit(ID185, DroolsEditorType.IDENTIFIER);	
             }
-            pushFollow(FOLLOW_paren_chunk_in_accumulate_id_clause3222);
+            pushFollow(FOLLOW_paren_chunk_in_accumulate_id_clause3202);
             paren_chunk186=paren_chunk();
 
             state._fsp--;
@@ -8493,9 +8488,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1018:2: -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
+            // 1013:2: -> ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1018:5: ^( VT_ACCUMULATE_ID_CLAUSE ID paren_chunk )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1013: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);
@@ -8537,7 +8532,7 @@
     };
 
     // $ANTLR start "collect_statement"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1021:1: collect_statement : COLLECT LEFT_PAREN pattern_source RIGHT_PAREN -> ^( COLLECT pattern_source RIGHT_PAREN ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1016: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);
@@ -8558,10 +8553,10 @@
         RewriteRuleTokenStream stream_COLLECT=new RewriteRuleTokenStream(adaptor,"token COLLECT");
         RewriteRuleSubtreeStream stream_pattern_source=new RewriteRuleSubtreeStream(adaptor,"rule pattern_source");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:2: ( COLLECT LEFT_PAREN pattern_source RIGHT_PAREN -> ^( COLLECT pattern_source RIGHT_PAREN ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:4: COLLECT LEFT_PAREN pattern_source RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1017:2: ( COLLECT LEFT_PAREN pattern_source RIGHT_PAREN -> ^( COLLECT pattern_source RIGHT_PAREN ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1017:4: COLLECT LEFT_PAREN pattern_source RIGHT_PAREN
             {
-            COLLECT187=(Token)match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement3244); if (state.failed) return retval; 
+            COLLECT187=(Token)match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement3224); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_COLLECT.add(COLLECT187);
 
             if ( state.backtracking==0 ) {
@@ -8570,19 +8565,19 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_COLLECT);	
             }
-            LEFT_PAREN188=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement3253); if (state.failed) return retval; 
+            LEFT_PAREN188=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement3233); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN188);
 
             if ( state.backtracking==0 ) {
               	emit(LEFT_PAREN188, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_pattern_source_in_collect_statement3260);
+            pushFollow(FOLLOW_pattern_source_in_collect_statement3240);
             pattern_source189=pattern_source();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_pattern_source.add(pattern_source189.getTree());
-            RIGHT_PAREN190=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement3265); if (state.failed) return retval; 
+            RIGHT_PAREN190=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement3245); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN190);
 
             if ( state.backtracking==0 ) {
@@ -8594,7 +8589,7 @@
 
 
             // AST REWRITE
-            // elements: RIGHT_PAREN, pattern_source, COLLECT
+            // elements: COLLECT, pattern_source, RIGHT_PAREN
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -8604,9 +8599,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1028:2: -> ^( COLLECT pattern_source RIGHT_PAREN )
+            // 1023:2: -> ^( COLLECT pattern_source RIGHT_PAREN )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1028:5: ^( COLLECT pattern_source RIGHT_PAREN )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1023:5: ^( COLLECT pattern_source RIGHT_PAREN )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_COLLECT.nextNode(), root_1);
@@ -8648,7 +8643,7 @@
     };
 
     // $ANTLR start "entrypoint_statement"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1031:1: entrypoint_statement : entry_point_key entrypoint_id -> ^( entry_point_key entrypoint_id ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1026: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);
@@ -8663,10 +8658,10 @@
         RewriteRuleSubtreeStream stream_entrypoint_id=new RewriteRuleSubtreeStream(adaptor,"rule entrypoint_id");
         RewriteRuleSubtreeStream stream_entry_point_key=new RewriteRuleSubtreeStream(adaptor,"rule entry_point_key");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1032:2: ( entry_point_key entrypoint_id -> ^( entry_point_key entrypoint_id ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1032:4: entry_point_key entrypoint_id
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:2: ( entry_point_key entrypoint_id -> ^( entry_point_key entrypoint_id ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:4: entry_point_key entrypoint_id
             {
-            pushFollow(FOLLOW_entry_point_key_in_entrypoint_statement3292);
+            pushFollow(FOLLOW_entry_point_key_in_entrypoint_statement3272);
             entry_point_key191=entry_point_key();
 
             state._fsp--;
@@ -8675,7 +8670,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_FROM_COLLECT);	
             }
-            pushFollow(FOLLOW_entrypoint_id_in_entrypoint_statement3300);
+            pushFollow(FOLLOW_entrypoint_id_in_entrypoint_statement3280);
             entrypoint_id192=entrypoint_id();
 
             state._fsp--;
@@ -8697,9 +8692,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1036:2: -> ^( entry_point_key entrypoint_id )
+            // 1031:2: -> ^( entry_point_key entrypoint_id )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1036:5: ^( entry_point_key entrypoint_id )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1031:5: ^( entry_point_key entrypoint_id )
                 {
                 Object root_1 = (Object)adaptor.nil();
                 root_1 = (Object)adaptor.becomeRoot(stream_entry_point_key.nextNode(), root_1);
@@ -8740,7 +8735,7 @@
     };
 
     // $ANTLR start "entrypoint_id"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1039:1: entrypoint_id : (value= ID -> VT_ENTRYPOINT_ID[$value] | value= STRING -> VT_ENTRYPOINT_ID[$value] );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1034: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);
@@ -8754,7 +8749,7 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1040:2: (value= ID -> VT_ENTRYPOINT_ID[$value] | value= STRING -> VT_ENTRYPOINT_ID[$value] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1035:2: (value= ID -> VT_ENTRYPOINT_ID[$value] | value= STRING -> VT_ENTRYPOINT_ID[$value] )
             int alt68=2;
             int LA68_0 = input.LA(1);
 
@@ -8773,9 +8768,9 @@
             }
             switch (alt68) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1040:5: value= ID
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1035:5: value= ID
                     {
-                    value=(Token)match(input,ID,FOLLOW_ID_in_entrypoint_id3326); if (state.failed) return retval; 
+                    value=(Token)match(input,ID,FOLLOW_ID_in_entrypoint_id3306); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_ID.add(value);
 
                     if ( state.backtracking==0 ) {
@@ -8794,7 +8789,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1041:3: -> VT_ENTRYPOINT_ID[$value]
+                    // 1036:3: -> VT_ENTRYPOINT_ID[$value]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_ENTRYPOINT_ID, value));
 
@@ -8804,9 +8799,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1042:5: value= STRING
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1037:5: value= STRING
                     {
-                    value=(Token)match(input,STRING,FOLLOW_STRING_in_entrypoint_id3343); if (state.failed) return retval; 
+                    value=(Token)match(input,STRING,FOLLOW_STRING_in_entrypoint_id3323); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_STRING.add(value);
 
                     if ( state.backtracking==0 ) {
@@ -8825,7 +8820,7 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1043:3: -> VT_ENTRYPOINT_ID[$value]
+                    // 1038:3: -> VT_ENTRYPOINT_ID[$value]
                     {
                         adaptor.addChild(root_0, (Object)adaptor.create(VT_ENTRYPOINT_ID, value));
 
@@ -8862,7 +8857,7 @@
     };
 
     // $ANTLR start "from_source"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1046:1: from_source : ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1041: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);
@@ -8880,23 +8875,23 @@
         RewriteRuleSubtreeStream stream_expression_chain=new RewriteRuleSubtreeStream(adaptor,"rule expression_chain");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1047:2: ( ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1047:4: ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1042:2: ( ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )? -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1042:4: ID ( ( LEFT_PAREN )=>args= paren_chunk )? ( expression_chain )?
             {
-            ID193=(Token)match(input,ID,FOLLOW_ID_in_from_source3363); if (state.failed) return retval; 
+            ID193=(Token)match(input,ID,FOLLOW_ID_in_from_source3343); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(ID193);
 
             if ( state.backtracking==0 ) {
               	emit(ID193, DroolsEditorType.IDENTIFIER);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1048:3: ( ( LEFT_PAREN )=>args= paren_chunk )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1043:3: ( ( LEFT_PAREN )=>args= paren_chunk )?
             int alt69=2;
             alt69 = dfa69.predict(input);
             switch (alt69) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1048:5: ( LEFT_PAREN )=>args= paren_chunk
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1043:5: ( LEFT_PAREN )=>args= paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_from_source3378);
+                    pushFollow(FOLLOW_paren_chunk_in_from_source3358);
                     args=paren_chunk();
 
                     state._fsp--;
@@ -8908,7 +8903,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1049:3: ( expression_chain )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1044:3: ( expression_chain )?
             int alt70=2;
             int LA70_0 = input.LA(1);
 
@@ -8917,9 +8912,9 @@
             }
             switch (alt70) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1049:3: expression_chain
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1044:3: expression_chain
                     {
-                    pushFollow(FOLLOW_expression_chain_in_from_source3385);
+                    pushFollow(FOLLOW_expression_chain_in_from_source3365);
                     expression_chain194=expression_chain();
 
                     state._fsp--;
@@ -8941,7 +8936,7 @@
 
 
             // AST REWRITE
-            // elements: paren_chunk, expression_chain, ID
+            // elements: expression_chain, paren_chunk, ID
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -8951,21 +8946,21 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1055:2: -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
+            // 1050:2: -> ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1055:5: ^( VT_FROM_SOURCE ID ( paren_chunk )? ( expression_chain )? )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1050: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());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1055:25: ( paren_chunk )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1050:25: ( paren_chunk )?
                 if ( stream_paren_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_paren_chunk.nextTree());
 
                 }
                 stream_paren_chunk.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1055:38: ( expression_chain )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1050:38: ( expression_chain )?
                 if ( stream_expression_chain.hasNext() ) {
                     adaptor.addChild(root_1, stream_expression_chain.nextTree());
 
@@ -9006,7 +9001,7 @@
     };
 
     // $ANTLR start "expression_chain"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1058:1: expression_chain : DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1053: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);
@@ -9030,33 +9025,33 @@
         RewriteRuleSubtreeStream stream_expression_chain=new RewriteRuleSubtreeStream(adaptor,"rule expression_chain");
         RewriteRuleSubtreeStream stream_paren_chunk=new RewriteRuleSubtreeStream(adaptor,"rule paren_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1059:2: ( DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1060:3: DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1054:2: ( DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )? -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1055:3: DOT ID ({...}? paren_chunk | square_chunk )? ( expression_chain )?
             {
-            DOT195=(Token)match(input,DOT,FOLLOW_DOT_in_expression_chain3418); if (state.failed) return retval; 
+            DOT195=(Token)match(input,DOT,FOLLOW_DOT_in_expression_chain3398); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_DOT.add(DOT195);
 
             if ( state.backtracking==0 ) {
               	emit(DOT195, DroolsEditorType.IDENTIFIER);	
             }
-            ID196=(Token)match(input,ID,FOLLOW_ID_in_expression_chain3425); if (state.failed) return retval; 
+            ID196=(Token)match(input,ID,FOLLOW_ID_in_expression_chain3405); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(ID196);
 
             if ( state.backtracking==0 ) {
               	emit(ID196, DroolsEditorType.IDENTIFIER);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1062:4: ({...}? paren_chunk | square_chunk )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1057:4: ({...}? paren_chunk | square_chunk )?
             int alt71=3;
             alt71 = dfa71.predict(input);
             switch (alt71) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1063:6: {...}? paren_chunk
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1058: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_chain3441);
+                    pushFollow(FOLLOW_paren_chunk_in_expression_chain3421);
                     paren_chunk197=paren_chunk();
 
                     state._fsp--;
@@ -9066,9 +9061,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1065:6: square_chunk
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1060:6: square_chunk
                     {
-                    pushFollow(FOLLOW_square_chunk_in_expression_chain3455);
+                    pushFollow(FOLLOW_square_chunk_in_expression_chain3435);
                     square_chunk198=square_chunk();
 
                     state._fsp--;
@@ -9080,7 +9075,7 @@
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:4: ( expression_chain )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1062:4: ( expression_chain )?
             int alt72=2;
             int LA72_0 = input.LA(1);
 
@@ -9089,9 +9084,9 @@
             }
             switch (alt72) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:4: expression_chain
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1062:4: expression_chain
                     {
-                    pushFollow(FOLLOW_expression_chain_in_expression_chain3466);
+                    pushFollow(FOLLOW_expression_chain_in_expression_chain3446);
                     expression_chain199=expression_chain();
 
                     state._fsp--;
@@ -9106,7 +9101,7 @@
 
 
             // AST REWRITE
-            // elements: ID, expression_chain, square_chunk, paren_chunk
+            // elements: paren_chunk, ID, expression_chain, square_chunk
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9116,27 +9111,27 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1068:4: -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
+            // 1063:4: -> ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:7: ^( VT_EXPRESSION_CHAIN[$DOT] ID ( square_chunk )? ( paren_chunk )? ( expression_chain )? )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1063: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, DOT195), root_1);
 
                 adaptor.addChild(root_1, stream_ID.nextNode());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:38: ( square_chunk )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1063:38: ( square_chunk )?
                 if ( stream_square_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_square_chunk.nextTree());
 
                 }
                 stream_square_chunk.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:52: ( paren_chunk )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1063:52: ( paren_chunk )?
                 if ( stream_paren_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_paren_chunk.nextTree());
 
                 }
                 stream_paren_chunk.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:65: ( expression_chain )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1063:65: ( expression_chain )?
                 if ( stream_expression_chain.hasNext() ) {
                     adaptor.addChild(root_1, stream_expression_chain.nextTree());
 
@@ -9177,7 +9172,7 @@
     };
 
     // $ANTLR start "lhs_pattern"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1071:1: lhs_pattern : ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1066: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);
@@ -9192,7 +9187,7 @@
         RewriteRuleSubtreeStream stream_fact_binding=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding");
         RewriteRuleSubtreeStream stream_fact=new RewriteRuleSubtreeStream(adaptor,"rule fact");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:2: ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:2: ( fact_binding -> ^( VT_PATTERN fact_binding ) | fact -> ^( VT_PATTERN fact ) )
             int alt73=2;
             int LA73_0 = input.LA(1);
 
@@ -9222,9 +9217,9 @@
             }
             switch (alt73) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:4: fact_binding
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:4: fact_binding
                     {
-                    pushFollow(FOLLOW_fact_binding_in_lhs_pattern3499);
+                    pushFollow(FOLLOW_fact_binding_in_lhs_pattern3479);
                     fact_binding200=fact_binding();
 
                     state._fsp--;
@@ -9243,9 +9238,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1072:17: -> ^( VT_PATTERN fact_binding )
+                    // 1067:17: -> ^( VT_PATTERN fact_binding )
                     {
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:20: ^( VT_PATTERN fact_binding )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:20: ^( VT_PATTERN fact_binding )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PATTERN, "VT_PATTERN"), root_1);
@@ -9261,9 +9256,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1073:4: fact
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:4: fact
                     {
-                    pushFollow(FOLLOW_fact_in_lhs_pattern3512);
+                    pushFollow(FOLLOW_fact_in_lhs_pattern3492);
                     fact201=fact();
 
                     state._fsp--;
@@ -9282,9 +9277,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1073:9: -> ^( VT_PATTERN fact )
+                    // 1068:9: -> ^( VT_PATTERN fact )
                     {
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1073:12: ^( VT_PATTERN fact )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:12: ^( VT_PATTERN fact )
                         {
                         Object root_1 = (Object)adaptor.nil();
                         root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(VT_PATTERN, "VT_PATTERN"), root_1);
@@ -9327,7 +9322,7 @@
     };
 
     // $ANTLR start "fact_binding"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1076:1: fact_binding : label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1071: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);
@@ -9351,16 +9346,16 @@
         RewriteRuleSubtreeStream stream_fact_binding_expression=new RewriteRuleSubtreeStream(adaptor,"rule fact_binding_expression");
         RewriteRuleSubtreeStream stream_fact=new RewriteRuleSubtreeStream(adaptor,"rule fact");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1077:3: ( label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1077:5: label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:3: ( label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN ) -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1072:5: label ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
             {
-            pushFollow(FOLLOW_label_in_fact_binding3532);
+            pushFollow(FOLLOW_label_in_fact_binding3512);
             label202=label();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_label.add(label202.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078:3: ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1073:3: ( fact | LEFT_PAREN fact_binding_expression RIGHT_PAREN )
             int alt74=2;
             int LA74_0 = input.LA(1);
 
@@ -9379,9 +9374,9 @@
             }
             switch (alt74) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078:5: fact
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1073:5: fact
                     {
-                    pushFollow(FOLLOW_fact_in_fact_binding3538);
+                    pushFollow(FOLLOW_fact_in_fact_binding3518);
                     fact203=fact();
 
                     state._fsp--;
@@ -9391,21 +9386,21 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1079:6: LEFT_PAREN fact_binding_expression RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1074:6: LEFT_PAREN fact_binding_expression RIGHT_PAREN
                     {
-                    LEFT_PAREN204=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding3545); if (state.failed) return retval; 
+                    LEFT_PAREN204=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding3525); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN204);
 
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN204, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_fact_binding_expression_in_fact_binding3553);
+                    pushFollow(FOLLOW_fact_binding_expression_in_fact_binding3533);
                     fact_binding_expression205=fact_binding_expression();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_fact_binding_expression.add(fact_binding_expression205.getTree());
-                    RIGHT_PAREN206=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding3561); if (state.failed) return retval; 
+                    RIGHT_PAREN206=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding3541); if (state.failed) return retval; 
                     if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN206);
 
                     if ( state.backtracking==0 ) {
@@ -9420,7 +9415,7 @@
 
 
             // AST REWRITE
-            // elements: RIGHT_PAREN, fact_binding_expression, label, fact
+            // elements: fact, label, fact_binding_expression, RIGHT_PAREN
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -9430,27 +9425,27 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1083:3: -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? )
+            // 1078:3: -> ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1083:6: ^( VT_FACT_BINDING label ( fact )? ( fact_binding_expression )? ( RIGHT_PAREN )? )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078: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());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1083:30: ( fact )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078:30: ( fact )?
                 if ( stream_fact.hasNext() ) {
                     adaptor.addChild(root_1, stream_fact.nextTree());
 
                 }
                 stream_fact.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1083:36: ( fact_binding_expression )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078:36: ( fact_binding_expression )?
                 if ( stream_fact_binding_expression.hasNext() ) {
                     adaptor.addChild(root_1, stream_fact_binding_expression.nextTree());
 
                 }
                 stream_fact_binding_expression.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1083:61: ( RIGHT_PAREN )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078:61: ( RIGHT_PAREN )?
                 if ( stream_RIGHT_PAREN.hasNext() ) {
                     adaptor.addChild(root_1, stream_RIGHT_PAREN.nextNode());
 
@@ -9491,7 +9486,7 @@
     };
 
     // $ANTLR start "fact_binding_expression"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1086:1: fact_binding_expression : ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1081: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);
@@ -9514,13 +9509,13 @@
         	Token orToken = null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:3: ( ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:5: ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:3: ( ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:5: ( fact -> fact ) ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
             {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:5: ( fact -> fact )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:6: fact
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:5: ( fact -> fact )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:6: fact
             {
-            pushFollow(FOLLOW_fact_in_fact_binding_expression3602);
+            pushFollow(FOLLOW_fact_in_fact_binding_expression3582);
             fact207=fact();
 
             state._fsp--;
@@ -9539,7 +9534,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1089:11: -> fact
+            // 1084:11: -> fact
             {
                 adaptor.addChild(root_0, stream_fact.nextTree());
 
@@ -9548,7 +9543,7 @@
             retval.tree = root_0;}
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:20: ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:20: ( (value= or_key | pipe= DOUBLE_PIPE ) fact -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact ) )*
             loop76:
             do {
                 int alt76=2;
@@ -9564,9 +9559,9 @@
 
                 switch (alt76) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:22: (value= or_key | pipe= DOUBLE_PIPE ) fact
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:22: (value= or_key | pipe= DOUBLE_PIPE ) fact
             	    {
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:22: (value= or_key | pipe= DOUBLE_PIPE )
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:22: (value= or_key | pipe= DOUBLE_PIPE )
             	    int alt75=2;
             	    int LA75_0 = input.LA(1);
 
@@ -9585,9 +9580,9 @@
             	    }
             	    switch (alt75) {
             	        case 1 :
-            	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:23: value= or_key
+            	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:23: value= or_key
             	            {
-            	            pushFollow(FOLLOW_or_key_in_fact_binding_expression3614);
+            	            pushFollow(FOLLOW_or_key_in_fact_binding_expression3594);
             	            value=or_key();
 
             	            state._fsp--;
@@ -9600,9 +9595,9 @@
             	            }
             	            break;
             	        case 2 :
-            	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1089:62: pipe= DOUBLE_PIPE
+            	            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:62: pipe= DOUBLE_PIPE
             	            {
-            	            pipe=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_binding_expression3620); if (state.failed) return retval; 
+            	            pipe=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_binding_expression3600); if (state.failed) return retval; 
             	            if ( state.backtracking==0 ) stream_DOUBLE_PIPE.add(pipe);
 
             	            if ( state.backtracking==0 ) {
@@ -9614,7 +9609,7 @@
 
             	    }
 
-            	    pushFollow(FOLLOW_fact_in_fact_binding_expression3625);
+            	    pushFollow(FOLLOW_fact_in_fact_binding_expression3605);
             	    fact208=fact();
 
             	    state._fsp--;
@@ -9633,9 +9628,9 @@
             	    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             	    root_0 = (Object)adaptor.nil();
-            	    // 1090:3: -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
+            	    // 1085:3: -> ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
             	    {
-            	        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1090:6: ^( VT_FACT_OR[orToken] $fact_binding_expression fact )
+            	        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085: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);
@@ -9686,7 +9681,7 @@
     };
 
     // $ANTLR start "fact"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:1: fact : pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN -> ^( VT_FACT pattern_type ( constraints )? RIGHT_PAREN ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1088:1: fact : pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN -> ^( VT_FACT pattern_type ( constraints )? RIGHT_PAREN ) ;
     public final DRLParser.fact_return fact() throws RecognitionException {
         DRLParser.fact_return retval = new DRLParser.fact_return();
         retval.start = input.LT(1);
@@ -9708,16 +9703,16 @@
         RewriteRuleSubtreeStream stream_constraints=new RewriteRuleSubtreeStream(adaptor,"rule constraints");
          boolean isFailedOnConstraints = true; pushParaphrases(DroolsParaphraseTypes.PATTERN); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1096:2: ( pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN -> ^( VT_FACT pattern_type ( constraints )? RIGHT_PAREN ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1096:4: pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1091:2: ( pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN -> ^( VT_FACT pattern_type ( constraints )? RIGHT_PAREN ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1091:4: pattern_type LEFT_PAREN ( constraints )? RIGHT_PAREN
             {
-            pushFollow(FOLLOW_pattern_type_in_fact3665);
+            pushFollow(FOLLOW_pattern_type_in_fact3645);
             pattern_type209=pattern_type();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_pattern_type.add(pattern_type209.getTree());
-            LEFT_PAREN210=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact3670); if (state.failed) return retval; 
+            LEFT_PAREN210=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact3650); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN210);
 
             if ( state.backtracking==0 ) {
@@ -9726,7 +9721,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_CONDITION_START);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1099:4: ( constraints )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1094:4: ( constraints )?
             int alt77=2;
             int LA77_0 = input.LA(1);
 
@@ -9735,9 +9730,9 @@
             }
             switch (alt77) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1099:4: constraints
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1094:4: constraints
                     {
-                    pushFollow(FOLLOW_constraints_in_fact3681);
+                    pushFollow(FOLLOW_constraints_in_fact3661);
                     constraints211=constraints();
 
                     state._fsp--;
@@ -9749,7 +9744,7 @@
 
             }
 
-            RIGHT_PAREN212=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact3687); if (state.failed) return retval; 
+            RIGHT_PAREN212=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact3667); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN212);
 
             if ( state.backtracking==0 ) {
@@ -9774,15 +9769,15 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1105:2: -> ^( VT_FACT pattern_type ( constraints )? RIGHT_PAREN )
+            // 1100:2: -> ^( VT_FACT pattern_type ( constraints )? RIGHT_PAREN )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1105:5: ^( VT_FACT pattern_type ( constraints )? RIGHT_PAREN )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1100:5: ^( VT_FACT pattern_type ( constraints )? 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());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1105:28: ( constraints )?
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1100:28: ( constraints )?
                 if ( stream_constraints.hasNext() ) {
                     adaptor.addChild(root_1, stream_constraints.nextTree());
 
@@ -9834,7 +9829,7 @@
     };
 
     // $ANTLR start "constraints"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1115:1: constraints : constraint ( COMMA constraint )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1110: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);
@@ -9850,18 +9845,18 @@
         Object COMMA214_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116:2: ( constraint ( COMMA constraint )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116:4: constraint ( COMMA constraint )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1111:2: ( constraint ( COMMA constraint )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1111:4: constraint ( COMMA constraint )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_constraint_in_constraints3721);
+            pushFollow(FOLLOW_constraint_in_constraints3701);
             constraint213=constraint();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint213.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116:15: ( COMMA constraint )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1111:15: ( COMMA constraint )*
             loop78:
             do {
                 int alt78=2;
@@ -9874,14 +9869,14 @@
 
                 switch (alt78) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116:17: COMMA constraint
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1111:17: COMMA constraint
             	    {
-            	    COMMA214=(Token)match(input,COMMA,FOLLOW_COMMA_in_constraints3725); if (state.failed) return retval;
+            	    COMMA214=(Token)match(input,COMMA,FOLLOW_COMMA_in_constraints3705); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
             	      	emit(COMMA214, DroolsEditorType.SYMBOL);
             	      		emit(Location.LOCATION_LHS_INSIDE_CONDITION_START);	
             	    }
-            	    pushFollow(FOLLOW_constraint_in_constraints3732);
+            	    pushFollow(FOLLOW_constraint_in_constraints3712);
             	    constraint215=constraint();
 
             	    state._fsp--;
@@ -9925,7 +9920,7 @@
     };
 
     // $ANTLR start "constraint"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:1: constraint : or_constr ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116: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);
@@ -9937,12 +9932,12 @@
 
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1122:2: ( or_constr )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1122:4: or_constr
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1117:2: ( or_constr )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1117:4: or_constr
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_or_constr_in_constraint3746);
+            pushFollow(FOLLOW_or_constr_in_constraint3726);
             or_constr216=or_constr();
 
             state._fsp--;
@@ -9977,7 +9972,7 @@
     };
 
     // $ANTLR start "or_constr"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1125:1: or_constr : and_constr ( DOUBLE_PIPE and_constr )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1120:1: or_constr : and_constr ( 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);
@@ -9993,18 +9988,18 @@
         Object DOUBLE_PIPE218_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:2: ( and_constr ( DOUBLE_PIPE and_constr )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:4: and_constr ( DOUBLE_PIPE and_constr )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:2: ( and_constr ( DOUBLE_PIPE and_constr )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:4: and_constr ( DOUBLE_PIPE and_constr )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_and_constr_in_or_constr3757);
+            pushFollow(FOLLOW_and_constr_in_or_constr3737);
             and_constr217=and_constr();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, and_constr217.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:15: ( DOUBLE_PIPE and_constr )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:15: ( DOUBLE_PIPE and_constr )*
             loop79:
             do {
                 int alt79=2;
@@ -10017,9 +10012,9 @@
 
                 switch (alt79) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:17: DOUBLE_PIPE and_constr
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:17: DOUBLE_PIPE and_constr
             	    {
-            	    DOUBLE_PIPE218=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr3761); if (state.failed) return retval;
+            	    DOUBLE_PIPE218=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr3741); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
             	    DOUBLE_PIPE218_tree = (Object)adaptor.create(DOUBLE_PIPE218);
             	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE218_tree, root_0);
@@ -10027,7 +10022,7 @@
             	    if ( state.backtracking==0 ) {
             	      	emit(DOUBLE_PIPE218, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_and_constr_in_or_constr3768);
+            	    pushFollow(FOLLOW_and_constr_in_or_constr3748);
             	    and_constr219=and_constr();
 
             	    state._fsp--;
@@ -10071,7 +10066,7 @@
     };
 
     // $ANTLR start "and_constr"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1130:1: and_constr : unary_constr ( DOUBLE_AMPER unary_constr )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1125:1: and_constr : unary_constr ( 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);
@@ -10087,18 +10082,18 @@
         Object DOUBLE_AMPER221_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1131:2: ( unary_constr ( DOUBLE_AMPER unary_constr )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1131:4: unary_constr ( DOUBLE_AMPER unary_constr )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:2: ( unary_constr ( DOUBLE_AMPER unary_constr )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:4: unary_constr ( DOUBLE_AMPER unary_constr )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_unary_constr_in_and_constr3783);
+            pushFollow(FOLLOW_unary_constr_in_and_constr3763);
             unary_constr220=unary_constr();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, unary_constr220.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1131:17: ( DOUBLE_AMPER unary_constr )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:17: ( DOUBLE_AMPER unary_constr )*
             loop80:
             do {
                 int alt80=2;
@@ -10111,9 +10106,9 @@
 
                 switch (alt80) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1131:19: DOUBLE_AMPER unary_constr
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:19: DOUBLE_AMPER unary_constr
             	    {
-            	    DOUBLE_AMPER221=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr3787); if (state.failed) return retval;
+            	    DOUBLE_AMPER221=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr3767); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
             	    DOUBLE_AMPER221_tree = (Object)adaptor.create(DOUBLE_AMPER221);
             	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER221_tree, root_0);
@@ -10121,7 +10116,7 @@
             	    if ( state.backtracking==0 ) {
             	      	emit(DOUBLE_AMPER221, DroolsEditorType.SYMBOL);;	
             	    }
-            	    pushFollow(FOLLOW_unary_constr_in_and_constr3794);
+            	    pushFollow(FOLLOW_unary_constr_in_and_constr3774);
             	    unary_constr222=unary_constr();
 
             	    state._fsp--;
@@ -10165,7 +10160,7 @@
     };
 
     // $ANTLR start "unary_constr"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1135:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1130: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);
@@ -10188,22 +10183,22 @@
 
          boolean isFailed = true;	
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1139:2: ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1134:2: ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN )
             int alt81=3;
             alt81 = dfa81.predict(input);
             switch (alt81) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1139:4: eval_key paren_chunk
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1134:4: eval_key paren_chunk
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_eval_key_in_unary_constr3827);
+                    pushFollow(FOLLOW_eval_key_in_unary_constr3807);
                     eval_key223=eval_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(eval_key223.getTree(), root_0);
-                    pushFollow(FOLLOW_paren_chunk_in_unary_constr3830);
+                    pushFollow(FOLLOW_paren_chunk_in_unary_constr3810);
                     paren_chunk224=paren_chunk();
 
                     state._fsp--;
@@ -10213,11 +10208,11 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1140:4: field_constraint
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1135:4: field_constraint
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_field_constraint_in_unary_constr3835);
+                    pushFollow(FOLLOW_field_constraint_in_unary_constr3815);
                     field_constraint225=field_constraint();
 
                     state._fsp--;
@@ -10227,21 +10222,21 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1141:5: LEFT_PAREN or_constr RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1136:5: LEFT_PAREN or_constr RIGHT_PAREN
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    LEFT_PAREN226=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr3841); if (state.failed) return retval;
+                    LEFT_PAREN226=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr3821); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN226, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_or_constr_in_unary_constr3851);
+                    pushFollow(FOLLOW_or_constr_in_unary_constr3831);
                     or_constr227=or_constr();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) adaptor.addChild(root_0, or_constr227.getTree());
-                    RIGHT_PAREN228=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr3856); if (state.failed) return retval;
+                    RIGHT_PAREN228=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr3836); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     RIGHT_PAREN228_tree = (Object)adaptor.create(RIGHT_PAREN228);
                     adaptor.addChild(root_0, RIGHT_PAREN228_tree);
@@ -10291,7 +10286,7 @@
     };
 
     // $ANTLR start "field_constraint"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154: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 ) );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1149: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);
@@ -10322,7 +10317,7 @@
         	boolean isArrow = false;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1157: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 ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1152: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 alt83=2;
             int LA83_0 = input.LA(1);
 
@@ -10352,21 +10347,21 @@
             }
             switch (alt83) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1157:5: label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1152:5: label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )?
                     {
-                    pushFollow(FOLLOW_label_in_field_constraint3876);
+                    pushFollow(FOLLOW_label_in_field_constraint3856);
                     label229=label();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_label.add(label229.getTree());
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint3878);
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint3858);
                     accessor_path230=accessor_path();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_accessor_path.add(accessor_path230.getTree());
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1158:3: ( or_restr_connective | arw= ARROW paren_chunk )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1153:3: ( or_restr_connective | arw= ARROW paren_chunk )?
                     int alt82=3;
                     int LA82_0 = input.LA(1);
 
@@ -10381,9 +10376,9 @@
                     }
                     switch (alt82) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1158:5: or_restr_connective
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1153:5: or_restr_connective
                             {
-                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint3885);
+                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint3865);
                             or_restr_connective231=or_restr_connective();
 
                             state._fsp--;
@@ -10393,15 +10388,15 @@
                             }
                             break;
                         case 2 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1158:27: arw= ARROW paren_chunk
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1153:27: arw= ARROW paren_chunk
                             {
-                            arw=(Token)match(input,ARROW,FOLLOW_ARROW_in_field_constraint3891); if (state.failed) return retval; 
+                            arw=(Token)match(input,ARROW,FOLLOW_ARROW_in_field_constraint3871); 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_constraint3895);
+                            pushFollow(FOLLOW_paren_chunk_in_field_constraint3875);
                             paren_chunk232=paren_chunk();
 
                             state._fsp--;
@@ -10419,7 +10414,7 @@
 
 
                     // AST REWRITE
-                    // elements: label, or_restr_connective, paren_chunk, accessor_path, accessor_path, label
+                    // elements: paren_chunk, label, accessor_path, accessor_path, or_restr_connective, label
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -10429,15 +10424,15 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1159:3: -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )?
+                    // 1154:3: -> {isArrow}? ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) ) ( ^( VK_EVAL[$arw] paren_chunk ) )?
                     if (isArrow) {
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1159:17: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ) )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154: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());
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1159:39: ^( VT_FIELD accessor_path )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154: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);
@@ -10449,9 +10444,9 @@
 
                         adaptor.addChild(root_0, root_1);
                         }
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1159:66: ( ^( VK_EVAL[$arw] paren_chunk ) )?
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154:66: ( ^( VK_EVAL[$arw] paren_chunk ) )?
                         if ( stream_paren_chunk.hasNext() ) {
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1159:66: ^( VK_EVAL[$arw] paren_chunk )
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154: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);
@@ -10465,21 +10460,21 @@
                         stream_paren_chunk.reset();
 
                     }
-                    else // 1160:3: -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
+                    else // 1155:3: -> ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
                     {
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1160:6: ^( VT_BIND_FIELD label ^( VT_FIELD accessor_path ( or_restr_connective )? ) )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1155: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());
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1160:28: ^( VT_FIELD accessor_path ( or_restr_connective )? )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1155: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());
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1160:53: ( or_restr_connective )?
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1155:53: ( or_restr_connective )?
                         if ( stream_or_restr_connective.hasNext() ) {
                             adaptor.addChild(root_2, stream_or_restr_connective.nextTree());
 
@@ -10498,15 +10493,15 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1161:4: accessor_path or_restr_connective
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1156:4: accessor_path or_restr_connective
                     {
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint3949);
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint3929);
                     accessor_path233=accessor_path();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) stream_accessor_path.add(accessor_path233.getTree());
-                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint3951);
+                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint3931);
                     or_restr_connective234=or_restr_connective();
 
                     state._fsp--;
@@ -10515,7 +10510,7 @@
 
 
                     // AST REWRITE
-                    // elements: or_restr_connective, accessor_path
+                    // elements: accessor_path, or_restr_connective
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -10525,9 +10520,9 @@
                     RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
                     root_0 = (Object)adaptor.nil();
-                    // 1162:3: -> ^( VT_FIELD accessor_path or_restr_connective )
+                    // 1157:3: -> ^( VT_FIELD accessor_path or_restr_connective )
                     {
-                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1162:6: ^( VT_FIELD accessor_path or_restr_connective )
+                        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1157: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);
@@ -10571,7 +10566,7 @@
     };
 
     // $ANTLR start "label"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1165:1: label : value= ID COLON -> VT_LABEL[$value] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1160: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);
@@ -10587,16 +10582,16 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1166:2: (value= ID COLON -> VT_LABEL[$value] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1166:4: value= ID COLON
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1161:2: (value= ID COLON -> VT_LABEL[$value] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1161:4: value= ID COLON
             {
-            value=(Token)match(input,ID,FOLLOW_ID_in_label3976); if (state.failed) return retval; 
+            value=(Token)match(input,ID,FOLLOW_ID_in_label3956); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(value);
 
             if ( state.backtracking==0 ) {
               	emit(value, DroolsEditorType.IDENTIFIER_VARIABLE);	
             }
-            COLON235=(Token)match(input,COLON,FOLLOW_COLON_in_label3983); if (state.failed) return retval; 
+            COLON235=(Token)match(input,COLON,FOLLOW_COLON_in_label3963); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_COLON.add(COLON235);
 
             if ( state.backtracking==0 ) {
@@ -10615,7 +10610,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1168:3: -> VT_LABEL[$value]
+            // 1163:3: -> VT_LABEL[$value]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_LABEL, value));
 
@@ -10650,7 +10645,7 @@
     };
 
     // $ANTLR start "or_restr_connective"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1171:1: or_restr_connective : and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1166: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);
@@ -10666,18 +10661,18 @@
         Object DOUBLE_PIPE237_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1172:2: ( and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1172:4: and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1167:2: ( and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1167:4: and_restr_connective ({...}? => DOUBLE_PIPE and_restr_connective )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective4004);
+            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3984);
             and_restr_connective236=and_restr_connective();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, and_restr_connective236.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1172:25: ({...}? => DOUBLE_PIPE and_restr_connective )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1167:25: ({...}? => DOUBLE_PIPE and_restr_connective )*
             loop84:
             do {
                 int alt84=2;
@@ -10696,13 +10691,13 @@
 
                 switch (alt84) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1172:26: {...}? => DOUBLE_PIPE and_restr_connective
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1167: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_PIPE237=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective4010); if (state.failed) return retval;
+            	    DOUBLE_PIPE237=(Token)match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective3990); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
             	    DOUBLE_PIPE237_tree = (Object)adaptor.create(DOUBLE_PIPE237);
             	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE237_tree, root_0);
@@ -10710,7 +10705,7 @@
             	    if ( state.backtracking==0 ) {
             	      	emit(DOUBLE_PIPE237, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective4018);
+            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3998);
             	    and_restr_connective238=and_restr_connective();
 
             	    state._fsp--;
@@ -10759,7 +10754,7 @@
     };
 
     // $ANTLR start "and_restr_connective"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1185:1: and_restr_connective : constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )* ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1180: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);
@@ -10775,18 +10770,18 @@
         Object DOUBLE_AMPER240_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:2: ( constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )* )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:4: constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1181:2: ( constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1181:4: constraint_expression ({...}? => DOUBLE_AMPER constraint_expression )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4039);
+            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4019);
             constraint_expression239=constraint_expression();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, constraint_expression239.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:26: ({...}? => DOUBLE_AMPER constraint_expression )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1181:26: ({...}? => DOUBLE_AMPER constraint_expression )*
             loop85:
             do {
                 int alt85=2;
@@ -10805,13 +10800,13 @@
 
                 switch (alt85) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:27: {...}? => DOUBLE_AMPER constraint_expression
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1181: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_AMPER240=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective4045); if (state.failed) return retval;
+            	    DOUBLE_AMPER240=(Token)match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective4025); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
             	    DOUBLE_AMPER240_tree = (Object)adaptor.create(DOUBLE_AMPER240);
             	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER240_tree, root_0);
@@ -10819,7 +10814,7 @@
             	    if ( state.backtracking==0 ) {
             	      	emit(DOUBLE_AMPER240, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4052);
+            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4032);
             	    constraint_expression241=constraint_expression();
 
             	    state._fsp--;
@@ -10868,7 +10863,7 @@
     };
 
     // $ANTLR start "constraint_expression"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1199:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1194:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | 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);
@@ -10888,16 +10883,16 @@
         Object RIGHT_PAREN246_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1202:3: ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1197:3: ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN )
             int alt86=3;
             alt86 = dfa86.predict(input);
             switch (alt86) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1202:5: compound_operator
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1197:5: compound_operator
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_compound_operator_in_constraint_expression4080);
+                    pushFollow(FOLLOW_compound_operator_in_constraint_expression4060);
                     compound_operator242=compound_operator();
 
                     state._fsp--;
@@ -10907,11 +10902,11 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1203:4: simple_operator
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1198:4: simple_operator
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_simple_operator_in_constraint_expression4085);
+                    pushFollow(FOLLOW_simple_operator_in_constraint_expression4065);
                     simple_operator243=simple_operator();
 
                     state._fsp--;
@@ -10921,21 +10916,21 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1204:4: LEFT_PAREN or_restr_connective RIGHT_PAREN
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1199:4: LEFT_PAREN or_restr_connective RIGHT_PAREN
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    LEFT_PAREN244=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression4090); if (state.failed) return retval;
+                    LEFT_PAREN244=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression4070); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                       	emit(LEFT_PAREN244, DroolsEditorType.SYMBOL);	
                     }
-                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression4099);
+                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression4079);
                     or_restr_connective245=or_restr_connective();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) adaptor.addChild(root_0, or_restr_connective245.getTree());
-                    RIGHT_PAREN246=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression4104); if (state.failed) return retval;
+                    RIGHT_PAREN246=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression4084); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     RIGHT_PAREN246_tree = (Object)adaptor.create(RIGHT_PAREN246);
                     adaptor.addChild(root_0, RIGHT_PAREN246_tree);
@@ -11011,7 +11006,7 @@
     };
 
     // $ANTLR start "simple_operator"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1250:1: simple_operator : ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) ) expression_value ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1245:1: simple_operator : ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) ) expression_value ;
     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);
@@ -11042,12 +11037,12 @@
 
         if ( state.backtracking==0 ) emit(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1252:2: ( ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) ) expression_value )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1253:2: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) ) expression_value
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1247:2: ( ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) ) expression_value )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1248:2: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) ) expression_value
             {
             root_0 = (Object)adaptor.nil();
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1253:2: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1248:2: ( EQUAL | GREATER | GREATER_EQUAL | LESS | LESS_EQUAL | NOT_EQUAL | ( not_key )? ( operator_key ( square_chunk )? ) )
             int alt89=7;
             int LA89_0 = input.LA(1);
 
@@ -11081,9 +11076,9 @@
             }
             switch (alt89) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1254:3: EQUAL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1249:3: EQUAL
                     {
-                    EQUAL247=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_simple_operator4139); if (state.failed) return retval;
+                    EQUAL247=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_simple_operator4119); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     EQUAL247_tree = (Object)adaptor.create(EQUAL247);
                     root_0 = (Object)adaptor.becomeRoot(EQUAL247_tree, root_0);
@@ -11095,9 +11090,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1255:4: GREATER
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1250:4: GREATER
                     {
-                    GREATER248=(Token)match(input,GREATER,FOLLOW_GREATER_in_simple_operator4147); if (state.failed) return retval;
+                    GREATER248=(Token)match(input,GREATER,FOLLOW_GREATER_in_simple_operator4127); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     GREATER248_tree = (Object)adaptor.create(GREATER248);
                     root_0 = (Object)adaptor.becomeRoot(GREATER248_tree, root_0);
@@ -11109,9 +11104,9 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1256:4: GREATER_EQUAL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1251:4: GREATER_EQUAL
                     {
-                    GREATER_EQUAL249=(Token)match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_simple_operator4155); if (state.failed) return retval;
+                    GREATER_EQUAL249=(Token)match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_simple_operator4135); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     GREATER_EQUAL249_tree = (Object)adaptor.create(GREATER_EQUAL249);
                     root_0 = (Object)adaptor.becomeRoot(GREATER_EQUAL249_tree, root_0);
@@ -11123,9 +11118,9 @@
                     }
                     break;
                 case 4 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1257:4: LESS
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1252:4: LESS
                     {
-                    LESS250=(Token)match(input,LESS,FOLLOW_LESS_in_simple_operator4163); if (state.failed) return retval;
+                    LESS250=(Token)match(input,LESS,FOLLOW_LESS_in_simple_operator4143); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     LESS250_tree = (Object)adaptor.create(LESS250);
                     root_0 = (Object)adaptor.becomeRoot(LESS250_tree, root_0);
@@ -11137,9 +11132,9 @@
                     }
                     break;
                 case 5 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1258:4: LESS_EQUAL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1253:4: LESS_EQUAL
                     {
-                    LESS_EQUAL251=(Token)match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_simple_operator4171); if (state.failed) return retval;
+                    LESS_EQUAL251=(Token)match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_simple_operator4151); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     LESS_EQUAL251_tree = (Object)adaptor.create(LESS_EQUAL251);
                     root_0 = (Object)adaptor.becomeRoot(LESS_EQUAL251_tree, root_0);
@@ -11151,9 +11146,9 @@
                     }
                     break;
                 case 6 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1259:4: NOT_EQUAL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1254:4: NOT_EQUAL
                     {
-                    NOT_EQUAL252=(Token)match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_simple_operator4179); if (state.failed) return retval;
+                    NOT_EQUAL252=(Token)match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_simple_operator4159); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     NOT_EQUAL252_tree = (Object)adaptor.create(NOT_EQUAL252);
                     root_0 = (Object)adaptor.becomeRoot(NOT_EQUAL252_tree, root_0);
@@ -11165,9 +11160,9 @@
                     }
                     break;
                 case 7 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1260:4: ( not_key )? ( operator_key ( square_chunk )? )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1255:4: ( not_key )? ( operator_key ( square_chunk )? )
                     {
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1260:4: ( not_key )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1255:4: ( not_key )?
                     int alt87=2;
                     int LA87_0 = input.LA(1);
 
@@ -11180,9 +11175,9 @@
                     }
                     switch (alt87) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1260:4: not_key
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1255:4: not_key
                             {
-                            pushFollow(FOLLOW_not_key_in_simple_operator4187);
+                            pushFollow(FOLLOW_not_key_in_simple_operator4167);
                             not_key253=not_key();
 
                             state._fsp--;
@@ -11194,16 +11189,16 @@
 
                     }
 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1261:3: ( operator_key ( square_chunk )? )
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1261:5: operator_key ( square_chunk )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1256:3: ( operator_key ( square_chunk )? )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1256:5: operator_key ( square_chunk )?
                     {
-                    pushFollow(FOLLOW_operator_key_in_simple_operator4194);
+                    pushFollow(FOLLOW_operator_key_in_simple_operator4174);
                     operator_key254=operator_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(operator_key254.getTree(), root_0);
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1261:19: ( square_chunk )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1256:19: ( square_chunk )?
                     int alt88=2;
                     int LA88_0 = input.LA(1);
 
@@ -11212,9 +11207,9 @@
                     }
                     switch (alt88) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1261:19: square_chunk
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1256:19: square_chunk
                             {
-                            pushFollow(FOLLOW_square_chunk_in_simple_operator4197);
+                            pushFollow(FOLLOW_square_chunk_in_simple_operator4177);
                             square_chunk255=square_chunk();
 
                             state._fsp--;
@@ -11238,7 +11233,7 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);	
             }
-            pushFollow(FOLLOW_expression_value_in_simple_operator4209);
+            pushFollow(FOLLOW_expression_value_in_simple_operator4189);
             expression_value256=expression_value();
 
             state._fsp--;
@@ -11273,7 +11268,7 @@
     };
 
     // $ANTLR start "compound_operator"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1268:1: compound_operator : ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1263: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);
@@ -11300,24 +11295,24 @@
 
          if ( state.backtracking==0 ) emit(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR); 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1270:2: ( ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:2: ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1265:2: ( ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1266:2: ( in_key | not_key in_key ) LEFT_PAREN expression_value ( COMMA expression_value )* RIGHT_PAREN
             {
             root_0 = (Object)adaptor.nil();
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:2: ( in_key | not_key in_key )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1266:2: ( in_key | not_key in_key )
             int alt90=2;
             int LA90_0 = input.LA(1);
 
             if ( (LA90_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((validateIdentifierKey(DroolsSoftKeywords.IN)))))) {
                 int LA90_1 = input.LA(2);
 
-                if ( (LA90_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {
-                    alt90=2;
-                }
-                else if ( (LA90_1==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IN))))) {
+                if ( (LA90_1==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IN))))) {
                     alt90=1;
                 }
+                else if ( (LA90_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {
+                    alt90=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return retval;}
                     NoViableAltException nvae =
@@ -11335,9 +11330,9 @@
             }
             switch (alt90) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:4: in_key
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1266:4: in_key
                     {
-                    pushFollow(FOLLOW_in_key_in_compound_operator4231);
+                    pushFollow(FOLLOW_in_key_in_compound_operator4211);
                     in_key257=in_key();
 
                     state._fsp--;
@@ -11347,15 +11342,15 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:14: not_key in_key
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1266:14: not_key in_key
                     {
-                    pushFollow(FOLLOW_not_key_in_compound_operator4236);
+                    pushFollow(FOLLOW_not_key_in_compound_operator4216);
                     not_key258=not_key();
 
                     state._fsp--;
                     if (state.failed) return retval;
                     if ( state.backtracking==0 ) adaptor.addChild(root_0, not_key258.getTree());
-                    pushFollow(FOLLOW_in_key_in_compound_operator4238);
+                    pushFollow(FOLLOW_in_key_in_compound_operator4218);
                     in_key259=in_key();
 
                     state._fsp--;
@@ -11370,17 +11365,17 @@
             if ( state.backtracking==0 ) {
               	emit(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);	
             }
-            LEFT_PAREN260=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator4249); if (state.failed) return retval;
+            LEFT_PAREN260=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator4229); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
               	emit(LEFT_PAREN260, DroolsEditorType.SYMBOL);	
             }
-            pushFollow(FOLLOW_expression_value_in_compound_operator4257);
+            pushFollow(FOLLOW_expression_value_in_compound_operator4237);
             expression_value261=expression_value();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) adaptor.addChild(root_0, expression_value261.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1274:21: ( COMMA expression_value )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1269:21: ( COMMA expression_value )*
             loop91:
             do {
                 int alt91=2;
@@ -11393,13 +11388,13 @@
 
                 switch (alt91) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1274:23: COMMA expression_value
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1269:23: COMMA expression_value
             	    {
-            	    COMMA262=(Token)match(input,COMMA,FOLLOW_COMMA_in_compound_operator4261); if (state.failed) return retval;
+            	    COMMA262=(Token)match(input,COMMA,FOLLOW_COMMA_in_compound_operator4241); if (state.failed) return retval;
             	    if ( state.backtracking==0 ) {
             	      	emit(COMMA262, DroolsEditorType.SYMBOL);	
             	    }
-            	    pushFollow(FOLLOW_expression_value_in_compound_operator4266);
+            	    pushFollow(FOLLOW_expression_value_in_compound_operator4246);
             	    expression_value263=expression_value();
 
             	    state._fsp--;
@@ -11414,7 +11409,7 @@
                 }
             } while (true);
 
-            RIGHT_PAREN264=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator4274); if (state.failed) return retval;
+            RIGHT_PAREN264=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator4254); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             RIGHT_PAREN264_tree = (Object)adaptor.create(RIGHT_PAREN264);
             adaptor.addChild(root_0, RIGHT_PAREN264_tree);
@@ -11460,7 +11455,7 @@
     };
 
     // $ANTLR start "operator_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1285:1: operator_key : {...}? =>id= ID -> VK_OPERATOR[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1280: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);
@@ -11473,14 +11468,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1286:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1286:9: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1281:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1281: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_key4305); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_operator_key4285); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -11499,7 +11494,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1288:9: -> VK_OPERATOR[$id]
+            // 1283:9: -> VK_OPERATOR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_OPERATOR, id));
 
@@ -11534,7 +11529,7 @@
     };
 
     // $ANTLR start "neg_operator_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:1: neg_operator_key : {...}? =>id= ID -> VK_OPERATOR[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1286: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);
@@ -11547,14 +11542,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1292:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1292:9: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1287:2: ({...}? =>id= ID -> VK_OPERATOR[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1287: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_key4350); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_neg_operator_key4330); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -11573,7 +11568,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1294:9: -> VK_OPERATOR[$id]
+            // 1289:9: -> VK_OPERATOR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_OPERATOR, id));
 
@@ -11608,7 +11603,7 @@
     };
 
     // $ANTLR start "expression_value"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1297:1: expression_value : ( accessor_path | literal_constraint | paren_chunk ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1292: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);
@@ -11624,12 +11619,12 @@
 
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1298:2: ( ( accessor_path | literal_constraint | paren_chunk ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1298:4: ( accessor_path | literal_constraint | paren_chunk )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:2: ( ( accessor_path | literal_constraint | paren_chunk ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:4: ( accessor_path | literal_constraint | paren_chunk )
             {
             root_0 = (Object)adaptor.nil();
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1298:4: ( accessor_path | literal_constraint | paren_chunk )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:4: ( accessor_path | literal_constraint | paren_chunk )
             int alt92=3;
             switch ( input.LA(1) ) {
             case ID:
@@ -11661,9 +11656,9 @@
 
             switch (alt92) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1298:5: accessor_path
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:5: accessor_path
                     {
-                    pushFollow(FOLLOW_accessor_path_in_expression_value4387);
+                    pushFollow(FOLLOW_accessor_path_in_expression_value4367);
                     accessor_path265=accessor_path();
 
                     state._fsp--;
@@ -11673,9 +11668,9 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1299:4: literal_constraint
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1294:4: literal_constraint
                     {
-                    pushFollow(FOLLOW_literal_constraint_in_expression_value4392);
+                    pushFollow(FOLLOW_literal_constraint_in_expression_value4372);
                     literal_constraint266=literal_constraint();
 
                     state._fsp--;
@@ -11685,9 +11680,9 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1300:4: paren_chunk
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1295:4: paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_expression_value4398);
+                    pushFollow(FOLLOW_paren_chunk_in_expression_value4378);
                     paren_chunk267=paren_chunk();
 
                     state._fsp--;
@@ -11741,7 +11736,7 @@
     };
 
     // $ANTLR start "literal_constraint"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1314:1: literal_constraint : ( STRING | INT | FLOAT | BOOL | NULL );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1309: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);
@@ -11761,7 +11756,7 @@
         Object NULL272_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1315:2: ( STRING | INT | FLOAT | BOOL | NULL )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1310:2: ( STRING | INT | FLOAT | BOOL | NULL )
             int alt93=5;
             switch ( input.LA(1) ) {
             case STRING:
@@ -11799,11 +11794,11 @@
 
             switch (alt93) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1315:4: STRING
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1310:4: STRING
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    STRING268=(Token)match(input,STRING,FOLLOW_STRING_in_literal_constraint4417); if (state.failed) return retval;
+                    STRING268=(Token)match(input,STRING,FOLLOW_STRING_in_literal_constraint4397); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     STRING268_tree = (Object)adaptor.create(STRING268);
                     adaptor.addChild(root_0, STRING268_tree);
@@ -11815,11 +11810,11 @@
                     }
                     break;
                 case 2 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1316:4: INT
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1311:4: INT
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    INT269=(Token)match(input,INT,FOLLOW_INT_in_literal_constraint4424); if (state.failed) return retval;
+                    INT269=(Token)match(input,INT,FOLLOW_INT_in_literal_constraint4404); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     INT269_tree = (Object)adaptor.create(INT269);
                     adaptor.addChild(root_0, INT269_tree);
@@ -11831,11 +11826,11 @@
                     }
                     break;
                 case 3 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1317:4: FLOAT
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1312:4: FLOAT
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    FLOAT270=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4431); if (state.failed) return retval;
+                    FLOAT270=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4411); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     FLOAT270_tree = (Object)adaptor.create(FLOAT270);
                     adaptor.addChild(root_0, FLOAT270_tree);
@@ -11847,11 +11842,11 @@
                     }
                     break;
                 case 4 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1318:4: BOOL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1313:4: BOOL
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    BOOL271=(Token)match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4438); if (state.failed) return retval;
+                    BOOL271=(Token)match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4418); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     BOOL271_tree = (Object)adaptor.create(BOOL271);
                     adaptor.addChild(root_0, BOOL271_tree);
@@ -11863,11 +11858,11 @@
                     }
                     break;
                 case 5 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1319:4: NULL
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1314:4: NULL
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    NULL272=(Token)match(input,NULL,FOLLOW_NULL_in_literal_constraint4445); if (state.failed) return retval;
+                    NULL272=(Token)match(input,NULL,FOLLOW_NULL_in_literal_constraint4425); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     NULL272_tree = (Object)adaptor.create(NULL272);
                     adaptor.addChild(root_0, NULL272_tree);
@@ -11906,7 +11901,7 @@
     };
 
     // $ANTLR start "pattern_type"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1322:1: pattern_type : id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1317: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);
@@ -11923,16 +11918,16 @@
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
         RewriteRuleSubtreeStream stream_dimension_definition=new RewriteRuleSubtreeStream(adaptor,"rule dimension_definition");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1323:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1323:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1318:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1318:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_pattern_type4460); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_pattern_type4440); 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);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1323:11: (id+= DOT id+= ID )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1318:11: (id+= DOT id+= ID )*
             loop94:
             do {
                 int alt94=2;
@@ -11945,15 +11940,15 @@
 
                 switch (alt94) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1323:13: id+= DOT id+= ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1318:13: id+= DOT id+= ID
             	    {
-            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_pattern_type4466); if (state.failed) return retval; 
+            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_pattern_type4446); 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_type4470); if (state.failed) return retval; 
+            	    id=(Token)match(input,ID,FOLLOW_ID_in_pattern_type4450); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_ID.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
@@ -11972,7 +11967,7 @@
               	emit(list_id, DroolsEditorType.IDENTIFIER);
               		setParaphrasesValue(DroolsParaphraseTypes.PATTERN, buildStringFromTokens(list_id));	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:6: ( dimension_definition )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1321:6: ( dimension_definition )*
             loop95:
             do {
                 int alt95=2;
@@ -11985,9 +11980,9 @@
 
                 switch (alt95) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:6: dimension_definition
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1321:6: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type4485);
+            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type4465);
             	    dimension_definition273=dimension_definition();
 
             	    state._fsp--;
@@ -12015,9 +12010,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1327:3: -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
+            // 1322:3: -> ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1327:6: ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1322: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);
@@ -12030,7 +12025,7 @@
 
                 }
                 stream_ID.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1327:28: ( dimension_definition )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1322:28: ( dimension_definition )*
                 while ( stream_dimension_definition.hasNext() ) {
                     adaptor.addChild(root_1, stream_dimension_definition.nextTree());
 
@@ -12071,7 +12066,7 @@
     };
 
     // $ANTLR start "data_type"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1330:1: data_type : id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1325: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);
@@ -12088,16 +12083,16 @@
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
         RewriteRuleSubtreeStream stream_dimension_definition=new RewriteRuleSubtreeStream(adaptor,"rule dimension_definition");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1331:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1331:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:2: (id+= ID (id+= DOT id+= ID )* ( dimension_definition )* -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:4: id+= ID (id+= DOT id+= ID )* ( dimension_definition )*
             {
-            id=(Token)match(input,ID,FOLLOW_ID_in_data_type4513); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_data_type4493); 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);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1331:11: (id+= DOT id+= ID )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:11: (id+= DOT id+= ID )*
             loop96:
             do {
                 int alt96=2;
@@ -12110,15 +12105,15 @@
 
                 switch (alt96) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1331:13: id+= DOT id+= ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:13: id+= DOT id+= ID
             	    {
-            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_data_type4519); if (state.failed) return retval; 
+            	    id=(Token)match(input,DOT,FOLLOW_DOT_in_data_type4499); 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_type4523); if (state.failed) return retval; 
+            	    id=(Token)match(input,ID,FOLLOW_ID_in_data_type4503); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_ID.add(id);
 
             	    if (list_id==null) list_id=new ArrayList();
@@ -12133,7 +12128,7 @@
                 }
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1331:31: ( dimension_definition )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:31: ( dimension_definition )*
             loop97:
             do {
                 int alt97=2;
@@ -12146,9 +12141,9 @@
 
                 switch (alt97) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1331:31: dimension_definition
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1326:31: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_data_type4528);
+            	    pushFollow(FOLLOW_dimension_definition_in_data_type4508);
             	    dimension_definition274=dimension_definition();
 
             	    state._fsp--;
@@ -12169,7 +12164,7 @@
 
 
             // AST REWRITE
-            // elements: ID, dimension_definition
+            // elements: dimension_definition, ID
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -12179,9 +12174,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1333:3: -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
+            // 1328:3: -> ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1333:6: ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1328: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);
@@ -12194,7 +12189,7 @@
 
                 }
                 stream_ID.reset();
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1333:25: ( dimension_definition )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1328:25: ( dimension_definition )*
                 while ( stream_dimension_definition.hasNext() ) {
                     adaptor.addChild(root_1, stream_dimension_definition.nextTree());
 
@@ -12235,7 +12230,7 @@
     };
 
     // $ANTLR start "dimension_definition"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1336:1: dimension_definition : LEFT_SQUARE RIGHT_SQUARE ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1331: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);
@@ -12249,12 +12244,12 @@
         Object RIGHT_SQUARE276_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:2: ( LEFT_SQUARE RIGHT_SQUARE )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:4: LEFT_SQUARE RIGHT_SQUARE
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1332:2: ( LEFT_SQUARE RIGHT_SQUARE )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1332:4: LEFT_SQUARE RIGHT_SQUARE
             {
             root_0 = (Object)adaptor.nil();
 
-            LEFT_SQUARE275=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition4557); if (state.failed) return retval;
+            LEFT_SQUARE275=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition4537); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             LEFT_SQUARE275_tree = (Object)adaptor.create(LEFT_SQUARE275);
             adaptor.addChild(root_0, LEFT_SQUARE275_tree);
@@ -12262,7 +12257,7 @@
             if ( state.backtracking==0 ) {
               	emit(LEFT_SQUARE275, DroolsEditorType.SYMBOL);	
             }
-            RIGHT_SQUARE276=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition4564); if (state.failed) return retval;
+            RIGHT_SQUARE276=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition4544); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             RIGHT_SQUARE276_tree = (Object)adaptor.create(RIGHT_SQUARE276);
             adaptor.addChild(root_0, RIGHT_SQUARE276_tree);
@@ -12299,7 +12294,7 @@
     };
 
     // $ANTLR start "accessor_path"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1341:1: accessor_path : accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1336: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);
@@ -12316,16 +12311,16 @@
         RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
         RewriteRuleSubtreeStream stream_accessor_element=new RewriteRuleSubtreeStream(adaptor,"rule accessor_element");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1342:2: ( accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1342:4: accessor_element ( DOT accessor_element )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:2: ( accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:4: accessor_element ( DOT accessor_element )*
             {
-            pushFollow(FOLLOW_accessor_element_in_accessor_path4578);
+            pushFollow(FOLLOW_accessor_element_in_accessor_path4558);
             accessor_element277=accessor_element();
 
             state._fsp--;
             if (state.failed) return retval;
             if ( state.backtracking==0 ) stream_accessor_element.add(accessor_element277.getTree());
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1342:21: ( DOT accessor_element )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:21: ( DOT accessor_element )*
             loop98:
             do {
                 int alt98=2;
@@ -12338,15 +12333,15 @@
 
                 switch (alt98) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1342:23: DOT accessor_element
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:23: DOT accessor_element
             	    {
-            	    DOT278=(Token)match(input,DOT,FOLLOW_DOT_in_accessor_path4582); if (state.failed) return retval; 
+            	    DOT278=(Token)match(input,DOT,FOLLOW_DOT_in_accessor_path4562); if (state.failed) return retval; 
             	    if ( state.backtracking==0 ) stream_DOT.add(DOT278);
 
             	    if ( state.backtracking==0 ) {
             	      	emit(DOT278, DroolsEditorType.IDENTIFIER);	
             	    }
-            	    pushFollow(FOLLOW_accessor_element_in_accessor_path4586);
+            	    pushFollow(FOLLOW_accessor_element_in_accessor_path4566);
             	    accessor_element279=accessor_element();
 
             	    state._fsp--;
@@ -12374,9 +12369,9 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1343:2: -> ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+            // 1338:2: -> ^( VT_ACCESSOR_PATH ( accessor_element )+ )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1343:5: ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1338: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);
@@ -12424,7 +12419,7 @@
     };
 
     // $ANTLR start "accessor_element"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1346:1: accessor_element : ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1341: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);
@@ -12439,16 +12434,16 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
         RewriteRuleSubtreeStream stream_square_chunk=new RewriteRuleSubtreeStream(adaptor,"rule square_chunk");
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1347:2: ( ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1347:4: ID ( square_chunk )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1342:2: ( ID ( square_chunk )* -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1342:4: ID ( square_chunk )*
             {
-            ID280=(Token)match(input,ID,FOLLOW_ID_in_accessor_element4610); if (state.failed) return retval; 
+            ID280=(Token)match(input,ID,FOLLOW_ID_in_accessor_element4590); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(ID280);
 
             if ( state.backtracking==0 ) {
               	emit(ID280, DroolsEditorType.IDENTIFIER);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1348:3: ( square_chunk )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1343:3: ( square_chunk )*
             loop99:
             do {
                 int alt99=2;
@@ -12461,9 +12456,9 @@
 
                 switch (alt99) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1348:3: square_chunk
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1343:3: square_chunk
             	    {
-            	    pushFollow(FOLLOW_square_chunk_in_accessor_element4616);
+            	    pushFollow(FOLLOW_square_chunk_in_accessor_element4596);
             	    square_chunk281=square_chunk();
 
             	    state._fsp--;
@@ -12481,7 +12476,7 @@
 
 
             // AST REWRITE
-            // elements: square_chunk, ID
+            // elements: ID, square_chunk
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -12491,15 +12486,15 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1349:2: -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
+            // 1344:2: -> ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
             {
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1349:5: ^( VT_ACCESSOR_ELEMENT ID ( square_chunk )* )
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1344: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());
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1349:30: ( square_chunk )*
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1344:30: ( square_chunk )*
                 while ( stream_square_chunk.hasNext() ) {
                     adaptor.addChild(root_1, stream_square_chunk.nextTree());
 
@@ -12540,7 +12535,7 @@
     };
 
     // $ANTLR start "rhs_chunk"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1352:1: rhs_chunk : rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1347: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);
@@ -12555,10 +12550,10 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1355:3: (rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1355:5: rc= rhs_chunk_data
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1350:3: (rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1350:5: rc= rhs_chunk_data
             {
-            pushFollow(FOLLOW_rhs_chunk_data_in_rhs_chunk4645);
+            pushFollow(FOLLOW_rhs_chunk_data_in_rhs_chunk4625);
             rc=rhs_chunk_data();
 
             state._fsp--;
@@ -12580,7 +12575,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1356:2: -> VT_RHS_CHUNK[$rc.start,text]
+            // 1351:2: -> VT_RHS_CHUNK[$rc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_RHS_CHUNK, (rc!=null?((Token)rc.start):null), text));
 
@@ -12615,7 +12610,7 @@
     };
 
     // $ANTLR start "rhs_chunk_data"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1359:1: rhs_chunk_data : THEN (any=~ END )* end1= END ( SEMICOLON )? ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1354:1: rhs_chunk_data : THEN (any=~ END )* end1= END ( 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);
@@ -12633,12 +12628,12 @@
         Object SEMICOLON283_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1360:2: ( THEN (any=~ END )* end1= END ( SEMICOLON )? )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1360:4: THEN (any=~ END )* end1= END ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1355:2: ( THEN (any=~ END )* end1= END ( SEMICOLON )? )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1355:4: THEN (any=~ END )* end1= END ( SEMICOLON )?
             {
             root_0 = (Object)adaptor.nil();
 
-            THEN282=(Token)match(input,THEN,FOLLOW_THEN_in_rhs_chunk_data4664); if (state.failed) return retval;
+            THEN282=(Token)match(input,THEN,FOLLOW_THEN_in_rhs_chunk_data4644); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             THEN282_tree = (Object)adaptor.create(THEN282);
             adaptor.addChild(root_0, THEN282_tree);
@@ -12649,7 +12644,7 @@
               			emit(Location.LOCATION_RHS);
               		}	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1365:4: (any=~ END )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1360:4: (any=~ END )*
             loop100:
             do {
                 int alt100=2;
@@ -12662,7 +12657,7 @@
 
                 switch (alt100) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1365:6: any=~ END
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1360:6: any=~ END
             	    {
             	    any=(Token)input.LT(1);
             	    if ( (input.LA(1)>=VT_COMPILATION_UNIT && input.LA(1)<=DOT_STAR)||(input.LA(1)>=STRING && input.LA(1)<=MULTI_LINE_COMMENT) ) {
@@ -12688,7 +12683,7 @@
                 }
             } while (true);
 
-            end1=(Token)match(input,END,FOLLOW_END_in_rhs_chunk_data4690); if (state.failed) return retval;
+            end1=(Token)match(input,END,FOLLOW_END_in_rhs_chunk_data4670); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             end1_tree = (Object)adaptor.create(end1);
             adaptor.addChild(root_0, end1_tree);
@@ -12696,7 +12691,7 @@
             if ( state.backtracking==0 ) {
               	emit(end1, DroolsEditorType.KEYWORD);	
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1367:3: ( SEMICOLON )?
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1362:3: ( SEMICOLON )?
             int alt101=2;
             int LA101_0 = input.LA(1);
 
@@ -12705,9 +12700,9 @@
             }
             switch (alt101) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1367:3: SEMICOLON
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1362:3: SEMICOLON
                     {
-                    SEMICOLON283=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rhs_chunk_data4696); if (state.failed) return retval;
+                    SEMICOLON283=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rhs_chunk_data4676); if (state.failed) return retval;
                     if ( state.backtracking==0 ) {
                     SEMICOLON283_tree = (Object)adaptor.create(SEMICOLON283);
                     adaptor.addChild(root_0, SEMICOLON283_tree);
@@ -12750,7 +12745,7 @@
     };
 
     // $ANTLR start "curly_chunk"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1370:1: curly_chunk : cc= curly_chunk_data[false] -> VT_CURLY_CHUNK[$cc.start,text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1365: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);
@@ -12765,10 +12760,10 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1373:3: (cc= curly_chunk_data[false] -> VT_CURLY_CHUNK[$cc.start,text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1373:5: cc= curly_chunk_data[false]
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1368:3: (cc= curly_chunk_data[false] -> VT_CURLY_CHUNK[$cc.start,text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1368:5: cc= curly_chunk_data[false]
             {
-            pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk4715);
+            pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk4695);
             cc=curly_chunk_data(false);
 
             state._fsp--;
@@ -12790,7 +12785,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1374:2: -> VT_CURLY_CHUNK[$cc.start,text]
+            // 1369:2: -> VT_CURLY_CHUNK[$cc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_CURLY_CHUNK, (cc!=null?((Token)cc.start):null), text));
 
@@ -12825,7 +12820,7 @@
     };
 
     // $ANTLR start "curly_chunk_data"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1377:1: curly_chunk_data[boolean isRecursive] : lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1372: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);
@@ -12843,12 +12838,12 @@
         Object rc1_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1378:2: (lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1378:4: lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1373:2: (lc1= LEFT_CURLY (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )* rc1= RIGHT_CURLY )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1373: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_data4738); if (state.failed) return retval;
+            lc1=(Token)match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk_data4718); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             lc1_tree = (Object)adaptor.create(lc1);
             adaptor.addChild(root_0, lc1_tree);
@@ -12861,7 +12856,7 @@
               			}	
               		
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1385:4: (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1380:4: (any=~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk_data[true] )*
             loop102:
             do {
                 int alt102=3;
@@ -12877,7 +12872,7 @@
 
                 switch (alt102) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1385:5: any=~ ( LEFT_CURLY | RIGHT_CURLY )
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1380: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) ) {
@@ -12898,9 +12893,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1385:87: curly_chunk_data[true]
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1380:87: curly_chunk_data[true]
             	    {
-            	    pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk_data4766);
+            	    pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk_data4746);
             	    curly_chunk_data284=curly_chunk_data(true);
 
             	    state._fsp--;
@@ -12915,7 +12910,7 @@
                 }
             } while (true);
 
-            rc1=(Token)match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk_data4777); if (state.failed) return retval;
+            rc1=(Token)match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk_data4757); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rc1_tree = (Object)adaptor.create(rc1);
             adaptor.addChild(root_0, rc1_tree);
@@ -12957,7 +12952,7 @@
     };
 
     // $ANTLR start "paren_chunk"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1395:1: paren_chunk : pc= paren_chunk_data[false] -> VT_PAREN_CHUNK[$pc.start,text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1390: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);
@@ -12972,10 +12967,10 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1398:3: (pc= paren_chunk_data[false] -> VT_PAREN_CHUNK[$pc.start,text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1398:5: pc= paren_chunk_data[false]
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1393:3: (pc= paren_chunk_data[false] -> VT_PAREN_CHUNK[$pc.start,text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1393:5: pc= paren_chunk_data[false]
             {
-            pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk4798);
+            pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk4778);
             pc=paren_chunk_data(false);
 
             state._fsp--;
@@ -12997,7 +12992,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1399:2: -> VT_PAREN_CHUNK[$pc.start,text]
+            // 1394:2: -> VT_PAREN_CHUNK[$pc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_PAREN_CHUNK, (pc!=null?((Token)pc.start):null), text));
 
@@ -13032,7 +13027,7 @@
     };
 
     // $ANTLR start "paren_chunk_data"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1402:1: paren_chunk_data[boolean isRecursive] : lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1397: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);
@@ -13050,12 +13045,12 @@
         Object rp1_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1403:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1403:4: lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1398:2: (lp1= LEFT_PAREN (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )* rp1= RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1398: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_data4822); if (state.failed) return retval;
+            lp1=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk_data4802); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             lp1_tree = (Object)adaptor.create(lp1);
             adaptor.addChild(root_0, lp1_tree);
@@ -13068,7 +13063,7 @@
               			}	
               		
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1410:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1405:4: (any=~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk_data[true] )*
             loop103:
             do {
                 int alt103=3;
@@ -13084,7 +13079,7 @@
 
                 switch (alt103) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1410:5: any=~ ( LEFT_PAREN | RIGHT_PAREN )
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1405: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) ) {
@@ -13105,9 +13100,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1410:87: paren_chunk_data[true]
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1405:87: paren_chunk_data[true]
             	    {
-            	    pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk_data4850);
+            	    pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk_data4830);
             	    paren_chunk_data285=paren_chunk_data(true);
 
             	    state._fsp--;
@@ -13122,7 +13117,7 @@
                 }
             } while (true);
 
-            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk_data4861); if (state.failed) return retval;
+            rp1=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk_data4841); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rp1_tree = (Object)adaptor.create(rp1);
             adaptor.addChild(root_0, rp1_tree);
@@ -13164,7 +13159,7 @@
     };
 
     // $ANTLR start "square_chunk"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1420:1: square_chunk : sc= square_chunk_data[false] -> VT_SQUARE_CHUNK[$sc.start,text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1415: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);
@@ -13179,10 +13174,10 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1423:3: (sc= square_chunk_data[false] -> VT_SQUARE_CHUNK[$sc.start,text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1423:5: sc= square_chunk_data[false]
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1418:3: (sc= square_chunk_data[false] -> VT_SQUARE_CHUNK[$sc.start,text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1418:5: sc= square_chunk_data[false]
             {
-            pushFollow(FOLLOW_square_chunk_data_in_square_chunk4882);
+            pushFollow(FOLLOW_square_chunk_data_in_square_chunk4862);
             sc=square_chunk_data(false);
 
             state._fsp--;
@@ -13204,7 +13199,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1424:2: -> VT_SQUARE_CHUNK[$sc.start,text]
+            // 1419:2: -> VT_SQUARE_CHUNK[$sc.start,text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VT_SQUARE_CHUNK, (sc!=null?((Token)sc.start):null), text));
 
@@ -13239,7 +13234,7 @@
     };
 
     // $ANTLR start "square_chunk_data"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1427:1: square_chunk_data[boolean isRecursive] : ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1422: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);
@@ -13257,12 +13252,12 @@
         Object rs1_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1428:2: (ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1428:4: ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1423:2: (ls1= LEFT_SQUARE (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )* rs1= RIGHT_SQUARE )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1423: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_data4905); if (state.failed) return retval;
+            ls1=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk_data4885); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             ls1_tree = (Object)adaptor.create(ls1);
             adaptor.addChild(root_0, ls1_tree);
@@ -13275,7 +13270,7 @@
               			}	
               		
             }
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1435:4: (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )*
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1430:4: (any=~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk_data[true] )*
             loop104:
             do {
                 int alt104=3;
@@ -13291,7 +13286,7 @@
 
                 switch (alt104) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1435:5: any=~ ( LEFT_SQUARE | RIGHT_SQUARE )
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1430: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) ) {
@@ -13312,9 +13307,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1435:88: square_chunk_data[true]
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1430:88: square_chunk_data[true]
             	    {
-            	    pushFollow(FOLLOW_square_chunk_data_in_square_chunk_data4932);
+            	    pushFollow(FOLLOW_square_chunk_data_in_square_chunk_data4912);
             	    square_chunk_data286=square_chunk_data(true);
 
             	    state._fsp--;
@@ -13329,7 +13324,7 @@
                 }
             } while (true);
 
-            rs1=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk_data4943); if (state.failed) return retval;
+            rs1=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk_data4923); if (state.failed) return retval;
             if ( state.backtracking==0 ) {
             rs1_tree = (Object)adaptor.create(rs1);
             adaptor.addChild(root_0, rs1_tree);
@@ -13371,7 +13366,7 @@
     };
 
     // $ANTLR start "lock_on_active_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1445:1: lock_on_active_key : {...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID -> VK_LOCK_ON_ACTIVE[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1440: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);
@@ -13396,26 +13391,26 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1448:3: ({...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID -> VK_LOCK_ON_ACTIVE[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1448:5: {...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1443:3: ({...}? =>id1= ID mis1= MISC id2= ID mis2= MISC id3= ID -> VK_LOCK_ON_ACTIVE[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1443: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_key4967); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key4947); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key4971); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key4951); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key4975); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key4955); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
-            mis2=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key4979); if (state.failed) return retval; 
+            mis2=(Token)match(input,MISC,FOLLOW_MISC_in_lock_on_active_key4959); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis2);
 
-            id3=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key4983); if (state.failed) return retval; 
+            id3=(Token)match(input,ID,FOLLOW_ID_in_lock_on_active_key4963); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id3);
 
             if ( state.backtracking==0 ) {
@@ -13441,7 +13436,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1454:3: -> VK_LOCK_ON_ACTIVE[$start, text]
+            // 1449:3: -> VK_LOCK_ON_ACTIVE[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_LOCK_ON_ACTIVE, ((Token)retval.start), text));
 
@@ -13476,7 +13471,7 @@
     };
 
     // $ANTLR start "date_effective_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:1: date_effective_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EFFECTIVE[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1452: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);
@@ -13497,20 +13492,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1460:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EFFECTIVE[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1460:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EFFECTIVE[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455: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_key5015); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_date_effective_key4995); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_effective_key5019); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_effective_key4999); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_date_effective_key5023); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_date_effective_key5003); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -13534,7 +13529,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1464:3: -> VK_DATE_EFFECTIVE[$start, text]
+            // 1459:3: -> VK_DATE_EFFECTIVE[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DATE_EFFECTIVE, ((Token)retval.start), text));
 
@@ -13569,7 +13564,7 @@
     };
 
     // $ANTLR start "date_expires_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1467:1: date_expires_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EXPIRES[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1462: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);
@@ -13590,20 +13585,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1470:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EXPIRES[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1470:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1465:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_DATE_EXPIRES[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1465: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_key5055); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_date_expires_key5035); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_expires_key5059); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_date_expires_key5039); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_date_expires_key5063); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_date_expires_key5043); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -13627,7 +13622,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1474:3: -> VK_DATE_EXPIRES[$start, text]
+            // 1469:3: -> VK_DATE_EXPIRES[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DATE_EXPIRES, ((Token)retval.start), text));
 
@@ -13662,7 +13657,7 @@
     };
 
     // $ANTLR start "no_loop_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1477:1: no_loop_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_NO_LOOP[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1472: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);
@@ -13683,20 +13678,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1480:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_NO_LOOP[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1480:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1475:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_NO_LOOP[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1475: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_key5095); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_no_loop_key5075); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_no_loop_key5099); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_no_loop_key5079); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_no_loop_key5103); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_no_loop_key5083); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -13720,7 +13715,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1484:3: -> VK_NO_LOOP[$start, text]
+            // 1479:3: -> VK_NO_LOOP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_NO_LOOP, ((Token)retval.start), text));
 
@@ -13755,7 +13750,7 @@
     };
 
     // $ANTLR start "auto_focus_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1487:1: auto_focus_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_AUTO_FOCUS[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1482: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);
@@ -13776,20 +13771,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1490:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AUTO_FOCUS[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1490:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1485:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AUTO_FOCUS[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1485: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_key5135); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_auto_focus_key5115); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_auto_focus_key5139); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_auto_focus_key5119); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_auto_focus_key5143); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_auto_focus_key5123); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -13813,7 +13808,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1494:3: -> VK_AUTO_FOCUS[$start, text]
+            // 1489:3: -> VK_AUTO_FOCUS[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_AUTO_FOCUS, ((Token)retval.start), text));
 
@@ -13848,7 +13843,7 @@
     };
 
     // $ANTLR start "activation_group_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1497:1: activation_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_ACTIVATION_GROUP[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1492: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);
@@ -13869,20 +13864,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1500:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ACTIVATION_GROUP[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1500:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1495:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ACTIVATION_GROUP[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1495: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_key5175); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_activation_group_key5155); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_activation_group_key5179); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_activation_group_key5159); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_activation_group_key5183); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_activation_group_key5163); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -13906,7 +13901,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1504:3: -> VK_ACTIVATION_GROUP[$start, text]
+            // 1499:3: -> VK_ACTIVATION_GROUP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ACTIVATION_GROUP, ((Token)retval.start), text));
 
@@ -13941,7 +13936,7 @@
     };
 
     // $ANTLR start "agenda_group_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1507:1: agenda_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_AGENDA_GROUP[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1502: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);
@@ -13962,20 +13957,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AGENDA_GROUP[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1505:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_AGENDA_GROUP[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1505: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_key5215); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_agenda_group_key5195); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_agenda_group_key5219); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_agenda_group_key5199); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_agenda_group_key5223); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_agenda_group_key5203); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -13999,7 +13994,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1514:3: -> VK_AGENDA_GROUP[$start, text]
+            // 1509:3: -> VK_AGENDA_GROUP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_AGENDA_GROUP, ((Token)retval.start), text));
 
@@ -14034,7 +14029,7 @@
     };
 
     // $ANTLR start "ruleflow_group_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1517:1: ruleflow_group_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_RULEFLOW_GROUP[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1512: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);
@@ -14055,20 +14050,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1520:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_RULEFLOW_GROUP[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1520:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1515:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_RULEFLOW_GROUP[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1515: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_key5255); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_ruleflow_group_key5235); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_ruleflow_group_key5259); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_ruleflow_group_key5239); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_ruleflow_group_key5263); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_ruleflow_group_key5243); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -14092,7 +14087,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1524:3: -> VK_RULEFLOW_GROUP[$start, text]
+            // 1519:3: -> VK_RULEFLOW_GROUP[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_RULEFLOW_GROUP, ((Token)retval.start), text));
 
@@ -14127,7 +14122,7 @@
     };
 
     // $ANTLR start "entry_point_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1527:1: entry_point_key : {...}? =>id1= ID mis1= MISC id2= ID -> VK_ENTRY_POINT[$start, text] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1522: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);
@@ -14148,20 +14143,20 @@
         	String text = "";
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1530:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ENTRY_POINT[$start, text] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1530:5: {...}? =>id1= ID mis1= MISC id2= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1525:3: ({...}? =>id1= ID mis1= MISC id2= ID -> VK_ENTRY_POINT[$start, text] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1525: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_key5295); if (state.failed) return retval; 
+            id1=(Token)match(input,ID,FOLLOW_ID_in_entry_point_key5275); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id1);
 
-            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_entry_point_key5299); if (state.failed) return retval; 
+            mis1=(Token)match(input,MISC,FOLLOW_MISC_in_entry_point_key5279); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_MISC.add(mis1);
 
-            id2=(Token)match(input,ID,FOLLOW_ID_in_entry_point_key5303); if (state.failed) return retval; 
+            id2=(Token)match(input,ID,FOLLOW_ID_in_entry_point_key5283); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id2);
 
             if ( state.backtracking==0 ) {
@@ -14185,7 +14180,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1534:3: -> VK_ENTRY_POINT[$start, text]
+            // 1529:3: -> VK_ENTRY_POINT[$start, text]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ENTRY_POINT, ((Token)retval.start), text));
 
@@ -14220,7 +14215,7 @@
     };
 
     // $ANTLR start "duration_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1537:1: duration_key : {...}? =>id= ID -> VK_DURATION[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1532: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);
@@ -14233,14 +14228,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1538:2: ({...}? =>id= ID -> VK_DURATION[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1538:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1533:2: ({...}? =>id= ID -> VK_DURATION[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1533: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_key5332); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_duration_key5312); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14259,7 +14254,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1540:3: -> VK_DURATION[$id]
+            // 1535:3: -> VK_DURATION[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DURATION, id));
 
@@ -14294,7 +14289,7 @@
     };
 
     // $ANTLR start "package_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1543:1: package_key : {...}? =>id= ID -> VK_PACKAGE[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1538: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);
@@ -14307,14 +14302,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1544:2: ({...}? =>id= ID -> VK_PACKAGE[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1544:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1539:2: ({...}? =>id= ID -> VK_PACKAGE[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1539: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_key5359); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_package_key5339); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14333,7 +14328,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1546:3: -> VK_PACKAGE[$id]
+            // 1541:3: -> VK_PACKAGE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_PACKAGE, id));
 
@@ -14368,7 +14363,7 @@
     };
 
     // $ANTLR start "import_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1549:1: import_key : {...}? =>id= ID -> VK_IMPORT[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1544: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);
@@ -14381,14 +14376,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1550:2: ({...}? =>id= ID -> VK_IMPORT[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1550:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545:2: ({...}? =>id= ID -> VK_IMPORT[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1545: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_key5386); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_import_key5366); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14407,7 +14402,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1552:3: -> VK_IMPORT[$id]
+            // 1547:3: -> VK_IMPORT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_IMPORT, id));
 
@@ -14442,7 +14437,7 @@
     };
 
     // $ANTLR start "dialect_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1555:1: dialect_key : {...}? =>id= ID -> VK_DIALECT[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1550: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);
@@ -14455,14 +14450,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556:2: ({...}? =>id= ID -> VK_DIALECT[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1551:2: ({...}? =>id= ID -> VK_DIALECT[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1551: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_key5413); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_dialect_key5393); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14481,7 +14476,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1558:3: -> VK_DIALECT[$id]
+            // 1553:3: -> VK_DIALECT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DIALECT, id));
 
@@ -14516,7 +14511,7 @@
     };
 
     // $ANTLR start "salience_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1561:1: salience_key : {...}? =>id= ID -> VK_SALIENCE[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556: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);
@@ -14529,14 +14524,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1562:2: ({...}? =>id= ID -> VK_SALIENCE[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1562:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1557:2: ({...}? =>id= ID -> VK_SALIENCE[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1557: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_key5440); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_salience_key5420); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14555,7 +14550,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1564:3: -> VK_SALIENCE[$id]
+            // 1559:3: -> VK_SALIENCE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_SALIENCE, id));
 
@@ -14590,7 +14585,7 @@
     };
 
     // $ANTLR start "enabled_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1567:1: enabled_key : {...}? =>id= ID -> VK_ENABLED[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1562: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);
@@ -14603,14 +14598,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1568:2: ({...}? =>id= ID -> VK_ENABLED[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1568:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1563:2: ({...}? =>id= ID -> VK_ENABLED[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1563: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_key5467); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_enabled_key5447); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14629,7 +14624,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1570:3: -> VK_ENABLED[$id]
+            // 1565:3: -> VK_ENABLED[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ENABLED, id));
 
@@ -14664,7 +14659,7 @@
     };
 
     // $ANTLR start "attributes_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1573:1: attributes_key : {...}? =>id= ID -> VK_ATTRIBUTES[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1568: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);
@@ -14677,14 +14672,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1574:2: ({...}? =>id= ID -> VK_ATTRIBUTES[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1574:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569:2: ({...}? =>id= ID -> VK_ATTRIBUTES[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569: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_key5494); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_attributes_key5474); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14703,7 +14698,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1576:3: -> VK_ATTRIBUTES[$id]
+            // 1571:3: -> VK_ATTRIBUTES[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ATTRIBUTES, id));
 
@@ -14738,7 +14733,7 @@
     };
 
     // $ANTLR start "rule_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1579:1: rule_key : {...}? =>id= ID -> VK_RULE[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1574: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);
@@ -14751,14 +14746,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1580:2: ({...}? =>id= ID -> VK_RULE[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1580:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1575:2: ({...}? =>id= ID -> VK_RULE[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1575: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_key5521); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_rule_key5501); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14777,7 +14772,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1582:3: -> VK_RULE[$id]
+            // 1577:3: -> VK_RULE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_RULE, id));
 
@@ -14812,7 +14807,7 @@
     };
 
     // $ANTLR start "extend_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1585:1: extend_key : {...}? =>id= ID -> VK_EXTEND[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1580: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);
@@ -14825,14 +14820,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1586:2: ({...}? =>id= ID -> VK_EXTEND[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1586:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1581:2: ({...}? =>id= ID -> VK_EXTEND[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1581: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_key5548); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_extend_key5528); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14851,7 +14846,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1588:3: -> VK_EXTEND[$id]
+            // 1583:3: -> VK_EXTEND[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_EXTEND, id));
 
@@ -14886,7 +14881,7 @@
     };
 
     // $ANTLR start "template_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1591:1: template_key : {...}? =>id= ID -> VK_TEMPLATE[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1586: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);
@@ -14899,14 +14894,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:2: ({...}? =>id= ID -> VK_TEMPLATE[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1587:2: ({...}? =>id= ID -> VK_TEMPLATE[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1587: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_key5575); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_template_key5555); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14925,7 +14920,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1594:3: -> VK_TEMPLATE[$id]
+            // 1589:3: -> VK_TEMPLATE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_TEMPLATE, id));
 
@@ -14960,7 +14955,7 @@
     };
 
     // $ANTLR start "query_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1597:1: query_key : {...}? =>id= ID -> VK_QUERY[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592: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);
@@ -14973,14 +14968,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1598:2: ({...}? =>id= ID -> VK_QUERY[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1598:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1593:2: ({...}? =>id= ID -> VK_QUERY[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1593: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_key5602); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_query_key5582); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -14999,7 +14994,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1600:3: -> VK_QUERY[$id]
+            // 1595:3: -> VK_QUERY[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_QUERY, id));
 
@@ -15034,7 +15029,7 @@
     };
 
     // $ANTLR start "declare_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1603:1: declare_key : {...}? =>id= ID -> VK_DECLARE[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1598: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);
@@ -15047,14 +15042,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1604:2: ({...}? =>id= ID -> VK_DECLARE[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1604:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:2: ({...}? =>id= ID -> VK_DECLARE[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599: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_key5629); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_declare_key5609); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15073,7 +15068,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1606:3: -> VK_DECLARE[$id]
+            // 1601:3: -> VK_DECLARE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_DECLARE, id));
 
@@ -15108,7 +15103,7 @@
     };
 
     // $ANTLR start "function_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:1: function_key : {...}? =>id= ID -> VK_FUNCTION[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1604: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);
@@ -15121,14 +15116,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1610:2: ({...}? =>id= ID -> VK_FUNCTION[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1610:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1605:2: ({...}? =>id= ID -> VK_FUNCTION[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1605: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_key5656); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_function_key5636); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15147,7 +15142,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1612:3: -> VK_FUNCTION[$id]
+            // 1607:3: -> VK_FUNCTION[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_FUNCTION, id));
 
@@ -15182,7 +15177,7 @@
     };
 
     // $ANTLR start "global_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1615:1: global_key : {...}? =>id= ID -> VK_GLOBAL[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1610: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);
@@ -15195,14 +15190,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:2: ({...}? =>id= ID -> VK_GLOBAL[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1611:2: ({...}? =>id= ID -> VK_GLOBAL[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1611: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_key5683); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_global_key5663); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15221,7 +15216,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1618:3: -> VK_GLOBAL[$id]
+            // 1613:3: -> VK_GLOBAL[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_GLOBAL, id));
 
@@ -15256,7 +15251,7 @@
     };
 
     // $ANTLR start "eval_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1621:1: eval_key : {...}? =>id= ID -> VK_EVAL[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616: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);
@@ -15269,14 +15264,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1622:2: ({...}? =>id= ID -> VK_EVAL[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1622:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1617:2: ({...}? =>id= ID -> VK_EVAL[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1617: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_key5710); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_eval_key5690); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15295,7 +15290,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1624:3: -> VK_EVAL[$id]
+            // 1619:3: -> VK_EVAL[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_EVAL, id));
 
@@ -15324,383 +15319,13 @@
     }
     // $ANTLR end "eval_key"
 
-    public static class contains_key_return extends ParserRuleReturnScope {
-        Object tree;
-        public Object getTree() { return tree; }
-    };
-
-    // $ANTLR start "contains_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:1: contains_key : {...}? =>id= ID -> VK_CONTAINS[$id] ;
-    public final DRLParser.contains_key_return contains_key() throws RecognitionException {
-        DRLParser.contains_key_return retval = new DRLParser.contains_key_return();
-        retval.start = input.LT(1);
-
-        Object root_0 = null;
-
-        Token id=null;
-
-        Object id_tree=null;
-        RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
-
-        try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1628:2: ({...}? =>id= ID -> VK_CONTAINS[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1628:4: {...}? =>id= ID
-            {
-            if ( !(((validateIdentifierKey(DroolsSoftKeywords.CONTAINS)))) ) {
-                if (state.backtracking>0) {state.failed=true; return retval;}
-                throw new FailedPredicateException(input, "contains_key", "(validateIdentifierKey(DroolsSoftKeywords.CONTAINS))");
-            }
-            id=(Token)match(input,ID,FOLLOW_ID_in_contains_key5737); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(id);
-
-            if ( state.backtracking==0 ) {
-              	emit(id, DroolsEditorType.KEYWORD);	
-            }
-
-
-            // AST REWRITE
-            // elements: 
-            // token labels: 
-            // rule labels: retval
-            // token list labels: 
-            // rule list labels: 
-            if ( state.backtracking==0 ) {
-            retval.tree = root_0;
-            RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-            root_0 = (Object)adaptor.nil();
-            // 1630:3: -> VK_CONTAINS[$id]
-            {
-                adaptor.addChild(root_0, (Object)adaptor.create(VK_CONTAINS, id));
-
-            }
-
-            retval.tree = root_0;}
-            }
-
-            retval.stop = input.LT(-1);
-
-            if ( state.backtracking==0 ) {
-
-            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
-            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
-
-        }
-        finally {
-        }
-        return retval;
-    }
-    // $ANTLR end "contains_key"
-
-    public static class matches_key_return extends ParserRuleReturnScope {
-        Object tree;
-        public Object getTree() { return tree; }
-    };
-
-    // $ANTLR start "matches_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1633:1: matches_key : {...}? =>id= ID -> VK_MATCHES[$id] ;
-    public final DRLParser.matches_key_return matches_key() throws RecognitionException {
-        DRLParser.matches_key_return retval = new DRLParser.matches_key_return();
-        retval.start = input.LT(1);
-
-        Object root_0 = null;
-
-        Token id=null;
-
-        Object id_tree=null;
-        RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
-
-        try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1634:2: ({...}? =>id= ID -> VK_MATCHES[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1634:4: {...}? =>id= ID
-            {
-            if ( !(((validateIdentifierKey(DroolsSoftKeywords.MATCHES)))) ) {
-                if (state.backtracking>0) {state.failed=true; return retval;}
-                throw new FailedPredicateException(input, "matches_key", "(validateIdentifierKey(DroolsSoftKeywords.MATCHES))");
-            }
-            id=(Token)match(input,ID,FOLLOW_ID_in_matches_key5764); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(id);
-
-            if ( state.backtracking==0 ) {
-              	emit(id, DroolsEditorType.KEYWORD);	
-            }
-
-
-            // AST REWRITE
-            // elements: 
-            // token labels: 
-            // rule labels: retval
-            // token list labels: 
-            // rule list labels: 
-            if ( state.backtracking==0 ) {
-            retval.tree = root_0;
-            RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-            root_0 = (Object)adaptor.nil();
-            // 1636:3: -> VK_MATCHES[$id]
-            {
-                adaptor.addChild(root_0, (Object)adaptor.create(VK_MATCHES, id));
-
-            }
-
-            retval.tree = root_0;}
-            }
-
-            retval.stop = input.LT(-1);
-
-            if ( state.backtracking==0 ) {
-
-            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
-            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
-
-        }
-        finally {
-        }
-        return retval;
-    }
-    // $ANTLR end "matches_key"
-
-    public static class excludes_key_return extends ParserRuleReturnScope {
-        Object tree;
-        public Object getTree() { return tree; }
-    };
-
-    // $ANTLR start "excludes_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1639:1: excludes_key : {...}? =>id= ID -> VK_EXCLUDES[$id] ;
-    public final DRLParser.excludes_key_return excludes_key() throws RecognitionException {
-        DRLParser.excludes_key_return retval = new DRLParser.excludes_key_return();
-        retval.start = input.LT(1);
-
-        Object root_0 = null;
-
-        Token id=null;
-
-        Object id_tree=null;
-        RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
-
-        try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1640:2: ({...}? =>id= ID -> VK_EXCLUDES[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1640:4: {...}? =>id= ID
-            {
-            if ( !(((validateIdentifierKey(DroolsSoftKeywords.EXCLUDES)))) ) {
-                if (state.backtracking>0) {state.failed=true; return retval;}
-                throw new FailedPredicateException(input, "excludes_key", "(validateIdentifierKey(DroolsSoftKeywords.EXCLUDES))");
-            }
-            id=(Token)match(input,ID,FOLLOW_ID_in_excludes_key5791); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(id);
-
-            if ( state.backtracking==0 ) {
-              	emit(id, DroolsEditorType.KEYWORD);	
-            }
-
-
-            // AST REWRITE
-            // elements: 
-            // token labels: 
-            // rule labels: retval
-            // token list labels: 
-            // rule list labels: 
-            if ( state.backtracking==0 ) {
-            retval.tree = root_0;
-            RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-            root_0 = (Object)adaptor.nil();
-            // 1642:3: -> VK_EXCLUDES[$id]
-            {
-                adaptor.addChild(root_0, (Object)adaptor.create(VK_EXCLUDES, id));
-
-            }
-
-            retval.tree = root_0;}
-            }
-
-            retval.stop = input.LT(-1);
-
-            if ( state.backtracking==0 ) {
-
-            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
-            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
-
-        }
-        finally {
-        }
-        return retval;
-    }
-    // $ANTLR end "excludes_key"
-
-    public static class soundslike_key_return extends ParserRuleReturnScope {
-        Object tree;
-        public Object getTree() { return tree; }
-    };
-
-    // $ANTLR start "soundslike_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1645:1: soundslike_key : {...}? =>id= ID -> VK_SOUNDSLIKE[$id] ;
-    public final DRLParser.soundslike_key_return soundslike_key() throws RecognitionException {
-        DRLParser.soundslike_key_return retval = new DRLParser.soundslike_key_return();
-        retval.start = input.LT(1);
-
-        Object root_0 = null;
-
-        Token id=null;
-
-        Object id_tree=null;
-        RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
-
-        try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1646:2: ({...}? =>id= ID -> VK_SOUNDSLIKE[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1646:4: {...}? =>id= ID
-            {
-            if ( !(((validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE)))) ) {
-                if (state.backtracking>0) {state.failed=true; return retval;}
-                throw new FailedPredicateException(input, "soundslike_key", "(validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE))");
-            }
-            id=(Token)match(input,ID,FOLLOW_ID_in_soundslike_key5818); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(id);
-
-            if ( state.backtracking==0 ) {
-              	emit(id, DroolsEditorType.KEYWORD);	
-            }
-
-
-            // AST REWRITE
-            // elements: 
-            // token labels: 
-            // rule labels: retval
-            // token list labels: 
-            // rule list labels: 
-            if ( state.backtracking==0 ) {
-            retval.tree = root_0;
-            RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-            root_0 = (Object)adaptor.nil();
-            // 1648:3: -> VK_SOUNDSLIKE[$id]
-            {
-                adaptor.addChild(root_0, (Object)adaptor.create(VK_SOUNDSLIKE, id));
-
-            }
-
-            retval.tree = root_0;}
-            }
-
-            retval.stop = input.LT(-1);
-
-            if ( state.backtracking==0 ) {
-
-            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
-            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
-
-        }
-        finally {
-        }
-        return retval;
-    }
-    // $ANTLR end "soundslike_key"
-
-    public static class memberof_key_return extends ParserRuleReturnScope {
-        Object tree;
-        public Object getTree() { return tree; }
-    };
-
-    // $ANTLR start "memberof_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1651:1: memberof_key : {...}? =>id= ID -> VK_MEMBEROF[$id] ;
-    public final DRLParser.memberof_key_return memberof_key() throws RecognitionException {
-        DRLParser.memberof_key_return retval = new DRLParser.memberof_key_return();
-        retval.start = input.LT(1);
-
-        Object root_0 = null;
-
-        Token id=null;
-
-        Object id_tree=null;
-        RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
-
-        try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1652:2: ({...}? =>id= ID -> VK_MEMBEROF[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1652:4: {...}? =>id= ID
-            {
-            if ( !(((validateIdentifierKey(DroolsSoftKeywords.MEMBEROF)))) ) {
-                if (state.backtracking>0) {state.failed=true; return retval;}
-                throw new FailedPredicateException(input, "memberof_key", "(validateIdentifierKey(DroolsSoftKeywords.MEMBEROF))");
-            }
-            id=(Token)match(input,ID,FOLLOW_ID_in_memberof_key5845); if (state.failed) return retval; 
-            if ( state.backtracking==0 ) stream_ID.add(id);
-
-            if ( state.backtracking==0 ) {
-              	emit(id, DroolsEditorType.KEYWORD);	
-            }
-
-
-            // AST REWRITE
-            // elements: 
-            // token labels: 
-            // rule labels: retval
-            // token list labels: 
-            // rule list labels: 
-            if ( state.backtracking==0 ) {
-            retval.tree = root_0;
-            RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-            root_0 = (Object)adaptor.nil();
-            // 1654:3: -> VK_MEMBEROF[$id]
-            {
-                adaptor.addChild(root_0, (Object)adaptor.create(VK_MEMBEROF, id));
-
-            }
-
-            retval.tree = root_0;}
-            }
-
-            retval.stop = input.LT(-1);
-
-            if ( state.backtracking==0 ) {
-
-            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
-            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
-            }
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
-
-        }
-        finally {
-        }
-        return retval;
-    }
-    // $ANTLR end "memberof_key"
-
     public static class not_key_return extends ParserRuleReturnScope {
         Object tree;
         public Object getTree() { return tree; }
     };
 
     // $ANTLR start "not_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:1: not_key : {...}? =>id= ID -> VK_NOT[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1622: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);
@@ -15713,14 +15338,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1658:2: ({...}? =>id= ID -> VK_NOT[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1658:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1623:2: ({...}? =>id= ID -> VK_NOT[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1623: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_key5872); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_not_key5717); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15739,7 +15364,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1660:3: -> VK_NOT[$id]
+            // 1625:3: -> VK_NOT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_NOT, id));
 
@@ -15774,7 +15399,7 @@
     };
 
     // $ANTLR start "in_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1663:1: in_key : {...}? =>id= ID -> VK_IN[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1628: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);
@@ -15787,14 +15412,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:2: ({...}? =>id= ID -> VK_IN[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1629:2: ({...}? =>id= ID -> VK_IN[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1629: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_key5899); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_in_key5744); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15813,7 +15438,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1666:3: -> VK_IN[$id]
+            // 1631:3: -> VK_IN[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_IN, id));
 
@@ -15848,7 +15473,7 @@
     };
 
     // $ANTLR start "or_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1669:1: or_key : {...}? =>id= ID -> VK_OR[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1634: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);
@@ -15861,14 +15486,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1670:2: ({...}? =>id= ID -> VK_OR[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1670:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1635:2: ({...}? =>id= ID -> VK_OR[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1635: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_key5926); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_or_key5771); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15887,7 +15512,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1672:3: -> VK_OR[$id]
+            // 1637:3: -> VK_OR[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_OR, id));
 
@@ -15922,7 +15547,7 @@
     };
 
     // $ANTLR start "and_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1675:1: and_key : {...}? =>id= ID -> VK_AND[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1640: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);
@@ -15935,14 +15560,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1676:2: ({...}? =>id= ID -> VK_AND[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1676:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1641:2: ({...}? =>id= ID -> VK_AND[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1641: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_key5953); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_and_key5798); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -15961,7 +15586,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1678:3: -> VK_AND[$id]
+            // 1643:3: -> VK_AND[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_AND, id));
 
@@ -15996,7 +15621,7 @@
     };
 
     // $ANTLR start "exists_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1681:1: exists_key : {...}? =>id= ID -> VK_EXISTS[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1646: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);
@@ -16009,14 +15634,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1682:2: ({...}? =>id= ID -> VK_EXISTS[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1682:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:2: ({...}? =>id= ID -> VK_EXISTS[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647: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_key5980); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_exists_key5825); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16035,7 +15660,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1684:3: -> VK_EXISTS[$id]
+            // 1649:3: -> VK_EXISTS[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_EXISTS, id));
 
@@ -16070,7 +15695,7 @@
     };
 
     // $ANTLR start "forall_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:1: forall_key : {...}? =>id= ID -> VK_FORALL[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1652: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);
@@ -16083,14 +15708,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1688:2: ({...}? =>id= ID -> VK_FORALL[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1688:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1653:2: ({...}? =>id= ID -> VK_FORALL[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1653: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_key6007); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_forall_key5852); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16109,7 +15734,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1690:3: -> VK_FORALL[$id]
+            // 1655:3: -> VK_FORALL[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_FORALL, id));
 
@@ -16144,7 +15769,7 @@
     };
 
     // $ANTLR start "action_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1693:1: action_key : {...}? =>id= ID -> VK_ACTION[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1658: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);
@@ -16157,14 +15782,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:2: ({...}? =>id= ID -> VK_ACTION[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1659:2: ({...}? =>id= ID -> VK_ACTION[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1659: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_key6034); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_action_key5879); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16183,7 +15808,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1696:3: -> VK_ACTION[$id]
+            // 1661:3: -> VK_ACTION[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_ACTION, id));
 
@@ -16218,7 +15843,7 @@
     };
 
     // $ANTLR start "reverse_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1699:1: reverse_key : {...}? =>id= ID -> VK_REVERSE[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664: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);
@@ -16231,14 +15856,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1700:2: ({...}? =>id= ID -> VK_REVERSE[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1700:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1665:2: ({...}? =>id= ID -> VK_REVERSE[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1665: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_key6061); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_reverse_key5906); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16257,7 +15882,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1702:3: -> VK_REVERSE[$id]
+            // 1667:3: -> VK_REVERSE[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_REVERSE, id));
 
@@ -16292,7 +15917,7 @@
     };
 
     // $ANTLR start "result_key"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1705:1: result_key : {...}? =>id= ID -> VK_RESULT[$id] ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1670: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);
@@ -16305,14 +15930,14 @@
         RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:2: ({...}? =>id= ID -> VK_RESULT[$id] )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:4: {...}? =>id= ID
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1671:2: ({...}? =>id= ID -> VK_RESULT[$id] )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1671: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_key6088); if (state.failed) return retval; 
+            id=(Token)match(input,ID,FOLLOW_ID_in_result_key5933); if (state.failed) return retval; 
             if ( state.backtracking==0 ) stream_ID.add(id);
 
             if ( state.backtracking==0 ) {
@@ -16331,7 +15956,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 1708:3: -> VK_RESULT[$id]
+            // 1673:3: -> VK_RESULT[$id]
             {
                 adaptor.addChild(root_0, (Object)adaptor.create(VK_RESULT, id));
 
@@ -16362,11 +15987,11 @@
 
     // $ANTLR start synpred1_DRL
     public final void synpred1_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:807:5: ( LEFT_PAREN or_key )
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:807:6: LEFT_PAREN or_key
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:5: ( LEFT_PAREN or_key )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:6: LEFT_PAREN or_key
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred1_DRL2050); if (state.failed) return ;
-        pushFollow(FOLLOW_or_key_in_synpred1_DRL2052);
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred1_DRL2030); if (state.failed) return ;
+        pushFollow(FOLLOW_or_key_in_synpred1_DRL2032);
         or_key();
 
         state._fsp--;
@@ -16378,7 +16003,7 @@
 
     // $ANTLR start synpred2_DRL
     public final void synpred2_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:5: ( or_key | DOUBLE_PIPE )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:5: ( or_key | DOUBLE_PIPE )
         int alt105=2;
         int LA105_0 = input.LA(1);
 
@@ -16397,9 +16022,9 @@
         }
         switch (alt105) {
             case 1 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:6: or_key
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:6: or_key
                 {
-                pushFollow(FOLLOW_or_key_in_synpred2_DRL2119);
+                pushFollow(FOLLOW_or_key_in_synpred2_DRL2099);
                 or_key();
 
                 state._fsp--;
@@ -16408,9 +16033,9 @@
                 }
                 break;
             case 2 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:13: DOUBLE_PIPE
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:13: DOUBLE_PIPE
                 {
-                match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred2_DRL2121); if (state.failed) return ;
+                match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred2_DRL2101); if (state.failed) return ;
 
                 }
                 break;
@@ -16420,11 +16045,11 @@
 
     // $ANTLR start synpred3_DRL
     public final void synpred3_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:824:5: ( LEFT_PAREN and_key )
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:824:6: LEFT_PAREN and_key
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:5: ( LEFT_PAREN and_key )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:6: LEFT_PAREN and_key
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred3_DRL2178); if (state.failed) return ;
-        pushFollow(FOLLOW_and_key_in_synpred3_DRL2180);
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred3_DRL2158); if (state.failed) return ;
+        pushFollow(FOLLOW_and_key_in_synpred3_DRL2160);
         and_key();
 
         state._fsp--;
@@ -16436,7 +16061,7 @@
 
     // $ANTLR start synpred4_DRL
     public final void synpred4_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:5: ( and_key | DOUBLE_AMPER )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:5: ( and_key | DOUBLE_AMPER )
         int alt106=2;
         int LA106_0 = input.LA(1);
 
@@ -16455,9 +16080,9 @@
         }
         switch (alt106) {
             case 1 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:6: and_key
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:6: and_key
                 {
-                pushFollow(FOLLOW_and_key_in_synpred4_DRL2248);
+                pushFollow(FOLLOW_and_key_in_synpred4_DRL2228);
                 and_key();
 
                 state._fsp--;
@@ -16466,9 +16091,9 @@
                 }
                 break;
             case 2 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:14: DOUBLE_AMPER
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:14: DOUBLE_AMPER
                 {
-                match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred4_DRL2250); if (state.failed) return ;
+                match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred4_DRL2230); if (state.failed) return ;
 
                 }
                 break;
@@ -16478,10 +16103,10 @@
 
     // $ANTLR start synpred5_DRL
     public final void synpred5_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:849:4: ( SEMICOLON )
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:849:5: SEMICOLON
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:4: ( SEMICOLON )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:5: SEMICOLON
         {
-        match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred5_DRL2373); if (state.failed) return ;
+        match(input,SEMICOLON,FOLLOW_SEMICOLON_in_synpred5_DRL2353); if (state.failed) return ;
 
         }
     }
@@ -16489,11 +16114,11 @@
 
     // $ANTLR start synpred6_DRL
     public final void synpred6_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:12: ( LEFT_PAREN ( or_key | and_key ) )
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:13: LEFT_PAREN ( or_key | and_key )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:850:12: ( LEFT_PAREN ( or_key | and_key ) )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:850:13: LEFT_PAREN ( or_key | and_key )
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred6_DRL2410); if (state.failed) return ;
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:24: ( or_key | and_key )
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred6_DRL2390); if (state.failed) return ;
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:850:24: ( or_key | and_key )
         int alt107=2;
         int LA107_0 = input.LA(1);
 
@@ -16523,9 +16148,9 @@
         }
         switch (alt107) {
             case 1 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:25: or_key
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:850:25: or_key
                 {
-                pushFollow(FOLLOW_or_key_in_synpred6_DRL2413);
+                pushFollow(FOLLOW_or_key_in_synpred6_DRL2393);
                 or_key();
 
                 state._fsp--;
@@ -16534,9 +16159,9 @@
                 }
                 break;
             case 2 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:32: and_key
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:850:32: and_key
                 {
-                pushFollow(FOLLOW_and_key_in_synpred6_DRL2415);
+                pushFollow(FOLLOW_and_key_in_synpred6_DRL2395);
                 and_key();
 
                 state._fsp--;
@@ -16554,11 +16179,11 @@
 
     // $ANTLR start synpred7_DRL
     public final void synpred7_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:5: ( LEFT_PAREN ( or_key | and_key ) )
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:6: LEFT_PAREN ( or_key | and_key )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:5: ( LEFT_PAREN ( or_key | and_key ) )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:6: LEFT_PAREN ( or_key | and_key )
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred7_DRL2538); if (state.failed) return ;
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:17: ( or_key | and_key )
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred7_DRL2518); if (state.failed) return ;
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:17: ( or_key | and_key )
         int alt108=2;
         int LA108_0 = input.LA(1);
 
@@ -16588,9 +16213,9 @@
         }
         switch (alt108) {
             case 1 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:18: or_key
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:18: or_key
                 {
-                pushFollow(FOLLOW_or_key_in_synpred7_DRL2541);
+                pushFollow(FOLLOW_or_key_in_synpred7_DRL2521);
                 or_key();
 
                 state._fsp--;
@@ -16599,9 +16224,9 @@
                 }
                 break;
             case 2 :
-                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:25: and_key
+                // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:25: and_key
                 {
-                pushFollow(FOLLOW_and_key_in_synpred7_DRL2543);
+                pushFollow(FOLLOW_and_key_in_synpred7_DRL2523);
                 and_key();
 
                 state._fsp--;
@@ -16619,10 +16244,10 @@
 
     // $ANTLR start synpred8_DRL
     public final void synpred8_DRL_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1048:5: ( LEFT_PAREN )
-        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1048:6: LEFT_PAREN
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1043:5: ( LEFT_PAREN )
+        // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1043:6: LEFT_PAREN
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred8_DRL3372); if (state.failed) return ;
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred8_DRL3352); if (state.failed) return ;
 
         }
     }
@@ -16759,21 +16384,21 @@
     static final String DFA1_eofS =
         "\1\2\11\uffff";
     static final String DFA1_minS =
-        "\2\125\4\uffff\1\0\3\uffff";
+        "\2\120\2\uffff\1\0\5\uffff";
     static final String DFA1_maxS =
-        "\1\125\1\170\4\uffff\1\0\3\uffff";
+        "\1\120\1\163\2\uffff\1\0\5\uffff";
     static final String DFA1_acceptS =
-        "\2\uffff\4\2\1\uffff\2\2\1\1";
+        "\2\uffff\2\2\1\uffff\4\2\1\1";
     static final String DFA1_specialS =
-        "\1\uffff\1\1\4\uffff\1\0\3\uffff}>";
+        "\1\uffff\1\1\2\uffff\1\0\5\uffff}>";
     static final String[] DFA1_transitionS = {
             "\1\1",
-            "\1\6\3\uffff\1\7\1\5\6\uffff\1\10\1\4\25\uffff\1\3",
+            "\1\4\3\uffff\1\5\1\7\6\uffff\1\10\1\6\25\uffff\1\3",
             "",
             "",
+            "\1\uffff",
             "",
             "",
-            "\1\uffff",
             "",
             "",
             ""
@@ -16809,17 +16434,17 @@
             this.transition = DFA1_transition;
         }
         public String getDescription() {
-            return "399:4: ( package_statement )?";
+            return "394:4: ( package_statement )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA1_6 = input.LA(1);
+                        int LA1_4 = input.LA(1);
 
                          
-                        int index1_6 = input.index();
+                        int index1_4 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.PACKAGE)))) ) {s = 9;}
@@ -16827,7 +16452,7 @@
                         else if ( (true) ) {s = 8;}
 
                          
-                        input.seek(index1_6);
+                        input.seek(index1_4);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
@@ -16839,13 +16464,13 @@
                         s = -1;
                         if ( (LA1_1==MISC) && ((((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))||((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))||((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))||((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))||((validateIdentifierKey(DroolsSoftKeywords.DATE!
 ) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))))) {s = 3;}
 
-                        else if ( (LA1_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 4;}
+                        else if ( (LA1_1==ID) ) {s = 4;}
 
-                        else if ( (LA1_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))))) {s = 5;}
+                        else if ( (LA1_1==STRING) ) {s = 5;}
 
-                        else if ( (LA1_1==ID) ) {s = 6;}
+                        else if ( (LA1_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 6;}
 
-                        else if ( (LA1_1==STRING) ) {s = 7;}
+                        else if ( (LA1_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))))) {s = 7;}
 
                         else if ( (LA1_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 8;}
 
@@ -16866,21 +16491,22 @@
     static final String DFA5_eofS =
         "\20\uffff";
     static final String DFA5_minS =
-        "\2\125\1\uffff\2\0\13\uffff";
+        "\2\120\1\uffff\1\0\2\uffff\1\0\11\uffff";
     static final String DFA5_maxS =
-        "\1\125\1\170\1\uffff\2\0\13\uffff";
+        "\1\120\1\163\1\uffff\1\0\2\uffff\1\0\11\uffff";
     static final String DFA5_acceptS =
-        "\2\uffff\1\1\2\uffff\3\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11";
+        "\2\uffff\1\1\1\uffff\2\1\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10"+
+        "\1\11";
     static final String DFA5_specialS =
-        "\1\uffff\1\0\1\uffff\1\1\1\2\13\uffff}>";
+        "\1\uffff\1\0\1\uffff\1\1\2\uffff\1\2\11\uffff}>";
     static final String[] DFA5_transitionS = {
             "\1\1",
-            "\1\3\3\uffff\1\4\1\6\6\uffff\1\5\1\7\25\uffff\1\2",
+            "\1\3\3\uffff\1\6\1\5\6\uffff\1\7\1\4\25\uffff\1\2",
             "",
             "\1\uffff",
-            "\1\uffff",
             "",
             "",
+            "\1\uffff",
             "",
             "",
             "",
@@ -16922,7 +16548,7 @@
             this.transition = DFA5_transition;
         }
         public String getDescription() {
-            return "457:1: statement options {k=2; } : ( rule_attribute | {...}? => function_import_statement | import_statement | global | function | {...}? => template | {...}? => type_declaration | rule | query );";
+            return "452:1: statement options {k=2; } : ( rule_attribute | {...}? => function_import_statement | import_statement | global | function | {...}? => template | {...}? => type_declaration | rule | query );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -16937,15 +16563,15 @@
                         s = -1;
                         if ( (LA5_1==MISC) && ((((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))||((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))||((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))||((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))||((validateIdentifierKey(DroolsSoftKeywords.DATE!
 ) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))))) {s = 2;}
 
-                        else if ( (LA5_1==ID) && ((!(((((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((vali!
 dateLT(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)))))))||(((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, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeyword
s.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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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, "functio!
 n") ))&&((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)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))!
 &&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||(((validat
eLT(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, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validat!
 eIdentifierKey(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, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((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!
 , DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKey
words.DECLARE)))))))||!(((((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLAT!
 E))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIde
ntifierKey(DroolsSoftKeywords.DECLARE))))||!(((((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)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKe!
 y(DroolsSoftKeywords.IMPORT)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((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(DroolsSoftKeyw!
 ords.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, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL!
 )))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateI
dentifierKey(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))))||(((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))))||(((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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && valid!
 ateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IM
PORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((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))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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.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(D
roolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifie!
 rKey(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))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeyw!
 ords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "functio
n") ))&&((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, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCT!
 ION)))||((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") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifier!
 Key(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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(Dr!
 oolsSoftKeywords.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))))))||!((((((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))))))||!(((((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(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)))||(((validateLT(1, "import") && validateLT(2, "function") !
 ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateI
dentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Dro!
 olsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKe!
 ywords.TEMPLATE))))))||((validateIdentifierKey(DroolsSoftKeywords.IMPO
RT)))||!(((((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))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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)))||(((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, "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.QUERY)))||((validateIdentifie
rKey(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)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||!(((((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(DroolsSo!
 ftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DE!
 CLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(
((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((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))))))||!(((((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)))||(((validate!
 LT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((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))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") &!
 & validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeyw
ords.IMPORT)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.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, 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)))&&((validateIdenti!
 fierKey(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, 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)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && vali!
 dateLT(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)))||(((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)))||((validateIdentifierKey(DroolsSoftKeywor!
 ds.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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((valida!
 teIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((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))))||((validateIdentifie!
 rKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftK
eywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.D!
 ECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((v
alidateIdentifierKey(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.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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, "imp!
 ort") && 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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdenti!
 fierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeyw
ords.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)))))))||!(((((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))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DE!
 CLARE)))))))||(((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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((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)))&&((validateIdentif
ierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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)))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, Drools!
 SoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKey
words.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)))))))||!((((((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.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)))))))||!(((((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)))))))||!(((((!
 (validateLT(1, "import") && validateLT(2, "function") ))&&((validateId
entifierKey(DroolsSoftKeywords.IMPORT))))||((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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifie!
 rKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKey!
 words.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))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((val!
 idateIdentifierKey(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)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((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))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!
 ((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdenti
fierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKe!
 ywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||(((validateLT(1, DroolsSoftKe!
 ywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)
)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((va!
 lidateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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))))||(((validateLT(1, "i!
 mport") && validateLT(2, "function") ))&&((validateIdentifierKey(Drool
sSoftKeywords.IMPORT))))||((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)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords!
 .IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((v
alidateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((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)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validat!
 eLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey!
 (DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKey
words.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)))||(((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(DroolsSof!
 tKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||!(((((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)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKe!
 ywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))|
|((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((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))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((val!
 idateLT(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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateId!
 entifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, DroolsSoftK
eywords.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)))||(((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, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftK!
 eywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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)))||((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))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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))))||((validateIden!
 tifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((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.TEMPLATE))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.D!
 ECLARE))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validate
IdentifierKey(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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((valid!
 ateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKe
ywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.!
 DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((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))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((va!
 lidateIdentifierKey(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))))||(((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)))||((validateIden!
 tifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(Drools
SoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKey!
 words.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.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.!
 IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((v
alidateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((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))))||(((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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifi!
 erKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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))))))||!(((((validateIdentifierKey(DroolsS
oftKeywords.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(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))))) {s = 3;}
+                        else if ( (LA5_1==ID) && ((!(((((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)))))))||!(((((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)))||((vali!
 dateLT(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") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsS!
 oftKeywords.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.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((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)))||(((validateLT(1, DroolsSoftKeywords.DECLA!
 RE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&!
 &((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((vali
dateIdentifierKey(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)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifier!
 Key(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSof!
 tKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLA
RE)))))))||!(((((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||(((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT!
 ))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((valida
teLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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))))||((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)))))))||!(((((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(Droo!
 lsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKe
ywords.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)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)!
 ))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateL
T(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))))))||!((((((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))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIde!
 ntifierKey(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)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifie!
 rKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoft
Keywords.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))))||!((((((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)))||((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)))||(((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, DroolsSoftKeywords.TEMPLATE))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!
 (((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKe
y(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSo!
 ftKeywords.TEMPLATE))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeyw!
 ords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QU
ERY)))||((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)))))))||!(((((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)))||(((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.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((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)))||(((va!
 lidateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Dro
olsSoftKeywords.DECLARE))))||(((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKe!
 y(DroolsSoftKeywords.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))))||!((((((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))))))||!(((((validateIdentifierKey(DroolsSoftKey!
 words.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(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.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))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdenti!
 fierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && val
idateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((v!
 alidateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateI
dentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifi!
 erKey(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)))))))||(((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)))||(((validateLT(1, DroolsSoftKeyw!
 ords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))
))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||!(((((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))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateI!
 dentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "i
mport") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(Dr!
 oolsSoftKeywords.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)))))))||!(((((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)))))))||!((((((validateLT(1, "import") && va!
 lidateLT(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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((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.TEMPLATE))))))||!(((((val!
 idateIdentifierKey(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)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifi!
 erKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywor
ds.TEMPLATE))))))||!(((((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECL!
 ARE)))))))||!(((((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(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)))!
 ))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdenti
fierKey(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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, Dr!
 oolsSoftKeywords.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))))))||!(((((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(DroolsSo!
 ftKeywords.DECLARE)))))))||!((((((validateLT(1, "import") && validateL
T(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUE!
 RY)))||(((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, 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.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)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKe!
 y(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)))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((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)))))))||!(((((validateIdentifier!
 Key(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKey
words.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)))||(((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(DroolsSoftKeyword!
 s.IMPORT))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((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)))||(((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.QUERY)))||((val
idateIdentifierKey(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)))||((validateId!
 entifierKey(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, 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)))||((validateIdentifi!
 erKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoft
Keywords.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))))||((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)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||((validateIdentifie
rKey(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)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((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") ))&&((validateIdentifie!
 rKey(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))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSo!
 ftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "fun
ction") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((val!
 idateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((valid!
 ateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, Drool
sSoftKeywords.TEMPLATE)))||(((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))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Drool!
 sSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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))))||(((validateLT(1, "import") && va!
 lidateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords
.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((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)))||((!
 (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.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!((((((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!
 ((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentif
ierKey(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)))||((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") && v!
 alidateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeyword!
 s.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((va
lidateIdentifierKey(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, "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)))||(((validate!
 LT(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.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))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((validateLT(1, Dro!
 olsSoftKeywords.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(DroolsSoftKeywords.IMPORT)))))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||!(((((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)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE))!
 )&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!((((((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(DroolsSoftKeywords.IMPORT)))))))||!((((((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))))))||!(((((validateIde
ntifierKey(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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifier!
 Key(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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)))||(((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(Dr!
 oolsSoftKeywords.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))))))||(((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)))||(((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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!((((((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))))))||!((((((va!
 lidateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(Dro
olsSoftKeywords.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))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(Drool!
 sSoftKeywords.IMPORT))))||((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))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoft!
 Keywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTIO
N)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((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.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((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, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(!
 DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywor
ds.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((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(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKe!
 ywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||!(((((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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLA!
 RE))))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((valida
teIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((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)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((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.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, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "imp!
 ort") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsS
oftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((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, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKey!
 words.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, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT))))||((validateIdentifierKey(DroolsSoftKeywords.!
 IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((v
alidateLT(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)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentif!
 ierKey(DroolsSoftKeywords.IMPORT)))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.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.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsS
oftKeywords.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.TEMPLATE))))))||!(((((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))))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE)))))))))) {s = 3;}
 
-                        else if ( (LA5_1==STRING) && ((!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((vali!
 dateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, !
 DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsS
oftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords!
 .QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))|!
 |((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1
, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSof!
 tKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.!
 TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY))
)||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((valida!
 teIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifi!
 erKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeyword
s.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)!
 )))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!((!
 (((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdenti
fierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(Dro!
 olsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKey!
 words.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!
(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((valida!
 teIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, Dr!
 oolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSof
tKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.Q!
 UERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||!(((((vali!
 dateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey
(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoft!
 Keywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.D!
 IALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((va
lidateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, D!
 roolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftK!
 eywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords
.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!
 ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validate!
 IdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSof
tKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.T!
 EMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))!
 )))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((valida
teIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifie!
 rKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))))) {s = 4;}
+                        else if ( (LA5_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 4;}
 
-                        else if ( (LA5_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 5;}
+                        else if ( (LA5_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))))) {s = 5;}
 
-                        else if ( (LA5_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))))) {s = 6;}
+                        else if ( (LA5_1==STRING) && ((!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((vali!
 dateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, !
 DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsS
oftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords!
 .QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))|!
 |((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1
, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSof!
 tKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.!
 TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY))
)||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((valida!
 teIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifi!
 erKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeyword
s.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)!
 )))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!((!
 (((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdenti
fierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(Dro!
 olsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKey!
 words.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!
(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((valida!
 teIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, Dr!
 oolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSof
tKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.Q!
 UERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((vali!
 dateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey
(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoft!
 Keywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.D!
 IALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((va
lidateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, D!
 roolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftK!
 eywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords
.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||!
 ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validate!
 IdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSof
tKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.T!
 EMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))!
 )))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((valida
teIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifie!
 rKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))||!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE))))))))) {s = 6;}
 
-                        else if ( (LA5_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 7;}
+                        else if ( (LA5_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 7;}
 
                          
                         input.seek(index5_1);
@@ -16970,7 +16596,7 @@
 
                         else if ( ((((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))) ) {s = 13;}
 
-                        else if ( (!(((((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))))))) ) {s = 14;}
+                        else if ( (!(((((validateIdentifierKey(DroolsSoftKeywords.QUERY)))||((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))||((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))||((validateLT(1, DroolsSoftKeywords.TEMPLATE)))||(((validateLT(1, DroolsSoftKeywords.DECLARE)))&&((validateIdentifierKey(DroolsSoftKeywords.DECLARE))))||(((validateLT(1, "import") && validateLT(2, "function") ))&&((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))))) ) {s = 14;}
 
                         else if ( (((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) ) {s = 15;}
 
@@ -16979,10 +16605,10 @@
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA5_4 = input.LA(1);
+                        int LA5_6 = input.LA(1);
 
                          
-                        int index5_4 = input.index();
+                        int index5_6 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) ) {s = 7;}
@@ -16994,7 +16620,7 @@
                         else if ( (((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) ) {s = 15;}
 
                          
-                        input.seek(index5_4);
+                        input.seek(index5_6);
                         if ( s>=0 ) return s;
                         break;
             }
@@ -17010,10 +16636,10 @@
     static final String DFA12_eofS =
         "\16\uffff";
     static final String DFA12_minS =
-        "\2\125\1\uffff\1\125\1\uffff\2\125\2\164\2\125\1\132\1\164\1\125";
+        "\2\120\1\uffff\1\120\1\uffff\2\120\2\157\2\120\1\125\1\157\1\120";
     static final String DFA12_maxS =
-        "\1\132\1\134\1\uffff\1\163\1\uffff\1\163\1\125\2\164\3\163\1\164"+
-        "\1\163";
+        "\1\125\1\127\1\uffff\1\156\1\uffff\1\156\1\120\2\157\3\156\1\157"+
+        "\1\156";
     static final String DFA12_acceptS =
         "\2\uffff\1\2\1\uffff\1\1\11\uffff";
     static final String DFA12_specialS =
@@ -17065,7 +16691,7 @@
             this.transition = DFA12_transition;
         }
         public String getDescription() {
-            return "528:3: ( parameters )?";
+            return "523:3: ( parameters )?";
         }
     }
     static final String DFA17_eotS =
@@ -17073,20 +16699,20 @@
     static final String DFA17_eofS =
         "\6\uffff";
     static final String DFA17_minS =
-        "\2\125\1\164\2\uffff\1\125";
+        "\2\120\1\uffff\1\157\1\uffff\1\120";
     static final String DFA17_maxS =
-        "\1\125\1\163\1\164\2\uffff\1\163";
+        "\1\120\1\156\1\uffff\1\157\1\uffff\1\156";
     static final String DFA17_acceptS =
-        "\3\uffff\1\2\1\1\1\uffff";
+        "\2\uffff\1\1\1\uffff\1\2\1\uffff";
     static final String DFA17_specialS =
         "\6\uffff}>";
     static final String[] DFA17_transitionS = {
             "\1\1",
-            "\2\4\4\uffff\2\3\26\uffff\1\2",
+            "\2\2\4\uffff\2\4\26\uffff\1\3",
+            "",
             "\1\5",
             "",
-            "",
-            "\1\4\5\uffff\2\3\26\uffff\1\2"
+            "\1\2\5\uffff\2\4\26\uffff\1\3"
     };
 
     static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
@@ -17119,7 +16745,7 @@
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "554:4: ( data_type )?";
+            return "549:4: ( data_type )?";
         }
     }
     static final String DFA28_eotS =
@@ -17127,24 +16753,24 @@
     static final String DFA28_eofS =
         "\12\uffff";
     static final String DFA28_minS =
-        "\2\125\6\uffff\1\0\1\uffff";
+        "\2\120\5\uffff\1\0\2\uffff";
     static final String DFA28_maxS =
-        "\1\165\1\170\6\uffff\1\0\1\uffff";
+        "\1\160\1\163\5\uffff\1\0\2\uffff";
     static final String DFA28_acceptS =
-        "\2\uffff\5\2\1\1\1\uffff\1\2";
+        "\2\uffff\5\2\1\uffff\1\1\1\2";
     static final String DFA28_specialS =
-        "\1\0\1\1\6\uffff\1\2\1\uffff}>";
+        "\1\2\1\0\5\uffff\1\1\2\uffff}>";
     static final String[] DFA28_transitionS = {
             "\1\1\7\uffff\1\2\2\uffff\1\2\24\uffff\1\2",
-            "\1\7\3\uffff\1\10\1\6\3\uffff\1\4\2\uffff\1\5\1\11\25\uffff"+
+            "\1\10\3\uffff\1\7\1\6\3\uffff\1\11\2\uffff\1\5\1\4\25\uffff"+
             "\1\3",
             "",
             "",
             "",
             "",
             "",
-            "",
             "\1\uffff",
+            "",
             ""
     };
 
@@ -17178,28 +16804,13 @@
             this.transition = DFA28_transition;
         }
         public String getDescription() {
-            return "646:3: ( extend_key rule_id )?";
+            return "641:3: ( extend_key rule_id )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA28_0 = input.LA(1);
-
-                         
-                        int index28_0 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (LA28_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))||((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))||((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))||((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))||!
 ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))||((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES)))||((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))))) {s = 1;}
-
-                        else if ( (LA28_0==AT||LA28_0==WHEN||LA28_0==THEN) ) {s = 2;}
-
-                         
-                        input.seek(index28_0);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
                         int LA28_1 = input.LA(1);
 
                          
@@ -17208,37 +16819,52 @@
                         s = -1;
                         if ( (LA28_1==MISC) && ((((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))||((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))||((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))||((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))||((validateIdentifierKey(DroolsSoftKeywords.DAT!
 E) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))))) {s = 3;}
 
-                        else if ( (LA28_1==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))))) {s = 4;}
+                        else if ( (LA28_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 4;}
 
                         else if ( (LA28_1==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.ENABLED))))) {s = 5;}
 
                         else if ( (LA28_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))))) {s = 6;}
 
-                        else if ( (LA28_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.EXTEND))))) {s = 7;}
+                        else if ( (LA28_1==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))))) {s = 7;}
 
-                        else if ( (LA28_1==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))))) {s = 8;}
+                        else if ( (LA28_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.EXTEND))))) {s = 8;}
 
-                        else if ( (LA28_1==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))))) {s = 9;}
+                        else if ( (LA28_1==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))))) {s = 9;}
 
                          
                         input.seek(index28_1);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
-                        int LA28_8 = input.LA(1);
+                    case 1 : 
+                        int LA28_7 = input.LA(1);
 
                          
-                        int index28_8 = input.index();
+                        int index28_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))) ) {s = 7;}
+                        if ( (((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))) ) {s = 8;}
 
                         else if ( (((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) ) {s = 9;}
 
                          
-                        input.seek(index28_8);
+                        input.seek(index28_7);
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA28_0 = input.LA(1);
+
+                         
+                        int index28_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA28_0==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))||((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.EXTEND)))||((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP)))||((validateIdentifierKey(DroolsSoftKeywords.DURATION)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE)))||((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES)))||((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))||!
 ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))||((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP)))||((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))||((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES)))||((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS)))))) {s = 1;}
+
+                        else if ( (LA28_0==AT||LA28_0==WHEN||LA28_0==THEN) ) {s = 2;}
+
+                         
+                        input.seek(index28_0);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (state.backtracking>0) {state.failed=true; return -1;}
             NoViableAltException nvae =
@@ -17252,9 +16878,9 @@
     static final String DFA37_eofS =
         "\16\uffff";
     static final String DFA37_minS =
-        "\1\125\1\0\14\uffff";
+        "\1\120\1\0\14\uffff";
     static final String DFA37_maxS =
-        "\1\125\1\0\14\uffff";
+        "\1\120\1\0\14\uffff";
     static final String DFA37_acceptS =
         "\2\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14";
     static final String DFA37_specialS =
@@ -17306,7 +16932,7 @@
             this.transition = DFA37_transition;
         }
         public String getDescription() {
-            return "715:1: rule_attribute : ( salience | no_loop | agenda_group | duration | activation_group | auto_focus | date_effective | date_expires | enabled | ruleflow_group | lock_on_active | dialect );";
+            return "710:1: rule_attribute : ( salience | no_loop | agenda_group | duration | activation_group | auto_focus | date_effective | date_expires | enabled | ruleflow_group | lock_on_active | dialect );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -17373,9 +16999,9 @@
     static final String DFA69_eofS =
         "\15\uffff";
     static final String DFA69_minS =
-        "\1\124\1\0\13\uffff";
+        "\1\117\1\0\13\uffff";
     static final String DFA69_maxS =
-        "\1\165\1\0\13\uffff";
+        "\1\160\1\0\13\uffff";
     static final String DFA69_acceptS =
         "\2\uffff\1\2\11\uffff\1\1";
     static final String DFA69_specialS =
@@ -17427,7 +17053,7 @@
             this.transition = DFA69_transition;
         }
         public String getDescription() {
-            return "1048:3: ( ( LEFT_PAREN )=>args= paren_chunk )?";
+            return "1043:3: ( ( LEFT_PAREN )=>args= paren_chunk )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -17461,9 +17087,9 @@
     static final String DFA71_eofS =
         "\16\uffff";
     static final String DFA71_minS =
-        "\1\124\1\0\14\uffff";
+        "\1\117\1\0\14\uffff";
     static final String DFA71_maxS =
-        "\1\165\1\0\14\uffff";
+        "\1\160\1\0\14\uffff";
     static final String DFA71_acceptS =
         "\2\uffff\1\2\1\3\11\uffff\1\1";
     static final String DFA71_specialS =
@@ -17516,7 +17142,7 @@
             this.transition = DFA71_transition;
         }
         public String getDescription() {
-            return "1062:4: ({...}? paren_chunk | square_chunk )?";
+            return "1057:4: ({...}? paren_chunk | square_chunk )?";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -17550,18 +17176,17 @@
     static final String DFA81_eofS =
         "\17\uffff";
     static final String DFA81_minS =
-        "\2\125\1\uffff\1\0\13\uffff";
+        "\2\120\13\uffff\1\0\1\uffff";
     static final String DFA81_maxS =
-        "\1\132\1\163\1\uffff\1\0\13\uffff";
+        "\1\125\1\156\13\uffff\1\0\1\uffff";
     static final String DFA81_acceptS =
-        "\2\uffff\1\3\1\uffff\1\2\11\uffff\1\1";
+        "\2\uffff\1\3\1\2\12\uffff\1\1";
     static final String DFA81_specialS =
-        "\3\uffff\1\0\13\uffff}>";
+        "\15\uffff\1\0\1\uffff}>";
     static final String[] DFA81_transitionS = {
             "\1\1\4\uffff\1\2",
-            "\2\4\3\uffff\1\3\3\uffff\1\4\14\uffff\6\4\2\uffff\1\4",
+            "\2\3\3\uffff\1\15\3\uffff\1\3\14\uffff\6\3\2\uffff\1\3",
             "",
-            "\1\uffff",
             "",
             "",
             "",
@@ -17572,6 +17197,7 @@
             "",
             "",
             "",
+            "\1\uffff",
             ""
     };
 
@@ -17605,25 +17231,25 @@
             this.transition = DFA81_transition;
         }
         public String getDescription() {
-            return "1135:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );";
+            return "1130: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 LA81_3 = input.LA(1);
+                        int LA81_13 = input.LA(1);
 
                          
-                        int index81_3 = input.index();
+                        int index81_13 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.EVAL)))) ) {s = 14;}
 
-                        else if ( (true) ) {s = 4;}
+                        else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index81_3);
+                        input.seek(index81_13);
                         if ( s>=0 ) return s;
                         break;
             }
@@ -17639,20 +17265,19 @@
     static final String DFA86_eofS =
         "\50\uffff";
     static final String DFA86_minS =
-        "\2\125\7\uffff\1\4\1\125\6\uffff\2\0\1\uffff\5\0\15\uffff\1\0\1"+
-        "\uffff";
+        "\2\120\10\uffff\1\120\5\uffff\1\4\7\uffff\1\0\5\uffff\7\0\3\uffff";
     static final String DFA86_maxS =
-        "\1\160\1\163\7\uffff\1\u0082\1\163\6\uffff\2\0\1\uffff\5\0\15\uffff"+
-        "\1\0\1\uffff";
+        "\1\153\1\156\10\uffff\1\156\5\uffff\1\175\7\uffff\1\0\5\uffff\7"+
+        "\0\3\uffff";
     static final String DFA86_acceptS =
-        "\2\uffff\1\2\5\uffff\1\3\2\uffff\1\2\16\uffff\2\2\4\uffff\1\2\6"+
-        "\uffff\1\1";
+        "\2\uffff\1\2\5\uffff\1\3\1\2\7\uffff\2\2\6\uffff\1\2\15\uffff\1"+
+        "\1";
     static final String DFA86_specialS =
-        "\1\0\1\1\7\uffff\1\2\1\3\6\uffff\1\4\1\5\1\uffff\1\6\1\7\1\10\1"+
-        "\11\1\12\15\uffff\1\13\1\uffff}>";
+        "\1\0\1\1\10\uffff\1\2\5\uffff\1\3\7\uffff\1\4\5\uffff\1\5\1\6\1"+
+        "\7\1\10\1\11\1\12\1\13\3\uffff}>";
     static final String[] DFA86_transitionS = {
             "\1\1\4\uffff\1\10\20\uffff\6\2",
-            "\1\12\3\uffff\1\13\1\11\6\uffff\2\13\16\uffff\3\13",
+            "\1\12\3\uffff\1\11\1\20\6\uffff\2\11\16\uffff\3\11",
             "",
             "",
             "",
@@ -17660,38 +17285,38 @@
             "",
             "",
             "",
-            "\121\13\1\21\3\13\1\24\1\22\6\13\1\27\1\25\16\13\1\26\1\30"+
-            "\20\13",
-            "\1\40\1\33\2\uffff\1\40\1\46\2\33\4\uffff\2\40\2\33\14\uffff"+
-            "\2\40\1\32",
             "",
+            "\1\22\1\31\2\uffff\1\22\1\30\2\31\4\uffff\2\22\2\31\14\uffff"+
+            "\2\22\1\21",
             "",
             "",
             "",
             "",
             "",
-            "\1\uffff",
-            "\1\uffff",
+            "\114\31\1\36\3\31\1\37\1\44\6\31\1\42\1\40\16\31\1\41\1\43"+
+            "\20\31",
             "",
-            "\1\uffff",
-            "\1\uffff",
-            "\1\uffff",
-            "\1\uffff",
-            "\1\uffff",
             "",
             "",
             "",
             "",
             "",
             "",
+            "\1\uffff",
             "",
             "",
             "",
             "",
             "",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
             "",
             "",
-            "\1\uffff",
             ""
     };
 
@@ -17725,7 +17350,7 @@
             this.transition = DFA86_transition;
         }
         public String getDescription() {
-            return "1199:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );";
+            return "1194:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             TokenStream input = (TokenStream)_input;
@@ -17755,180 +17380,180 @@
                         int index86_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA86_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 9;}
+                        if ( (LA86_1==STRING||(LA86_1>=BOOL && LA86_1<=INT)||(LA86_1>=FLOAT && LA86_1<=LEFT_SQUARE)) && (((isPluggableEvaluator(false))))) {s = 9;}
 
                         else if ( (LA86_1==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 10;}
 
-                        else if ( (LA86_1==STRING||(LA86_1>=BOOL && LA86_1<=INT)||(LA86_1>=FLOAT && LA86_1<=LEFT_SQUARE)) && (((isPluggableEvaluator(false))))) {s = 11;}
+                        else if ( (LA86_1==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 16;}
 
                          
                         input.seek(index86_1);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA86_9 = input.LA(1);
+                        int LA86_10 = input.LA(1);
 
                          
-                        int index86_9 = input.index();
+                        int index86_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA86_9==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 17;}
+                        if ( (LA86_10==LEFT_SQUARE) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 17;}
 
-                        else if ( (LA86_9==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 18;}
+                        else if ( (LA86_10==ID||LA86_10==STRING||(LA86_10>=BOOL && LA86_10<=INT)||(LA86_10>=FLOAT && LA86_10<=NULL)) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 18;}
 
-                        else if ( ((LA86_9>=VT_COMPILATION_UNIT && LA86_9<=SEMICOLON)||(LA86_9>=DOT && LA86_9<=END)||(LA86_9>=COMMA && LA86_9<=WHEN)||(LA86_9>=DOUBLE_PIPE && LA86_9<=NOT_EQUAL)||(LA86_9>=LEFT_SQUARE && LA86_9<=MULTI_LINE_COMMENT)) && (((isPluggableEvaluator(false))))) {s = 11;}
+                        else if ( (LA86_10==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 24;}
 
-                        else if ( (LA86_9==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 20;}
+                        else if ( (LA86_10==DOT||(LA86_10>=COMMA && LA86_10<=RIGHT_PAREN)||(LA86_10>=DOUBLE_PIPE && LA86_10<=DOUBLE_AMPER)) && (((isPluggableEvaluator(false))))) {s = 25;}
 
-                        else if ( (LA86_9==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 21;}
-
-                        else if ( (LA86_9==FLOAT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 22;}
-
-                        else if ( (LA86_9==BOOL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 23;}
-
-                        else if ( (LA86_9==NULL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 24;}
-
                          
-                        input.seek(index86_9);
+                        input.seek(index86_10);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA86_10 = input.LA(1);
+                        int LA86_16 = input.LA(1);
 
                          
-                        int index86_10 = input.index();
+                        int index86_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA86_10==LEFT_SQUARE) && ((((validateIdentifierKey(DroolsSoftKeywords.NOT)))||((isPluggableEvaluator(false)))))) {s = 26;}
+                        if ( (LA86_16==ID) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 30;}
 
-                        else if ( (LA86_10==DOT||(LA86_10>=COMMA && LA86_10<=RIGHT_PAREN)||(LA86_10>=DOUBLE_PIPE && LA86_10<=DOUBLE_AMPER)) && (((isPluggableEvaluator(false))))) {s = 27;}
+                        else if ( (LA86_16==STRING) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 31;}
 
-                        else if ( (LA86_10==ID||LA86_10==STRING||(LA86_10>=BOOL && LA86_10<=INT)||(LA86_10>=FLOAT && LA86_10<=NULL)) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 32;}
+                        else if ( (LA86_16==INT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 32;}
 
-                        else if ( (LA86_10==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))))) {s = 38;}
+                        else if ( (LA86_16==FLOAT) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 33;}
 
+                        else if ( (LA86_16==BOOL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 34;}
+
+                        else if ( (LA86_16==NULL) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 35;}
+
+                        else if ( (LA86_16==LEFT_PAREN) && ((((validateIdentifierKey(DroolsSoftKeywords.IN)))||((isPluggableEvaluator(false)))))) {s = 36;}
+
+                        else if ( ((LA86_16>=VT_COMPILATION_UNIT && LA86_16<=SEMICOLON)||(LA86_16>=DOT && LA86_16<=END)||(LA86_16>=COMMA && LA86_16<=WHEN)||(LA86_16>=DOUBLE_PIPE && LA86_16<=NOT_EQUAL)||(LA86_16>=LEFT_SQUARE && LA86_16<=MULTI_LINE_COMMENT)) && (((isPluggableEvaluator(false))))) {s = 25;}
+
                          
-                        input.seek(index86_10);
+                        input.seek(index86_16);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA86_17 = input.LA(1);
+                        int LA86_24 = input.LA(1);
 
                          
-                        int index86_17 = input.index();
+                        int index86_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
+                        if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {s = 39;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 32;}
+                        else if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {s = 25;}
 
                          
-                        input.seek(index86_17);
+                        input.seek(index86_24);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA86_18 = input.LA(1);
+                        int LA86_30 = input.LA(1);
 
                          
-                        int index86_18 = input.index();
+                        int index86_30 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 32;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 25;}
 
                          
-                        input.seek(index86_18);
+                        input.seek(index86_30);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA86_20 = input.LA(1);
+                        int LA86_31 = input.LA(1);
 
                          
-                        int index86_20 = input.index();
+                        int index86_31 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 32;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 25;}
 
                          
-                        input.seek(index86_20);
+                        input.seek(index86_31);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA86_21 = input.LA(1);
+                        int LA86_32 = input.LA(1);
 
                          
-                        int index86_21 = input.index();
+                        int index86_32 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 32;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 25;}
 
                          
-                        input.seek(index86_21);
+                        input.seek(index86_32);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA86_22 = input.LA(1);
+                        int LA86_33 = input.LA(1);
 
                          
-                        int index86_22 = input.index();
+                        int index86_33 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 32;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 25;}
 
                          
-                        input.seek(index86_22);
+                        input.seek(index86_33);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA86_23 = input.LA(1);
+                        int LA86_34 = input.LA(1);
 
                          
-                        int index86_23 = input.index();
+                        int index86_34 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 32;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 25;}
 
                          
-                        input.seek(index86_23);
+                        input.seek(index86_34);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA86_24 = input.LA(1);
+                        int LA86_35 = input.LA(1);
 
                          
-                        int index86_24 = input.index();
+                        int index86_35 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
 
-                        else if ( (((isPluggableEvaluator(false)))) ) {s = 32;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 25;}
 
                          
-                        input.seek(index86_24);
+                        input.seek(index86_35);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA86_38 = input.LA(1);
+                        int LA86_36 = input.LA(1);
 
                          
-                        int index86_38 = input.index();
+                        int index86_36 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {s = 39;}
+                        if ( (((validateIdentifierKey(DroolsSoftKeywords.IN)))) ) {s = 39;}
 
-                        else if ( (((validateIdentifierKey(DroolsSoftKeywords.NOT)))) ) {s = 32;}
+                        else if ( (((isPluggableEvaluator(false)))) ) {s = 25;}
 
                          
-                        input.seek(index86_38);
+                        input.seek(index86_36);
                         if ( s>=0 ) return s;
                         break;
             }
@@ -17941,438 +17566,433 @@
     }
  
 
-    public static final BitSet FOLLOW_package_statement_in_compilation_unit396 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_statement_in_compilation_unit401 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_EOF_in_compilation_unit406 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_package_key_in_package_statement461 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_package_id_in_package_statement465 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_package_statement467 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_package_id494 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_DOT_in_package_id500 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_package_id504 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_rule_attribute_in_statement542 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_function_import_statement_in_statement549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_import_statement_in_statement555 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_global_in_statement561 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_function_in_statement567 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_template_in_statement575 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_type_declaration_in_statement583 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule_in_statement588 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_query_in_statement593 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_import_key_in_import_statement615 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_import_name_in_import_statement617 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_import_statement620 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_import_key_in_function_import_statement658 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_function_key_in_function_import_statement660 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_import_name_in_function_import_statement662 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_function_import_statement665 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_import_name699 = new BitSet(new long[]{0x0000000000000002L,0x0000000000C00000L});
-    public static final BitSet FOLLOW_DOT_in_import_name705 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_import_name709 = new BitSet(new long[]{0x0000000000000002L,0x0000000000C00000L});
-    public static final BitSet FOLLOW_DOT_STAR_in_import_name716 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_global_key_in_global756 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_data_type_in_global758 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_global_id_in_global760 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_global762 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_global_id791 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_function_key_in_function823 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_data_type_in_function825 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_function_id_in_function828 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_parameters_in_function830 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
-    public static final BitSet FOLLOW_curly_chunk_in_function832 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_id862 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_query_key_in_query894 = new BitSet(new long[]{0x0000000000000000L,0x0000000002200000L});
-    public static final BitSet FOLLOW_query_id_in_query896 = new BitSet(new long[]{0x0000000000000000L,0x0000000005200000L});
-    public static final BitSet FOLLOW_parameters_in_query904 = new BitSet(new long[]{0x0000000000000000L,0x0000000005200000L});
-    public static final BitSet FOLLOW_normal_lhs_block_in_query913 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_END_in_query918 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_query920 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_query_id955 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_query_id971 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_parameters990 = new BitSet(new long[]{0x0000000000000000L,0x0000000010200000L});
-    public static final BitSet FOLLOW_param_definition_in_parameters999 = new BitSet(new long[]{0x0000000000000000L,0x0000000018000000L});
-    public static final BitSet FOLLOW_COMMA_in_parameters1002 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_param_definition_in_parameters1006 = new BitSet(new long[]{0x0000000000000000L,0x0000000018000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_parameters1015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_data_type_in_param_definition1041 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_argument_in_param_definition1044 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_argument1055 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_dimension_definition_in_argument1061 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_declare_key_in_type_declaration1084 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_type_declare_id_in_type_declaration1087 = new BitSet(new long[]{0x0000000000000000L,0x0000000021200000L});
-    public static final BitSet FOLLOW_decl_metadata_in_type_declaration1091 = new BitSet(new long[]{0x0000000000000000L,0x0000000021200000L});
-    public static final BitSet FOLLOW_decl_field_in_type_declaration1096 = new BitSet(new long[]{0x0000000000000000L,0x0000000001200000L});
-    public static final BitSet FOLLOW_END_in_type_declaration1101 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_type_declare_id1136 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AT_in_decl_metadata1155 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_decl_metadata1163 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_decl_metadata1170 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_decl_field1193 = new BitSet(new long[]{0x0000000000000000L,0x00000000C0000000L});
-    public static final BitSet FOLLOW_decl_field_initialization_in_decl_field1199 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_COLON_in_decl_field1205 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_data_type_in_decl_field1211 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
-    public static final BitSet FOLLOW_decl_metadata_in_decl_field1215 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
-    public static final BitSet FOLLOW_EQUALS_in_decl_field_initialization1243 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_decl_field_initialization1249 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_template_key_in_template1286 = new BitSet(new long[]{0x0000000000000000L,0x0000000002200000L});
-    public static final BitSet FOLLOW_template_id_in_template1288 = new BitSet(new long[]{0x0000000000000000L,0x0000000000300000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_template1295 = new BitSet(new long[]{0x0000000000000000L,0x0000000000300000L});
-    public static final BitSet FOLLOW_template_slot_in_template1303 = new BitSet(new long[]{0x0000000000000000L,0x0000000001300000L});
-    public static final BitSet FOLLOW_END_in_template1308 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_template1312 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_template_id1345 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_template_id1361 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_data_type_in_template_slot1381 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_slot_id_in_template_slot1383 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_template_slot1385 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_slot_id1414 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule_key_in_rule1451 = new BitSet(new long[]{0x0000000000000000L,0x0000000002200000L});
-    public static final BitSet FOLLOW_rule_id_in_rule1453 = new BitSet(new long[]{0x0000000000000000L,0x0020000120200000L});
-    public static final BitSet FOLLOW_extend_key_in_rule1462 = new BitSet(new long[]{0x0000000000000000L,0x0000000002200000L});
-    public static final BitSet FOLLOW_rule_id_in_rule1464 = new BitSet(new long[]{0x0000000000000000L,0x0020000120200000L});
-    public static final BitSet FOLLOW_decl_metadata_in_rule1468 = new BitSet(new long[]{0x0000000000000000L,0x0020000120200000L});
-    public static final BitSet FOLLOW_rule_attributes_in_rule1471 = new BitSet(new long[]{0x0000000000000000L,0x0020000120200000L});
-    public static final BitSet FOLLOW_when_part_in_rule1474 = new BitSet(new long[]{0x0000000000000000L,0x0020000120200000L});
-    public static final BitSet FOLLOW_rhs_chunk_in_rule1477 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_WHEN_in_when_part1521 = new BitSet(new long[]{0x0000000000000000L,0x0000000044200000L});
-    public static final BitSet FOLLOW_COLON_in_when_part1527 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_normal_lhs_block_in_when_part1537 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_rule_id1558 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_rule_id1574 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_attributes_key_in_rule_attributes1595 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_COLON_in_rule_attributes1597 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1607 = new BitSet(new long[]{0x0000000000000002L,0x0000000008200000L});
-    public static final BitSet FOLLOW_COMMA_in_rule_attributes1611 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1618 = new BitSet(new long[]{0x0000000000000002L,0x0000000008200000L});
-    public static final BitSet FOLLOW_salience_in_rule_attribute1657 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_no_loop_in_rule_attribute1663 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_agenda_group_in_rule_attribute1668 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_duration_in_rule_attribute1675 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_activation_group_in_rule_attribute1682 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_auto_focus_in_rule_attribute1688 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_effective_in_rule_attribute1694 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_expires_in_rule_attribute1700 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_enabled_in_rule_attribute1706 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1712 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1718 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_dialect_in_rule_attribute1723 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_effective_key_in_date_effective1735 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_STRING_in_date_effective1740 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_expires_key_in_date_expires1754 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_STRING_in_date_expires1759 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_enabled_key_in_enabled1774 = new BitSet(new long[]{0x0000000000000000L,0x0000000204000000L});
-    public static final BitSet FOLLOW_BOOL_in_enabled1787 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_enabled1798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_salience_key_in_salience1818 = new BitSet(new long[]{0x0000000000000000L,0x0000000404000000L});
-    public static final BitSet FOLLOW_INT_in_salience1827 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_salience1836 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_no_loop_key_in_no_loop1851 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_BOOL_in_no_loop1856 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_auto_focus_key_in_auto_focus1871 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_BOOL_in_auto_focus1876 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_activation_group_key_in_activation_group1893 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_STRING_in_activation_group1898 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleflow_group_key_in_ruleflow_group1912 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_STRING_in_ruleflow_group1917 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_agenda_group_key_in_agenda_group1931 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_STRING_in_agenda_group1936 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_duration_key_in_duration1950 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
-    public static final BitSet FOLLOW_INT_in_duration1955 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_dialect_key_in_dialect1971 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
-    public static final BitSet FOLLOW_STRING_in_dialect1976 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lock_on_active_key_in_lock_on_active1994 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_BOOL_in_lock_on_active1999 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_in_normal_lhs_block2014 = new BitSet(new long[]{0x0000000000000002L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs2035 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or2059 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_or_key_in_lhs_or2069 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or2077 = new BitSet(new long[]{0x0000000000000000L,0x0000000014200000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or2083 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or2106 = new BitSet(new long[]{0x0000000000000002L,0x0000000800200000L});
-    public static final BitSet FOLLOW_or_key_in_lhs_or2128 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_lhs_or2135 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or2146 = new BitSet(new long[]{0x0000000000000002L,0x0000000800200000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and2187 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_and_key_in_lhs_and2197 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2205 = new BitSet(new long[]{0x0000000000000000L,0x0000000014200000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and2211 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2235 = new BitSet(new long[]{0x0000000000000002L,0x0000001000200000L});
-    public static final BitSet FOLLOW_and_key_in_lhs_and2257 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_lhs_and2264 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2275 = new BitSet(new long[]{0x0000000000000002L,0x0000001000200000L});
-    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary2306 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_lhs_not_binding_in_lhs_unary2314 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_lhs_not_in_lhs_unary2320 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary2326 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary2332 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary2338 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_unary2349 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary2355 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_pattern_source_in_lhs_unary2363 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_lhs_unary2377 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_exists_key_in_lhs_exist2393 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_exist2420 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist2427 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_exist2435 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist2442 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist2457 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_key_in_lhs_not_binding2503 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_fact_binding_in_lhs_not_binding2505 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_key_in_lhs_not2528 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_not2550 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not2557 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_not2566 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not2572 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_not2582 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_eval_key_in_lhs_eval2621 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval2630 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_forall_key_in_lhs_forall2657 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall2662 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2670 = new BitSet(new long[]{0x0000000000000000L,0x0000000014200000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall2676 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_pattern_source2712 = new BitSet(new long[]{0x0000000000000002L,0x0000006000000000L});
-    public static final BitSet FOLLOW_over_clause_in_pattern_source2716 = new BitSet(new long[]{0x0000000000000002L,0x0000002000000000L});
-    public static final BitSet FOLLOW_FROM_in_pattern_source2726 = new BitSet(new long[]{0x0000000000000000L,0x0000028000200000L});
-    public static final BitSet FOLLOW_accumulate_statement_in_pattern_source2746 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_collect_statement_in_pattern_source2762 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_entrypoint_statement_in_pattern_source2779 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_from_source_in_pattern_source2795 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_OVER_in_over_clause2827 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_over_elements_in_over_clause2832 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
-    public static final BitSet FOLLOW_COMMA_in_over_clause2839 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_over_elements_in_over_clause2844 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
-    public static final BitSet FOLLOW_ID_in_over_elements2859 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_COLON_in_over_elements2866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_over_elements2875 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_over_elements2882 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement2908 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement2917 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_lhs_or_in_accumulate_statement2925 = new BitSet(new long[]{0x0000000000000000L,0x0000010008200000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_statement2930 = new BitSet(new long[]{0x0000000000000000L,0x0000010008200000L});
-    public static final BitSet FOLLOW_accumulate_init_clause_in_accumulate_statement2940 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_accumulate_id_clause_in_accumulate_statement2946 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement2954 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INIT_in_accumulate_init_clause3000 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3011 = new BitSet(new long[]{0x0000000000000000L,0x0000000008200000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3016 = new BitSet(new long[]{0x0000000000000000L,0x0000000008200000L});
-    public static final BitSet FOLLOW_action_key_in_accumulate_init_clause3027 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3031 = new BitSet(new long[]{0x0000000000000000L,0x0000000008200000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3036 = new BitSet(new long[]{0x0000000000000000L,0x0000000008200000L});
-    public static final BitSet FOLLOW_reverse_key_in_accumulate_init_clause3048 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3052 = new BitSet(new long[]{0x0000000000000000L,0x0000000008200000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3057 = new BitSet(new long[]{0x0000000000000000L,0x0000000008200000L});
-    public static final BitSet FOLLOW_result_key_in_accumulate_init_clause3073 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3079 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk3137 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_paren_chunk_data3161 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_set_in_accumulate_paren_chunk_data3173 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data3189 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data3200 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_accumulate_id_clause3216 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_id_clause3222 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_collect_statement3244 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement3253 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_pattern_source_in_collect_statement3260 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement3265 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_entry_point_key_in_entrypoint_statement3292 = new BitSet(new long[]{0x0000000000000000L,0x0000000002200000L});
-    public static final BitSet FOLLOW_entrypoint_id_in_entrypoint_statement3300 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_entrypoint_id3326 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_entrypoint_id3343 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_from_source3363 = new BitSet(new long[]{0x0000000000000002L,0x0000000004400000L});
-    public static final BitSet FOLLOW_paren_chunk_in_from_source3378 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_expression_chain_in_from_source3385 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOT_in_expression_chain3418 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_expression_chain3425 = new BitSet(new long[]{0x0000000000000002L,0x0008000004400000L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_chain3441 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_square_chunk_in_expression_chain3455 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_expression_chain_in_expression_chain3466 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_binding_in_lhs_pattern3499 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_lhs_pattern3512 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_label_in_fact_binding3532 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_fact_in_fact_binding3538 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding3545 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_fact_binding_expression_in_fact_binding3553 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding3561 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_fact_binding_expression3602 = new BitSet(new long[]{0x0000000000000002L,0x0000000800200000L});
-    public static final BitSet FOLLOW_or_key_in_fact_binding_expression3614 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_binding_expression3620 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_fact_in_fact_binding_expression3625 = new BitSet(new long[]{0x0000000000000002L,0x0000000800200000L});
-    public static final BitSet FOLLOW_pattern_type_in_fact3665 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact3670 = new BitSet(new long[]{0x0000000000000000L,0x0000000014200000L});
-    public static final BitSet FOLLOW_constraints_in_fact3681 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact3687 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_constraint_in_constraints3721 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
-    public static final BitSet FOLLOW_COMMA_in_constraints3725 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_constraint_in_constraints3732 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
-    public static final BitSet FOLLOW_or_constr_in_constraint3746 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr3757 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr3761 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr3768 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr3783 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr3787 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr3794 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
-    public static final BitSet FOLLOW_eval_key_in_unary_constr3827 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_unary_constr3830 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_field_constraint_in_unary_constr3835 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr3841 = new BitSet(new long[]{0x0000000000000000L,0x0000000004200000L});
-    public static final BitSet FOLLOW_or_constr_in_unary_constr3851 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr3856 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_label_in_field_constraint3876 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint3878 = new BitSet(new long[]{0x0000000000000002L,0x0001FC0004200000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3885 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ARROW_in_field_constraint3891 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_field_constraint3895 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint3949 = new BitSet(new long[]{0x0000000000000000L,0x0001F80004200000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3951 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_label3976 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_COLON_in_label3983 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective4004 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective4010 = new BitSet(new long[]{0x0000000000000000L,0x0001F80004200000L});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective4018 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4039 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective4045 = new BitSet(new long[]{0x0000000000000000L,0x0001F80004200000L});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4052 = new BitSet(new long[]{0x0000000000000002L,0x0000001000000000L});
-    public static final BitSet FOLLOW_compound_operator_in_constraint_expression4080 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_simple_operator_in_constraint_expression4085 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression4090 = new BitSet(new long[]{0x0000000000000000L,0x0001F80004200000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression4099 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression4104 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EQUAL_in_simple_operator4139 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_GREATER_in_simple_operator4147 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_GREATER_EQUAL_in_simple_operator4155 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_LESS_in_simple_operator4163 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_LESS_EQUAL_in_simple_operator4171 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_NOT_EQUAL_in_simple_operator4179 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_not_key_in_simple_operator4187 = new BitSet(new long[]{0x0000000000000000L,0x0001F80000200000L});
-    public static final BitSet FOLLOW_operator_key_in_simple_operator4194 = new BitSet(new long[]{0x0000000000000000L,0x000E000606200000L});
-    public static final BitSet FOLLOW_square_chunk_in_simple_operator4197 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_expression_value_in_simple_operator4209 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_in_key_in_compound_operator4231 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_not_key_in_compound_operator4236 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_in_key_in_compound_operator4238 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator4249 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator4257 = new BitSet(new long[]{0x0000000000000000L,0x0000000018000000L});
-    public static final BitSet FOLLOW_COMMA_in_compound_operator4261 = new BitSet(new long[]{0x0000000000000000L,0x0006000606200000L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator4266 = new BitSet(new long[]{0x0000000000000000L,0x0000000018000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator4274 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_operator_key4305 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_neg_operator_key4350 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_expression_value4387 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_constraint_in_expression_value4392 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_value4398 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_literal_constraint4417 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_literal_constraint4424 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_literal_constraint4431 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_literal_constraint4438 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_literal_constraint4445 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_pattern_type4460 = new BitSet(new long[]{0x0000000000000002L,0x0008000000400000L});
-    public static final BitSet FOLLOW_DOT_in_pattern_type4466 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_pattern_type4470 = new BitSet(new long[]{0x0000000000000002L,0x0008000000400000L});
-    public static final BitSet FOLLOW_dimension_definition_in_pattern_type4485 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_ID_in_data_type4513 = new BitSet(new long[]{0x0000000000000002L,0x0008000000400000L});
-    public static final BitSet FOLLOW_DOT_in_data_type4519 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_data_type4523 = new BitSet(new long[]{0x0000000000000002L,0x0008000000400000L});
-    public static final BitSet FOLLOW_dimension_definition_in_data_type4528 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition4557 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition4564 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path4578 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_DOT_in_accessor_path4582 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path4586 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_accessor_element4610 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_square_chunk_in_accessor_element4616 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_rhs_chunk_data_in_rhs_chunk4645 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_THEN_in_rhs_chunk_data4664 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_set_in_rhs_chunk_data4677 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_END_in_rhs_chunk_data4690 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_rhs_chunk_data4696 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk4715 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk_data4738 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_set_in_curly_chunk_data4750 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk_data4766 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk_data4777 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk4798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk_data4822 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_set_in_paren_chunk_data4834 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk_data4850 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk_data4861 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk4882 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk_data4905 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_set_in_square_chunk_data4917 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk_data4932 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0xFFFFFFFFFFFFFFFFL,0x0000000000000007L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk_data4943 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key4967 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_lock_on_active_key4971 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key4975 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_lock_on_active_key4979 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key4983 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_date_effective_key5015 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_date_effective_key5019 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_date_effective_key5023 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_date_expires_key5055 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_date_expires_key5059 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_date_expires_key5063 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_no_loop_key5095 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_no_loop_key5099 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_no_loop_key5103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_auto_focus_key5135 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_auto_focus_key5139 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_auto_focus_key5143 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_activation_group_key5175 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_activation_group_key5179 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_activation_group_key5183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_agenda_group_key5215 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_agenda_group_key5219 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_agenda_group_key5223 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_ruleflow_group_key5255 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_ruleflow_group_key5259 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_ruleflow_group_key5263 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_entry_point_key5295 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
-    public static final BitSet FOLLOW_MISC_in_entry_point_key5299 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_ID_in_entry_point_key5303 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_duration_key5332 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_package_key5359 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_import_key5386 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_dialect_key5413 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_salience_key5440 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_enabled_key5467 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_attributes_key5494 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_rule_key5521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_extend_key5548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_template_key5575 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_query_key5602 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_declare_key5629 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_key5656 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_global_key5683 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_eval_key5710 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_contains_key5737 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_matches_key5764 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_excludes_key5791 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_soundslike_key5818 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_memberof_key5845 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_not_key5872 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_in_key5899 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_or_key5926 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_and_key5953 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_exists_key5980 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_forall_key6007 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_action_key6034 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_reverse_key6061 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_result_key6088 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred1_DRL2050 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_or_key_in_synpred1_DRL2052 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_or_key_in_synpred2_DRL2119 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred2_DRL2121 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred3_DRL2178 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_and_key_in_synpred3_DRL2180 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_key_in_synpred4_DRL2248 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred4_DRL2250 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEMICOLON_in_synpred5_DRL2373 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred6_DRL2410 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_or_key_in_synpred6_DRL2413 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_key_in_synpred6_DRL2415 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred7_DRL2538 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_or_key_in_synpred7_DRL2541 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_key_in_synpred7_DRL2543 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred8_DRL3372 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_package_statement_in_compilation_unit376 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_statement_in_compilation_unit381 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_EOF_in_compilation_unit386 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_package_key_in_package_statement441 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_package_id_in_package_statement445 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_package_statement447 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_package_id474 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_DOT_in_package_id480 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_package_id484 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_rule_attribute_in_statement522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_function_import_statement_in_statement529 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_import_statement_in_statement535 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_global_in_statement541 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_function_in_statement547 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_template_in_statement555 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_declaration_in_statement563 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule_in_statement568 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_query_in_statement573 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_import_key_in_import_statement595 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_import_name_in_import_statement597 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_import_statement600 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_import_key_in_function_import_statement638 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_function_key_in_function_import_statement640 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_import_name_in_function_import_statement642 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_function_import_statement645 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_import_name679 = new BitSet(new long[]{0x0000000000000002L,0x0000000000060000L});
+    public static final BitSet FOLLOW_DOT_in_import_name685 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_import_name689 = new BitSet(new long[]{0x0000000000000002L,0x0000000000060000L});
+    public static final BitSet FOLLOW_DOT_STAR_in_import_name696 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_global_key_in_global736 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_data_type_in_global738 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_global_id_in_global740 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_global742 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_global_id771 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_function_key_in_function803 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_data_type_in_function805 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_function_id_in_function808 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_parameters_in_function810 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_curly_chunk_in_function812 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_id842 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_query_key_in_query874 = new BitSet(new long[]{0x0000000000000000L,0x0000000000110000L});
+    public static final BitSet FOLLOW_query_id_in_query876 = new BitSet(new long[]{0x0000000000000000L,0x0000000000290000L});
+    public static final BitSet FOLLOW_parameters_in_query884 = new BitSet(new long[]{0x0000000000000000L,0x0000000000290000L});
+    public static final BitSet FOLLOW_normal_lhs_block_in_query893 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_END_in_query898 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_query900 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_query_id935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_query_id951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_parameters970 = new BitSet(new long[]{0x0000000000000000L,0x0000000000810000L});
+    public static final BitSet FOLLOW_param_definition_in_parameters979 = new BitSet(new long[]{0x0000000000000000L,0x0000000000C00000L});
+    public static final BitSet FOLLOW_COMMA_in_parameters982 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_param_definition_in_parameters986 = new BitSet(new long[]{0x0000000000000000L,0x0000000000C00000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_parameters995 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_data_type_in_param_definition1021 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_argument_in_param_definition1024 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_argument1035 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_dimension_definition_in_argument1041 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_declare_key_in_type_declaration1064 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_type_declare_id_in_type_declaration1067 = new BitSet(new long[]{0x0000000000000000L,0x0000000001090000L});
+    public static final BitSet FOLLOW_decl_metadata_in_type_declaration1071 = new BitSet(new long[]{0x0000000000000000L,0x0000000001090000L});
+    public static final BitSet FOLLOW_decl_field_in_type_declaration1076 = new BitSet(new long[]{0x0000000000000000L,0x0000000000090000L});
+    public static final BitSet FOLLOW_END_in_type_declaration1081 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_type_declare_id1116 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AT_in_decl_metadata1135 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_decl_metadata1143 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_paren_chunk_in_decl_metadata1150 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_decl_field1173 = new BitSet(new long[]{0x0000000000000000L,0x0000000006000000L});
+    public static final BitSet FOLLOW_decl_field_initialization_in_decl_field1179 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_COLON_in_decl_field1185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_data_type_in_decl_field1191 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
+    public static final BitSet FOLLOW_decl_metadata_in_decl_field1195 = new BitSet(new long[]{0x0000000000000002L,0x0000000001000000L});
+    public static final BitSet FOLLOW_EQUALS_in_decl_field_initialization1223 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_paren_chunk_in_decl_field_initialization1229 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_template_key_in_template1266 = new BitSet(new long[]{0x0000000000000000L,0x0000000000110000L});
+    public static final BitSet FOLLOW_template_id_in_template1268 = new BitSet(new long[]{0x0000000000000000L,0x0000000000018000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_template1275 = new BitSet(new long[]{0x0000000000000000L,0x0000000000018000L});
+    public static final BitSet FOLLOW_template_slot_in_template1283 = new BitSet(new long[]{0x0000000000000000L,0x0000000000098000L});
+    public static final BitSet FOLLOW_END_in_template1288 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_template1292 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_template_id1325 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_template_id1341 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_data_type_in_template_slot1361 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_slot_id_in_template_slot1363 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_template_slot1365 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_slot_id1394 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule_key_in_rule1431 = new BitSet(new long[]{0x0000000000000000L,0x0000000000110000L});
+    public static final BitSet FOLLOW_rule_id_in_rule1433 = new BitSet(new long[]{0x0000000000000000L,0x0001000009010000L});
+    public static final BitSet FOLLOW_extend_key_in_rule1442 = new BitSet(new long[]{0x0000000000000000L,0x0000000000110000L});
+    public static final BitSet FOLLOW_rule_id_in_rule1444 = new BitSet(new long[]{0x0000000000000000L,0x0001000009010000L});
+    public static final BitSet FOLLOW_decl_metadata_in_rule1448 = new BitSet(new long[]{0x0000000000000000L,0x0001000009010000L});
+    public static final BitSet FOLLOW_rule_attributes_in_rule1451 = new BitSet(new long[]{0x0000000000000000L,0x0001000009010000L});
+    public static final BitSet FOLLOW_when_part_in_rule1454 = new BitSet(new long[]{0x0000000000000000L,0x0001000009010000L});
+    public static final BitSet FOLLOW_rhs_chunk_in_rule1457 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_WHEN_in_when_part1501 = new BitSet(new long[]{0x0000000000000000L,0x0000000002210000L});
+    public static final BitSet FOLLOW_COLON_in_when_part1507 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_normal_lhs_block_in_when_part1517 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_rule_id1538 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_rule_id1554 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_attributes_key_in_rule_attributes1575 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_COLON_in_rule_attributes1577 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1587 = new BitSet(new long[]{0x0000000000000002L,0x0000000000410000L});
+    public static final BitSet FOLLOW_COMMA_in_rule_attributes1591 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1598 = new BitSet(new long[]{0x0000000000000002L,0x0000000000410000L});
+    public static final BitSet FOLLOW_salience_in_rule_attribute1637 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_no_loop_in_rule_attribute1643 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_agenda_group_in_rule_attribute1648 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_duration_in_rule_attribute1655 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_activation_group_in_rule_attribute1662 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_auto_focus_in_rule_attribute1668 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_effective_in_rule_attribute1674 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_expires_in_rule_attribute1680 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enabled_in_rule_attribute1686 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1692 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1698 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_dialect_in_rule_attribute1703 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_effective_key_in_date_effective1715 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_STRING_in_date_effective1720 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_expires_key_in_date_expires1734 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_STRING_in_date_expires1739 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enabled_key_in_enabled1754 = new BitSet(new long[]{0x0000000000000000L,0x0000000010200000L});
+    public static final BitSet FOLLOW_BOOL_in_enabled1767 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_enabled1778 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_salience_key_in_salience1798 = new BitSet(new long[]{0x0000000000000000L,0x0000000020200000L});
+    public static final BitSet FOLLOW_INT_in_salience1807 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_salience1816 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_no_loop_key_in_no_loop1831 = new BitSet(new long[]{0x0000000000000002L,0x0000000010000000L});
+    public static final BitSet FOLLOW_BOOL_in_no_loop1836 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_auto_focus_key_in_auto_focus1851 = new BitSet(new long[]{0x0000000000000002L,0x0000000010000000L});
+    public static final BitSet FOLLOW_BOOL_in_auto_focus1856 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_activation_group_key_in_activation_group1873 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_STRING_in_activation_group1878 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleflow_group_key_in_ruleflow_group1892 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_STRING_in_ruleflow_group1897 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_agenda_group_key_in_agenda_group1911 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_STRING_in_agenda_group1916 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_duration_key_in_duration1930 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_INT_in_duration1935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_dialect_key_in_dialect1951 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_STRING_in_dialect1956 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lock_on_active_key_in_lock_on_active1974 = new BitSet(new long[]{0x0000000000000002L,0x0000000010000000L});
+    public static final BitSet FOLLOW_BOOL_in_lock_on_active1979 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_in_normal_lhs_block1994 = new BitSet(new long[]{0x0000000000000002L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs2015 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or2039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_or_key_in_lhs_or2049 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or2057 = new BitSet(new long[]{0x0000000000000000L,0x0000000000A10000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or2063 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or2086 = new BitSet(new long[]{0x0000000000000002L,0x0000000040010000L});
+    public static final BitSet FOLLOW_or_key_in_lhs_or2108 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_lhs_or2115 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or2126 = new BitSet(new long[]{0x0000000000000002L,0x0000000040010000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and2167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_and_key_in_lhs_and2177 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000A10000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and2191 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2215 = new BitSet(new long[]{0x0000000000000002L,0x0000000080010000L});
+    public static final BitSet FOLLOW_and_key_in_lhs_and2237 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_lhs_and2244 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2255 = new BitSet(new long[]{0x0000000000000002L,0x0000000080010000L});
+    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary2286 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_lhs_not_binding_in_lhs_unary2294 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_lhs_not_in_lhs_unary2300 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary2306 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary2312 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary2318 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_unary2329 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary2335 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_pattern_source_in_lhs_unary2343 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_lhs_unary2357 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_exists_key_in_lhs_exist2373 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_exist2400 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist2407 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_exist2415 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist2422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist2437 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_key_in_lhs_not_binding2483 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_fact_binding_in_lhs_not_binding2485 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_key_in_lhs_not2508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_not2530 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not2537 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_not2546 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not2552 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_not2562 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_key_in_lhs_eval2601 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval2610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_forall_key_in_lhs_forall2637 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall2642 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2650 = new BitSet(new long[]{0x0000000000000000L,0x0000000000A10000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall2656 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_pattern_source2692 = new BitSet(new long[]{0x0000000000000002L,0x0000000300000000L});
+    public static final BitSet FOLLOW_over_clause_in_pattern_source2696 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+    public static final BitSet FOLLOW_FROM_in_pattern_source2706 = new BitSet(new long[]{0x0000000000000000L,0x0000001400010000L});
+    public static final BitSet FOLLOW_accumulate_statement_in_pattern_source2726 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_collect_statement_in_pattern_source2742 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_entrypoint_statement_in_pattern_source2759 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_from_source_in_pattern_source2775 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_OVER_in_over_clause2807 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_over_elements_in_over_clause2812 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
+    public static final BitSet FOLLOW_COMMA_in_over_clause2819 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_over_elements_in_over_clause2824 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_over_elements2839 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_COLON_in_over_elements2846 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_over_elements2855 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_paren_chunk_in_over_elements2862 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement2888 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement2897 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_lhs_or_in_accumulate_statement2905 = new BitSet(new long[]{0x0000000000000000L,0x0000000800410000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_statement2910 = new BitSet(new long[]{0x0000000000000000L,0x0000000800410000L});
+    public static final BitSet FOLLOW_accumulate_init_clause_in_accumulate_statement2920 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_accumulate_id_clause_in_accumulate_statement2926 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement2934 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INIT_in_accumulate_init_clause2980 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause2991 = new BitSet(new long[]{0x0000000000000000L,0x0000000000410000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause2996 = new BitSet(new long[]{0x0000000000000000L,0x0000000000410000L});
+    public static final BitSet FOLLOW_action_key_in_accumulate_init_clause3007 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3011 = new BitSet(new long[]{0x0000000000000000L,0x0000000000410000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3016 = new BitSet(new long[]{0x0000000000000000L,0x0000000000410000L});
+    public static final BitSet FOLLOW_reverse_key_in_accumulate_init_clause3028 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3032 = new BitSet(new long[]{0x0000000000000000L,0x0000000000410000L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_init_clause3037 = new BitSet(new long[]{0x0000000000000000L,0x0000000000410000L});
+    public static final BitSet FOLLOW_result_key_in_accumulate_init_clause3053 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_in_accumulate_init_clause3059 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk3117 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_paren_chunk_data3141 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_accumulate_paren_chunk_data3153 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_accumulate_paren_chunk_data_in_accumulate_paren_chunk_data3169 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_paren_chunk_data3180 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_accumulate_id_clause3196 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_id_clause3202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_collect_statement3224 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement3233 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_pattern_source_in_collect_statement3240 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement3245 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_entry_point_key_in_entrypoint_statement3272 = new BitSet(new long[]{0x0000000000000000L,0x0000000000110000L});
+    public static final BitSet FOLLOW_entrypoint_id_in_entrypoint_statement3280 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_entrypoint_id3306 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_entrypoint_id3323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_from_source3343 = new BitSet(new long[]{0x0000000000000002L,0x0000000000220000L});
+    public static final BitSet FOLLOW_paren_chunk_in_from_source3358 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_expression_chain_in_from_source3365 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOT_in_expression_chain3398 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_expression_chain3405 = new BitSet(new long[]{0x0000000000000002L,0x0000400000220000L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_chain3421 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_square_chunk_in_expression_chain3435 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_expression_chain_in_expression_chain3446 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_binding_in_lhs_pattern3479 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_lhs_pattern3492 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_label_in_fact_binding3512 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_fact_in_fact_binding3518 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding3525 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_fact_binding_expression_in_fact_binding3533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding3541 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_fact_binding_expression3582 = new BitSet(new long[]{0x0000000000000002L,0x0000000040010000L});
+    public static final BitSet FOLLOW_or_key_in_fact_binding_expression3594 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_binding_expression3600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_fact_in_fact_binding_expression3605 = new BitSet(new long[]{0x0000000000000002L,0x0000000040010000L});
+    public static final BitSet FOLLOW_pattern_type_in_fact3645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact3650 = new BitSet(new long[]{0x0000000000000000L,0x0000000000A10000L});
+    public static final BitSet FOLLOW_constraints_in_fact3661 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact3667 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constraint_in_constraints3701 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
+    public static final BitSet FOLLOW_COMMA_in_constraints3705 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_constraint_in_constraints3712 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
+    public static final BitSet FOLLOW_or_constr_in_constraint3726 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr3737 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr3741 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr3748 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr3763 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr3767 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr3774 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
+    public static final BitSet FOLLOW_eval_key_in_unary_constr3807 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_paren_chunk_in_unary_constr3810 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_field_constraint_in_unary_constr3815 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr3821 = new BitSet(new long[]{0x0000000000000000L,0x0000000000210000L});
+    public static final BitSet FOLLOW_or_constr_in_unary_constr3831 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr3836 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_label_in_field_constraint3856 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint3858 = new BitSet(new long[]{0x0000000000000002L,0x00000FE000210000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3865 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ARROW_in_field_constraint3871 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_paren_chunk_in_field_constraint3875 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint3929 = new BitSet(new long[]{0x0000000000000000L,0x00000FC000210000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3931 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_label3956 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_COLON_in_label3963 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3984 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective3990 = new BitSet(new long[]{0x0000000000000000L,0x00000FC000210000L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3998 = new BitSet(new long[]{0x0000000000000002L,0x0000000040000000L});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4019 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective4025 = new BitSet(new long[]{0x0000000000000000L,0x00000FC000210000L});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4032 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000000L});
+    public static final BitSet FOLLOW_compound_operator_in_constraint_expression4060 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_simple_operator_in_constraint_expression4065 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression4070 = new BitSet(new long[]{0x0000000000000000L,0x00000FC000210000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression4079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression4084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EQUAL_in_simple_operator4119 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_GREATER_in_simple_operator4127 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_GREATER_EQUAL_in_simple_operator4135 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_LESS_in_simple_operator4143 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_LESS_EQUAL_in_simple_operator4151 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_NOT_EQUAL_in_simple_operator4159 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_not_key_in_simple_operator4167 = new BitSet(new long[]{0x0000000000000000L,0x00000FC000010000L});
+    public static final BitSet FOLLOW_operator_key_in_simple_operator4174 = new BitSet(new long[]{0x0000000000000000L,0x0000700030310000L});
+    public static final BitSet FOLLOW_square_chunk_in_simple_operator4177 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_expression_value_in_simple_operator4189 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_in_key_in_compound_operator4211 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_not_key_in_compound_operator4216 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_in_key_in_compound_operator4218 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator4229 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator4237 = new BitSet(new long[]{0x0000000000000000L,0x0000000000C00000L});
+    public static final BitSet FOLLOW_COMMA_in_compound_operator4241 = new BitSet(new long[]{0x0000000000000000L,0x0000300030310000L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator4246 = new BitSet(new long[]{0x0000000000000000L,0x0000000000C00000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator4254 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_operator_key4285 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_neg_operator_key4330 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_expression_value4367 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_constraint_in_expression_value4372 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_value4378 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal_constraint4397 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal_constraint4404 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal_constraint4411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal_constraint4418 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_literal_constraint4425 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_pattern_type4440 = new BitSet(new long[]{0x0000000000000002L,0x0000400000020000L});
+    public static final BitSet FOLLOW_DOT_in_pattern_type4446 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_pattern_type4450 = new BitSet(new long[]{0x0000000000000002L,0x0000400000020000L});
+    public static final BitSet FOLLOW_dimension_definition_in_pattern_type4465 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_ID_in_data_type4493 = new BitSet(new long[]{0x0000000000000002L,0x0000400000020000L});
+    public static final BitSet FOLLOW_DOT_in_data_type4499 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_data_type4503 = new BitSet(new long[]{0x0000000000000002L,0x0000400000020000L});
+    public static final BitSet FOLLOW_dimension_definition_in_data_type4508 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition4537 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition4544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path4558 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_DOT_in_accessor_path4562 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path4566 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_ID_in_accessor_element4590 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_square_chunk_in_accessor_element4596 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_rhs_chunk_data_in_rhs_chunk4625 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_THEN_in_rhs_chunk_data4644 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_rhs_chunk_data4657 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_END_in_rhs_chunk_data4670 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_rhs_chunk_data4676 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk4695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk_data4718 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_curly_chunk_data4730 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk_data4746 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk_data4757 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk4778 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk_data4802 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_paren_chunk_data4814 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk_data4830 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk_data4841 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk4862 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk_data4885 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_square_chunk_data4897 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk_data4912 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x3FFFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk_data4923 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key4947 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_lock_on_active_key4951 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key4955 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_lock_on_active_key4959 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key4963 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_date_effective_key4995 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_date_effective_key4999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_date_effective_key5003 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_date_expires_key5035 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_date_expires_key5039 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_date_expires_key5043 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_no_loop_key5075 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_no_loop_key5079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_no_loop_key5083 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_auto_focus_key5115 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_auto_focus_key5119 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_auto_focus_key5123 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_activation_group_key5155 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_activation_group_key5159 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_activation_group_key5163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_agenda_group_key5195 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_agenda_group_key5199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_agenda_group_key5203 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_ruleflow_group_key5235 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_ruleflow_group_key5239 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_ruleflow_group_key5243 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_entry_point_key5275 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_MISC_in_entry_point_key5279 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ID_in_entry_point_key5283 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_duration_key5312 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_package_key5339 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_import_key5366 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_dialect_key5393 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_salience_key5420 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_enabled_key5447 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_attributes_key5474 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_rule_key5501 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_extend_key5528 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_template_key5555 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_query_key5582 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_declare_key5609 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_key5636 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_global_key5663 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_eval_key5690 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_not_key5717 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_in_key5744 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_or_key5771 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_and_key5798 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_exists_key5825 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_forall_key5852 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_action_key5879 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_reverse_key5906 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_result_key5933 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred1_DRL2030 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_or_key_in_synpred1_DRL2032 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_key_in_synpred2_DRL2099 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred2_DRL2101 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred3_DRL2158 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_and_key_in_synpred3_DRL2160 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_key_in_synpred4_DRL2228 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred4_DRL2230 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEMICOLON_in_synpred5_DRL2353 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred6_DRL2390 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_or_key_in_synpred6_DRL2393 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_key_in_synpred6_DRL2395 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred7_DRL2518 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_or_key_in_synpred7_DRL2521 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_key_in_synpred7_DRL2523 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred8_DRL3352 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DescrBuilderTree.java	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1,4 +1,4 @@
-// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g 2008-11-21 20:04:59
+// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g 2008-11-24 14:42:07
 
 	package org.drools.lang;
 
@@ -36,136 +36,131 @@
 
 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_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", "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_CONTAINS", "VK_MATCHES", "VK_EXCLUDES", "VK_SOUNDSLIKE", "VK_MEMBEROF", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EXISTS", "VK_FORALL", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "SEMICOLON", "ID", "DOT", "DOT_STAR", "END", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "INIT", "COLLECT", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "GRAVE_ACCENT", "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_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", "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_EXISTS", "VK_FORALL", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "SEMICOLON", "ID", "DOT", "DOT_STAR", "END", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "INIT", "COLLECT", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "GRAVE_ACCENT", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
     };
-    public static final int COMMA=91;
+    public static final int COMMA=86;
     public static final int VT_PATTERN_TYPE=39;
     public static final int VT_ACCUMULATE_ID_CLAUSE=28;
     public static final int VK_DIALECT=54;
     public static final int VK_FUNCTION=65;
-    public static final int END=88;
-    public static final int HexDigit=124;
+    public static final int END=83;
+    public static final int HexDigit=119;
     public static final int VK_ATTRIBUTES=57;
     public static final int VT_EXPRESSION_CHAIN=30;
-    public static final int MISC=120;
+    public static final int MISC=115;
     public static final int VT_AND_PREFIX=23;
     public static final int VK_QUERY=63;
-    public static final int THEN=117;
+    public static final int THEN=112;
     public static final int VK_AUTO_FOCUS=49;
-    public static final int DOT=86;
+    public static final int DOT=81;
     public static final int VK_IMPORT=60;
     public static final int VT_SLOT=15;
     public static final int VT_PACKAGE_ID=40;
-    public static final int LEFT_SQUARE=115;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=128;
+    public static final int LEFT_SQUARE=110;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=123;
     public static final int VT_DATA_TYPE=38;
-    public static final int VK_MATCHES=69;
     public static final int VT_FACT=6;
-    public static final int LEFT_CURLY=118;
-    public static final int AT=93;
-    public static final int LEFT_PAREN=90;
-    public static final int DOUBLE_AMPER=100;
+    public static final int LEFT_CURLY=113;
+    public static final int AT=88;
+    public static final int LEFT_PAREN=85;
+    public static final int DOUBLE_AMPER=95;
     public static final int VT_QUERY_ID=9;
     public static final int VT_ACCESSOR_PATH=36;
     public static final int VT_LABEL=8;
-    public static final int WHEN=96;
+    public static final int WHEN=91;
     public static final int VT_ENTRYPOINT_ID=13;
-    public static final int VK_SOUNDSLIKE=71;
     public static final int VK_SALIENCE=55;
     public static final int VT_FIELD=35;
-    public static final int WS=122;
-    public static final int OVER=102;
-    public static final int STRING=89;
-    public static final int VK_AND=77;
+    public static final int WS=117;
+    public static final int OVER=97;
+    public static final int STRING=84;
+    public static final int VK_AND=72;
     public static final int VT_ACCESSOR_ELEMENT=37;
-    public static final int VT_ACCUMULATE_INIT_CLAUSE=27;
     public static final int VK_GLOBAL=66;
-    public static final int VK_REVERSE=81;
+    public static final int VT_ACCUMULATE_INIT_CLAUSE=27;
+    public static final int VK_REVERSE=76;
     public static final int VT_BEHAVIOR=21;
-    public static final int GRAVE_ACCENT=127;
+    public static final int GRAVE_ACCENT=122;
     public static final int VK_DURATION=53;
     public static final int VT_SQUARE_CHUNK=19;
-    public static final int VK_FORALL=79;
+    public static final int VK_FORALL=74;
     public static final int VT_PAREN_CHUNK=20;
     public static final int VT_COMPILATION_UNIT=4;
-    public static final int COLLECT=105;
+    public static final int COLLECT=100;
     public static final int VK_ENABLED=56;
-    public static final int EQUALS=95;
-    public static final int VK_RESULT=82;
-    public static final int UnicodeEscape=125;
+    public static final int VK_RESULT=77;
+    public static final int EQUALS=90;
+    public static final int UnicodeEscape=120;
     public static final int VK_PACKAGE=61;
     public static final int VT_RULE_ID=12;
-    public static final int EQUAL=107;
+    public static final int EQUAL=102;
     public static final int VK_NO_LOOP=48;
-    public static final int SEMICOLON=84;
+    public static final int SEMICOLON=79;
     public static final int VK_TEMPLATE=62;
     public static final int VT_AND_IMPLICIT=22;
-    public static final int NULL=114;
-    public static final int COLON=94;
-    public static final int MULTI_LINE_COMMENT=130;
+    public static final int NULL=109;
+    public static final int COLON=89;
+    public static final int MULTI_LINE_COMMENT=125;
     public static final int VT_RULE_ATTRIBUTES=16;
-    public static final int RIGHT_SQUARE=116;
+    public static final int RIGHT_SQUARE=111;
     public static final int VK_AGENDA_GROUP=51;
     public static final int VT_FACT_OR=33;
-    public static final int VK_NOT=74;
+    public static final int VK_NOT=69;
     public static final int VK_DATE_EXPIRES=46;
-    public static final int ARROW=106;
-    public static final int FLOAT=113;
-    public static final int INIT=104;
+    public static final int ARROW=101;
+    public static final int FLOAT=108;
+    public static final int INIT=99;
     public static final int VK_EXTEND=59;
     public static final int VT_SLOT_ID=14;
     public static final int VT_CURLY_CHUNK=18;
     public static final int VT_OR_PREFIX=24;
-    public static final int DOUBLE_PIPE=99;
-    public static final int LESS=110;
+    public static final int DOUBLE_PIPE=94;
+    public static final int LESS=105;
     public static final int VT_TYPE_DECLARE_ID=11;
     public static final int VT_PATTERN=31;
     public static final int VK_DATE_EFFECTIVE=45;
-    public static final int EscapeSequence=123;
-    public static final int VK_EXISTS=78;
-    public static final int INT=98;
+    public static final int EscapeSequence=118;
+    public static final int VK_EXISTS=73;
+    public static final int INT=93;
     public static final int VT_BIND_FIELD=34;
     public static final int VK_RULE=58;
     public static final int VK_EVAL=67;
-    public static final int GREATER=108;
+    public static final int GREATER=103;
     public static final int VT_FACT_BINDING=32;
-    public static final int ID=85;
-    public static final int FROM=101;
-    public static final int NOT_EQUAL=112;
-    public static final int RIGHT_CURLY=119;
-    public static final int VK_OPERATOR=83;
-    public static final int VK_ENTRY_POINT=73;
+    public static final int ID=80;
+    public static final int FROM=96;
+    public static final int NOT_EQUAL=107;
+    public static final int RIGHT_CURLY=114;
+    public static final int VK_OPERATOR=78;
+    public static final int VK_ENTRY_POINT=68;
     public static final int VT_PARAM_LIST=44;
     public static final int VT_AND_INFIX=25;
-    public static final int BOOL=97;
+    public static final int BOOL=92;
     public static final int VT_FROM_SOURCE=29;
-    public static final int VK_CONTAINS=68;
     public static final int VK_LOCK_ON_ACTIVE=47;
     public static final int VT_FUNCTION_IMPORT=5;
-    public static final int VK_IN=75;
+    public static final int VK_IN=70;
     public static final int VT_RHS_CHUNK=17;
-    public static final int VK_MEMBEROF=72;
-    public static final int GREATER_EQUAL=109;
+    public static final int GREATER_EQUAL=104;
     public static final int VT_OR_INFIX=26;
-    public static final int DOT_STAR=87;
-    public static final int VK_OR=76;
+    public static final int DOT_STAR=82;
+    public static final int VK_OR=71;
     public static final int VT_GLOBAL_ID=42;
-    public static final int LESS_EQUAL=111;
-    public static final int ACCUMULATE=103;
+    public static final int LESS_EQUAL=106;
+    public static final int ACCUMULATE=98;
     public static final int VK_RULEFLOW_GROUP=52;
     public static final int VT_FUNCTION_ID=43;
     public static final int EOF=-1;
     public static final int VT_CONSTRAINTS=7;
     public static final int VT_IMPORT_ID=41;
-    public static final int EOL=121;
+    public static final int EOL=116;
     public static final int VK_ACTIVATION_GROUP=50;
-    public static final int OctalEscape=126;
-    public static final int VK_ACTION=80;
-    public static final int VK_EXCLUDES=70;
-    public static final int RIGHT_PAREN=92;
+    public static final int OctalEscape=121;
+    public static final int VK_ACTION=75;
+    public static final int RIGHT_PAREN=87;
     public static final int VT_TEMPLATE_ID=10;
     public static final int VK_DECLARE=64;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=129;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=124;
 
     // delegates
     // delegators
@@ -3311,7 +3306,7 @@
     };
 
     // $ANTLR start "fact_expression"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:321:1: fact_expression returns [BaseDescr descr] : ( ^( VT_FACT pt= pattern_type (fe= fact_expression )* ) | ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression ) | ^(start= VT_FACT_OR left= fact_expression right= fact_expression ) | ^( VT_FIELD field= field_element (fe= fact_expression )? ) | ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression ) | ^( VK_EVAL pc= VT_PAREN_CHUNK ) | ^(op= EQUAL fe= fact_expression ) | ^(op= NOT_EQUAL fe= fact_expression ) | ^(op= GREATER fe= fact_expression ) | ^(op= GREATER_EQUAL fe= fact_expression ) | ^(op= LESS fe= fact_expression ) | ^(op= LESS_EQUAL fe= fact_expression ) | ^(op= VK_CONTAINS (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_EXCLUDES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MATCHES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_SOUNDSLIKE (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_M!
 EMBEROF (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_OPERATOR (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression ) | ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ ) | ^( DOUBLE_PIPE left= fact_expression right= fact_expression ) | ^( DOUBLE_AMPER left= fact_expression right= fact_expression ) | ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) | s= STRING | i= INT | f= FLOAT | b= BOOL | n= NULL | pc= VT_PAREN_CHUNK );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:321:1: fact_expression returns [BaseDescr descr] : ( ^( VT_FACT pt= pattern_type (fe= fact_expression )* ) | ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression ) | ^(start= VT_FACT_OR left= fact_expression right= fact_expression ) | ^( VT_FIELD field= field_element (fe= fact_expression )? ) | ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression ) | ^( VK_EVAL pc= VT_PAREN_CHUNK ) | ^(op= EQUAL fe= fact_expression ) | ^(op= NOT_EQUAL fe= fact_expression ) | ^(op= GREATER fe= fact_expression ) | ^(op= GREATER_EQUAL fe= fact_expression ) | ^(op= LESS fe= fact_expression ) | ^(op= LESS_EQUAL fe= fact_expression ) | ^(op= VK_OPERATOR (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression ) | ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ ) | ^( DOUBLE_PIPE left= fact_expression right= fact_expression ) | ^( DOUBLE_AMPER left= fact_expression rig!
 ht= fact_expression ) | ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) | s= STRING | i= INT | f= FLOAT | b= BOOL | n= NULL | pc= VT_PAREN_CHUNK );
     public final DescrBuilderTree.fact_expression_return fact_expression() throws RecognitionException {
         DescrBuilderTree.fact_expression_return retval = new DescrBuilderTree.fact_expression_return();
         retval.start = input.LT(1);
@@ -3346,157 +3341,132 @@
         	List<BaseDescr> exprList = new LinkedList<BaseDescr>();
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:324:3: ( ^( VT_FACT pt= pattern_type (fe= fact_expression )* ) | ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression ) | ^(start= VT_FACT_OR left= fact_expression right= fact_expression ) | ^( VT_FIELD field= field_element (fe= fact_expression )? ) | ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression ) | ^( VK_EVAL pc= VT_PAREN_CHUNK ) | ^(op= EQUAL fe= fact_expression ) | ^(op= NOT_EQUAL fe= fact_expression ) | ^(op= GREATER fe= fact_expression ) | ^(op= GREATER_EQUAL fe= fact_expression ) | ^(op= LESS fe= fact_expression ) | ^(op= LESS_EQUAL fe= fact_expression ) | ^(op= VK_CONTAINS (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_EXCLUDES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MATCHES (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_SOUNDSLIKE (not= VK_NOT )? fe= fact_expression ) | ^(op= VK_MEMBEROF (not= VK_NOT )? fe= fact_exp!
 ression ) | ^(op= VK_OPERATOR (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression ) | ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ ) | ^( DOUBLE_PIPE left= fact_expression right= fact_expression ) | ^( DOUBLE_AMPER left= fact_expression right= fact_expression ) | ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) | s= STRING | i= INT | f= FLOAT | b= BOOL | n= NULL | pc= VT_PAREN_CHUNK )
-            int alt56=28;
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:324:3: ( ^( VT_FACT pt= pattern_type (fe= fact_expression )* ) | ^( VT_FACT_BINDING label= VT_LABEL fact= fact_expression ) | ^(start= VT_FACT_OR left= fact_expression right= fact_expression ) | ^( VT_FIELD field= field_element (fe= fact_expression )? ) | ^( VT_BIND_FIELD label= VT_LABEL fe= fact_expression ) | ^( VK_EVAL pc= VT_PAREN_CHUNK ) | ^(op= EQUAL fe= fact_expression ) | ^(op= NOT_EQUAL fe= fact_expression ) | ^(op= GREATER fe= fact_expression ) | ^(op= GREATER_EQUAL fe= fact_expression ) | ^(op= LESS fe= fact_expression ) | ^(op= LESS_EQUAL fe= fact_expression ) | ^(op= VK_OPERATOR (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression ) | ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ ) | ^( DOUBLE_PIPE left= fact_expression right= fact_expression ) | ^( DOUBLE_AMPER left= fact_expression right= fact_expression ) | ^( VT_ACCESS!
 OR_PATH (ae= accessor_element )+ ) | s= STRING | i= INT | f= FLOAT | b= BOOL | n= NULL | pc= VT_PAREN_CHUNK )
+            int alt51=23;
             switch ( input.LA(1) ) {
             case VT_FACT:
                 {
-                alt56=1;
+                alt51=1;
                 }
                 break;
             case VT_FACT_BINDING:
                 {
-                alt56=2;
+                alt51=2;
                 }
                 break;
             case VT_FACT_OR:
                 {
-                alt56=3;
+                alt51=3;
                 }
                 break;
             case VT_FIELD:
                 {
-                alt56=4;
+                alt51=4;
                 }
                 break;
             case VT_BIND_FIELD:
                 {
-                alt56=5;
+                alt51=5;
                 }
                 break;
             case VK_EVAL:
                 {
-                alt56=6;
+                alt51=6;
                 }
                 break;
             case EQUAL:
                 {
-                alt56=7;
+                alt51=7;
                 }
                 break;
             case NOT_EQUAL:
                 {
-                alt56=8;
+                alt51=8;
                 }
                 break;
             case GREATER:
                 {
-                alt56=9;
+                alt51=9;
                 }
                 break;
             case GREATER_EQUAL:
                 {
-                alt56=10;
+                alt51=10;
                 }
                 break;
             case LESS:
                 {
-                alt56=11;
+                alt51=11;
                 }
                 break;
             case LESS_EQUAL:
                 {
-                alt56=12;
+                alt51=12;
                 }
                 break;
-            case VK_CONTAINS:
-                {
-                alt56=13;
-                }
-                break;
-            case VK_EXCLUDES:
-                {
-                alt56=14;
-                }
-                break;
-            case VK_MATCHES:
-                {
-                alt56=15;
-                }
-                break;
-            case VK_SOUNDSLIKE:
-                {
-                alt56=16;
-                }
-                break;
-            case VK_MEMBEROF:
-                {
-                alt56=17;
-                }
-                break;
             case VK_OPERATOR:
                 {
-                alt56=18;
+                alt51=13;
                 }
                 break;
             case VK_IN:
                 {
-                alt56=19;
+                alt51=14;
                 }
                 break;
             case DOUBLE_PIPE:
                 {
-                alt56=20;
+                alt51=15;
                 }
                 break;
             case DOUBLE_AMPER:
                 {
-                alt56=21;
+                alt51=16;
                 }
                 break;
             case VT_ACCESSOR_PATH:
                 {
-                alt56=22;
+                alt51=17;
                 }
                 break;
             case STRING:
                 {
-                alt56=23;
+                alt51=18;
                 }
                 break;
             case INT:
                 {
-                alt56=24;
+                alt51=19;
                 }
                 break;
             case FLOAT:
                 {
-                alt56=25;
+                alt51=20;
                 }
                 break;
             case BOOL:
                 {
-                alt56=26;
+                alt51=21;
                 }
                 break;
             case NULL:
                 {
-                alt56=27;
+                alt51=22;
                 }
                 break;
             case VT_PAREN_CHUNK:
                 {
-                alt56=28;
+                alt51=23;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 56, 0, input);
+                    new NoViableAltException("", 51, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt56) {
+            switch (alt51) {
                 case 1 :
                     // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:324:5: ^( VT_FACT pt= pattern_type (fe= fact_expression )* )
                     {
@@ -3514,7 +3484,7 @@
                         int alt44=2;
                         int LA44_0 = input.LA(1);
 
-                        if ( (LA44_0==VT_FACT||LA44_0==VT_PAREN_CHUNK||(LA44_0>=VT_FACT_BINDING && LA44_0<=VT_ACCESSOR_PATH)||(LA44_0>=VK_EVAL && LA44_0<=VK_MEMBEROF)||LA44_0==VK_IN||LA44_0==VK_OPERATOR||LA44_0==STRING||(LA44_0>=BOOL && LA44_0<=DOUBLE_AMPER)||(LA44_0>=EQUAL && LA44_0<=NULL)) ) {
+                        if ( (LA44_0==VT_FACT||LA44_0==VT_PAREN_CHUNK||(LA44_0>=VT_FACT_BINDING && LA44_0<=VT_ACCESSOR_PATH)||LA44_0==VK_EVAL||LA44_0==VK_IN||LA44_0==VK_OPERATOR||LA44_0==STRING||(LA44_0>=BOOL && LA44_0<=DOUBLE_AMPER)||(LA44_0>=EQUAL && LA44_0<=NULL)) ) {
                             alt44=1;
                         }
 
@@ -3599,7 +3569,7 @@
                     int alt45=2;
                     int LA45_0 = input.LA(1);
 
-                    if ( (LA45_0==VT_FACT||LA45_0==VT_PAREN_CHUNK||(LA45_0>=VT_FACT_BINDING && LA45_0<=VT_ACCESSOR_PATH)||(LA45_0>=VK_EVAL && LA45_0<=VK_MEMBEROF)||LA45_0==VK_IN||LA45_0==VK_OPERATOR||LA45_0==STRING||(LA45_0>=BOOL && LA45_0<=DOUBLE_AMPER)||(LA45_0>=EQUAL && LA45_0<=NULL)) ) {
+                    if ( (LA45_0==VT_FACT||LA45_0==VT_PAREN_CHUNK||(LA45_0>=VT_FACT_BINDING && LA45_0<=VT_ACCESSOR_PATH)||LA45_0==VK_EVAL||LA45_0==VK_IN||LA45_0==VK_OPERATOR||LA45_0==STRING||(LA45_0>=BOOL && LA45_0<=DOUBLE_AMPER)||(LA45_0>=EQUAL && LA45_0<=NULL)) ) {
                         alt45=1;
                     }
                     switch (alt45) {
@@ -3761,9 +3731,9 @@
                     }
                     break;
                 case 13 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:355:4: ^(op= VK_CONTAINS (not= VK_NOT )? fe= fact_expression )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:355:4: ^(op= VK_OPERATOR (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression )
                     {
-                    op=(DroolsTree)match(input,VK_CONTAINS,FOLLOW_VK_CONTAINS_in_fact_expression1905); 
+                    op=(DroolsTree)match(input,VK_OPERATOR,FOLLOW_VK_OPERATOR_in_fact_expression1905); 
 
                     match(input, Token.DOWN, null); 
                     // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:355:24: (not= VK_NOT )?
@@ -3784,59 +3754,42 @@
 
                     }
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1914);
-                    fe=fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-                    	retval.descr = factory.setupRestriction(op, not, (fe!=null?fe.descr:null));	
-
-                    }
-                    break;
-                case 14 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:357:4: ^(op= VK_EXCLUDES (not= VK_NOT )? fe= fact_expression )
-                    {
-                    op=(DroolsTree)match(input,VK_EXCLUDES,FOLLOW_VK_EXCLUDES_in_fact_expression1926); 
-
-                    match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:357:24: (not= VK_NOT )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:355:38: (param= VT_SQUARE_CHUNK )?
                     int alt47=2;
                     int LA47_0 = input.LA(1);
 
-                    if ( (LA47_0==VK_NOT) ) {
+                    if ( (LA47_0==VT_SQUARE_CHUNK) ) {
                         alt47=1;
                     }
                     switch (alt47) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:357:24: not= VK_NOT
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:355:38: param= VT_SQUARE_CHUNK
                             {
-                            not=(DroolsTree)match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1930); 
+                            param=(DroolsTree)match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1914); 
 
                             }
                             break;
 
                     }
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1935);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1919);
                     fe=fact_expression();
 
                     state._fsp--;
 
 
                     match(input, Token.UP, null); 
-                    	retval.descr = factory.setupRestriction(op, not, (fe!=null?fe.descr:null));	
+                    	retval.descr = factory.setupRestriction(op, not, (fe!=null?fe.descr:null), param);	
 
                     }
                     break;
-                case 15 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:4: ^(op= VK_MATCHES (not= VK_NOT )? fe= fact_expression )
+                case 14 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:358:4: ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ )
                     {
-                    op=(DroolsTree)match(input,VK_MATCHES,FOLLOW_VK_MATCHES_in_fact_expression1947); 
+                    match(input,VK_IN,FOLLOW_VK_IN_in_fact_expression1930); 
 
                     match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:23: (not= VK_NOT )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:358:15: (not= VK_NOT )?
                     int alt48=2;
                     int LA48_0 = input.LA(1);
 
@@ -3845,190 +3798,32 @@
                     }
                     switch (alt48) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:359:23: not= VK_NOT
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:358:15: not= VK_NOT
                             {
-                            not=(DroolsTree)match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1951); 
+                            not=(DroolsTree)match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1934); 
 
                             }
                             break;
 
                     }
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1956);
-                    fe=fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-                    	retval.descr = factory.setupRestriction(op, not, (fe!=null?fe.descr:null));	
-
-                    }
-                    break;
-                case 16 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:361:4: ^(op= VK_SOUNDSLIKE (not= VK_NOT )? fe= fact_expression )
-                    {
-                    op=(DroolsTree)match(input,VK_SOUNDSLIKE,FOLLOW_VK_SOUNDSLIKE_in_fact_expression1968); 
-
-                    match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:361:26: (not= VK_NOT )?
-                    int alt49=2;
-                    int LA49_0 = input.LA(1);
-
-                    if ( (LA49_0==VK_NOT) ) {
-                        alt49=1;
-                    }
-                    switch (alt49) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:361:26: not= VK_NOT
-                            {
-                            not=(DroolsTree)match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1972); 
-
-                            }
-                            break;
-
-                    }
-
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1977);
-                    fe=fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-                    	retval.descr = factory.setupRestriction(op, not, (fe!=null?fe.descr:null));	
-
-                    }
-                    break;
-                case 17 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:363:4: ^(op= VK_MEMBEROF (not= VK_NOT )? fe= fact_expression )
-                    {
-                    op=(DroolsTree)match(input,VK_MEMBEROF,FOLLOW_VK_MEMBEROF_in_fact_expression1989); 
-
-                    match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:363:24: (not= VK_NOT )?
-                    int alt50=2;
-                    int LA50_0 = input.LA(1);
-
-                    if ( (LA50_0==VK_NOT) ) {
-                        alt50=1;
-                    }
-                    switch (alt50) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:363:24: not= VK_NOT
-                            {
-                            not=(DroolsTree)match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1993); 
-
-                            }
-                            break;
-
-                    }
-
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1998);
-                    fe=fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-                    	retval.descr = factory.setupRestriction(op, not, (fe!=null?fe.descr:null));	
-
-                    }
-                    break;
-                case 18 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:365:4: ^(op= VK_OPERATOR (not= VK_NOT )? (param= VT_SQUARE_CHUNK )? fe= fact_expression )
-                    {
-                    op=(DroolsTree)match(input,VK_OPERATOR,FOLLOW_VK_OPERATOR_in_fact_expression2010); 
-
-                    match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:365:24: (not= VK_NOT )?
-                    int alt51=2;
-                    int LA51_0 = input.LA(1);
-
-                    if ( (LA51_0==VK_NOT) ) {
-                        alt51=1;
-                    }
-                    switch (alt51) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:365:24: not= VK_NOT
-                            {
-                            not=(DroolsTree)match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression2014); 
-
-                            }
-                            break;
-
-                    }
-
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:365:38: (param= VT_SQUARE_CHUNK )?
-                    int alt52=2;
-                    int LA52_0 = input.LA(1);
-
-                    if ( (LA52_0==VT_SQUARE_CHUNK) ) {
-                        alt52=1;
-                    }
-                    switch (alt52) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:365:38: param= VT_SQUARE_CHUNK
-                            {
-                            param=(DroolsTree)match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_fact_expression2019); 
-
-                            }
-                            break;
-
-                    }
-
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression2024);
-                    fe=fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-                    	retval.descr = factory.setupRestriction(op, not, (fe!=null?fe.descr:null), param);	
-
-                    }
-                    break;
-                case 19 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:368:4: ^( VK_IN (not= VK_NOT )? (fe= fact_expression )+ )
-                    {
-                    match(input,VK_IN,FOLLOW_VK_IN_in_fact_expression2035); 
-
-                    match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:368:15: (not= VK_NOT )?
-                    int alt53=2;
-                    int LA53_0 = input.LA(1);
-
-                    if ( (LA53_0==VK_NOT) ) {
-                        alt53=1;
-                    }
-                    switch (alt53) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:368:15: not= VK_NOT
-                            {
-                            not=(DroolsTree)match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression2039); 
-
-                            }
-                            break;
-
-                    }
-
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:368:24: (fe= fact_expression )+
-                    int cnt54=0;
-                    loop54:
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:358:24: (fe= fact_expression )+
+                    int cnt49=0;
+                    loop49:
                     do {
-                        int alt54=2;
-                        int LA54_0 = input.LA(1);
+                        int alt49=2;
+                        int LA49_0 = input.LA(1);
 
-                        if ( (LA54_0==VT_FACT||LA54_0==VT_PAREN_CHUNK||(LA54_0>=VT_FACT_BINDING && LA54_0<=VT_ACCESSOR_PATH)||(LA54_0>=VK_EVAL && LA54_0<=VK_MEMBEROF)||LA54_0==VK_IN||LA54_0==VK_OPERATOR||LA54_0==STRING||(LA54_0>=BOOL && LA54_0<=DOUBLE_AMPER)||(LA54_0>=EQUAL && LA54_0<=NULL)) ) {
-                            alt54=1;
+                        if ( (LA49_0==VT_FACT||LA49_0==VT_PAREN_CHUNK||(LA49_0>=VT_FACT_BINDING && LA49_0<=VT_ACCESSOR_PATH)||LA49_0==VK_EVAL||LA49_0==VK_IN||LA49_0==VK_OPERATOR||LA49_0==STRING||(LA49_0>=BOOL && LA49_0<=DOUBLE_AMPER)||(LA49_0>=EQUAL && LA49_0<=NULL)) ) {
+                            alt49=1;
                         }
 
 
-                        switch (alt54) {
+                        switch (alt49) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:368:25: fe= fact_expression
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:358:25: fe= fact_expression
                     	    {
-                    	    pushFollow(FOLLOW_fact_expression_in_fact_expression2045);
+                    	    pushFollow(FOLLOW_fact_expression_in_fact_expression1940);
                     	    fe=fact_expression();
 
                     	    state._fsp--;
@@ -4039,12 +3834,12 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt54 >= 1 ) break loop54;
+                    	    if ( cnt49 >= 1 ) break loop49;
                                 EarlyExitException eee =
-                                    new EarlyExitException(54, input);
+                                    new EarlyExitException(49, input);
                                 throw eee;
                         }
-                        cnt54++;
+                        cnt49++;
                     } while (true);
 
 
@@ -4053,18 +3848,18 @@
 
                     }
                     break;
-                case 20 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:371:4: ^( DOUBLE_PIPE left= fact_expression right= fact_expression )
+                case 15 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:361:4: ^( DOUBLE_PIPE left= fact_expression right= fact_expression )
                     {
-                    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_expression2060); 
+                    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_fact_expression1955); 
 
                     match(input, Token.DOWN, null); 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression2064);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1959);
                     left=fact_expression();
 
                     state._fsp--;
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression2068);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1963);
                     right=fact_expression();
 
                     state._fsp--;
@@ -4075,18 +3870,18 @@
 
                     }
                     break;
-                case 21 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:373:4: ^( DOUBLE_AMPER left= fact_expression right= fact_expression )
+                case 16 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:363:4: ^( DOUBLE_AMPER left= fact_expression right= fact_expression )
                     {
-                    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_fact_expression2078); 
+                    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_fact_expression1973); 
 
                     match(input, Token.DOWN, null); 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression2082);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1977);
                     left=fact_expression();
 
                     state._fsp--;
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression2086);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1981);
                     right=fact_expression();
 
                     state._fsp--;
@@ -4097,29 +3892,29 @@
 
                     }
                     break;
-                case 22 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:376:4: ^( VT_ACCESSOR_PATH (ae= accessor_element )+ )
+                case 17 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:366:4: ^( VT_ACCESSOR_PATH (ae= accessor_element )+ )
                     {
-                    match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_fact_expression2097); 
+                    match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1992); 
 
                     match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:376:23: (ae= accessor_element )+
-                    int cnt55=0;
-                    loop55:
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:366:23: (ae= accessor_element )+
+                    int cnt50=0;
+                    loop50:
                     do {
-                        int alt55=2;
-                        int LA55_0 = input.LA(1);
+                        int alt50=2;
+                        int LA50_0 = input.LA(1);
 
-                        if ( (LA55_0==VT_ACCESSOR_ELEMENT) ) {
-                            alt55=1;
+                        if ( (LA50_0==VT_ACCESSOR_ELEMENT) ) {
+                            alt50=1;
                         }
 
 
-                        switch (alt55) {
+                        switch (alt50) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:376:24: ae= accessor_element
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:366:24: ae= accessor_element
                     	    {
-                    	    pushFollow(FOLLOW_accessor_element_in_fact_expression2102);
+                    	    pushFollow(FOLLOW_accessor_element_in_fact_expression1997);
                     	    ae=accessor_element();
 
                     	    state._fsp--;
@@ -4130,12 +3925,12 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt55 >= 1 ) break loop55;
+                    	    if ( cnt50 >= 1 ) break loop50;
                                 EarlyExitException eee =
-                                    new EarlyExitException(55, input);
+                                    new EarlyExitException(50, input);
                                 throw eee;
                         }
-                        cnt55++;
+                        cnt50++;
                     } while (true);
 
 
@@ -4144,50 +3939,50 @@
 
                     }
                     break;
-                case 23 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:378:4: s= STRING
+                case 18 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:368:4: s= STRING
                     {
-                    s=(DroolsTree)match(input,STRING,FOLLOW_STRING_in_fact_expression2117); 
+                    s=(DroolsTree)match(input,STRING,FOLLOW_STRING_in_fact_expression2012); 
                     	retval.descr = factory.createStringLiteralRestriction(s);	
 
                     }
                     break;
-                case 24 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:380:4: i= INT
+                case 19 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:370:4: i= INT
                     {
-                    i=(DroolsTree)match(input,INT,FOLLOW_INT_in_fact_expression2127); 
+                    i=(DroolsTree)match(input,INT,FOLLOW_INT_in_fact_expression2022); 
                     	retval.descr = factory.createIntLiteralRestriction(i);	
 
                     }
                     break;
-                case 25 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:382:4: f= FLOAT
+                case 20 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:372:4: f= FLOAT
                     {
-                    f=(DroolsTree)match(input,FLOAT,FOLLOW_FLOAT_in_fact_expression2137); 
+                    f=(DroolsTree)match(input,FLOAT,FOLLOW_FLOAT_in_fact_expression2032); 
                     	retval.descr = factory.createFloatLiteralRestriction(f);	
 
                     }
                     break;
-                case 26 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:384:4: b= BOOL
+                case 21 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:374:4: b= BOOL
                     {
-                    b=(DroolsTree)match(input,BOOL,FOLLOW_BOOL_in_fact_expression2147); 
+                    b=(DroolsTree)match(input,BOOL,FOLLOW_BOOL_in_fact_expression2042); 
                     	retval.descr = factory.createBoolLiteralRestriction(b);	
 
                     }
                     break;
-                case 27 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:386:4: n= NULL
+                case 22 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:376:4: n= NULL
                     {
-                    n=(DroolsTree)match(input,NULL,FOLLOW_NULL_in_fact_expression2157); 
+                    n=(DroolsTree)match(input,NULL,FOLLOW_NULL_in_fact_expression2052); 
                     	retval.descr = factory.createNullLiteralRestriction(n);	
 
                     }
                     break;
-                case 28 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:388:4: pc= VT_PAREN_CHUNK
+                case 23 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:378:4: pc= VT_PAREN_CHUNK
                     {
-                    pc=(DroolsTree)match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression2167); 
+                    pc=(DroolsTree)match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression2062); 
                     	retval.descr = factory.createReturnValue(pc);	
 
                     }
@@ -4207,7 +4002,7 @@
 
 
     // $ANTLR start "field_element"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:392:1: field_element returns [FieldConstraintDescr element] : ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:382:1: field_element returns [FieldConstraintDescr element] : ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) ;
     public final FieldConstraintDescr field_element() throws RecognitionException {
         FieldConstraintDescr element = null;
 
@@ -4218,29 +4013,29 @@
         	List<BaseDescr> aeList = new LinkedList<BaseDescr>();
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:3: ( ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:5: ^( VT_ACCESSOR_PATH (ae= accessor_element )+ )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:385:3: ( ^( VT_ACCESSOR_PATH (ae= accessor_element )+ ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:385:5: ^( VT_ACCESSOR_PATH (ae= accessor_element )+ )
             {
-            match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_field_element2189); 
+            match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_field_element2084); 
 
             match(input, Token.DOWN, null); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:24: (ae= accessor_element )+
-            int cnt57=0;
-            loop57:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:385:24: (ae= accessor_element )+
+            int cnt52=0;
+            loop52:
             do {
-                int alt57=2;
-                int LA57_0 = input.LA(1);
+                int alt52=2;
+                int LA52_0 = input.LA(1);
 
-                if ( (LA57_0==VT_ACCESSOR_ELEMENT) ) {
-                    alt57=1;
+                if ( (LA52_0==VT_ACCESSOR_ELEMENT) ) {
+                    alt52=1;
                 }
 
 
-                switch (alt57) {
+                switch (alt52) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:25: ae= accessor_element
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:385:25: ae= accessor_element
             	    {
-            	    pushFollow(FOLLOW_accessor_element_in_field_element2194);
+            	    pushFollow(FOLLOW_accessor_element_in_field_element2089);
             	    ae=accessor_element();
 
             	    state._fsp--;
@@ -4251,12 +4046,12 @@
             	    break;
 
             	default :
-            	    if ( cnt57 >= 1 ) break loop57;
+            	    if ( cnt52 >= 1 ) break loop52;
                         EarlyExitException eee =
-                            new EarlyExitException(57, input);
+                            new EarlyExitException(52, input);
                         throw eee;
                 }
-                cnt57++;
+                cnt52++;
             } while (true);
 
 
@@ -4278,7 +4073,7 @@
 
 
     // $ANTLR start "accessor_element"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:399:1: accessor_element returns [BaseDescr element] : ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:389:1: accessor_element returns [BaseDescr element] : ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* ) ;
     public final BaseDescr accessor_element() throws RecognitionException {
         BaseDescr element = null;
 
@@ -4287,29 +4082,29 @@
         List list_sc=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:2: ( ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:4: ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:390:2: ( ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:390:4: ^( VT_ACCESSOR_ELEMENT id= ID (sc+= VT_SQUARE_CHUNK )* )
             {
-            match(input,VT_ACCESSOR_ELEMENT,FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element2218); 
+            match(input,VT_ACCESSOR_ELEMENT,FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element2113); 
 
             match(input, Token.DOWN, null); 
-            id=(DroolsTree)match(input,ID,FOLLOW_ID_in_accessor_element2222); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:34: (sc+= VT_SQUARE_CHUNK )*
-            loop58:
+            id=(DroolsTree)match(input,ID,FOLLOW_ID_in_accessor_element2117); 
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:390:34: (sc+= VT_SQUARE_CHUNK )*
+            loop53:
             do {
-                int alt58=2;
-                int LA58_0 = input.LA(1);
+                int alt53=2;
+                int LA53_0 = input.LA(1);
 
-                if ( (LA58_0==VT_SQUARE_CHUNK) ) {
-                    alt58=1;
+                if ( (LA53_0==VT_SQUARE_CHUNK) ) {
+                    alt53=1;
                 }
 
 
-                switch (alt58) {
+                switch (alt53) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:34: sc+= VT_SQUARE_CHUNK
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:390:34: sc+= VT_SQUARE_CHUNK
             	    {
-            	    sc=(DroolsTree)match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_accessor_element2226); 
+            	    sc=(DroolsTree)match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_accessor_element2121); 
             	    if (list_sc==null) list_sc=new ArrayList();
             	    list_sc.add(sc);
 
@@ -4318,7 +4113,7 @@
             	    break;
 
             	default :
-            	    break loop58;
+            	    break loop53;
                 }
             } while (true);
 
@@ -4341,7 +4136,7 @@
 
 
     // $ANTLR start "pattern_type"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:404:1: pattern_type returns [BaseDescr dataType] : ^( VT_PATTERN_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:394:1: pattern_type returns [BaseDescr dataType] : ^( VT_PATTERN_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) ;
     public final BaseDescr pattern_type() throws RecognitionException {
         BaseDescr dataType = null;
 
@@ -4351,29 +4146,29 @@
         List list_rightList=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:405:2: ( ^( VT_PATTERN_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:405:4: ^( VT_PATTERN_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:2: ( ^( VT_PATTERN_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:4: ^( VT_PATTERN_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* )
             {
-            match(input,VT_PATTERN_TYPE,FOLLOW_VT_PATTERN_TYPE_in_pattern_type2247); 
+            match(input,VT_PATTERN_TYPE,FOLLOW_VT_PATTERN_TYPE_in_pattern_type2142); 
 
             match(input, Token.DOWN, null); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:405:28: (idList+= ID )+
-            int cnt59=0;
-            loop59:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:28: (idList+= ID )+
+            int cnt54=0;
+            loop54:
             do {
-                int alt59=2;
-                int LA59_0 = input.LA(1);
+                int alt54=2;
+                int LA54_0 = input.LA(1);
 
-                if ( (LA59_0==ID) ) {
-                    alt59=1;
+                if ( (LA54_0==ID) ) {
+                    alt54=1;
                 }
 
 
-                switch (alt59) {
+                switch (alt54) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:405:28: idList+= ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:28: idList+= ID
             	    {
-            	    idList=(DroolsTree)match(input,ID,FOLLOW_ID_in_pattern_type2251); 
+            	    idList=(DroolsTree)match(input,ID,FOLLOW_ID_in_pattern_type2146); 
             	    if (list_idList==null) list_idList=new ArrayList();
             	    list_idList.add(idList);
 
@@ -4382,31 +4177,31 @@
             	    break;
 
             	default :
-            	    if ( cnt59 >= 1 ) break loop59;
+            	    if ( cnt54 >= 1 ) break loop54;
                         EarlyExitException eee =
-                            new EarlyExitException(59, input);
+                            new EarlyExitException(54, input);
                         throw eee;
                 }
-                cnt59++;
+                cnt54++;
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:405:34: ( LEFT_SQUARE rightList+= RIGHT_SQUARE )*
-            loop60:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:34: ( LEFT_SQUARE rightList+= RIGHT_SQUARE )*
+            loop55:
             do {
-                int alt60=2;
-                int LA60_0 = input.LA(1);
+                int alt55=2;
+                int LA55_0 = input.LA(1);
 
-                if ( (LA60_0==LEFT_SQUARE) ) {
-                    alt60=1;
+                if ( (LA55_0==LEFT_SQUARE) ) {
+                    alt55=1;
                 }
 
 
-                switch (alt60) {
+                switch (alt55) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:405:35: LEFT_SQUARE rightList+= RIGHT_SQUARE
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:395:35: LEFT_SQUARE rightList+= RIGHT_SQUARE
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_pattern_type2255); 
-            	    rightList=(DroolsTree)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_pattern_type2259); 
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_pattern_type2150); 
+            	    rightList=(DroolsTree)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_pattern_type2154); 
             	    if (list_rightList==null) list_rightList=new ArrayList();
             	    list_rightList.add(rightList);
 
@@ -4415,7 +4210,7 @@
             	    break;
 
             	default :
-            	    break loop60;
+            	    break loop55;
                 }
             } while (true);
 
@@ -4438,7 +4233,7 @@
 
 
     // $ANTLR start "data_type"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:409:1: data_type returns [BaseDescr dataType] : ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:399:1: data_type returns [BaseDescr dataType] : ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) ;
     public final BaseDescr data_type() throws RecognitionException {
         BaseDescr dataType = null;
 
@@ -4448,29 +4243,29 @@
         List list_rightList=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:410:2: ( ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:410:4: ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:2: ( ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:4: ^( VT_DATA_TYPE (idList+= ID )+ ( LEFT_SQUARE rightList+= RIGHT_SQUARE )* )
             {
-            match(input,VT_DATA_TYPE,FOLLOW_VT_DATA_TYPE_in_data_type2281); 
+            match(input,VT_DATA_TYPE,FOLLOW_VT_DATA_TYPE_in_data_type2176); 
 
             match(input, Token.DOWN, null); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:410:25: (idList+= ID )+
-            int cnt61=0;
-            loop61:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:25: (idList+= ID )+
+            int cnt56=0;
+            loop56:
             do {
-                int alt61=2;
-                int LA61_0 = input.LA(1);
+                int alt56=2;
+                int LA56_0 = input.LA(1);
 
-                if ( (LA61_0==ID) ) {
-                    alt61=1;
+                if ( (LA56_0==ID) ) {
+                    alt56=1;
                 }
 
 
-                switch (alt61) {
+                switch (alt56) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:410:25: idList+= ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:25: idList+= ID
             	    {
-            	    idList=(DroolsTree)match(input,ID,FOLLOW_ID_in_data_type2285); 
+            	    idList=(DroolsTree)match(input,ID,FOLLOW_ID_in_data_type2180); 
             	    if (list_idList==null) list_idList=new ArrayList();
             	    list_idList.add(idList);
 
@@ -4479,31 +4274,31 @@
             	    break;
 
             	default :
-            	    if ( cnt61 >= 1 ) break loop61;
+            	    if ( cnt56 >= 1 ) break loop56;
                         EarlyExitException eee =
-                            new EarlyExitException(61, input);
+                            new EarlyExitException(56, input);
                         throw eee;
                 }
-                cnt61++;
+                cnt56++;
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:410:31: ( LEFT_SQUARE rightList+= RIGHT_SQUARE )*
-            loop62:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:31: ( LEFT_SQUARE rightList+= RIGHT_SQUARE )*
+            loop57:
             do {
-                int alt62=2;
-                int LA62_0 = input.LA(1);
+                int alt57=2;
+                int LA57_0 = input.LA(1);
 
-                if ( (LA62_0==LEFT_SQUARE) ) {
-                    alt62=1;
+                if ( (LA57_0==LEFT_SQUARE) ) {
+                    alt57=1;
                 }
 
 
-                switch (alt62) {
+                switch (alt57) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:410:32: LEFT_SQUARE rightList+= RIGHT_SQUARE
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g:400:32: LEFT_SQUARE rightList+= RIGHT_SQUARE
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_data_type2289); 
-            	    rightList=(DroolsTree)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_data_type2293); 
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_data_type2184); 
+            	    rightList=(DroolsTree)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_data_type2188); 
             	    if (list_rightList==null) list_rightList=new ArrayList();
             	    list_rightList.add(rightList);
 
@@ -4512,7 +4307,7 @@
             	    break;
 
             	default :
-            	    break loop62;
+            	    break loop57;
                 }
             } while (true);
 
@@ -4544,7 +4339,7 @@
     public static final BitSet FOLLOW_VK_PACKAGE_in_package_statement71 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_package_id_in_package_statement75 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_PACKAGE_ID_in_package_id102 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_package_id106 = new BitSet(new long[]{0x0000000000000008L,0x0000000000200000L});
+    public static final BitSet FOLLOW_ID_in_package_id106 = new BitSet(new long[]{0x0000000000000008L,0x0000000000010000L});
     public static final BitSet FOLLOW_rule_attribute_in_statement124 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_function_import_statement_in_statement134 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_import_statement_in_statement144 = new BitSet(new long[]{0x0000000000000002L});
@@ -4560,7 +4355,7 @@
     public static final BitSet FOLLOW_VK_FUNCTION_in_function_import_statement254 = new BitSet(new long[]{0x0000020000000000L});
     public static final BitSet FOLLOW_import_name_in_function_import_statement258 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_IMPORT_ID_in_import_name277 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_import_name281 = new BitSet(new long[]{0x0000000000000008L,0x0000000000A00000L});
+    public static final BitSet FOLLOW_ID_in_import_name281 = new BitSet(new long[]{0x0000000000000008L,0x0000000000050000L});
     public static final BitSet FOLLOW_DOT_STAR_in_import_name286 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_GLOBAL_in_global309 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_data_type_in_global313 = new BitSet(new long[]{0x0000040000000000L});
@@ -4572,7 +4367,7 @@
     public static final BitSet FOLLOW_VT_CURLY_CHUNK_in_function356 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_TEMPLATE_in_template381 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_TEMPLATE_ID_in_template385 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_template_slot_in_template394 = new BitSet(new long[]{0x0000000000008000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_template_slot_in_template394 = new BitSet(new long[]{0x0000000000008000L,0x0000000000080000L});
     public static final BitSet FOLLOW_END_in_template402 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_SLOT_in_template_slot422 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_data_type_in_template_slot426 = new BitSet(new long[]{0x0000000000004000L});
@@ -4580,14 +4375,14 @@
     public static final BitSet FOLLOW_VK_QUERY_in_query452 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_QUERY_ID_in_query456 = new BitSet(new long[]{0x0000100000400000L});
     public static final BitSet FOLLOW_parameters_in_query460 = new BitSet(new long[]{0x0000100000400000L});
-    public static final BitSet FOLLOW_lhs_block_in_query465 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_lhs_block_in_query465 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
     public static final BitSet FOLLOW_END_in_query469 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_RULE_in_rule496 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_RULE_ID_in_rule500 = new BitSet(new long[]{0x0800000000030000L,0x0000000120000000L});
+    public static final BitSet FOLLOW_VT_RULE_ID_in_rule500 = new BitSet(new long[]{0x0800000000030000L,0x0000000009000000L});
     public static final BitSet FOLLOW_VK_EXTEND_in_rule505 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_RULE_ID_in_rule509 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_decl_metadata_in_rule519 = new BitSet(new long[]{0x0000000000030000L,0x0000000120000000L});
-    public static final BitSet FOLLOW_rule_attributes_in_rule530 = new BitSet(new long[]{0x0000000000020000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_decl_metadata_in_rule519 = new BitSet(new long[]{0x0000000000030000L,0x0000000009000000L});
+    public static final BitSet FOLLOW_rule_attributes_in_rule530 = new BitSet(new long[]{0x0000000000020000L,0x0000000008000000L});
     public static final BitSet FOLLOW_when_part_in_rule539 = new BitSet(new long[]{0x0000000000020000L});
     public static final BitSet FOLLOW_VT_RHS_CHUNK_in_rule544 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_WHEN_in_when_part563 = new BitSet(new long[]{0x0000100000400000L});
@@ -4596,24 +4391,24 @@
     public static final BitSet FOLLOW_VK_ATTRIBUTES_in_rule_attributes591 = new BitSet(new long[]{0x01FFE00000000000L});
     public static final BitSet FOLLOW_rule_attribute_in_rule_attributes597 = new BitSet(new long[]{0x01FFE00000000008L});
     public static final BitSet FOLLOW_VT_PARAM_LIST_in_parameters621 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_param_definition_in_parameters626 = new BitSet(new long[]{0x0000004000000008L,0x0000000000200000L});
-    public static final BitSet FOLLOW_data_type_in_param_definition648 = new BitSet(new long[]{0x0000004000000008L,0x0000000000200000L});
+    public static final BitSet FOLLOW_param_definition_in_parameters626 = new BitSet(new long[]{0x0000004000000008L,0x0000000000010000L});
+    public static final BitSet FOLLOW_data_type_in_param_definition648 = new BitSet(new long[]{0x0000004000000008L,0x0000000000010000L});
     public static final BitSet FOLLOW_argument_in_param_definition653 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_argument673 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument676 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument680 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
+    public static final BitSet FOLLOW_ID_in_argument673 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument676 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument680 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
     public static final BitSet FOLLOW_VK_DECLARE_in_type_declaration706 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_TYPE_DECLARE_ID_in_type_declaration710 = new BitSet(new long[]{0x0000000000000000L,0x0000000021200000L});
-    public static final BitSet FOLLOW_decl_metadata_in_type_declaration719 = new BitSet(new long[]{0x0000000000000000L,0x0000000021200000L});
-    public static final BitSet FOLLOW_decl_field_in_type_declaration732 = new BitSet(new long[]{0x0000000000000000L,0x0000000001200000L});
+    public static final BitSet FOLLOW_VT_TYPE_DECLARE_ID_in_type_declaration710 = new BitSet(new long[]{0x0000000000000000L,0x0000000001090000L});
+    public static final BitSet FOLLOW_decl_metadata_in_type_declaration719 = new BitSet(new long[]{0x0000000000000000L,0x0000000001090000L});
+    public static final BitSet FOLLOW_decl_field_in_type_declaration732 = new BitSet(new long[]{0x0000000000000000L,0x0000000000090000L});
     public static final BitSet FOLLOW_END_in_type_declaration738 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_AT_in_decl_metadata763 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_ID_in_decl_metadata767 = new BitSet(new long[]{0x0000000000100000L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_decl_metadata771 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_ID_in_decl_field798 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_decl_field_initialization_in_decl_field802 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_data_type_in_decl_field807 = new BitSet(new long[]{0x0000000000000008L,0x0000000020000000L});
-    public static final BitSet FOLLOW_decl_metadata_in_decl_field812 = new BitSet(new long[]{0x0000000000000008L,0x0000000020000000L});
+    public static final BitSet FOLLOW_data_type_in_decl_field807 = new BitSet(new long[]{0x0000000000000008L,0x0000000001000000L});
+    public static final BitSet FOLLOW_decl_metadata_in_decl_field812 = new BitSet(new long[]{0x0000000000000008L,0x0000000001000000L});
     public static final BitSet FOLLOW_EQUALS_in_decl_field_initialization839 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_decl_field_initialization843 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_SALIENCE_in_rule_attribute866 = new BitSet(new long[]{0x0000000000000004L});
@@ -4643,16 +4438,16 @@
     public static final BitSet FOLLOW_VK_DIALECT_in_rule_attribute1038 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_STRING_in_rule_attribute1042 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_AND_IMPLICIT_in_lhs_block1067 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs_block1072 = new BitSet(new long[]{0x0000000087800008L,0x000000200000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs_block1072 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_VT_OR_PREFIX_in_lhs1098 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs1103 = new BitSet(new long[]{0x0000000087800008L,0x000000200000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs1103 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_VT_OR_INFIX_in_lhs1119 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs1123 = new BitSet(new long[]{0x0000000087800008L,0x000000200000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs1123 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_lhs_in_lhs1127 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_AND_PREFIX_in_lhs1139 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs1144 = new BitSet(new long[]{0x0000000087800008L,0x000000200000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs1144 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_VT_AND_INFIX_in_lhs1160 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs1164 = new BitSet(new long[]{0x0000000087800008L,0x000000200000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs1164 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_lhs_in_lhs1168 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_EXISTS_in_lhs1180 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_lhs_in_lhs1184 = new BitSet(new long[]{0x0000000000000008L});
@@ -4661,9 +4456,9 @@
     public static final BitSet FOLLOW_VK_EVAL_in_lhs1212 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_lhs1216 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_FORALL_in_lhs1228 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs1233 = new BitSet(new long[]{0x0000000087800008L,0x000000200000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs1233 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_FROM_in_lhs1247 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs1251 = new BitSet(new long[]{0x0000000020000000L,0x0000028000000200L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs1251 = new BitSet(new long[]{0x0000000020000000L,0x0000001400000010L});
     public static final BitSet FOLLOW_from_elements_in_lhs1255 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_lhs_pattern_in_lhs1266 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_ACCUMULATE_in_from_elements1287 = new BitSet(new long[]{0x0000000000000004L});
@@ -4681,7 +4476,7 @@
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1413 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_ACTION_in_accumulate_init_clause1421 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1425 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause1434 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause1434 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
     public static final BitSet FOLLOW_VK_RESULT_in_accumulate_init_clause1441 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause1445 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_REVERSE_in_accumulate_init_reverse_clause1468 = new BitSet(new long[]{0x0000000000000004L});
@@ -4704,23 +4499,23 @@
     public static final BitSet FOLLOW_OVER_in_over_clause1633 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_over_element_in_over_clause1638 = new BitSet(new long[]{0x0000000000200008L});
     public static final BitSet FOLLOW_VT_BEHAVIOR_in_over_element1659 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_over_element1661 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_ID_in_over_element1661 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
     public static final BitSet FOLLOW_ID_in_over_element1665 = new BitSet(new long[]{0x0000000000100000L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_over_element1669 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_FACT_in_fact_expression1692 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_pattern_type_in_fact_expression1696 = new BitSet(new long[]{0x0000001F00100048L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1701 = new BitSet(new long[]{0x0000001F00100048L,0x0007F81E020809F8L});
+    public static final BitSet FOLLOW_pattern_type_in_fact_expression1696 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0104048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1701 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0104048L});
     public static final BitSet FOLLOW_VT_FACT_BINDING_in_fact_expression1715 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1719 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
+    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1719 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0104048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1723 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_FACT_OR_in_fact_expression1735 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1739 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1739 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0104048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1743 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_FIELD_in_fact_expression1754 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_field_element_in_fact_expression1758 = new BitSet(new long[]{0x0000001F00100048L,0x0007F81E020809F8L});
+    public static final BitSet FOLLOW_field_element_in_fact_expression1758 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0104048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1762 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_BIND_FIELD_in_fact_expression1773 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1777 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
+    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1777 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0104048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1781 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_EVAL_in_fact_expression1792 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression1796 = new BitSet(new long[]{0x0000000000000008L});
@@ -4736,54 +4531,39 @@
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1877 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_LESS_EQUAL_in_fact_expression1889 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1893 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_CONTAINS_in_fact_expression1905 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1909 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1914 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_EXCLUDES_in_fact_expression1926 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1930 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1935 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_MATCHES_in_fact_expression1947 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1951 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1956 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_SOUNDSLIKE_in_fact_expression1968 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1972 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1977 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_MEMBEROF_in_fact_expression1989 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1993 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1998 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_OPERATOR_in_fact_expression2010 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression2014 = new BitSet(new long[]{0x0000001F00180040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_fact_expression2019 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2024 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_IN_in_fact_expression2035 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression2039 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2045 = new BitSet(new long[]{0x0000001F00100048L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_expression2060 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2064 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2068 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_fact_expression2078 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2082 = new BitSet(new long[]{0x0000001F00100040L,0x0007F81E020809F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2086 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_fact_expression2097 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_accessor_element_in_fact_expression2102 = new BitSet(new long[]{0x0000002000000008L});
-    public static final BitSet FOLLOW_STRING_in_fact_expression2117 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_fact_expression2127 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_fact_expression2137 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_fact_expression2147 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_fact_expression2157 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression2167 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_field_element2189 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_accessor_element_in_field_element2194 = new BitSet(new long[]{0x0000002000000008L});
-    public static final BitSet FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element2218 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_accessor_element2222 = new BitSet(new long[]{0x0000000000080008L});
-    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_accessor_element2226 = new BitSet(new long[]{0x0000000000080008L});
-    public static final BitSet FOLLOW_VT_PATTERN_TYPE_in_pattern_type2247 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_pattern_type2251 = new BitSet(new long[]{0x0000000000000008L,0x0008000000200000L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_pattern_type2255 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_pattern_type2259 = new BitSet(new long[]{0x0000000000000008L,0x0008000000000000L});
-    public static final BitSet FOLLOW_VT_DATA_TYPE_in_data_type2281 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_data_type2285 = new BitSet(new long[]{0x0000000000000008L,0x0008000000200000L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_data_type2289 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_data_type2293 = new BitSet(new long[]{0x0000000000000008L,0x0008000000000000L});
+    public static final BitSet FOLLOW_VK_OPERATOR_in_fact_expression1905 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1909 = new BitSet(new long[]{0x0000001F00180040L,0x00003FC0F0104048L});
+    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1914 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0104048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1919 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_VK_IN_in_fact_expression1930 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1934 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0104048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1940 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0104048L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_expression1955 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1959 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0104048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1963 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_fact_expression1973 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1977 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0104048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1981 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1992 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_accessor_element_in_fact_expression1997 = new BitSet(new long[]{0x0000002000000008L});
+    public static final BitSet FOLLOW_STRING_in_fact_expression2012 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_fact_expression2022 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_fact_expression2032 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_fact_expression2042 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_fact_expression2052 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression2062 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_field_element2084 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_accessor_element_in_field_element2089 = new BitSet(new long[]{0x0000002000000008L});
+    public static final BitSet FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element2113 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_accessor_element2117 = new BitSet(new long[]{0x0000000000080008L});
+    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_accessor_element2121 = new BitSet(new long[]{0x0000000000080008L});
+    public static final BitSet FOLLOW_VT_PATTERN_TYPE_in_pattern_type2142 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_pattern_type2146 = new BitSet(new long[]{0x0000000000000008L,0x0000400000010000L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_pattern_type2150 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_pattern_type2154 = new BitSet(new long[]{0x0000000000000008L,0x0000400000000000L});
+    public static final BitSet FOLLOW_VT_DATA_TYPE_in_data_type2176 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_data_type2180 = new BitSet(new long[]{0x0000000000000008L,0x0000400000010000L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_data_type2184 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_data_type2188 = new BitSet(new long[]{0x0000000000000008L,0x0000400000000000L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/main/java/org/drools/lang/DroolsTreeAdaptor.java	2008-11-24 16:51:51 UTC (rev 24070)
@@ -42,7 +42,6 @@
 					|| token.getType() == DRLLexer.VK_ATTRIBUTES
 					|| token.getType() == DRLLexer.VK_AUTO_FOCUS
 					|| token.getType() == DRLLexer.COLLECT
-					|| token.getType() == DRLLexer.VK_CONTAINS
 					|| token.getType() == DRLLexer.VK_DATE_EFFECTIVE
 					|| token.getType() == DRLLexer.VK_DATE_EXPIRES
 					|| token.getType() == DRLLexer.VK_DECLARE
@@ -50,7 +49,6 @@
 					|| token.getType() == DRLLexer.VK_DURATION
 					|| token.getType() == DRLLexer.VK_ENABLED
 					|| token.getType() == DRLLexer.VK_ENTRY_POINT
-					|| token.getType() == DRLLexer.VK_EXCLUDES
 					|| token.getType() == DRLLexer.VK_EXISTS
 					|| token.getType() == DRLLexer.VK_FORALL
 					|| token.getType() == DRLLexer.FROM
@@ -60,8 +58,6 @@
 					|| token.getType() == DRLLexer.VK_IN
 					|| token.getType() == DRLLexer.INIT
 					|| token.getType() == DRLLexer.VK_LOCK_ON_ACTIVE
-					|| token.getType() == DRLLexer.VK_MATCHES
-					|| token.getType() == DRLLexer.VK_MEMBEROF
 					|| token.getType() == DRLLexer.VK_NO_LOOP
 					|| token.getType() == DRLLexer.VK_NOT
 					|| token.getType() == DRLLexer.VK_OR
@@ -72,7 +68,6 @@
 					|| token.getType() == DRLLexer.VK_RULE
 					|| token.getType() == DRLLexer.VK_RULEFLOW_GROUP
 					|| token.getType() == DRLLexer.VK_SALIENCE
-					|| token.getType() == DRLLexer.VK_SOUNDSLIKE
 					|| token.getType() == DRLLexer.VK_TEMPLATE) {
 				tree.setEditorElementType(DroolsEditorType.KEYWORD);
 			} else if (token.getType() == DRLLexer.FLOAT

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-11-24 16:51:51 UTC (rev 24070)
@@ -79,11 +79,6 @@
 	VK_FUNCTION;
 	VK_GLOBAL;
 	VK_EVAL;
-	VK_CONTAINS;
-	VK_MATCHES;
-	VK_EXCLUDES;
-	VK_SOUNDSLIKE;
-	VK_MEMBEROF;
 	VK_ENTRY_POINT;
 	VK_NOT;
 	VK_IN;
@@ -1624,36 +1619,6 @@
 		->	VK_EVAL[$id]
 	;
 
-contains_key
-	:	{(validateIdentifierKey(DroolsSoftKeywords.CONTAINS))}?=>  id=ID
-	{	emit($id, DroolsEditorType.KEYWORD);	}
-		->	VK_CONTAINS[$id]
-	;
-
-matches_key
-	:	{(validateIdentifierKey(DroolsSoftKeywords.MATCHES))}?=>  id=ID
-	{	emit($id, DroolsEditorType.KEYWORD);	}
-		->	VK_MATCHES[$id]
-	;
-
-excludes_key
-	:	{(validateIdentifierKey(DroolsSoftKeywords.EXCLUDES))}?=>  id=ID
-	{	emit($id, DroolsEditorType.KEYWORD);	}
-		->	VK_EXCLUDES[$id]
-	;
-
-soundslike_key
-	:	{(validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE))}?=>  id=ID
-	{	emit($id, DroolsEditorType.KEYWORD);	}
-		->	VK_SOUNDSLIKE[$id]
-	;
-
-memberof_key
-	:	{(validateIdentifierKey(DroolsSoftKeywords.MEMBEROF))}?=>  id=ID
-	{	emit($id, DroolsEditorType.KEYWORD);	}
-		->	VK_MEMBEROF[$id]
-	;
-
 not_key
 	:	{(validateIdentifierKey(DroolsSoftKeywords.NOT))}?=>  id=ID
 	{	emit($id, DroolsEditorType.KEYWORD);	}

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/DescrBuilderTree.g	2008-11-24 16:51:51 UTC (rev 24070)
@@ -352,16 +352,6 @@
 	{	$descr = factory.setupRestriction($op, null, $fe.descr);	}
 	|	^(op=LESS_EQUAL fe=fact_expression)
 	{	$descr = factory.setupRestriction($op, null, $fe.descr);	}
-	|	^(op=VK_CONTAINS not=VK_NOT? fe=fact_expression)
-	{	$descr = factory.setupRestriction($op, $not, $fe.descr);	}
-	|	^(op=VK_EXCLUDES not=VK_NOT? fe=fact_expression)
-	{	$descr = factory.setupRestriction($op, $not, $fe.descr);	}
-	|	^(op=VK_MATCHES not=VK_NOT? fe=fact_expression)
-	{	$descr = factory.setupRestriction($op, $not, $fe.descr);	}
-	|	^(op=VK_SOUNDSLIKE not=VK_NOT? fe=fact_expression)
-	{	$descr = factory.setupRestriction($op, $not, $fe.descr);	}
-	|	^(op=VK_MEMBEROF not=VK_NOT? fe=fact_expression)
-	{	$descr = factory.setupRestriction($op, $not, $fe.descr);	}
 	|	^(op=VK_OPERATOR not=VK_NOT? param=VT_SQUARE_CHUNK? fe=fact_expression)
 	{	$descr = factory.setupRestriction($op, $not, $fe.descr, $param);	}
 

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g	2008-11-24 16:51:51 UTC (rev 24070)
@@ -187,11 +187,7 @@
 	|	^(LESS fact_expression)
 	|	^(LESS_EQUAL fact_expression)
 	|	^(NOT_EQUAL fact_expression)
-	|	^(VK_CONTAINS VK_NOT? fact_expression)
-	|	^(VK_EXCLUDES VK_NOT? fact_expression)
-	|	^(VK_MATCHES VK_NOT? fact_expression)
-	|	^(VK_SOUNDSLIKE VK_NOT? fact_expression)
-	|	^(VK_MEMBEROF VK_NOT? fact_expression)
+	|	^(VK_OPERATOR VK_NOT? VT_SQUARE_CHUNK? fact_expression)
 	|	^(ID VK_NOT? VT_SQUARE_CHUNK? fact_expression)
 	|	^(VT_BIND_FIELD VT_LABEL fact_expression)
 	|	^(VT_FIELD fact_expression fact_expression?)

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestDRL.java
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestDRL.java	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestDRL.java	2008-11-24 16:51:51 UTC (rev 24070)
@@ -5,11 +5,19 @@
 import java.lang.reflect.*;
 import org.antlr.runtime.*;
 import org.antlr.runtime.tree.*;
+import org.drools.base.evaluators.EvaluatorRegistry;
 
 public class TestDRL extends TestCase {
 	String stdout;
 	String stderr;
 
+	protected void setUp() throws Exception {
+		super.setUp();
+		
+		// initializes pluggable operators
+		new EvaluatorRegistry();
+	}
+
 	public void testPackage_statement1() throws Exception {
 		// test input: "package foo"
 		Object retval = execParser("package_statement", "package foo", false);
@@ -749,8 +757,8 @@
 	}
 
 	public void testCompilation_unit81() throws Exception {
-		// test input: "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this `after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not `before [1, 10] $b )\nthen\nend"
-		Object retval = execParser("compilation_unit", "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this `after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not `before [1, 10] $b )\nthen\nend", false);
+		// test input: "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not before [1, 10] $b )\nthen\nend"
+		Object retval = execParser("compilation_unit", "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not before [1, 10] $b )\nthen\nend", false);
 		Object actual = examineParserExecResult(10, retval);
 		Object expecting = "(VT_COMPILATION_UNIT (package (VT_PACKAGE_ID org drools)) (rule \"test pluggable operators\" when (VT_AND_IMPLICIT (VT_PATTERN (VT_FACT_BINDING $a (VT_FACT (VT_PATTERN_TYPE EventA)))) (VT_PATTERN (VT_FACT_BINDING $b (VT_FACT (VT_PATTERN_TYPE EventB) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (after [1,10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $c (VT_FACT (VT_PATTERN_TYPE EventC) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (finishes (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b))))))) (VT_PATTERN (VT_FACT_BINDING $d (VT_FACT (VT_PATTERN_TYPE EventD) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (starts not (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $e (VT_FACT (VT_PATTERN_TYPE EventE) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (before not [1, 10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b)))))))) then\nend))";
 
@@ -1442,8 +1450,8 @@
 	}
 
 	public void testNormal_lhs_block70() throws Exception {
-		// test input: "\t\t    $a : EventA()\n\t\t    $b : EventB( this `after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not `before [1, 10] $b )\n\t\t\t"
-		Object retval = execParser("normal_lhs_block", "\t\t    $a : EventA()\n\t\t    $b : EventB( this `after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not `before [1, 10] $b )\n\t\t\t", false);
+		// test input: "\t\t    $a : EventA()\n\t\t    $b : EventB( this after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not before [1, 10] $b )\n\t\t\t"
+		Object retval = execParser("normal_lhs_block", "\t\t    $a : EventA()\n\t\t    $b : EventB( this after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not before [1, 10] $b )\n\t\t\t", false);
 		Object actual = examineParserExecResult(10, retval);
 		Object expecting = "(VT_AND_IMPLICIT (VT_PATTERN (VT_FACT_BINDING $a (VT_FACT (VT_PATTERN_TYPE EventA)))) (VT_PATTERN (VT_FACT_BINDING $b (VT_FACT (VT_PATTERN_TYPE EventB) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (after [1,10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $c (VT_FACT (VT_PATTERN_TYPE EventC) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (finishes (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b))))))) (VT_PATTERN (VT_FACT_BINDING $d (VT_FACT (VT_PATTERN_TYPE EventD) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (starts not (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $e (VT_FACT (VT_PATTERN_TYPE EventE) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (before not [1, 10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b))))))))";
 

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestTree2TestDRL.java
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestTree2TestDRL.java	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/TestTree2TestDRL.java	2008-11-24 16:51:51 UTC (rev 24070)
@@ -5,11 +5,19 @@
 import java.lang.reflect.*;
 import org.antlr.runtime.*;
 import org.antlr.runtime.tree.*;
+import org.drools.base.evaluators.EvaluatorRegistry;
 
 public class TestTree2TestDRL extends TestCase {
 	String stdout;
 	String stderr;
 
+	public void setUp() throws Exception {
+		super.setUp();
+		
+		// initializes pluggable operators
+		new EvaluatorRegistry();
+	}
+
 	public void testPackage_statement_walks_Package_statement1() throws Exception {
 		// test input: "package foo"
 		Object retval = execTreeParser("package_statement", "package_statement", "package foo", false);
@@ -749,8 +757,8 @@
 	}
 
 	public void testCompilation_unit_walks_Compilation_unit81() throws Exception {
-		// test input: "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this `after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not `before [1, 10] $b )\nthen\nend"
-		Object retval = execTreeParser("compilation_unit", "compilation_unit", "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this `after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not `before [1, 10] $b )\nthen\nend", false);
+		// test input: "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not before [1, 10] $b )\nthen\nend"
+		Object retval = execTreeParser("compilation_unit", "compilation_unit", "package org.drools;\n\nrule \"test pluggable operators\"\nwhen\n    $a : EventA()\n    $b : EventB( this after[1,10] $a )\n    $c : EventC( this finishes $b )\n    $d : EventD( this not starts $a )\n    $e : EventE( this not before [1, 10] $b )\nthen\nend", false);
 		Object actual = examineParserExecResult(27, retval);
 		Object expecting = "OK";
 		
@@ -1406,8 +1414,8 @@
 	}
 
 	public void testLhs_block_walks_Normal_lhs_block70() throws Exception {
-		// test input: "\t\t    $a : EventA()\n\t\t    $b : EventB( this `after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not `before [1, 10] $b )\n\t\t\t"
-		Object retval = execTreeParser("lhs_block", "normal_lhs_block", "\t\t    $a : EventA()\n\t\t    $b : EventB( this `after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not `before [1, 10] $b )\n\t\t\t", false);
+		// test input: "\t\t    $a : EventA()\n\t\t    $b : EventB( this after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not before [1, 10] $b )\n\t\t\t"
+		Object retval = execTreeParser("lhs_block", "normal_lhs_block", "\t\t    $a : EventA()\n\t\t    $b : EventB( this after[1,10] $a )\n\t\t    $c : EventC( this finishes $b )\n\t\t    $d : EventD( this not starts $a )\n\t\t    $e : EventE( this not before [1, 10] $b )\n\t\t\t", false);
 		Object actual = examineParserExecResult(27, retval);
 		Object expecting = "OK";
 		

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/Tree2TestDRL.java
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/Tree2TestDRL.java	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/Tree2TestDRL.java	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1,4 +1,4 @@
-// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g 2008-11-21 15:37:44
+// $ANTLR 3.1.1 /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g 2008-11-24 14:43:05
 
 	package org.drools.lang;
 
@@ -10,135 +10,131 @@
 
 public class Tree2TestDRL 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_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", "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_CONTAINS", "VK_MATCHES", "VK_EXCLUDES", "VK_SOUNDSLIKE", "VK_MEMBEROF", "VK_ENTRY_POINT", "VK_NOT", "VK_IN", "VK_OR", "VK_AND", "VK_EXISTS", "VK_FORALL", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "SEMICOLON", "ID", "DOT", "DOT_STAR", "END", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "INIT", "COLLECT", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "GRAVE_ACCENT", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "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_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", "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_EXISTS", "VK_FORALL", "VK_ACTION", "VK_REVERSE", "VK_RESULT", "VK_OPERATOR", "SEMICOLON", "ID", "DOT", "DOT_STAR", "END", "STRING", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "AT", "COLON", "EQUALS", "WHEN", "BOOL", "INT", "DOUBLE_PIPE", "DOUBLE_AMPER", "FROM", "OVER", "ACCUMULATE", "INIT", "COLLECT", "ARROW", "EQUAL", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "NOT_EQUAL", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "LEFT_CURLY", "RIGHT_CURLY", "MISC", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "GRAVE_ACCENT", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT"
     };
-    public static final int COMMA=90;
+    public static final int COMMA=86;
     public static final int VT_PATTERN_TYPE=39;
     public static final int VT_ACCUMULATE_ID_CLAUSE=28;
     public static final int VK_DIALECT=54;
     public static final int VK_FUNCTION=65;
-    public static final int END=87;
-    public static final int HexDigit=124;
+    public static final int END=83;
+    public static final int HexDigit=119;
     public static final int VK_ATTRIBUTES=57;
     public static final int VT_EXPRESSION_CHAIN=30;
-    public static final int MISC=120;
+    public static final int MISC=115;
     public static final int VT_AND_PREFIX=23;
     public static final int VK_QUERY=63;
-    public static final int THEN=117;
+    public static final int THEN=112;
     public static final int VK_AUTO_FOCUS=49;
-    public static final int DOT=85;
+    public static final int DOT=81;
     public static final int VK_IMPORT=60;
     public static final int VT_SLOT=15;
     public static final int VT_PACKAGE_ID=40;
-    public static final int LEFT_SQUARE=115;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=127;
+    public static final int LEFT_SQUARE=110;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=123;
     public static final int VT_DATA_TYPE=38;
-    public static final int VK_MATCHES=69;
     public static final int VT_FACT=6;
-    public static final int LEFT_CURLY=118;
-    public static final int AT=92;
-    public static final int LEFT_PAREN=89;
-    public static final int DOUBLE_AMPER=99;
+    public static final int LEFT_CURLY=113;
+    public static final int AT=88;
+    public static final int LEFT_PAREN=85;
+    public static final int DOUBLE_AMPER=95;
     public static final int VT_QUERY_ID=9;
     public static final int VT_ACCESSOR_PATH=36;
     public static final int VT_LABEL=8;
-    public static final int WHEN=95;
+    public static final int WHEN=91;
     public static final int VT_ENTRYPOINT_ID=13;
-    public static final int VK_SOUNDSLIKE=71;
     public static final int VK_SALIENCE=55;
     public static final int VT_FIELD=35;
-    public static final int WS=122;
-    public static final int OVER=101;
-    public static final int STRING=88;
-    public static final int VK_AND=77;
+    public static final int WS=117;
+    public static final int OVER=97;
+    public static final int STRING=84;
+    public static final int VK_AND=72;
     public static final int VT_ACCESSOR_ELEMENT=37;
-    public static final int VT_ACCUMULATE_INIT_CLAUSE=27;
     public static final int VK_GLOBAL=66;
-    public static final int VK_REVERSE=81;
+    public static final int VT_ACCUMULATE_INIT_CLAUSE=27;
+    public static final int VK_REVERSE=76;
     public static final int VT_BEHAVIOR=21;
-    public static final int GRAVE_ACCENT=112;
+    public static final int GRAVE_ACCENT=122;
     public static final int VK_DURATION=53;
     public static final int VT_SQUARE_CHUNK=19;
-    public static final int VK_FORALL=79;
+    public static final int VK_FORALL=74;
     public static final int VT_PAREN_CHUNK=20;
     public static final int VT_COMPILATION_UNIT=4;
-    public static final int COLLECT=104;
+    public static final int COLLECT=100;
     public static final int VK_ENABLED=56;
-    public static final int EQUALS=94;
-    public static final int VK_RESULT=82;
-    public static final int UnicodeEscape=125;
+    public static final int VK_RESULT=77;
+    public static final int EQUALS=90;
+    public static final int UnicodeEscape=120;
     public static final int VK_PACKAGE=61;
     public static final int VT_RULE_ID=12;
-    public static final int EQUAL=106;
+    public static final int EQUAL=102;
     public static final int VK_NO_LOOP=48;
-    public static final int SEMICOLON=83;
+    public static final int SEMICOLON=79;
     public static final int VK_TEMPLATE=62;
     public static final int VT_AND_IMPLICIT=22;
-    public static final int NULL=114;
-    public static final int COLON=93;
-    public static final int MULTI_LINE_COMMENT=129;
+    public static final int NULL=109;
+    public static final int COLON=89;
+    public static final int MULTI_LINE_COMMENT=125;
     public static final int VT_RULE_ATTRIBUTES=16;
-    public static final int RIGHT_SQUARE=116;
+    public static final int RIGHT_SQUARE=111;
     public static final int VK_AGENDA_GROUP=51;
     public static final int VT_FACT_OR=33;
-    public static final int VK_NOT=74;
+    public static final int VK_NOT=69;
     public static final int VK_DATE_EXPIRES=46;
-    public static final int ARROW=105;
-    public static final int FLOAT=113;
-    public static final int INIT=103;
+    public static final int ARROW=101;
+    public static final int FLOAT=108;
+    public static final int INIT=99;
     public static final int VK_EXTEND=59;
     public static final int VT_SLOT_ID=14;
     public static final int VT_CURLY_CHUNK=18;
     public static final int VT_OR_PREFIX=24;
-    public static final int DOUBLE_PIPE=98;
-    public static final int LESS=109;
+    public static final int DOUBLE_PIPE=94;
+    public static final int LESS=105;
     public static final int VT_TYPE_DECLARE_ID=11;
     public static final int VT_PATTERN=31;
     public static final int VK_DATE_EFFECTIVE=45;
-    public static final int EscapeSequence=123;
-    public static final int VK_EXISTS=78;
-    public static final int INT=97;
+    public static final int EscapeSequence=118;
+    public static final int VK_EXISTS=73;
+    public static final int INT=93;
     public static final int VT_BIND_FIELD=34;
     public static final int VK_RULE=58;
     public static final int VK_EVAL=67;
-    public static final int GREATER=107;
+    public static final int GREATER=103;
     public static final int VT_FACT_BINDING=32;
-    public static final int ID=84;
-    public static final int FROM=100;
-    public static final int NOT_EQUAL=111;
-    public static final int RIGHT_CURLY=119;
-    public static final int VK_ENTRY_POINT=73;
+    public static final int ID=80;
+    public static final int FROM=96;
+    public static final int NOT_EQUAL=107;
+    public static final int RIGHT_CURLY=114;
+    public static final int VK_OPERATOR=78;
+    public static final int VK_ENTRY_POINT=68;
     public static final int VT_PARAM_LIST=44;
     public static final int VT_AND_INFIX=25;
-    public static final int BOOL=96;
+    public static final int BOOL=92;
     public static final int VT_FROM_SOURCE=29;
-    public static final int VK_CONTAINS=68;
     public static final int VK_LOCK_ON_ACTIVE=47;
     public static final int VT_FUNCTION_IMPORT=5;
-    public static final int VK_IN=75;
+    public static final int VK_IN=70;
     public static final int VT_RHS_CHUNK=17;
-    public static final int VK_MEMBEROF=72;
-    public static final int GREATER_EQUAL=108;
+    public static final int GREATER_EQUAL=104;
     public static final int VT_OR_INFIX=26;
-    public static final int DOT_STAR=86;
-    public static final int VK_OR=76;
+    public static final int DOT_STAR=82;
+    public static final int VK_OR=71;
     public static final int VT_GLOBAL_ID=42;
-    public static final int LESS_EQUAL=110;
-    public static final int ACCUMULATE=102;
+    public static final int LESS_EQUAL=106;
+    public static final int ACCUMULATE=98;
     public static final int VK_RULEFLOW_GROUP=52;
     public static final int VT_FUNCTION_ID=43;
     public static final int EOF=-1;
     public static final int VT_CONSTRAINTS=7;
     public static final int VT_IMPORT_ID=41;
-    public static final int EOL=121;
+    public static final int EOL=116;
     public static final int VK_ACTIVATION_GROUP=50;
-    public static final int OctalEscape=126;
-    public static final int VK_ACTION=80;
-    public static final int VK_EXCLUDES=70;
-    public static final int RIGHT_PAREN=91;
+    public static final int OctalEscape=121;
+    public static final int VK_ACTION=75;
+    public static final int RIGHT_PAREN=87;
     public static final int VT_TEMPLATE_ID=10;
     public static final int VK_DECLARE=64;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=128;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=124;
 
     // delegates
     // delegators
@@ -2607,160 +2603,140 @@
 
 
     // $ANTLR start "fact_expression"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:176:1: fact_expression : ( ^( DOUBLE_PIPE fact_expression fact_expression ) | ^( DOUBLE_AMPER fact_expression fact_expression ) | ^( VT_FACT_BINDING VT_LABEL fact_expression ) | ^( VT_FACT pattern_type ( fact_expression )* ) | ^( VT_FACT_OR fact_expression fact_expression ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_IN ( VK_NOT )? ( fact_expression )+ ) | ^( EQUAL fact_expression ) | ^( GREATER fact_expression ) | ^( GREATER_EQUAL fact_expression ) | ^( LESS fact_expression ) | ^( LESS_EQUAL fact_expression ) | ^( NOT_EQUAL fact_expression ) | ^( VK_CONTAINS ( VK_NOT )? fact_expression ) | ^( VK_EXCLUDES ( VK_NOT )? fact_expression ) | ^( VK_MATCHES ( VK_NOT )? fact_expression ) | ^( VK_SOUNDSLIKE ( VK_NOT )? fact_expression ) | ^( VK_MEMBEROF ( VK_NOT )? fact_expression ) | ^( ID ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression ) | ^( VT_BIND_FIELD VT_LABEL fact_e!
 xpression ) | ^( VT_FIELD fact_expression ( fact_expression )? ) | ^( VT_ACCESSOR_PATH ( accessor_element )+ ) | STRING | INT | FLOAT | BOOL | NULL | VT_PAREN_CHUNK );
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:176:1: fact_expression : ( ^( DOUBLE_PIPE fact_expression fact_expression ) | ^( DOUBLE_AMPER fact_expression fact_expression ) | ^( VT_FACT_BINDING VT_LABEL fact_expression ) | ^( VT_FACT pattern_type ( fact_expression )* ) | ^( VT_FACT_OR fact_expression fact_expression ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_IN ( VK_NOT )? ( fact_expression )+ ) | ^( EQUAL fact_expression ) | ^( GREATER fact_expression ) | ^( GREATER_EQUAL fact_expression ) | ^( LESS fact_expression ) | ^( LESS_EQUAL fact_expression ) | ^( NOT_EQUAL fact_expression ) | ^( VK_OPERATOR ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression ) | ^( ID ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression ) | ^( VT_BIND_FIELD VT_LABEL fact_expression ) | ^( VT_FIELD fact_expression ( fact_expression )? ) | ^( VT_ACCESSOR_PATH ( accessor_element )+ ) | STRING | INT | FLOAT | BOOL | NULL | VT_PAREN_CHUNK );
     public final void fact_expression() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:177:2: ( ^( DOUBLE_PIPE fact_expression fact_expression ) | ^( DOUBLE_AMPER fact_expression fact_expression ) | ^( VT_FACT_BINDING VT_LABEL fact_expression ) | ^( VT_FACT pattern_type ( fact_expression )* ) | ^( VT_FACT_OR fact_expression fact_expression ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_IN ( VK_NOT )? ( fact_expression )+ ) | ^( EQUAL fact_expression ) | ^( GREATER fact_expression ) | ^( GREATER_EQUAL fact_expression ) | ^( LESS fact_expression ) | ^( LESS_EQUAL fact_expression ) | ^( NOT_EQUAL fact_expression ) | ^( VK_CONTAINS ( VK_NOT )? fact_expression ) | ^( VK_EXCLUDES ( VK_NOT )? fact_expression ) | ^( VK_MATCHES ( VK_NOT )? fact_expression ) | ^( VK_SOUNDSLIKE ( VK_NOT )? fact_expression ) | ^( VK_MEMBEROF ( VK_NOT )? fact_expression ) | ^( ID ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression ) | ^( VT_BIND_FIELD VT_LABEL fact_expression !
 ) | ^( VT_FIELD fact_expression ( fact_expression )? ) | ^( VT_ACCESSOR_PATH ( accessor_element )+ ) | STRING | INT | FLOAT | BOOL | NULL | VT_PAREN_CHUNK )
-            int alt49=28;
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:177:2: ( ^( DOUBLE_PIPE fact_expression fact_expression ) | ^( DOUBLE_AMPER fact_expression fact_expression ) | ^( VT_FACT_BINDING VT_LABEL fact_expression ) | ^( VT_FACT pattern_type ( fact_expression )* ) | ^( VT_FACT_OR fact_expression fact_expression ) | ^( VK_EVAL VT_PAREN_CHUNK ) | ^( VK_IN ( VK_NOT )? ( fact_expression )+ ) | ^( EQUAL fact_expression ) | ^( GREATER fact_expression ) | ^( GREATER_EQUAL fact_expression ) | ^( LESS fact_expression ) | ^( LESS_EQUAL fact_expression ) | ^( NOT_EQUAL fact_expression ) | ^( VK_OPERATOR ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression ) | ^( ID ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression ) | ^( VT_BIND_FIELD VT_LABEL fact_expression ) | ^( VT_FIELD fact_expression ( fact_expression )? ) | ^( VT_ACCESSOR_PATH ( accessor_element )+ ) | STRING | INT | FLOAT | BOOL | NULL | VT_PAREN_CHUNK )
+            int alt46=24;
             switch ( input.LA(1) ) {
             case DOUBLE_PIPE:
                 {
-                alt49=1;
+                alt46=1;
                 }
                 break;
             case DOUBLE_AMPER:
                 {
-                alt49=2;
+                alt46=2;
                 }
                 break;
             case VT_FACT_BINDING:
                 {
-                alt49=3;
+                alt46=3;
                 }
                 break;
             case VT_FACT:
                 {
-                alt49=4;
+                alt46=4;
                 }
                 break;
             case VT_FACT_OR:
                 {
-                alt49=5;
+                alt46=5;
                 }
                 break;
             case VK_EVAL:
                 {
-                alt49=6;
+                alt46=6;
                 }
                 break;
             case VK_IN:
                 {
-                alt49=7;
+                alt46=7;
                 }
                 break;
             case EQUAL:
                 {
-                alt49=8;
+                alt46=8;
                 }
                 break;
             case GREATER:
                 {
-                alt49=9;
+                alt46=9;
                 }
                 break;
             case GREATER_EQUAL:
                 {
-                alt49=10;
+                alt46=10;
                 }
                 break;
             case LESS:
                 {
-                alt49=11;
+                alt46=11;
                 }
                 break;
             case LESS_EQUAL:
                 {
-                alt49=12;
+                alt46=12;
                 }
                 break;
             case NOT_EQUAL:
                 {
-                alt49=13;
+                alt46=13;
                 }
                 break;
-            case VK_CONTAINS:
+            case VK_OPERATOR:
                 {
-                alt49=14;
+                alt46=14;
                 }
                 break;
-            case VK_EXCLUDES:
-                {
-                alt49=15;
-                }
-                break;
-            case VK_MATCHES:
-                {
-                alt49=16;
-                }
-                break;
-            case VK_SOUNDSLIKE:
-                {
-                alt49=17;
-                }
-                break;
-            case VK_MEMBEROF:
-                {
-                alt49=18;
-                }
-                break;
             case ID:
                 {
-                alt49=19;
+                alt46=15;
                 }
                 break;
             case VT_BIND_FIELD:
                 {
-                alt49=20;
+                alt46=16;
                 }
                 break;
             case VT_FIELD:
                 {
-                alt49=21;
+                alt46=17;
                 }
                 break;
             case VT_ACCESSOR_PATH:
                 {
-                alt49=22;
+                alt46=18;
                 }
                 break;
             case STRING:
                 {
-                alt49=23;
+                alt46=19;
                 }
                 break;
             case INT:
                 {
-                alt49=24;
+                alt46=20;
                 }
                 break;
             case FLOAT:
                 {
-                alt49=25;
+                alt46=21;
                 }
                 break;
             case BOOL:
                 {
-                alt49=26;
+                alt46=22;
                 }
                 break;
             case NULL:
                 {
-                alt49=27;
+                alt46=23;
                 }
                 break;
             case VT_PAREN_CHUNK:
                 {
-                alt49=28;
+                alt46=24;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 49, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt49) {
+            switch (alt46) {
                 case 1 :
                     // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:177:4: ^( DOUBLE_PIPE fact_expression fact_expression )
                     {
@@ -2837,7 +2813,7 @@
                         int alt37=2;
                         int LA37_0 = input.LA(1);
 
-                        if ( (LA37_0==VT_FACT||LA37_0==VT_PAREN_CHUNK||(LA37_0>=VT_FACT_BINDING && LA37_0<=VT_ACCESSOR_PATH)||(LA37_0>=VK_EVAL && LA37_0<=VK_MEMBEROF)||LA37_0==VK_IN||LA37_0==ID||LA37_0==STRING||(LA37_0>=BOOL && LA37_0<=DOUBLE_AMPER)||(LA37_0>=EQUAL && LA37_0<=NOT_EQUAL)||(LA37_0>=FLOAT && LA37_0<=NULL)) ) {
+                        if ( (LA37_0==VT_FACT||LA37_0==VT_PAREN_CHUNK||(LA37_0>=VT_FACT_BINDING && LA37_0<=VT_ACCESSOR_PATH)||LA37_0==VK_EVAL||LA37_0==VK_IN||LA37_0==VK_OPERATOR||LA37_0==ID||LA37_0==STRING||(LA37_0>=BOOL && LA37_0<=DOUBLE_AMPER)||(LA37_0>=EQUAL && LA37_0<=NULL)) ) {
                             alt37=1;
                         }
 
@@ -2929,7 +2905,7 @@
                         int alt39=2;
                         int LA39_0 = input.LA(1);
 
-                        if ( (LA39_0==VT_FACT||LA39_0==VT_PAREN_CHUNK||(LA39_0>=VT_FACT_BINDING && LA39_0<=VT_ACCESSOR_PATH)||(LA39_0>=VK_EVAL && LA39_0<=VK_MEMBEROF)||LA39_0==VK_IN||LA39_0==ID||LA39_0==STRING||(LA39_0>=BOOL && LA39_0<=DOUBLE_AMPER)||(LA39_0>=EQUAL && LA39_0<=NOT_EQUAL)||(LA39_0>=FLOAT && LA39_0<=NULL)) ) {
+                        if ( (LA39_0==VT_FACT||LA39_0==VT_PAREN_CHUNK||(LA39_0>=VT_FACT_BINDING && LA39_0<=VT_ACCESSOR_PATH)||LA39_0==VK_EVAL||LA39_0==VK_IN||LA39_0==VK_OPERATOR||LA39_0==ID||LA39_0==STRING||(LA39_0>=BOOL && LA39_0<=DOUBLE_AMPER)||(LA39_0>=EQUAL && LA39_0<=NULL)) ) {
                             alt39=1;
                         }
 
@@ -3058,9 +3034,9 @@
                     }
                     break;
                 case 14 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:190:4: ^( VK_CONTAINS ( VK_NOT )? fact_expression )
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:190:4: ^( VK_OPERATOR ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression )
                     {
-                    match(input,VK_CONTAINS,FOLLOW_VK_CONTAINS_in_fact_expression1045); 
+                    match(input,VK_OPERATOR,FOLLOW_VK_OPERATOR_in_fact_expression1045); 
 
                     match(input, Token.DOWN, null); 
                     // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:190:18: ( VK_NOT )?
@@ -3081,41 +3057,25 @@
 
                     }
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1050);
-                    fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-
-                    }
-                    break;
-                case 15 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:4: ^( VK_EXCLUDES ( VK_NOT )? fact_expression )
-                    {
-                    match(input,VK_EXCLUDES,FOLLOW_VK_EXCLUDES_in_fact_expression1057); 
-
-                    match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:18: ( VK_NOT )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:190:26: ( VT_SQUARE_CHUNK )?
                     int alt41=2;
                     int LA41_0 = input.LA(1);
 
-                    if ( (LA41_0==VK_NOT) ) {
+                    if ( (LA41_0==VT_SQUARE_CHUNK) ) {
                         alt41=1;
                     }
                     switch (alt41) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:18: VK_NOT
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:190:26: VT_SQUARE_CHUNK
                             {
-                            match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1059); 
+                            match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1050); 
 
                             }
                             break;
 
                     }
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1062);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1053);
                     fact_expression();
 
                     state._fsp--;
@@ -3125,13 +3085,13 @@
 
                     }
                     break;
-                case 16 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:192:4: ^( VK_MATCHES ( VK_NOT )? fact_expression )
+                case 15 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:4: ^( ID ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression )
                     {
-                    match(input,VK_MATCHES,FOLLOW_VK_MATCHES_in_fact_expression1069); 
+                    match(input,ID,FOLLOW_ID_in_fact_expression1060); 
 
                     match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:192:17: ( VK_NOT )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:9: ( VK_NOT )?
                     int alt42=2;
                     int LA42_0 = input.LA(1);
 
@@ -3140,50 +3100,34 @@
                     }
                     switch (alt42) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:192:17: VK_NOT
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:9: VK_NOT
                             {
-                            match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1071); 
+                            match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1062); 
 
                             }
                             break;
 
                     }
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1074);
-                    fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-
-                    }
-                    break;
-                case 17 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:193:4: ^( VK_SOUNDSLIKE ( VK_NOT )? fact_expression )
-                    {
-                    match(input,VK_SOUNDSLIKE,FOLLOW_VK_SOUNDSLIKE_in_fact_expression1081); 
-
-                    match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:193:20: ( VK_NOT )?
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:17: ( VT_SQUARE_CHUNK )?
                     int alt43=2;
                     int LA43_0 = input.LA(1);
 
-                    if ( (LA43_0==VK_NOT) ) {
+                    if ( (LA43_0==VT_SQUARE_CHUNK) ) {
                         alt43=1;
                     }
                     switch (alt43) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:193:20: VK_NOT
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:191:17: VT_SQUARE_CHUNK
                             {
-                            match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1083); 
+                            match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1065); 
 
                             }
                             break;
 
                     }
 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1086);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1068);
                     fact_expression();
 
                     state._fsp--;
@@ -3193,31 +3137,14 @@
 
                     }
                     break;
-                case 18 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:194:4: ^( VK_MEMBEROF ( VK_NOT )? fact_expression )
+                case 16 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:192:4: ^( VT_BIND_FIELD VT_LABEL fact_expression )
                     {
-                    match(input,VK_MEMBEROF,FOLLOW_VK_MEMBEROF_in_fact_expression1093); 
+                    match(input,VT_BIND_FIELD,FOLLOW_VT_BIND_FIELD_in_fact_expression1075); 
 
                     match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:194:18: ( VK_NOT )?
-                    int alt44=2;
-                    int LA44_0 = input.LA(1);
-
-                    if ( (LA44_0==VK_NOT) ) {
-                        alt44=1;
-                    }
-                    switch (alt44) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:194:18: VK_NOT
-                            {
-                            match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1095); 
-
-                            }
-                            break;
-
-                    }
-
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1098);
+                    match(input,VT_LABEL,FOLLOW_VT_LABEL_in_fact_expression1077); 
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1079);
                     fact_expression();
 
                     state._fsp--;
@@ -3227,98 +3154,29 @@
 
                     }
                     break;
-                case 19 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:195:4: ^( ID ( VK_NOT )? ( VT_SQUARE_CHUNK )? fact_expression )
+                case 17 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:193:4: ^( VT_FIELD fact_expression ( fact_expression )? )
                     {
-                    match(input,ID,FOLLOW_ID_in_fact_expression1105); 
+                    match(input,VT_FIELD,FOLLOW_VT_FIELD_in_fact_expression1086); 
 
                     match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:195:9: ( VK_NOT )?
-                    int alt45=2;
-                    int LA45_0 = input.LA(1);
-
-                    if ( (LA45_0==VK_NOT) ) {
-                        alt45=1;
-                    }
-                    switch (alt45) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:195:9: VK_NOT
-                            {
-                            match(input,VK_NOT,FOLLOW_VK_NOT_in_fact_expression1107); 
-
-                            }
-                            break;
-
-                    }
-
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:195:17: ( VT_SQUARE_CHUNK )?
-                    int alt46=2;
-                    int LA46_0 = input.LA(1);
-
-                    if ( (LA46_0==VT_SQUARE_CHUNK) ) {
-                        alt46=1;
-                    }
-                    switch (alt46) {
-                        case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:195:17: VT_SQUARE_CHUNK
-                            {
-                            match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1110); 
-
-                            }
-                            break;
-
-                    }
-
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1113);
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression1088);
                     fact_expression();
 
                     state._fsp--;
 
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:193:31: ( fact_expression )?
+                    int alt44=2;
+                    int LA44_0 = input.LA(1);
 
-                    match(input, Token.UP, null); 
-
+                    if ( (LA44_0==VT_FACT||LA44_0==VT_PAREN_CHUNK||(LA44_0>=VT_FACT_BINDING && LA44_0<=VT_ACCESSOR_PATH)||LA44_0==VK_EVAL||LA44_0==VK_IN||LA44_0==VK_OPERATOR||LA44_0==ID||LA44_0==STRING||(LA44_0>=BOOL && LA44_0<=DOUBLE_AMPER)||(LA44_0>=EQUAL && LA44_0<=NULL)) ) {
+                        alt44=1;
                     }
-                    break;
-                case 20 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:196:4: ^( VT_BIND_FIELD VT_LABEL fact_expression )
-                    {
-                    match(input,VT_BIND_FIELD,FOLLOW_VT_BIND_FIELD_in_fact_expression1120); 
-
-                    match(input, Token.DOWN, null); 
-                    match(input,VT_LABEL,FOLLOW_VT_LABEL_in_fact_expression1122); 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1124);
-                    fact_expression();
-
-                    state._fsp--;
-
-
-                    match(input, Token.UP, null); 
-
-                    }
-                    break;
-                case 21 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:197:4: ^( VT_FIELD fact_expression ( fact_expression )? )
-                    {
-                    match(input,VT_FIELD,FOLLOW_VT_FIELD_in_fact_expression1131); 
-
-                    match(input, Token.DOWN, null); 
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression1133);
-                    fact_expression();
-
-                    state._fsp--;
-
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:197:31: ( fact_expression )?
-                    int alt47=2;
-                    int LA47_0 = input.LA(1);
-
-                    if ( (LA47_0==VT_FACT||LA47_0==VT_PAREN_CHUNK||(LA47_0>=VT_FACT_BINDING && LA47_0<=VT_ACCESSOR_PATH)||(LA47_0>=VK_EVAL && LA47_0<=VK_MEMBEROF)||LA47_0==VK_IN||LA47_0==ID||LA47_0==STRING||(LA47_0>=BOOL && LA47_0<=DOUBLE_AMPER)||(LA47_0>=EQUAL && LA47_0<=NOT_EQUAL)||(LA47_0>=FLOAT && LA47_0<=NULL)) ) {
-                        alt47=1;
-                    }
-                    switch (alt47) {
+                    switch (alt44) {
                         case 1 :
-                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:197:31: fact_expression
+                            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:193:31: fact_expression
                             {
-                            pushFollow(FOLLOW_fact_expression_in_fact_expression1135);
+                            pushFollow(FOLLOW_fact_expression_in_fact_expression1090);
                             fact_expression();
 
                             state._fsp--;
@@ -3334,29 +3192,29 @@
 
                     }
                     break;
-                case 22 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:198:4: ^( VT_ACCESSOR_PATH ( accessor_element )+ )
+                case 18 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:194:4: ^( VT_ACCESSOR_PATH ( accessor_element )+ )
                     {
-                    match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1143); 
+                    match(input,VT_ACCESSOR_PATH,FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1098); 
 
                     match(input, Token.DOWN, null); 
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:198:23: ( accessor_element )+
-                    int cnt48=0;
-                    loop48:
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:194:23: ( accessor_element )+
+                    int cnt45=0;
+                    loop45:
                     do {
-                        int alt48=2;
-                        int LA48_0 = input.LA(1);
+                        int alt45=2;
+                        int LA45_0 = input.LA(1);
 
-                        if ( (LA48_0==VT_ACCESSOR_ELEMENT) ) {
-                            alt48=1;
+                        if ( (LA45_0==VT_ACCESSOR_ELEMENT) ) {
+                            alt45=1;
                         }
 
 
-                        switch (alt48) {
+                        switch (alt45) {
                     	case 1 :
-                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:198:23: accessor_element
+                    	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:194:23: accessor_element
                     	    {
-                    	    pushFollow(FOLLOW_accessor_element_in_fact_expression1145);
+                    	    pushFollow(FOLLOW_accessor_element_in_fact_expression1100);
                     	    accessor_element();
 
                     	    state._fsp--;
@@ -3366,12 +3224,12 @@
                     	    break;
 
                     	default :
-                    	    if ( cnt48 >= 1 ) break loop48;
+                    	    if ( cnt45 >= 1 ) break loop45;
                                 EarlyExitException eee =
-                                    new EarlyExitException(48, input);
+                                    new EarlyExitException(45, input);
                                 throw eee;
                         }
-                        cnt48++;
+                        cnt45++;
                     } while (true);
 
 
@@ -3379,45 +3237,45 @@
 
                     }
                     break;
-                case 23 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:199:4: STRING
+                case 19 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:195:4: STRING
                     {
-                    match(input,STRING,FOLLOW_STRING_in_fact_expression1152); 
+                    match(input,STRING,FOLLOW_STRING_in_fact_expression1107); 
 
                     }
                     break;
-                case 24 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:200:4: INT
+                case 20 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:196:4: INT
                     {
-                    match(input,INT,FOLLOW_INT_in_fact_expression1157); 
+                    match(input,INT,FOLLOW_INT_in_fact_expression1112); 
 
                     }
                     break;
-                case 25 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:201:4: FLOAT
+                case 21 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:197:4: FLOAT
                     {
-                    match(input,FLOAT,FOLLOW_FLOAT_in_fact_expression1162); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_fact_expression1117); 
 
                     }
                     break;
-                case 26 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:202:4: BOOL
+                case 22 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:198:4: BOOL
                     {
-                    match(input,BOOL,FOLLOW_BOOL_in_fact_expression1167); 
+                    match(input,BOOL,FOLLOW_BOOL_in_fact_expression1122); 
 
                     }
                     break;
-                case 27 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:203:4: NULL
+                case 23 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:199:4: NULL
                     {
-                    match(input,NULL,FOLLOW_NULL_in_fact_expression1172); 
+                    match(input,NULL,FOLLOW_NULL_in_fact_expression1127); 
 
                     }
                     break;
-                case 28 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:204:4: VT_PAREN_CHUNK
+                case 24 :
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:200:4: VT_PAREN_CHUNK
                     {
-                    match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression1177); 
+                    match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_fact_expression1132); 
 
                     }
                     break;
@@ -3436,61 +3294,61 @@
 
 
     // $ANTLR start "pattern_type"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:207:1: pattern_type : ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:203:1: pattern_type : ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) ;
     public final void pattern_type() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:2: ( ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:4: ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:204:2: ( ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:204:4: ^( VT_PATTERN_TYPE ( ID )+ ( dimension_definition )* )
             {
-            match(input,VT_PATTERN_TYPE,FOLLOW_VT_PATTERN_TYPE_in_pattern_type1189); 
+            match(input,VT_PATTERN_TYPE,FOLLOW_VT_PATTERN_TYPE_in_pattern_type1144); 
 
             match(input, Token.DOWN, null); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:22: ( ID )+
-            int cnt50=0;
-            loop50:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:204:22: ( ID )+
+            int cnt47=0;
+            loop47:
             do {
-                int alt50=2;
-                int LA50_0 = input.LA(1);
+                int alt47=2;
+                int LA47_0 = input.LA(1);
 
-                if ( (LA50_0==ID) ) {
-                    alt50=1;
+                if ( (LA47_0==ID) ) {
+                    alt47=1;
                 }
 
 
-                switch (alt50) {
+                switch (alt47) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:22: ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:204:22: ID
             	    {
-            	    match(input,ID,FOLLOW_ID_in_pattern_type1191); 
+            	    match(input,ID,FOLLOW_ID_in_pattern_type1146); 
 
             	    }
             	    break;
 
             	default :
-            	    if ( cnt50 >= 1 ) break loop50;
+            	    if ( cnt47 >= 1 ) break loop47;
                         EarlyExitException eee =
-                            new EarlyExitException(50, input);
+                            new EarlyExitException(47, input);
                         throw eee;
                 }
-                cnt50++;
+                cnt47++;
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:26: ( dimension_definition )*
-            loop51:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:204:26: ( dimension_definition )*
+            loop48:
             do {
-                int alt51=2;
-                int LA51_0 = input.LA(1);
+                int alt48=2;
+                int LA48_0 = input.LA(1);
 
-                if ( (LA51_0==LEFT_SQUARE) ) {
-                    alt51=1;
+                if ( (LA48_0==LEFT_SQUARE) ) {
+                    alt48=1;
                 }
 
 
-                switch (alt51) {
+                switch (alt48) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:26: dimension_definition
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:204:26: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type1194);
+            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type1149);
             	    dimension_definition();
 
             	    state._fsp--;
@@ -3500,7 +3358,7 @@
             	    break;
 
             	default :
-            	    break loop51;
+            	    break loop48;
                 }
             } while (true);
 
@@ -3522,61 +3380,61 @@
 
 
     // $ANTLR start "data_type"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:211:1: data_type : ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:207:1: data_type : ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) ;
     public final void data_type() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:2: ( ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:4: ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:2: ( ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:4: ^( VT_DATA_TYPE ( ID )+ ( dimension_definition )* )
             {
-            match(input,VT_DATA_TYPE,FOLLOW_VT_DATA_TYPE_in_data_type1208); 
+            match(input,VT_DATA_TYPE,FOLLOW_VT_DATA_TYPE_in_data_type1163); 
 
             match(input, Token.DOWN, null); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:19: ( ID )+
-            int cnt52=0;
-            loop52:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:19: ( ID )+
+            int cnt49=0;
+            loop49:
             do {
-                int alt52=2;
-                int LA52_0 = input.LA(1);
+                int alt49=2;
+                int LA49_0 = input.LA(1);
 
-                if ( (LA52_0==ID) ) {
-                    alt52=1;
+                if ( (LA49_0==ID) ) {
+                    alt49=1;
                 }
 
 
-                switch (alt52) {
+                switch (alt49) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:19: ID
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:19: ID
             	    {
-            	    match(input,ID,FOLLOW_ID_in_data_type1210); 
+            	    match(input,ID,FOLLOW_ID_in_data_type1165); 
 
             	    }
             	    break;
 
             	default :
-            	    if ( cnt52 >= 1 ) break loop52;
+            	    if ( cnt49 >= 1 ) break loop49;
                         EarlyExitException eee =
-                            new EarlyExitException(52, input);
+                            new EarlyExitException(49, input);
                         throw eee;
                 }
-                cnt52++;
+                cnt49++;
             } while (true);
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:23: ( dimension_definition )*
-            loop53:
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:23: ( dimension_definition )*
+            loop50:
             do {
-                int alt53=2;
-                int LA53_0 = input.LA(1);
+                int alt50=2;
+                int LA50_0 = input.LA(1);
 
-                if ( (LA53_0==LEFT_SQUARE) ) {
-                    alt53=1;
+                if ( (LA50_0==LEFT_SQUARE) ) {
+                    alt50=1;
                 }
 
 
-                switch (alt53) {
+                switch (alt50) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:23: dimension_definition
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:208:23: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_data_type1213);
+            	    pushFollow(FOLLOW_dimension_definition_in_data_type1168);
             	    dimension_definition();
 
             	    state._fsp--;
@@ -3586,7 +3444,7 @@
             	    break;
 
             	default :
-            	    break loop53;
+            	    break loop50;
                 }
             } while (true);
 
@@ -3608,14 +3466,14 @@
 
 
     // $ANTLR start "dimension_definition"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:215:1: dimension_definition : LEFT_SQUARE RIGHT_SQUARE ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:211:1: dimension_definition : LEFT_SQUARE RIGHT_SQUARE ;
     public final void dimension_definition() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:216:2: ( LEFT_SQUARE RIGHT_SQUARE )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:216:4: LEFT_SQUARE RIGHT_SQUARE
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:2: ( LEFT_SQUARE RIGHT_SQUARE )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:212:4: LEFT_SQUARE RIGHT_SQUARE
             {
-            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition1226); 
-            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition1228); 
+            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition1181); 
+            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition1183); 
 
             }
 
@@ -3632,38 +3490,38 @@
 
 
     // $ANTLR start "accessor_element"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:219:1: accessor_element : ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:215:1: accessor_element : ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* ) ;
     public final void accessor_element() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:2: ( ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:4: ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:216:2: ( ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:216:4: ^( VT_ACCESSOR_ELEMENT ID ( VT_SQUARE_CHUNK )* )
             {
-            match(input,VT_ACCESSOR_ELEMENT,FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element1240); 
+            match(input,VT_ACCESSOR_ELEMENT,FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element1195); 
 
             match(input, Token.DOWN, null); 
-            match(input,ID,FOLLOW_ID_in_accessor_element1242); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:29: ( VT_SQUARE_CHUNK )*
-            loop54:
+            match(input,ID,FOLLOW_ID_in_accessor_element1197); 
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:216:29: ( VT_SQUARE_CHUNK )*
+            loop51:
             do {
-                int alt54=2;
-                int LA54_0 = input.LA(1);
+                int alt51=2;
+                int LA51_0 = input.LA(1);
 
-                if ( (LA54_0==VT_SQUARE_CHUNK) ) {
-                    alt54=1;
+                if ( (LA51_0==VT_SQUARE_CHUNK) ) {
+                    alt51=1;
                 }
 
 
-                switch (alt54) {
+                switch (alt51) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:29: VT_SQUARE_CHUNK
+            	    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:216:29: VT_SQUARE_CHUNK
             	    {
-            	    match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_accessor_element1244); 
+            	    match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_accessor_element1199); 
 
             	    }
             	    break;
 
             	default :
-            	    break loop54;
+            	    break loop51;
                 }
             } while (true);
 
@@ -3685,64 +3543,64 @@
 
 
     // $ANTLR start "expression_chain"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:223:1: expression_chain : ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? ) ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:219:1: expression_chain : ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? ) ;
     public final void expression_chain() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:2: ( ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? ) )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:4: ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:2: ( ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? ) )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:4: ^( VT_EXPRESSION_CHAIN ID ( VT_SQUARE_CHUNK )? ( VT_PAREN_CHUNK )? ( expression_chain )? )
             {
-            match(input,VT_EXPRESSION_CHAIN,FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain1258); 
+            match(input,VT_EXPRESSION_CHAIN,FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain1213); 
 
             match(input, Token.DOWN, null); 
-            match(input,ID,FOLLOW_ID_in_expression_chain1260); 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:29: ( VT_SQUARE_CHUNK )?
-            int alt55=2;
-            int LA55_0 = input.LA(1);
+            match(input,ID,FOLLOW_ID_in_expression_chain1215); 
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:29: ( VT_SQUARE_CHUNK )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
 
-            if ( (LA55_0==VT_SQUARE_CHUNK) ) {
-                alt55=1;
+            if ( (LA52_0==VT_SQUARE_CHUNK) ) {
+                alt52=1;
             }
-            switch (alt55) {
+            switch (alt52) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:29: VT_SQUARE_CHUNK
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:29: VT_SQUARE_CHUNK
                     {
-                    match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_expression_chain1262); 
+                    match(input,VT_SQUARE_CHUNK,FOLLOW_VT_SQUARE_CHUNK_in_expression_chain1217); 
 
                     }
                     break;
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:46: ( VT_PAREN_CHUNK )?
-            int alt56=2;
-            int LA56_0 = input.LA(1);
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:46: ( VT_PAREN_CHUNK )?
+            int alt53=2;
+            int LA53_0 = input.LA(1);
 
-            if ( (LA56_0==VT_PAREN_CHUNK) ) {
-                alt56=1;
+            if ( (LA53_0==VT_PAREN_CHUNK) ) {
+                alt53=1;
             }
-            switch (alt56) {
+            switch (alt53) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:46: VT_PAREN_CHUNK
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:46: VT_PAREN_CHUNK
                     {
-                    match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_expression_chain1265); 
+                    match(input,VT_PAREN_CHUNK,FOLLOW_VT_PAREN_CHUNK_in_expression_chain1220); 
 
                     }
                     break;
 
             }
 
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:62: ( expression_chain )?
-            int alt57=2;
-            int LA57_0 = input.LA(1);
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:62: ( expression_chain )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
 
-            if ( (LA57_0==VT_EXPRESSION_CHAIN) ) {
-                alt57=1;
+            if ( (LA54_0==VT_EXPRESSION_CHAIN) ) {
+                alt54=1;
             }
-            switch (alt57) {
+            switch (alt54) {
                 case 1 :
-                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:62: expression_chain
+                    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:220:62: expression_chain
                     {
-                    pushFollow(FOLLOW_expression_chain_in_expression_chain1268);
+                    pushFollow(FOLLOW_expression_chain_in_expression_chain1223);
                     expression_chain();
 
                     state._fsp--;
@@ -3771,13 +3629,13 @@
 
 
     // $ANTLR start "curly_chunk"
-    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:227:1: curly_chunk : VT_CURLY_CHUNK ;
+    // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:223:1: curly_chunk : VT_CURLY_CHUNK ;
     public final void curly_chunk() throws RecognitionException {
         try {
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:228:2: ( VT_CURLY_CHUNK )
-            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:228:4: VT_CURLY_CHUNK
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:2: ( VT_CURLY_CHUNK )
+            // /Users/porcelli/Documents/dev/drools-trunk/drools-compiler/src/main/resources/org/drools/lang/Tree2TestDRL.g:224:4: VT_CURLY_CHUNK
             {
-            match(input,VT_CURLY_CHUNK,FOLLOW_VT_CURLY_CHUNK_in_curly_chunk1282); 
+            match(input,VT_CURLY_CHUNK,FOLLOW_VT_CURLY_CHUNK_in_curly_chunk1237); 
 
             }
 
@@ -3803,7 +3661,7 @@
     public static final BitSet FOLLOW_VK_PACKAGE_in_package_statement63 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_package_id_in_package_statement65 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_PACKAGE_ID_in_package_id78 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_package_id80 = new BitSet(new long[]{0x0000000000000008L,0x0000000000100000L});
+    public static final BitSet FOLLOW_ID_in_package_id80 = new BitSet(new long[]{0x0000000000000008L,0x0000000000010000L});
     public static final BitSet FOLLOW_rule_attribute_in_statement93 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_function_import_statement_in_statement98 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_import_statement_in_statement104 = new BitSet(new long[]{0x0000000000000002L});
@@ -3819,7 +3677,7 @@
     public static final BitSet FOLLOW_VK_FUNCTION_in_function_import_statement165 = new BitSet(new long[]{0x0000020000000000L});
     public static final BitSet FOLLOW_import_name_in_function_import_statement167 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_IMPORT_ID_in_import_name180 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_import_name182 = new BitSet(new long[]{0x0000000000000008L,0x0000000000500000L});
+    public static final BitSet FOLLOW_ID_in_import_name182 = new BitSet(new long[]{0x0000000000000008L,0x0000000000050000L});
     public static final BitSet FOLLOW_DOT_STAR_in_import_name185 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_GLOBAL_in_global199 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_data_type_in_global201 = new BitSet(new long[]{0x0000040000000000L});
@@ -3832,38 +3690,38 @@
     public static final BitSet FOLLOW_VK_QUERY_in_query238 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_QUERY_ID_in_query240 = new BitSet(new long[]{0x0000100000400000L});
     public static final BitSet FOLLOW_parameters_in_query242 = new BitSet(new long[]{0x0000100000400000L});
-    public static final BitSet FOLLOW_lhs_block_in_query245 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_lhs_block_in_query245 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
     public static final BitSet FOLLOW_END_in_query247 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_PARAM_LIST_in_parameters260 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_param_definition_in_parameters262 = new BitSet(new long[]{0x0000004000000008L,0x0000000000100000L});
-    public static final BitSet FOLLOW_data_type_in_param_definition275 = new BitSet(new long[]{0x0000004000000008L,0x0000000000100000L});
+    public static final BitSet FOLLOW_param_definition_in_parameters262 = new BitSet(new long[]{0x0000004000000008L,0x0000000000010000L});
+    public static final BitSet FOLLOW_data_type_in_param_definition275 = new BitSet(new long[]{0x0000004000000008L,0x0000000000010000L});
     public static final BitSet FOLLOW_argument_in_param_definition278 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_argument289 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_dimension_definition_in_argument291 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
+    public static final BitSet FOLLOW_ID_in_argument289 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_dimension_definition_in_argument291 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
     public static final BitSet FOLLOW_VK_DECLARE_in_type_declaration304 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_TYPE_DECLARE_ID_in_type_declaration306 = new BitSet(new long[]{0x0000000000000000L,0x0000000010900000L});
-    public static final BitSet FOLLOW_decl_metadata_in_type_declaration308 = new BitSet(new long[]{0x0000000000000000L,0x0000000010900000L});
-    public static final BitSet FOLLOW_decl_field_in_type_declaration311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000900000L});
+    public static final BitSet FOLLOW_VT_TYPE_DECLARE_ID_in_type_declaration306 = new BitSet(new long[]{0x0000000000000000L,0x0000000001090000L});
+    public static final BitSet FOLLOW_decl_metadata_in_type_declaration308 = new BitSet(new long[]{0x0000000000000000L,0x0000000001090000L});
+    public static final BitSet FOLLOW_decl_field_in_type_declaration311 = new BitSet(new long[]{0x0000000000000000L,0x0000000000090000L});
     public static final BitSet FOLLOW_END_in_type_declaration314 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_AT_in_decl_metadata327 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_ID_in_decl_metadata329 = new BitSet(new long[]{0x0000000000100000L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_decl_metadata331 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_ID_in_decl_field344 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_decl_field_initialization_in_decl_field346 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_data_type_in_decl_field349 = new BitSet(new long[]{0x0000000000000008L,0x0000000010000000L});
-    public static final BitSet FOLLOW_decl_metadata_in_decl_field351 = new BitSet(new long[]{0x0000000000000008L,0x0000000010000000L});
+    public static final BitSet FOLLOW_data_type_in_decl_field349 = new BitSet(new long[]{0x0000000000000008L,0x0000000001000000L});
+    public static final BitSet FOLLOW_decl_metadata_in_decl_field351 = new BitSet(new long[]{0x0000000000000008L,0x0000000001000000L});
     public static final BitSet FOLLOW_EQUALS_in_decl_field_initialization365 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_decl_field_initialization367 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_TEMPLATE_in_template380 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_TEMPLATE_ID_in_template382 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_template_slot_in_template384 = new BitSet(new long[]{0x0000000000008000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_template_slot_in_template384 = new BitSet(new long[]{0x0000000000008000L,0x0000000000080000L});
     public static final BitSet FOLLOW_END_in_template387 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_SLOT_in_template_slot400 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_data_type_in_template_slot402 = new BitSet(new long[]{0x0000000000004000L});
     public static final BitSet FOLLOW_VT_SLOT_ID_in_template_slot404 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_RULE_in_rule417 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_RULE_ID_in_rule419 = new BitSet(new long[]{0x0000000000030000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_rule_attributes_in_rule421 = new BitSet(new long[]{0x0000000000020000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_VT_RULE_ID_in_rule419 = new BitSet(new long[]{0x0000000000030000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_rule_attributes_in_rule421 = new BitSet(new long[]{0x0000000000020000L,0x0000000008000000L});
     public static final BitSet FOLLOW_when_part_in_rule424 = new BitSet(new long[]{0x0000000000020000L});
     public static final BitSet FOLLOW_VT_RHS_CHUNK_in_rule427 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_WHEN_in_when_part439 = new BitSet(new long[]{0x0000100000400000L});
@@ -3896,16 +3754,16 @@
     public static final BitSet FOLLOW_VK_DIALECT_in_rule_attribute592 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_STRING_in_rule_attribute594 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_AND_IMPLICIT_in_lhs_block608 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs_block610 = new BitSet(new long[]{0x0000000087800008L,0x000000100000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs_block610 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_VT_OR_PREFIX_in_lhs623 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs625 = new BitSet(new long[]{0x0000000087800008L,0x000000100000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs625 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_VT_OR_INFIX_in_lhs633 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs635 = new BitSet(new long[]{0x0000000087800008L,0x000000100000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs635 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_lhs_in_lhs637 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_AND_PREFIX_in_lhs644 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs646 = new BitSet(new long[]{0x0000000087800008L,0x000000100000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs646 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_VT_AND_INFIX_in_lhs654 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs656 = new BitSet(new long[]{0x0000000087800008L,0x000000100000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs656 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_lhs_in_lhs658 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_EXISTS_in_lhs665 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_lhs_in_lhs667 = new BitSet(new long[]{0x0000000000000008L});
@@ -3914,9 +3772,9 @@
     public static final BitSet FOLLOW_VK_EVAL_in_lhs683 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_lhs685 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_FORALL_in_lhs692 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_in_lhs694 = new BitSet(new long[]{0x0000000087800008L,0x000000100000C408L});
+    public static final BitSet FOLLOW_lhs_in_lhs694 = new BitSet(new long[]{0x0000000087800008L,0x0000000100000628L});
     public static final BitSet FOLLOW_FROM_in_lhs702 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs704 = new BitSet(new long[]{0x0000000020000000L,0x0000014000000200L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs704 = new BitSet(new long[]{0x0000000020000000L,0x0000001400000010L});
     public static final BitSet FOLLOW_from_elements_in_lhs706 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_lhs_pattern_in_lhs712 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_ACCUMULATE_in_from_elements724 = new BitSet(new long[]{0x0000000000000004L});
@@ -3936,7 +3794,7 @@
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause787 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_ACTION_in_accumulate_init_clause795 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause797 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause804 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_accumulate_init_reverse_clause_in_accumulate_init_clause804 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
     public static final BitSet FOLLOW_VK_RESULT_in_accumulate_init_clause811 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_accumulate_init_clause813 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_REVERSE_in_accumulate_init_reverse_clause827 = new BitSet(new long[]{0x0000000000000004L});
@@ -3950,29 +3808,29 @@
     public static final BitSet FOLLOW_OVER_in_over_clause878 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_over_element_in_over_clause880 = new BitSet(new long[]{0x0000000000200008L});
     public static final BitSet FOLLOW_VT_BEHAVIOR_in_over_element894 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_over_element896 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_ID_in_over_element896 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
     public static final BitSet FOLLOW_ID_in_over_element898 = new BitSet(new long[]{0x0000000000100000L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_over_element900 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_DOUBLE_PIPE_in_fact_expression913 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression915 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression915 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression917 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_DOUBLE_AMPER_in_fact_expression924 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression926 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression926 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression928 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_FACT_BINDING_in_fact_expression935 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression937 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
+    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression937 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression939 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VT_FACT_in_fact_expression946 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_pattern_type_in_fact_expression948 = new BitSet(new long[]{0x0000001F00100048L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression950 = new BitSet(new long[]{0x0000001F00100048L,0x0006FC0F011009F8L});
+    public static final BitSet FOLLOW_pattern_type_in_fact_expression948 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression950 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0114048L});
     public static final BitSet FOLLOW_VT_FACT_OR_in_fact_expression958 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression960 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression960 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression962 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_EVAL_in_fact_expression969 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression971 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_VK_IN_in_fact_expression978 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression980 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression983 = new BitSet(new long[]{0x0000001F00100048L,0x0006FC0F011009F8L});
+    public static final BitSet FOLLOW_VK_NOT_in_fact_expression980 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression983 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0114048L});
     public static final BitSet FOLLOW_EQUAL_in_fact_expression991 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression993 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_GREATER_in_fact_expression1000 = new BitSet(new long[]{0x0000000000000004L});
@@ -3985,55 +3843,44 @@
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1029 = new BitSet(new long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_NOT_EQUAL_in_fact_expression1036 = new BitSet(new long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_fact_expression_in_fact_expression1038 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_CONTAINS_in_fact_expression1045 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1047 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1050 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_EXCLUDES_in_fact_expression1057 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1059 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1062 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_MATCHES_in_fact_expression1069 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1071 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1074 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_SOUNDSLIKE_in_fact_expression1081 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1083 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1086 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VK_MEMBEROF_in_fact_expression1093 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1095 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1098 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_ID_in_fact_expression1105 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1107 = new BitSet(new long[]{0x0000001F00180040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1110 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1113 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VT_BIND_FIELD_in_fact_expression1120 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1122 = new BitSet(new long[]{0x0000001F00100040L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1124 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VT_FIELD_in_fact_expression1131 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1133 = new BitSet(new long[]{0x0000001F00100048L,0x0006FC0F011009F8L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression1135 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1143 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_accessor_element_in_fact_expression1145 = new BitSet(new long[]{0x0000002000000008L});
-    public static final BitSet FOLLOW_STRING_in_fact_expression1152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_fact_expression1157 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_fact_expression1162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_fact_expression1167 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_fact_expression1172 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression1177 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VT_PATTERN_TYPE_in_pattern_type1189 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_pattern_type1191 = new BitSet(new long[]{0x0000000000000008L,0x0008000000100000L});
-    public static final BitSet FOLLOW_dimension_definition_in_pattern_type1194 = new BitSet(new long[]{0x0000000000000008L,0x0008000000000000L});
-    public static final BitSet FOLLOW_VT_DATA_TYPE_in_data_type1208 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_data_type1210 = new BitSet(new long[]{0x0000000000000008L,0x0008000000100000L});
-    public static final BitSet FOLLOW_dimension_definition_in_data_type1213 = new BitSet(new long[]{0x0000000000000008L,0x0008000000000000L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition1226 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition1228 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element1240 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_accessor_element1242 = new BitSet(new long[]{0x0000000000080008L});
-    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_accessor_element1244 = new BitSet(new long[]{0x0000000000080008L});
-    public static final BitSet FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain1258 = new BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_ID_in_expression_chain1260 = new BitSet(new long[]{0x0000000040180008L});
-    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_expression_chain1262 = new BitSet(new long[]{0x0000000040100008L});
-    public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_expression_chain1265 = new BitSet(new long[]{0x0000000040000008L});
-    public static final BitSet FOLLOW_expression_chain_in_expression_chain1268 = new BitSet(new long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VT_CURLY_CHUNK_in_curly_chunk1282 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VK_OPERATOR_in_fact_expression1045 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1047 = new BitSet(new long[]{0x0000001F00180040L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1050 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1053 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_ID_in_fact_expression1060 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_VK_NOT_in_fact_expression1062 = new BitSet(new long[]{0x0000001F00180040L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_fact_expression1065 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1068 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_VT_BIND_FIELD_in_fact_expression1075 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_VT_LABEL_in_fact_expression1077 = new BitSet(new long[]{0x0000001F00100040L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1079 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_VT_FIELD_in_fact_expression1086 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1088 = new BitSet(new long[]{0x0000001F00100048L,0x00003FC0F0114048L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression1090 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_VT_ACCESSOR_PATH_in_fact_expression1098 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_accessor_element_in_fact_expression1100 = new BitSet(new long[]{0x0000002000000008L});
+    public static final BitSet FOLLOW_STRING_in_fact_expression1107 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_fact_expression1112 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_fact_expression1117 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_fact_expression1122 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_fact_expression1127 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_fact_expression1132 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VT_PATTERN_TYPE_in_pattern_type1144 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_pattern_type1146 = new BitSet(new long[]{0x0000000000000008L,0x0000400000010000L});
+    public static final BitSet FOLLOW_dimension_definition_in_pattern_type1149 = new BitSet(new long[]{0x0000000000000008L,0x0000400000000000L});
+    public static final BitSet FOLLOW_VT_DATA_TYPE_in_data_type1163 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_data_type1165 = new BitSet(new long[]{0x0000000000000008L,0x0000400000010000L});
+    public static final BitSet FOLLOW_dimension_definition_in_data_type1168 = new BitSet(new long[]{0x0000000000000008L,0x0000400000000000L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition1181 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition1183 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VT_ACCESSOR_ELEMENT_in_accessor_element1195 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_accessor_element1197 = new BitSet(new long[]{0x0000000000080008L});
+    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_accessor_element1199 = new BitSet(new long[]{0x0000000000080008L});
+    public static final BitSet FOLLOW_VT_EXPRESSION_CHAIN_in_expression_chain1213 = new BitSet(new long[]{0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_expression_chain1215 = new BitSet(new long[]{0x0000000040180008L});
+    public static final BitSet FOLLOW_VT_SQUARE_CHUNK_in_expression_chain1217 = new BitSet(new long[]{0x0000000040100008L});
+    public static final BitSet FOLLOW_VT_PAREN_CHUNK_in_expression_chain1220 = new BitSet(new long[]{0x0000000040000008L});
+    public static final BitSet FOLLOW_expression_chain_in_expression_chain1223 = new BitSet(new long[]{0x0000000000000008L});
+    public static final BitSet FOLLOW_VT_CURLY_CHUNK_in_curly_chunk1237 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTest.testsuite
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTest.testsuite	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTest.testsuite	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1425,10 +1425,10 @@
 rule "test pluggable operators"
 when
     $a : EventA()
-    $b : EventB( this `after[1,10] $a )
+    $b : EventB( this after[1,10] $a )
     $c : EventC( this finishes $b )
     $d : EventD( this not starts $a )
-    $e : EventE( this not `before [1, 10] $b )
+    $e : EventE( this not before [1, 10] $b )
 then
 end>>
 		-> (VT_COMPILATION_UNIT (package (VT_PACKAGE_ID org drools)) (rule "test pluggable operators" when (VT_AND_IMPLICIT (VT_PATTERN (VT_FACT_BINDING $a (VT_FACT (VT_PATTERN_TYPE EventA)))) (VT_PATTERN (VT_FACT_BINDING $b (VT_FACT (VT_PATTERN_TYPE EventB) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (after [1,10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $c (VT_FACT (VT_PATTERN_TYPE EventC) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (finishes (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b))))))) (VT_PATTERN (VT_FACT_BINDING $d (VT_FACT (VT_PATTERN_TYPE EventD) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (starts not (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $e (VT_FACT (VT_PATTERN_TYPE EventE) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (before not [1, 10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b)))))))) then
@@ -1893,10 +1893,10 @@
 
 			<<
 		    $a : EventA()
-		    $b : EventB( this `after[1,10] $a )
+		    $b : EventB( this after[1,10] $a )
 		    $c : EventC( this finishes $b )
 		    $d : EventD( this not starts $a )
-		    $e : EventE( this not `before [1, 10] $b )
+		    $e : EventE( this not before [1, 10] $b )
 			>>
 				-> (VT_AND_IMPLICIT (VT_PATTERN (VT_FACT_BINDING $a (VT_FACT (VT_PATTERN_TYPE EventA)))) (VT_PATTERN (VT_FACT_BINDING $b (VT_FACT (VT_PATTERN_TYPE EventB) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (after [1,10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $c (VT_FACT (VT_PATTERN_TYPE EventC) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (finishes (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b))))))) (VT_PATTERN (VT_FACT_BINDING $d (VT_FACT (VT_PATTERN_TYPE EventD) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (starts not (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $a))))))) (VT_PATTERN (VT_FACT_BINDING $e (VT_FACT (VT_PATTERN_TYPE EventE) (VT_FIELD (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT this)) (before not [1, 10] (VT_ACCESSOR_PATH (VT_ACCESSOR_ELEMENT $b))))))))
 

Modified: labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTreeWalkerTest.testsuite
===================================================================
--- labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTreeWalkerTest.testsuite	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-compiler/src/test/java/org/drools/lang/gUnitTreeWalkerTest.testsuite	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1216,10 +1216,10 @@
 rule "test pluggable operators"
 when
     $a : EventA()
-    $b : EventB( this `after[1,10] $a )
+    $b : EventB( this after[1,10] $a )
     $c : EventC( this finishes $b )
     $d : EventD( this not starts $a )
-    $e : EventE( this not `before [1, 10] $b )
+    $e : EventE( this not before [1, 10] $b )
 then
 end>>
 		OK
@@ -1649,10 +1649,10 @@
 
 			<<
 		    $a : EventA()
-		    $b : EventB( this `after[1,10] $a )
+		    $b : EventB( this after[1,10] $a )
 		    $c : EventC( this finishes $b )
 		    $d : EventD( this not starts $a )
-		    $e : EventE( this not `before [1, 10] $b )
+		    $e : EventE( this not before [1, 10] $b )
 			>>
 				OK
 

Modified: labs/jbossrules/branches/etirelli/drools-verifier/.classpath
===================================================================
--- labs/jbossrules/branches/etirelli/drools-verifier/.classpath	2008-11-24 15:54:24 UTC (rev 24069)
+++ labs/jbossrules/branches/etirelli/drools-verifier/.classpath	2008-11-24 16:51:51 UTC (rev 24070)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
   <classpathentry kind="src" path="src/main/java"/>
   <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>




More information about the jboss-svn-commits mailing list