[jboss-svn-commits] JBL Code SVN: r20315 - in labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main: resources/org/drools/lang and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 4 20:05:01 EDT 2008


Author: porcelli
Date: 2008-06-04 20:05:00 -0400 (Wed, 04 Jun 2008)
New Revision: 20315

Modified:
   labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
   labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/DRL.g
Log:
Better formating and now uses external soft keywords

Modified: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-06-05 00:03:07 UTC (rev 20314)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-06-05 00:05:00 UTC (rev 20315)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-05-19 18:02:41
+// $ANTLR 3.0.1 /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-06-04 16:12:42
 
 	package org.drools.lang;
 	
@@ -179,7 +179,7 @@
         		this.errors.add( new GeneralParseException( "Trailing semi-colon not allowed", offset(line) ) );
         	}
         }
-
+        
         private String safeSubstring( String text, int start, int end ) {
             return text.substring( Math.min( start, text.length() ), Math.min( Math.max( start, end ), text.length() ) );
         }
@@ -329,13 +329,13 @@
             int alt1=2;
             int LA1_0 = input.LA(1);
 
-            if ( (LA1_0==ID) && (((validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("duration"))||(validateIdentifierKey("template"))||(validateIdentifierKey("query"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("global"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("package"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("import"))||(validateIdenti!
 fierKey("function"))||(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("rule"))||(validateIdentifierKey("enabled"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("salience"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("dialect"))))) {
+            if ( (LA1_0==ID) && ((((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))||(validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))||(valid!
 ateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.ENABLED))||(validateIdentifierKey(DroolsSoftKeywords.PACKAGE))||(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP))||(validateIdentifierKey(DroolsSoftKeywords.DURATION))||(validateIdentifierKey(DroolsSoftKeywords!
 .TEMPLATE))||(validateIdentifierKey(DroolsSoftKeywords.LOCK) && valida
teLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))) {
                 int LA1_1 = input.LA(2);
 
-                if ( (LA1_1==ID) && ((((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("import"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("template"))||(validateIdentifierKey("function"))||(validateIdentifierKey("query"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("global"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("package"))||(validateIdentifierKey("rule"))))) {
+                if ( (LA1_1==ID) && ((((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, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(!
 DroolsSoftKeywords.IMPORT))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.PACKAGE))))) {
                     int LA1_5 = input.LA(3);
 
-                    if ( ((validateIdentifierKey("package"))) ) {
+                    if ( ((validateIdentifierKey(DroolsSoftKeywords.PACKAGE))) ) {
                         alt1=1;
                     }
                 }
@@ -361,7 +361,7 @@
                 int alt2=2;
                 int LA2_0 = input.LA(1);
 
-                if ( (LA2_0==ID) && (((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("import"))||(validateIdentifierKey("duration"))||(validateIdentifierKey("template"))||(validateIdentifierKey("function"))||(validateIdentifierKey("query"))||(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("global"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("rule"))||(validateIdentifierKey("enabled"))||(validateIdentifierKey("auto"!
 ) && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("salience"))||(validateIdentifierKey("dialect"))))) {
+                if ( (LA2_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.DURATION))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))||(validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||(v!
 alidateIdentifierKey(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.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.ENABLED))||(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))))) {
                     alt2=1;
                 }
 
@@ -2673,7 +2673,7 @@
             int alt25=2;
             int LA25_0 = input.LA(1);
 
-            if ( (LA25_0==ID) && ((validateIdentifierKey("when")))) {
+            if ( (LA25_0==ID) && ((validateIdentifierKey(DroolsSoftKeywords.WHEN)))) {
                 alt25=1;
             }
             switch (alt25) {
@@ -3005,10 +3005,10 @@
             int alt28=2;
             int LA28_0 = input.LA(1);
 
-            if ( (LA28_0==ID) && (((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("duration"))||(validateIdentifierKey("attributes"))||(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("enabled"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("salience"))||(validateIdentifierKey("dialect"))))) {
+            if ( (LA28_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(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(Drool!
 sSoftKeywords.ENABLED))||(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))||(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))))) {
                 int LA28_1 = input.LA(2);
 
-                if ( (LA28_1==COLON) && ((validateIdentifierKey("attributes")))) {
+                if ( (LA28_1==COLON) && ((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES)))) {
                     alt28=1;
                 }
             }
@@ -3184,34 +3184,34 @@
             int alt31=12;
             int LA31_0 = input.LA(1);
 
-            if ( (LA31_0==ID) && (((validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("enabled"))||(validateIdentifierKey("duration"))||(validateIdentifierKey("salience"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("dialect"))))) {
+            if ( (LA31_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(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.SALIENCE))||(validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP))||(validateIdentifierKey(DroolsSoftKeywords.ENABLED))||(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(Drools!
 SoftKeywords.DURATION))||(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))))) {
                 int LA31_1 = input.LA(2);
 
-                if ( (LA31_1==MISC) && (((validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))))) {
+                if ( (LA31_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))))) {
                     int LA31_2 = input.LA(3);
 
-                    if ( (LA31_2==ID) && (((validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))))) {
+                    if ( (LA31_2==ID) && (((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))))) {
                         int LA31_7 = input.LA(4);
 
-                        if ( (LA31_7==MISC) && ((validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active")))) {
+                        if ( (LA31_7==MISC) && ((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE)))) {
                             alt31=11;
                         }
-                        else if ( (LA31_7==STRING) && (((validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))))) {
+                        else if ( (LA31_7==STRING) && (((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.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))))) {
                             int LA31_10 = input.LA(5);
 
-                            if ( ((validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))) ) {
+                            if ( ((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))) ) {
                                 alt31=3;
                             }
-                            else if ( ((validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))) ) {
+                            else if ( ((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))) ) {
                                 alt31=5;
                             }
-                            else if ( ((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))) ) {
+                            else if ( ((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))) ) {
                                 alt31=7;
                             }
-                            else if ( ((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))) ) {
+                            else if ( ((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES))) ) {
                                 alt31=8;
                             }
-                            else if ( ((validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))) ) {
+                            else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))) ) {
                                 alt31=10;
                             }
                             else {
@@ -3222,10 +3222,10 @@
                                 throw nvae;
                             }
                         }
-                        else if ( ((validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))) ) {
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP))) ) {
                             alt31=2;
                         }
-                        else if ( ((validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))) ) {
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))) ) {
                             alt31=6;
                         }
                         else {
@@ -3244,16 +3244,16 @@
                         throw nvae;
                     }
                 }
-                else if ( (LA31_1==STRING) && ((validateIdentifierKey("dialect")))) {
+                else if ( (LA31_1==STRING) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {
                     alt31=12;
                 }
-                else if ( (LA31_1==INT) && (((validateIdentifierKey("duration"))||(validateIdentifierKey("salience"))))) {
+                else if ( (LA31_1==INT) && (((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))||(validateIdentifierKey(DroolsSoftKeywords.DURATION))))) {
                     int LA31_4 = input.LA(3);
 
-                    if ( ((validateIdentifierKey("salience"))) ) {
+                    if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {
                         alt31=1;
                     }
-                    else if ( ((validateIdentifierKey("duration"))) ) {
+                    else if ( ((validateIdentifierKey(DroolsSoftKeywords.DURATION))) ) {
                         alt31=4;
                     }
                     else {
@@ -3264,10 +3264,10 @@
                         throw nvae;
                     }
                 }
-                else if ( (LA31_1==LEFT_PAREN) && ((validateIdentifierKey("salience")))) {
+                else if ( (LA31_1==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {
                     alt31=1;
                 }
-                else if ( (LA31_1==BOOL) && ((validateIdentifierKey("enabled")))) {
+                else if ( (LA31_1==BOOL) && ((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))) {
                     alt31=9;
                 }
                 else {
@@ -4629,7 +4629,7 @@
                         if ( (LA39_0==ID) ) {
                             int LA39_2 = input.LA(2);
 
-                            if ( ((synpred2()&&(validateIdentifierKey("or")))) ) {
+                            if ( ((synpred2()&&(validateIdentifierKey(DroolsSoftKeywords.OR)))) ) {
                                 alt39=1;
                             }
 
@@ -4654,7 +4654,7 @@
                     	    int alt38=2;
                     	    int LA38_0 = input.LA(1);
 
-                    	    if ( (LA38_0==ID) && ((validateIdentifierKey("or")))) {
+                    	    if ( (LA38_0==ID) && ((validateIdentifierKey(DroolsSoftKeywords.OR)))) {
                     	        alt38=1;
                     	    }
                     	    else if ( (LA38_0==DOUBLE_PIPE) ) {
@@ -5170,7 +5170,7 @@
                         if ( (LA43_0==ID) ) {
                             int LA43_2 = input.LA(2);
 
-                            if ( ((synpred4()&&(validateIdentifierKey("and")))) ) {
+                            if ( ((synpred4()&&(validateIdentifierKey(DroolsSoftKeywords.AND)))) ) {
                                 alt43=1;
                             }
 
@@ -5195,7 +5195,7 @@
                     	    int alt42=2;
                     	    int LA42_0 = input.LA(1);
 
-                    	    if ( (LA42_0==ID) && ((validateIdentifierKey("and")))) {
+                    	    if ( (LA42_0==ID) && ((validateIdentifierKey(DroolsSoftKeywords.AND)))) {
                     	        alt42=1;
                     	    }
                     	    else if ( (LA42_0==DOUBLE_AMPER) ) {
@@ -5349,16 +5349,16 @@
             if ( (LA45_0==ID) ) {
                 int LA45_1 = input.LA(2);
 
-                if ( ((validateIdentifierKey("exists"))) ) {
+                if ( ((validateIdentifierKey(DroolsSoftKeywords.EXISTS))) ) {
                     alt45=1;
                 }
-                else if ( ((validateIdentifierKey("not"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.NOT))) ) {
                     alt45=2;
                 }
-                else if ( ((validateIdentifierKey("eval"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.EVAL))) ) {
                     alt45=3;
                 }
-                else if ( ((validateIdentifierKey("forall"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.FORALL))) ) {
                     alt45=4;
                 }
                 else if ( (true) ) {
@@ -6070,72 +6070,72 @@
             if ( (LA51_0==ID) ) {
                 int LA51_1 = input.LA(2);
 
-                if ( (LA51_1==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                if ( (LA51_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.OR))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))))) {
                     int LA51_3 = input.LA(3);
 
-                    if ( (LA51_3==SEMICOLON||LA51_3==END||(LA51_3>=COMMA && LA51_3<=RIGHT_PAREN)||(LA51_3>=DOUBLE_PIPE && LA51_3<=DOUBLE_AMPER)||LA51_3==THEN||LA51_3==MISC) && ((validateIdentifierKey("from")))) {
+                    if ( (LA51_3==SEMICOLON||LA51_3==END||(LA51_3>=COMMA && LA51_3<=RIGHT_PAREN)||(LA51_3>=DOUBLE_PIPE && LA51_3<=DOUBLE_AMPER)||LA51_3==THEN||LA51_3==MISC) && ((validateIdentifierKey(DroolsSoftKeywords.FROM)))) {
                         alt51=1;
                     }
-                    else if ( (LA51_3==LEFT_PAREN) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                    else if ( (LA51_3==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.OR))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))))) {
                         int LA51_6 = input.LA(4);
 
-                        if ( ((validateIdentifierKey("from"))) ) {
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.FROM))) ) {
                             alt51=1;
                         }
                     }
-                    else if ( (LA51_3==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                    else if ( (LA51_3==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))||(validateIdentifierKey(DroolsSoftKeywords.OR))))) {
                         int LA51_7 = input.LA(4);
 
-                        if ( ((validateIdentifierKey("from"))) ) {
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.FROM))) ) {
                             alt51=1;
                         }
                     }
-                    else if ( (LA51_3==DOT) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                    else if ( (LA51_3==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))||(validateIdentifierKey(DroolsSoftKeywords.OR))))) {
                         int LA51_8 = input.LA(4);
 
-                        if ( (LA51_8==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                        if ( (LA51_8==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.OR))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))))) {
                             int LA51_10 = input.LA(5);
 
-                            if ( (LA51_10==LEFT_SQUARE) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                            if ( (LA51_10==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))||(validateIdentifierKey(DroolsSoftKeywords.OR))))) {
                                 int LA51_11 = input.LA(6);
 
-                                if ( (LA51_11==RIGHT_SQUARE) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                                if ( (LA51_11==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))||(validateIdentifierKey(DroolsSoftKeywords.OR))))) {
                                     int LA51_14 = input.LA(7);
 
-                                    if ( (LA51_14==LEFT_PAREN) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                                    if ( (LA51_14==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.OR))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))))) {
                                         int LA51_16 = input.LA(8);
 
-                                        if ( ((validateIdentifierKey("from"))) ) {
+                                        if ( ((validateIdentifierKey(DroolsSoftKeywords.FROM))) ) {
                                             alt51=1;
                                         }
                                     }
-                                    else if ( ((LA51_14>=SEMICOLON && LA51_14<=DOT)||LA51_14==END||(LA51_14>=COMMA && LA51_14<=RIGHT_PAREN)||(LA51_14>=DOUBLE_PIPE && LA51_14<=DOUBLE_AMPER)||LA51_14==THEN) && ((validateIdentifierKey("from")))) {
+                                    else if ( ((LA51_14>=SEMICOLON && LA51_14<=DOT)||LA51_14==END||(LA51_14>=COMMA && LA51_14<=RIGHT_PAREN)||(LA51_14>=DOUBLE_PIPE && LA51_14<=DOUBLE_AMPER)||LA51_14==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.FROM)))) {
                                         alt51=1;
                                     }
                                 }
-                                else if ( ((LA51_11>=VT_COMPILATION_UNIT && LA51_11<=LEFT_SQUARE)||(LA51_11>=THEN && LA51_11<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("from")))) {
+                                else if ( ((LA51_11>=VT_COMPILATION_UNIT && LA51_11<=LEFT_SQUARE)||(LA51_11>=THEN && LA51_11<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.FROM)))) {
                                     alt51=1;
                                 }
                             }
-                            else if ( (LA51_10==LEFT_PAREN) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                            else if ( (LA51_10==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.OR))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))))) {
                                 int LA51_12 = input.LA(6);
 
-                                if ( ((validateIdentifierKey("from"))) ) {
+                                if ( ((validateIdentifierKey(DroolsSoftKeywords.FROM))) ) {
                                     alt51=1;
                                 }
                             }
-                            else if ( (LA51_10==DOT) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                            else if ( (LA51_10==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))||(validateIdentifierKey(DroolsSoftKeywords.OR))))) {
                                 int LA51_13 = input.LA(6);
 
-                                if ( (LA51_13==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("or"))||(validateIdentifierKey("exists"))||(validateIdentifierKey("from"))||(validateIdentifierKey("and"))))) {
+                                if ( (LA51_13==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.FROM))||(validateIdentifierKey(DroolsSoftKeywords.OR))||(validateIdentifierKey(DroolsSoftKeywords.EXISTS))))) {
                                     int LA51_15 = input.LA(7);
 
-                                    if ( ((validateIdentifierKey("from"))) ) {
+                                    if ( ((validateIdentifierKey(DroolsSoftKeywords.FROM))) ) {
                                         alt51=1;
                                     }
                                 }
                             }
-                            else if ( ((LA51_10>=SEMICOLON && LA51_10<=ID)||LA51_10==END||(LA51_10>=COMMA && LA51_10<=RIGHT_PAREN)||(LA51_10>=DOUBLE_PIPE && LA51_10<=DOUBLE_AMPER)||LA51_10==THEN) && ((validateIdentifierKey("from")))) {
+                            else if ( ((LA51_10>=SEMICOLON && LA51_10<=ID)||LA51_10==END||(LA51_10>=COMMA && LA51_10<=RIGHT_PAREN)||(LA51_10>=DOUBLE_PIPE && LA51_10<=DOUBLE_AMPER)||LA51_10==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.FROM)))) {
                                 alt51=1;
                             }
                         }
@@ -6158,7 +6158,7 @@
                     if ( (LA50_0==ID) ) {
                         int LA50_1 = input.LA(2);
 
-                        if ( (LA50_1==MISC) && ((validateIdentifierKey("entry") && validateLT(2, "-") && validateLT(3, "point")))) {
+                        if ( (LA50_1==MISC) && ((validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.POINT)))) {
                             alt50=3;
                         }
                         else if ( (LA50_1==LEFT_PAREN) ) {
@@ -6167,7 +6167,7 @@
                                 {
                                 int LA50_5 = input.LA(4);
 
-                                if ( ((validateIdentifierKey("accumulate"))) ) {
+                                if ( ((validateIdentifierKey(DroolsSoftKeywords.ACCUMULATE))) ) {
                                     alt50=1;
                                 }
                                 else if ( (true) ) {
@@ -6186,10 +6186,10 @@
                                 {
                                 int LA50_6 = input.LA(4);
 
-                                if ( ((validateIdentifierKey("accumulate"))) ) {
+                                if ( ((validateIdentifierKey(DroolsSoftKeywords.ACCUMULATE))) ) {
                                     alt50=1;
                                 }
-                                else if ( ((validateIdentifierKey("collect"))) ) {
+                                else if ( ((validateIdentifierKey(DroolsSoftKeywords.COLLECT))) ) {
                                     alt50=2;
                                 }
                                 else if ( (true) ) {
@@ -7927,7 +7927,7 @@
                 int alt66=2;
                 int LA66_0 = input.LA(1);
 
-                if ( (LA66_0==ID) && ((validateIdentifierKey("or")))) {
+                if ( (LA66_0==ID) && ((validateIdentifierKey(DroolsSoftKeywords.OR)))) {
                     alt66=1;
                 }
                 else if ( (LA66_0==DOUBLE_PIPE) ) {
@@ -7943,7 +7943,7 @@
             	    int alt65=2;
             	    int LA65_0 = input.LA(1);
 
-            	    if ( (LA65_0==ID) && ((validateIdentifierKey("or")))) {
+            	    if ( (LA65_0==ID) && ((validateIdentifierKey(DroolsSoftKeywords.OR)))) {
             	        alt65=1;
             	    }
             	    else if ( (LA65_0==DOUBLE_PIPE) ) {
@@ -8479,7 +8479,7 @@
     };
 
     // $ANTLR start unary_constr
-    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:653:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr RIGHT_PAREN );
+    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:653:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );
     public final unary_constr_return unary_constr() throws RecognitionException {
         unary_constr_return retval = new unary_constr_return();
         retval.start = input.LT(1);
@@ -8499,13 +8499,9 @@
 
         Object LEFT_PAREN205_tree=null;
         Object RIGHT_PAREN207_tree=null;
-        RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
-        RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
-        RewriteRuleSubtreeStream stream_or_constr=new RewriteRuleSubtreeStream(adaptor,"rule or_constr");
-        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/drools-compiler/src/main/resources/org/drools/lang/DRL.g:655:2: ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:655:2: ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN )
             int alt71=3;
             int LA71_0 = input.LA(1);
 
@@ -8518,7 +8514,7 @@
                 else if ( (LA71_1==LEFT_PAREN) ) {
                     int LA71_13 = input.LA(3);
 
-                    if ( ((validateIdentifierKey("eval"))) ) {
+                    if ( ((validateIdentifierKey(DroolsSoftKeywords.EVAL))) ) {
                         alt71=1;
                     }
                     else if ( (true) ) {
@@ -8527,7 +8523,7 @@
                     else {
                         if (backtracking>0) {failed=true; return retval;}
                         NoViableAltException nvae =
-                            new NoViableAltException("653:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr RIGHT_PAREN );", 71, 13, input);
+                            new NoViableAltException("653:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );", 71, 13, input);
 
                         throw nvae;
                     }
@@ -8535,7 +8531,7 @@
                 else {
                     if (backtracking>0) {failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("653:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr RIGHT_PAREN );", 71, 1, input);
+                        new NoViableAltException("653:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );", 71, 1, input);
 
                     throw nvae;
                 }
@@ -8546,7 +8542,7 @@
             else {
                 if (backtracking>0) {failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("653:1: unary_constr options {k=2; } : ( eval_key paren_chunk -> ^( eval_key paren_chunk ) | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN -> or_constr RIGHT_PAREN );", 71, 0, input);
+                    new NoViableAltException("653:1: unary_constr options {k=2; } : ( eval_key paren_chunk | field_constraint | LEFT_PAREN or_constr RIGHT_PAREN );", 71, 0, input);
 
                 throw nvae;
             }
@@ -8554,52 +8550,27 @@
                 case 1 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:655:4: eval_key paren_chunk
                     {
+                    root_0 = (Object)adaptor.nil();
+
                     pushFollow(FOLLOW_eval_key_in_unary_constr2754);
                     eval_key202=eval_key();
                     _fsp--;
                     if (failed) return retval;
-                    if ( backtracking==0 ) stream_eval_key.add(eval_key202.getTree());
-                    pushFollow(FOLLOW_paren_chunk_in_unary_constr2756);
+                    if ( backtracking==0 ) root_0 = (Object)adaptor.becomeRoot(eval_key202.getTree(), root_0);
+                    pushFollow(FOLLOW_paren_chunk_in_unary_constr2757);
                     paren_chunk203=paren_chunk();
                     _fsp--;
                     if (failed) return retval;
-                    if ( backtracking==0 ) stream_paren_chunk.add(paren_chunk203.getTree());
+                    if ( backtracking==0 ) adaptor.addChild(root_0, paren_chunk203.getTree());
 
-                    // AST REWRITE
-                    // elements: paren_chunk, eval_key
-                    // token labels: 
-                    // rule labels: retval
-                    // token list labels: 
-                    // rule list labels: 
-                    if ( backtracking==0 ) {
-                    retval.tree = root_0;
-                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-                    root_0 = (Object)adaptor.nil();
-                    // 655:25: -> ^( eval_key paren_chunk )
-                    {
-                        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:655:28: ^( eval_key paren_chunk )
-                        {
-                        Object root_1 = (Object)adaptor.nil();
-                        root_1 = (Object)adaptor.becomeRoot(stream_eval_key.nextNode(), root_1);
-
-                        adaptor.addChild(root_1, stream_paren_chunk.next());
-
-                        adaptor.addChild(root_0, root_1);
-                        }
-
                     }
-
-                    }
-
-                    }
                     break;
                 case 2 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:656:4: field_constraint
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_field_constraint_in_unary_constr2769);
+                    pushFollow(FOLLOW_field_constraint_in_unary_constr2762);
                     field_constraint204=field_constraint();
                     _fsp--;
                     if (failed) return retval;
@@ -8610,41 +8581,23 @@
                 case 3 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:657:4: LEFT_PAREN or_constr RIGHT_PAREN
                     {
+                    root_0 = (Object)adaptor.nil();
+
                     LEFT_PAREN205=(Token)input.LT(1);
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr2774); if (failed) return retval;
-                    if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN205);
-
-                    pushFollow(FOLLOW_or_constr_in_unary_constr2776);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr2767); if (failed) return retval;
+                    pushFollow(FOLLOW_or_constr_in_unary_constr2770);
                     or_constr206=or_constr();
                     _fsp--;
                     if (failed) return retval;
-                    if ( backtracking==0 ) stream_or_constr.add(or_constr206.getTree());
+                    if ( backtracking==0 ) adaptor.addChild(root_0, or_constr206.getTree());
                     RIGHT_PAREN207=(Token)input.LT(1);
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr2778); if (failed) return retval;
-                    if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN207);
-
-
-                    // AST REWRITE
-                    // elements: or_constr, RIGHT_PAREN
-                    // token labels: 
-                    // rule labels: retval
-                    // token list labels: 
-                    // rule list labels: 
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr2772); if (failed) return retval;
                     if ( backtracking==0 ) {
-                    retval.tree = root_0;
-                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-                    root_0 = (Object)adaptor.nil();
-                    // 657:37: -> or_constr RIGHT_PAREN
-                    {
-                        adaptor.addChild(root_0, stream_or_constr.next());
-                        adaptor.addChild(root_0, stream_RIGHT_PAREN.next());
-
+                    RIGHT_PAREN207_tree = (Object)adaptor.create(RIGHT_PAREN207);
+                    adaptor.addChild(root_0, RIGHT_PAREN207_tree);
                     }
 
                     }
-
-                    }
                     break;
 
             }
@@ -8734,12 +8687,12 @@
                 case 1 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:663:5: label accessor_path ( or_restr_connective | arw= ARROW paren_chunk )?
                     {
-                    pushFollow(FOLLOW_label_in_field_constraint2798);
+                    pushFollow(FOLLOW_label_in_field_constraint2786);
                     label208=label();
                     _fsp--;
                     if (failed) return retval;
                     if ( backtracking==0 ) stream_label.add(label208.getTree());
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint2800);
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint2788);
                     accessor_path209=accessor_path();
                     _fsp--;
                     if (failed) return retval;
@@ -8758,7 +8711,7 @@
                         case 1 :
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:663:27: or_restr_connective
                             {
-                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint2804);
+                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint2792);
                             or_restr_connective210=or_restr_connective();
                             _fsp--;
                             if (failed) return retval;
@@ -8770,10 +8723,10 @@
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:663:49: arw= ARROW paren_chunk
                             {
                             arw=(Token)input.LT(1);
-                            match(input,ARROW,FOLLOW_ARROW_in_field_constraint2810); if (failed) return retval;
+                            match(input,ARROW,FOLLOW_ARROW_in_field_constraint2798); if (failed) return retval;
                             if ( backtracking==0 ) stream_ARROW.add(arw);
 
-                            pushFollow(FOLLOW_paren_chunk_in_field_constraint2812);
+                            pushFollow(FOLLOW_paren_chunk_in_field_constraint2800);
                             paren_chunk211=paren_chunk();
                             _fsp--;
                             if (failed) return retval;
@@ -8789,7 +8742,7 @@
 
 
                     // AST REWRITE
-                    // elements: accessor_path, label, accessor_path, paren_chunk, or_restr_connective, label
+                    // elements: label, paren_chunk, label, or_restr_connective, accessor_path, accessor_path
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -8871,19 +8824,19 @@
                 case 2 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:666:4: accessor_path or_restr_connective
                     {
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint2866);
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint2854);
                     accessor_path212=accessor_path();
                     _fsp--;
                     if (failed) return retval;
                     if ( backtracking==0 ) stream_accessor_path.add(accessor_path212.getTree());
-                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint2868);
+                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint2856);
                     or_restr_connective213=or_restr_connective();
                     _fsp--;
                     if (failed) return retval;
                     if ( backtracking==0 ) stream_or_restr_connective.add(or_restr_connective213.getTree());
 
                     // AST REWRITE
-                    // elements: or_restr_connective, accessor_path
+                    // elements: accessor_path, or_restr_connective
                     // token labels: 
                     // rule labels: retval
                     // token list labels: 
@@ -8957,11 +8910,11 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:670:9: value= ID COLON
             {
             value=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_label2892); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_label2880); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(value);
 
             COLON214=(Token)input.LT(1);
-            match(input,COLON,FOLLOW_COLON_in_label2894); if (failed) return retval;
+            match(input,COLON,FOLLOW_COLON_in_label2882); if (failed) return retval;
             if ( backtracking==0 ) stream_COLON.add(COLON214);
 
 
@@ -9009,7 +8962,7 @@
     };
 
     // $ANTLR start or_restr_connective
-    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:673:1: or_restr_connective : and_restr_connective ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )* ;
+    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:673:1: or_restr_connective : and_restr_connective ( ( DOUBLE_PIPE )=> DOUBLE_PIPE and_restr_connective )* ;
     public final or_restr_connective_return or_restr_connective() throws RecognitionException {
         or_restr_connective_return retval = new or_restr_connective_return();
         retval.start = input.LT(1);
@@ -9025,32 +8978,32 @@
         Object DOUBLE_PIPE216_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:2: ( and_restr_connective ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )* )
-            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:4: and_restr_connective ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )*
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:2: ( and_restr_connective ( ( DOUBLE_PIPE )=> DOUBLE_PIPE and_restr_connective )* )
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:4: and_restr_connective ( ( DOUBLE_PIPE )=> DOUBLE_PIPE and_restr_connective )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective2910);
+            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective2898);
             and_restr_connective215=and_restr_connective();
             _fsp--;
             if (failed) return retval;
             if ( backtracking==0 ) adaptor.addChild(root_0, and_restr_connective215.getTree());
-            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:25: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )*
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:25: ( ( DOUBLE_PIPE )=> DOUBLE_PIPE and_restr_connective )*
             loop74:
             do {
                 int alt74=2;
                 alt74 = dfa74.predict(input);
                 switch (alt74) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:53: DOUBLE_PIPE and_restr_connective
+            	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:26: ( DOUBLE_PIPE )=> DOUBLE_PIPE and_restr_connective
             	    {
             	    DOUBLE_PIPE216=(Token)input.LT(1);
-            	    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective2922); if (failed) return retval;
+            	    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective2906); if (failed) return retval;
             	    if ( backtracking==0 ) {
             	    DOUBLE_PIPE216_tree = (Object)adaptor.create(DOUBLE_PIPE216);
             	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_PIPE216_tree, root_0);
             	    }
-            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective2925);
+            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective2909);
             	    and_restr_connective217=and_restr_connective();
             	    _fsp--;
             	    if (failed) return retval;
@@ -9090,7 +9043,7 @@
     };
 
     // $ANTLR start and_restr_connective
-    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:677:1: and_restr_connective : constraint_expression ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )* ;
+    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:677:1: and_restr_connective : constraint_expression ( ( DOUBLE_AMPER )=> DOUBLE_AMPER constraint_expression )* ;
     public final and_restr_connective_return and_restr_connective() throws RecognitionException {
         and_restr_connective_return retval = new and_restr_connective_return();
         retval.start = input.LT(1);
@@ -9106,32 +9059,32 @@
         Object DOUBLE_AMPER219_tree=null;
 
         try {
-            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:2: ( constraint_expression ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )* )
-            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:4: constraint_expression ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )*
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:2: ( constraint_expression ( ( DOUBLE_AMPER )=> DOUBLE_AMPER constraint_expression )* )
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:4: constraint_expression ( ( DOUBLE_AMPER )=> DOUBLE_AMPER constraint_expression )*
             {
             root_0 = (Object)adaptor.nil();
 
-            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective2940);
+            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective2924);
             constraint_expression218=constraint_expression();
             _fsp--;
             if (failed) return retval;
             if ( backtracking==0 ) adaptor.addChild(root_0, constraint_expression218.getTree());
-            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:26: ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )*
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:26: ( ( DOUBLE_AMPER )=> DOUBLE_AMPER constraint_expression )*
             loop75:
             do {
                 int alt75=2;
                 alt75 = dfa75.predict(input);
                 switch (alt75) {
             	case 1 :
-            	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:54: DOUBLE_AMPER constraint_expression
+            	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:27: ( DOUBLE_AMPER )=> DOUBLE_AMPER constraint_expression
             	    {
             	    DOUBLE_AMPER219=(Token)input.LT(1);
-            	    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective2952); if (failed) return retval;
+            	    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective2932); if (failed) return retval;
             	    if ( backtracking==0 ) {
             	    DOUBLE_AMPER219_tree = (Object)adaptor.create(DOUBLE_AMPER219);
             	    root_0 = (Object)adaptor.becomeRoot(DOUBLE_AMPER219_tree, root_0);
             	    }
-            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective2955);
+            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective2935);
             	    constraint_expression220=constraint_expression();
             	    _fsp--;
             	    if (failed) return retval;
@@ -9171,7 +9124,7 @@
     };
 
     // $ANTLR start constraint_expression
-    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );
+    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );
     public final constraint_expression_return constraint_expression() throws RecognitionException {
         constraint_expression_return retval = new constraint_expression_return();
         retval.start = input.LT(1);
@@ -9189,11 +9142,9 @@
 
         Object LEFT_PAREN223_tree=null;
         Object RIGHT_PAREN225_tree=null;
-        RewriteRuleTokenStream stream_LEFT_PAREN=new RewriteRuleTokenStream(adaptor,"token LEFT_PAREN");
-        RewriteRuleTokenStream stream_RIGHT_PAREN=new RewriteRuleTokenStream(adaptor,"token RIGHT_PAREN");
-        RewriteRuleSubtreeStream stream_or_restr_connective=new RewriteRuleSubtreeStream(adaptor,"rule or_restr_connective");
+
         try {
-            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:684:3: ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN )
+            // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:684:3: ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN )
             int alt76=3;
             switch ( input.LA(1) ) {
             case ID:
@@ -9213,33 +9164,33 @@
                     {
                     int LA76_10 = input.LA(3);
 
-                    if ( (LA76_10==LEFT_PAREN) && ((validateIdentifierKey("not")))) {
+                    if ( (LA76_10==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.NOT)))) {
                         int LA76_13 = input.LA(4);
 
-                        if ( ((validateIdentifierKey("not"))) ) {
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.NOT))) ) {
                             alt76=1;
                         }
-                        else if ( ((validateIdentifierKey("not"))) ) {
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.NOT))) ) {
                             alt76=2;
                         }
                         else {
                             if (backtracking>0) {failed=true; return retval;}
                             NoViableAltException nvae =
-                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 13, input);
+                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 13, input);
 
                             throw nvae;
                         }
                     }
-                    else if ( (LA76_10==ID||LA76_10==STRING||(LA76_10>=BOOL && LA76_10<=INT)||(LA76_10>=FLOAT && LA76_10<=NULL)) && ((validateIdentifierKey("not")))) {
+                    else if ( (LA76_10==ID||LA76_10==STRING||(LA76_10>=BOOL && LA76_10<=INT)||(LA76_10>=FLOAT && LA76_10<=NULL)) && ((validateIdentifierKey(DroolsSoftKeywords.NOT)))) {
                         alt76=2;
                     }
-                    else if ( (LA76_10==EOF||LA76_10==DOT||(LA76_10>=COMMA && LA76_10<=RIGHT_PAREN)||(LA76_10>=DOUBLE_PIPE && LA76_10<=DOUBLE_AMPER)||LA76_10==LEFT_SQUARE) ) {
+                    else if ( (LA76_10==DOT||(LA76_10>=COMMA && LA76_10<=RIGHT_PAREN)||(LA76_10>=DOUBLE_PIPE && LA76_10<=DOUBLE_AMPER)||LA76_10==LEFT_SQUARE) ) {
                         alt76=2;
                     }
                     else {
                         if (backtracking>0) {failed=true; return retval;}
                         NoViableAltException nvae =
-                            new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 10, input);
+                            new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 10, input);
 
                         throw nvae;
                     }
@@ -9250,9 +9201,9 @@
                     switch ( input.LA(3) ) {
                     case ID:
                         {
-                        int LA76_23 = input.LA(4);
+                        int LA76_22 = input.LA(4);
 
-                        if ( ((validateIdentifierKey("in"))) ) {
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IN))) ) {
                             alt76=1;
                         }
                         else if ( (true) ) {
@@ -9261,7 +9212,7 @@
                         else {
                             if (backtracking>0) {failed=true; return retval;}
                             NoViableAltException nvae =
-                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 23, input);
+                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 22, input);
 
                             throw nvae;
                         }
@@ -9269,9 +9220,9 @@
                         break;
                     case LEFT_PAREN:
                         {
-                        int LA76_24 = input.LA(4);
+                        int LA76_23 = input.LA(4);
 
-                        if ( ((validateIdentifierKey("in"))) ) {
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IN))) ) {
                             alt76=1;
                         }
                         else if ( (true) ) {
@@ -9280,7 +9231,7 @@
                         else {
                             if (backtracking>0) {failed=true; return retval;}
                             NoViableAltException nvae =
-                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 24, input);
+                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 23, input);
 
                             throw nvae;
                         }
@@ -9408,9 +9359,9 @@
                     case FLOAT:
                     case NULL:
                         {
-                        int LA76_26 = input.LA(4);
+                        int LA76_25 = input.LA(4);
 
-                        if ( ((validateIdentifierKey("in"))) ) {
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IN))) ) {
                             alt76=1;
                         }
                         else if ( (true) ) {
@@ -9419,7 +9370,7 @@
                         else {
                             if (backtracking>0) {failed=true; return retval;}
                             NoViableAltException nvae =
-                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 26, input);
+                                new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 25, input);
 
                             throw nvae;
                         }
@@ -9428,7 +9379,7 @@
                     default:
                         if (backtracking>0) {failed=true; return retval;}
                         NoViableAltException nvae =
-                            new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 12, input);
+                            new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 12, input);
 
                         throw nvae;
                     }
@@ -9438,7 +9389,7 @@
                 default:
                     if (backtracking>0) {failed=true; return retval;}
                     NoViableAltException nvae =
-                        new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 1, input);
+                        new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 1, input);
 
                     throw nvae;
                 }
@@ -9463,7 +9414,7 @@
             default:
                 if (backtracking>0) {failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN );", 76, 0, input);
+                    new NoViableAltException("681:1: constraint_expression options {k=3; } : ( compound_operator | simple_operator | LEFT_PAREN or_restr_connective RIGHT_PAREN );", 76, 0, input);
 
                 throw nvae;
             }
@@ -9474,7 +9425,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_compound_operator_in_constraint_expression2977);
+                    pushFollow(FOLLOW_compound_operator_in_constraint_expression2957);
                     compound_operator221=compound_operator();
                     _fsp--;
                     if (failed) return retval;
@@ -9487,7 +9438,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_simple_operator_in_constraint_expression2982);
+                    pushFollow(FOLLOW_simple_operator_in_constraint_expression2962);
                     simple_operator222=simple_operator();
                     _fsp--;
                     if (failed) return retval;
@@ -9498,41 +9449,23 @@
                 case 3 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:686:4: LEFT_PAREN or_restr_connective RIGHT_PAREN
                     {
+                    root_0 = (Object)adaptor.nil();
+
                     LEFT_PAREN223=(Token)input.LT(1);
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression2987); if (failed) return retval;
-                    if ( backtracking==0 ) stream_LEFT_PAREN.add(LEFT_PAREN223);
-
-                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression2989);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression2967); if (failed) return retval;
+                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression2970);
                     or_restr_connective224=or_restr_connective();
                     _fsp--;
                     if (failed) return retval;
-                    if ( backtracking==0 ) stream_or_restr_connective.add(or_restr_connective224.getTree());
+                    if ( backtracking==0 ) adaptor.addChild(root_0, or_restr_connective224.getTree());
                     RIGHT_PAREN225=(Token)input.LT(1);
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression2991); if (failed) return retval;
-                    if ( backtracking==0 ) stream_RIGHT_PAREN.add(RIGHT_PAREN225);
-
-
-                    // AST REWRITE
-                    // elements: RIGHT_PAREN, or_restr_connective
-                    // token labels: 
-                    // rule labels: retval
-                    // token list labels: 
-                    // rule list labels: 
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression2972); if (failed) return retval;
                     if ( backtracking==0 ) {
-                    retval.tree = root_0;
-                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
-
-                    root_0 = (Object)adaptor.nil();
-                    // 686:47: -> or_restr_connective RIGHT_PAREN
-                    {
-                        adaptor.addChild(root_0, stream_or_restr_connective.next());
-                        adaptor.addChild(root_0, stream_RIGHT_PAREN.next());
-
+                    RIGHT_PAREN225_tree = (Object)adaptor.create(RIGHT_PAREN225);
+                    adaptor.addChild(root_0, RIGHT_PAREN225_tree);
                     }
 
                     }
-
-                    }
                     break;
 
             }
@@ -9653,22 +9586,22 @@
                 {
                 int LA80_7 = input.LA(2);
 
-                if ( (LA80_7==ID) && ((validateIdentifierKey("not")))) {
+                if ( (LA80_7==ID) && ((validateIdentifierKey(DroolsSoftKeywords.NOT)))) {
                     alt80=7;
                 }
-                else if ( ((validateIdentifierKey("contains"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.CONTAINS))) ) {
                     alt80=8;
                 }
-                else if ( ((validateIdentifierKey("excludes"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.EXCLUDES))) ) {
                     alt80=9;
                 }
-                else if ( ((validateIdentifierKey("matches"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.MATCHES))) ) {
                     alt80=10;
                 }
-                else if ( ((validateIdentifierKey("soundslike"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE))) ) {
                     alt80=11;
                 }
-                else if ( ((validateIdentifierKey("memberof"))) ) {
+                else if ( ((validateIdentifierKey(DroolsSoftKeywords.MEMBEROF))) ) {
                     alt80=12;
                 }
                 else if ( (true) ) {
@@ -9696,7 +9629,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:690:5: EQUAL
                     {
                     EQUAL226=(Token)input.LT(1);
-                    match(input,EQUAL,FOLLOW_EQUAL_in_simple_operator3009); if (failed) return retval;
+                    match(input,EQUAL,FOLLOW_EQUAL_in_simple_operator2984); if (failed) return retval;
                     if ( backtracking==0 ) {
                     EQUAL226_tree = (Object)adaptor.create(EQUAL226);
                     root_0 = (Object)adaptor.becomeRoot(EQUAL226_tree, root_0);
@@ -9708,7 +9641,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:691:4: GREATER
                     {
                     GREATER227=(Token)input.LT(1);
-                    match(input,GREATER,FOLLOW_GREATER_in_simple_operator3015); if (failed) return retval;
+                    match(input,GREATER,FOLLOW_GREATER_in_simple_operator2990); if (failed) return retval;
                     if ( backtracking==0 ) {
                     GREATER227_tree = (Object)adaptor.create(GREATER227);
                     root_0 = (Object)adaptor.becomeRoot(GREATER227_tree, root_0);
@@ -9720,7 +9653,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:692:4: GREATER_EQUAL
                     {
                     GREATER_EQUAL228=(Token)input.LT(1);
-                    match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_simple_operator3021); if (failed) return retval;
+                    match(input,GREATER_EQUAL,FOLLOW_GREATER_EQUAL_in_simple_operator2996); if (failed) return retval;
                     if ( backtracking==0 ) {
                     GREATER_EQUAL228_tree = (Object)adaptor.create(GREATER_EQUAL228);
                     root_0 = (Object)adaptor.becomeRoot(GREATER_EQUAL228_tree, root_0);
@@ -9732,7 +9665,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:4: LESS
                     {
                     LESS229=(Token)input.LT(1);
-                    match(input,LESS,FOLLOW_LESS_in_simple_operator3027); if (failed) return retval;
+                    match(input,LESS,FOLLOW_LESS_in_simple_operator3002); if (failed) return retval;
                     if ( backtracking==0 ) {
                     LESS229_tree = (Object)adaptor.create(LESS229);
                     root_0 = (Object)adaptor.becomeRoot(LESS229_tree, root_0);
@@ -9744,7 +9677,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:694:4: LESS_EQUAL
                     {
                     LESS_EQUAL230=(Token)input.LT(1);
-                    match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_simple_operator3033); if (failed) return retval;
+                    match(input,LESS_EQUAL,FOLLOW_LESS_EQUAL_in_simple_operator3008); if (failed) return retval;
                     if ( backtracking==0 ) {
                     LESS_EQUAL230_tree = (Object)adaptor.create(LESS_EQUAL230);
                     root_0 = (Object)adaptor.becomeRoot(LESS_EQUAL230_tree, root_0);
@@ -9756,7 +9689,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:695:4: NOT_EQUAL
                     {
                     NOT_EQUAL231=(Token)input.LT(1);
-                    match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_simple_operator3039); if (failed) return retval;
+                    match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_simple_operator3014); if (failed) return retval;
                     if ( backtracking==0 ) {
                     NOT_EQUAL231_tree = (Object)adaptor.create(NOT_EQUAL231);
                     root_0 = (Object)adaptor.becomeRoot(NOT_EQUAL231_tree, root_0);
@@ -9767,7 +9700,7 @@
                 case 7 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:4: not_key ( contains_key | soundslike_key | matches_key | memberof_key | ID ( square_chunk )? )
                     {
-                    pushFollow(FOLLOW_not_key_in_simple_operator3045);
+                    pushFollow(FOLLOW_not_key_in_simple_operator3020);
                     not_key232=not_key();
                     _fsp--;
                     if (failed) return retval;
@@ -9779,16 +9712,16 @@
                     if ( (LA78_0==ID) ) {
                         int LA78_1 = input.LA(2);
 
-                        if ( ((validateIdentifierKey("contains"))) ) {
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.CONTAINS))) ) {
                             alt78=1;
                         }
-                        else if ( ((validateIdentifierKey("soundslike"))) ) {
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE))) ) {
                             alt78=2;
                         }
-                        else if ( ((validateIdentifierKey("matches"))) ) {
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.MATCHES))) ) {
                             alt78=3;
                         }
-                        else if ( ((validateIdentifierKey("memberof"))) ) {
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.MEMBEROF))) ) {
                             alt78=4;
                         }
                         else if ( (true) ) {
@@ -9813,7 +9746,7 @@
                         case 1 :
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:13: contains_key
                             {
-                            pushFollow(FOLLOW_contains_key_in_simple_operator3048);
+                            pushFollow(FOLLOW_contains_key_in_simple_operator3023);
                             contains_key233=contains_key();
                             _fsp--;
                             if (failed) return retval;
@@ -9824,7 +9757,7 @@
                         case 2 :
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:27: soundslike_key
                             {
-                            pushFollow(FOLLOW_soundslike_key_in_simple_operator3051);
+                            pushFollow(FOLLOW_soundslike_key_in_simple_operator3026);
                             soundslike_key234=soundslike_key();
                             _fsp--;
                             if (failed) return retval;
@@ -9835,7 +9768,7 @@
                         case 3 :
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:43: matches_key
                             {
-                            pushFollow(FOLLOW_matches_key_in_simple_operator3054);
+                            pushFollow(FOLLOW_matches_key_in_simple_operator3029);
                             matches_key235=matches_key();
                             _fsp--;
                             if (failed) return retval;
@@ -9846,7 +9779,7 @@
                         case 4 :
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:56: memberof_key
                             {
-                            pushFollow(FOLLOW_memberof_key_in_simple_operator3057);
+                            pushFollow(FOLLOW_memberof_key_in_simple_operator3032);
                             memberof_key236=memberof_key();
                             _fsp--;
                             if (failed) return retval;
@@ -9858,7 +9791,7 @@
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:70: ID ( square_chunk )?
                             {
                             ID237=(Token)input.LT(1);
-                            match(input,ID,FOLLOW_ID_in_simple_operator3060); if (failed) return retval;
+                            match(input,ID,FOLLOW_ID_in_simple_operator3035); if (failed) return retval;
                             if ( backtracking==0 ) {
                             ID237_tree = (Object)adaptor.create(ID237);
                             root_0 = (Object)adaptor.becomeRoot(ID237_tree, root_0);
@@ -9874,7 +9807,7 @@
                                 case 1 :
                                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:696:74: square_chunk
                                     {
-                                    pushFollow(FOLLOW_square_chunk_in_simple_operator3063);
+                                    pushFollow(FOLLOW_square_chunk_in_simple_operator3038);
                                     square_chunk238=square_chunk();
                                     _fsp--;
                                     if (failed) return retval;
@@ -9897,7 +9830,7 @@
                 case 8 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:697:4: contains_key
                     {
-                    pushFollow(FOLLOW_contains_key_in_simple_operator3070);
+                    pushFollow(FOLLOW_contains_key_in_simple_operator3045);
                     contains_key239=contains_key();
                     _fsp--;
                     if (failed) return retval;
@@ -9908,7 +9841,7 @@
                 case 9 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:698:4: excludes_key
                     {
-                    pushFollow(FOLLOW_excludes_key_in_simple_operator3076);
+                    pushFollow(FOLLOW_excludes_key_in_simple_operator3051);
                     excludes_key240=excludes_key();
                     _fsp--;
                     if (failed) return retval;
@@ -9919,7 +9852,7 @@
                 case 10 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:699:4: matches_key
                     {
-                    pushFollow(FOLLOW_matches_key_in_simple_operator3082);
+                    pushFollow(FOLLOW_matches_key_in_simple_operator3057);
                     matches_key241=matches_key();
                     _fsp--;
                     if (failed) return retval;
@@ -9930,7 +9863,7 @@
                 case 11 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:700:4: soundslike_key
                     {
-                    pushFollow(FOLLOW_soundslike_key_in_simple_operator3088);
+                    pushFollow(FOLLOW_soundslike_key_in_simple_operator3063);
                     soundslike_key242=soundslike_key();
                     _fsp--;
                     if (failed) return retval;
@@ -9941,7 +9874,7 @@
                 case 12 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:701:4: memberof_key
                     {
-                    pushFollow(FOLLOW_memberof_key_in_simple_operator3094);
+                    pushFollow(FOLLOW_memberof_key_in_simple_operator3069);
                     memberof_key243=memberof_key();
                     _fsp--;
                     if (failed) return retval;
@@ -9953,7 +9886,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:702:4: ID ( square_chunk )?
                     {
                     ID244=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_simple_operator3100); if (failed) return retval;
+                    match(input,ID,FOLLOW_ID_in_simple_operator3075); if (failed) return retval;
                     if ( backtracking==0 ) {
                     ID244_tree = (Object)adaptor.create(ID244);
                     root_0 = (Object)adaptor.becomeRoot(ID244_tree, root_0);
@@ -9969,7 +9902,7 @@
                         case 1 :
                             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:702:8: square_chunk
                             {
-                            pushFollow(FOLLOW_square_chunk_in_simple_operator3103);
+                            pushFollow(FOLLOW_square_chunk_in_simple_operator3078);
                             square_chunk245=square_chunk();
                             _fsp--;
                             if (failed) return retval;
@@ -9986,7 +9919,7 @@
 
             }
 
-            pushFollow(FOLLOW_expression_value_in_simple_operator3108);
+            pushFollow(FOLLOW_expression_value_in_simple_operator3083);
             expression_value246=expression_value();
             _fsp--;
             if (failed) return retval;
@@ -10052,13 +9985,13 @@
             int alt81=2;
             int LA81_0 = input.LA(1);
 
-            if ( (LA81_0==ID) && (((validateIdentifierKey("not"))||(validateIdentifierKey("in"))))) {
+            if ( (LA81_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.NOT))||(validateIdentifierKey(DroolsSoftKeywords.IN))))) {
                 int LA81_1 = input.LA(2);
 
-                if ( (LA81_1==LEFT_PAREN) && ((validateIdentifierKey("in")))) {
+                if ( (LA81_1==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.IN)))) {
                     alt81=1;
                 }
-                else if ( (LA81_1==ID) && ((validateIdentifierKey("not")))) {
+                else if ( (LA81_1==ID) && ((validateIdentifierKey(DroolsSoftKeywords.NOT)))) {
                     alt81=2;
                 }
                 else {
@@ -10080,7 +10013,7 @@
                 case 1 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:708:6: in_key
                     {
-                    pushFollow(FOLLOW_in_key_in_compound_operator3123);
+                    pushFollow(FOLLOW_in_key_in_compound_operator3098);
                     in_key247=in_key();
                     _fsp--;
                     if (failed) return retval;
@@ -10091,12 +10024,12 @@
                 case 2 :
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:708:16: not_key in_key
                     {
-                    pushFollow(FOLLOW_not_key_in_compound_operator3128);
+                    pushFollow(FOLLOW_not_key_in_compound_operator3103);
                     not_key248=not_key();
                     _fsp--;
                     if (failed) return retval;
                     if ( backtracking==0 ) adaptor.addChild(root_0, not_key248.getTree());
-                    pushFollow(FOLLOW_in_key_in_compound_operator3130);
+                    pushFollow(FOLLOW_in_key_in_compound_operator3105);
                     in_key249=in_key();
                     _fsp--;
                     if (failed) return retval;
@@ -10108,8 +10041,8 @@
             }
 
             LEFT_PAREN250=(Token)input.LT(1);
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator3135); if (failed) return retval;
-            pushFollow(FOLLOW_expression_value_in_compound_operator3138);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator3110); if (failed) return retval;
+            pushFollow(FOLLOW_expression_value_in_compound_operator3113);
             expression_value251=expression_value();
             _fsp--;
             if (failed) return retval;
@@ -10130,8 +10063,8 @@
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:708:65: COMMA expression_value
             	    {
             	    COMMA252=(Token)input.LT(1);
-            	    match(input,COMMA,FOLLOW_COMMA_in_compound_operator3142); if (failed) return retval;
-            	    pushFollow(FOLLOW_expression_value_in_compound_operator3145);
+            	    match(input,COMMA,FOLLOW_COMMA_in_compound_operator3117); if (failed) return retval;
+            	    pushFollow(FOLLOW_expression_value_in_compound_operator3120);
             	    expression_value253=expression_value();
             	    _fsp--;
             	    if (failed) return retval;
@@ -10146,7 +10079,7 @@
             } while (true);
 
             RIGHT_PAREN254=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator3150); if (failed) return retval;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator3125); if (failed) return retval;
             if ( backtracking==0 ) {
             RIGHT_PAREN254_tree = (Object)adaptor.create(RIGHT_PAREN254);
             adaptor.addChild(root_0, RIGHT_PAREN254_tree);
@@ -10229,7 +10162,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_accessor_path_in_expression_value3161);
+                    pushFollow(FOLLOW_accessor_path_in_expression_value3136);
                     accessor_path255=accessor_path();
                     _fsp--;
                     if (failed) return retval;
@@ -10242,7 +10175,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_literal_constraint_in_expression_value3166);
+                    pushFollow(FOLLOW_literal_constraint_in_expression_value3141);
                     literal_constraint256=literal_constraint();
                     _fsp--;
                     if (failed) return retval;
@@ -10255,7 +10188,7 @@
                     {
                     root_0 = (Object)adaptor.nil();
 
-                    pushFollow(FOLLOW_paren_chunk_in_expression_value3172);
+                    pushFollow(FOLLOW_paren_chunk_in_expression_value3147);
                     paren_chunk257=paren_chunk();
                     _fsp--;
                     if (failed) return retval;
@@ -10368,7 +10301,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:4: ID ( DOT ID )* ( dimension_definition )*
             {
             ID259=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_pattern_type3214); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_pattern_type3189); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID259);
 
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:7: ( DOT ID )*
@@ -10387,11 +10320,11 @@
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:9: DOT ID
             	    {
             	    DOT260=(Token)input.LT(1);
-            	    match(input,DOT,FOLLOW_DOT_in_pattern_type3218); if (failed) return retval;
+            	    match(input,DOT,FOLLOW_DOT_in_pattern_type3193); if (failed) return retval;
             	    if ( backtracking==0 ) stream_DOT.add(DOT260);
 
             	    ID261=(Token)input.LT(1);
-            	    match(input,ID,FOLLOW_ID_in_pattern_type3220); if (failed) return retval;
+            	    match(input,ID,FOLLOW_ID_in_pattern_type3195); if (failed) return retval;
             	    if ( backtracking==0 ) stream_ID.add(ID261);
 
 
@@ -10418,7 +10351,7 @@
             	case 1 :
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:19: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type3225);
+            	    pushFollow(FOLLOW_dimension_definition_in_pattern_type3200);
             	    dimension_definition262=dimension_definition();
             	    _fsp--;
             	    if (failed) return retval;
@@ -10522,7 +10455,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:731:4: ID ( DOT ID )* ( dimension_definition )*
             {
             ID263=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_data_type3251); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_data_type3226); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID263);
 
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:731:7: ( DOT ID )*
@@ -10541,11 +10474,11 @@
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:731:9: DOT ID
             	    {
             	    DOT264=(Token)input.LT(1);
-            	    match(input,DOT,FOLLOW_DOT_in_data_type3255); if (failed) return retval;
+            	    match(input,DOT,FOLLOW_DOT_in_data_type3230); if (failed) return retval;
             	    if ( backtracking==0 ) stream_DOT.add(DOT264);
 
             	    ID265=(Token)input.LT(1);
-            	    match(input,ID,FOLLOW_ID_in_data_type3257); if (failed) return retval;
+            	    match(input,ID,FOLLOW_ID_in_data_type3232); if (failed) return retval;
             	    if ( backtracking==0 ) stream_ID.add(ID265);
 
 
@@ -10572,7 +10505,7 @@
             	case 1 :
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:731:19: dimension_definition
             	    {
-            	    pushFollow(FOLLOW_dimension_definition_in_data_type3262);
+            	    pushFollow(FOLLOW_dimension_definition_in_data_type3237);
             	    dimension_definition266=dimension_definition();
             	    _fsp--;
             	    if (failed) return retval;
@@ -10672,13 +10605,13 @@
             root_0 = (Object)adaptor.nil();
 
             LEFT_SQUARE267=(Token)input.LT(1);
-            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition3288); if (failed) return retval;
+            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dimension_definition3263); if (failed) return retval;
             if ( backtracking==0 ) {
             LEFT_SQUARE267_tree = (Object)adaptor.create(LEFT_SQUARE267);
             adaptor.addChild(root_0, LEFT_SQUARE267_tree);
             }
             RIGHT_SQUARE268=(Token)input.LT(1);
-            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition3290); if (failed) return retval;
+            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dimension_definition3265); if (failed) return retval;
             if ( backtracking==0 ) {
             RIGHT_SQUARE268_tree = (Object)adaptor.create(RIGHT_SQUARE268);
             adaptor.addChild(root_0, RIGHT_SQUARE268_tree);
@@ -10729,7 +10662,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:740:2: ( accessor_element ( DOT accessor_element )* -> ^( VT_ACCESSOR_PATH ( accessor_element )+ ) )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:740:4: accessor_element ( DOT accessor_element )*
             {
-            pushFollow(FOLLOW_accessor_element_in_accessor_path3301);
+            pushFollow(FOLLOW_accessor_element_in_accessor_path3276);
             accessor_element269=accessor_element();
             _fsp--;
             if (failed) return retval;
@@ -10750,10 +10683,10 @@
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:740:23: DOT accessor_element
             	    {
             	    DOT270=(Token)input.LT(1);
-            	    match(input,DOT,FOLLOW_DOT_in_accessor_path3305); if (failed) return retval;
+            	    match(input,DOT,FOLLOW_DOT_in_accessor_path3280); if (failed) return retval;
             	    if ( backtracking==0 ) stream_DOT.add(DOT270);
 
-            	    pushFollow(FOLLOW_accessor_element_in_accessor_path3307);
+            	    pushFollow(FOLLOW_accessor_element_in_accessor_path3282);
             	    accessor_element271=accessor_element();
             	    _fsp--;
             	    if (failed) return retval;
@@ -10846,7 +10779,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:4: ID ( square_chunk )*
             {
             ID272=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_accessor_element3331); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_accessor_element3306); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID272);
 
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:7: ( square_chunk )*
@@ -10864,7 +10797,7 @@
             	case 1 :
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:7: square_chunk
             	    {
-            	    pushFollow(FOLLOW_square_chunk_in_accessor_element3333);
+            	    pushFollow(FOLLOW_square_chunk_in_accessor_element3308);
             	    square_chunk273=square_chunk();
             	    _fsp--;
             	    if (failed) return retval;
@@ -10880,7 +10813,7 @@
 
 
             // AST REWRITE
-            // elements: square_chunk, ID
+            // elements: ID, square_chunk
             // token labels: 
             // rule labels: retval
             // token list labels: 
@@ -10955,7 +10888,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:752:3: (rc= rhs_chunk_data -> VT_RHS_CHUNK[$rc.start,text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:752:5: rc= rhs_chunk_data
             {
-            pushFollow(FOLLOW_rhs_chunk_data_in_rhs_chunk3362);
+            pushFollow(FOLLOW_rhs_chunk_data_in_rhs_chunk3337);
             rc=rhs_chunk_data();
             _fsp--;
             if (failed) return retval;
@@ -11032,7 +10965,7 @@
             root_0 = (Object)adaptor.nil();
 
             THEN274=(Token)input.LT(1);
-            match(input,THEN,FOLLOW_THEN_in_rhs_chunk_data3381); if (failed) return retval;
+            match(input,THEN,FOLLOW_THEN_in_rhs_chunk_data3356); if (failed) return retval;
             if ( backtracking==0 ) {
             THEN274_tree = (Object)adaptor.create(THEN274);
             adaptor.addChild(root_0, THEN274_tree);
@@ -11062,7 +10995,7 @@
             	        if (backtracking>0) {failed=true; return retval;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk_data3385);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk_data3360);    throw mse;
             	    }
 
 
@@ -11075,7 +11008,7 @@
             } while (true);
 
             END276=(Token)input.LT(1);
-            match(input,END,FOLLOW_END_in_rhs_chunk_data3391); if (failed) return retval;
+            match(input,END,FOLLOW_END_in_rhs_chunk_data3366); if (failed) return retval;
             if ( backtracking==0 ) {
             END276_tree = (Object)adaptor.create(END276);
             adaptor.addChild(root_0, END276_tree);
@@ -11092,7 +11025,7 @@
                     // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:757:23: SEMICOLON
                     {
                     SEMICOLON277=(Token)input.LT(1);
-                    match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rhs_chunk_data3393); if (failed) return retval;
+                    match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rhs_chunk_data3368); if (failed) return retval;
                     if ( backtracking==0 ) {
                     SEMICOLON277_tree = (Object)adaptor.create(SEMICOLON277);
                     adaptor.addChild(root_0, SEMICOLON277_tree);
@@ -11147,7 +11080,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:763:3: (cc= curly_chunk_data -> VT_CURLY_CHUNK[$cc.start,text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:763:5: cc= curly_chunk_data
             {
-            pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk3410);
+            pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk3385);
             cc=curly_chunk_data();
             _fsp--;
             if (failed) return retval;
@@ -11224,7 +11157,7 @@
             root_0 = (Object)adaptor.nil();
 
             LEFT_CURLY278=(Token)input.LT(1);
-            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk_data3429); if (failed) return retval;
+            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk_data3404); if (failed) return retval;
             if ( backtracking==0 ) {
             LEFT_CURLY278_tree = (Object)adaptor.create(LEFT_CURLY278);
             adaptor.addChild(root_0, LEFT_CURLY278_tree);
@@ -11257,7 +11190,7 @@
             	        if (backtracking>0) {failed=true; return retval;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk_data3432);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk_data3407);    throw mse;
             	    }
 
 
@@ -11266,7 +11199,7 @@
             	case 2 :
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:768:49: curly_chunk_data
             	    {
-            	    pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk_data3446);
+            	    pushFollow(FOLLOW_curly_chunk_data_in_curly_chunk_data3421);
             	    curly_chunk_data280=curly_chunk_data();
             	    _fsp--;
             	    if (failed) return retval;
@@ -11281,7 +11214,7 @@
             } while (true);
 
             RIGHT_CURLY281=(Token)input.LT(1);
-            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk_data3451); if (failed) return retval;
+            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk_data3426); if (failed) return retval;
             if ( backtracking==0 ) {
             RIGHT_CURLY281_tree = (Object)adaptor.create(RIGHT_CURLY281);
             adaptor.addChild(root_0, RIGHT_CURLY281_tree);
@@ -11330,7 +11263,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:774:3: (pc= paren_chunk_data -> VT_PAREN_CHUNK[$pc.start,text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:774:5: pc= paren_chunk_data
             {
-            pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk3467);
+            pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk3442);
             pc=paren_chunk_data();
             _fsp--;
             if (failed) return retval;
@@ -11407,7 +11340,7 @@
             root_0 = (Object)adaptor.nil();
 
             LEFT_PAREN282=(Token)input.LT(1);
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk_data3487); if (failed) return retval;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk_data3462); if (failed) return retval;
             if ( backtracking==0 ) {
             LEFT_PAREN282_tree = (Object)adaptor.create(LEFT_PAREN282);
             adaptor.addChild(root_0, LEFT_PAREN282_tree);
@@ -11440,7 +11373,7 @@
             	        if (backtracking>0) {failed=true; return retval;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk_data3490);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk_data3465);    throw mse;
             	    }
 
 
@@ -11449,7 +11382,7 @@
             	case 2 :
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:779:49: paren_chunk_data
             	    {
-            	    pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk_data3504);
+            	    pushFollow(FOLLOW_paren_chunk_data_in_paren_chunk_data3479);
             	    paren_chunk_data284=paren_chunk_data();
             	    _fsp--;
             	    if (failed) return retval;
@@ -11464,7 +11397,7 @@
             } while (true);
 
             RIGHT_PAREN285=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk_data3509); if (failed) return retval;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk_data3484); if (failed) return retval;
             if ( backtracking==0 ) {
             RIGHT_PAREN285_tree = (Object)adaptor.create(RIGHT_PAREN285);
             adaptor.addChild(root_0, RIGHT_PAREN285_tree);
@@ -11513,7 +11446,7 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:785:3: (sc= square_chunk_data -> VT_SQUARE_CHUNK[$sc.start,text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:785:5: sc= square_chunk_data
             {
-            pushFollow(FOLLOW_square_chunk_data_in_square_chunk3526);
+            pushFollow(FOLLOW_square_chunk_data_in_square_chunk3501);
             sc=square_chunk_data();
             _fsp--;
             if (failed) return retval;
@@ -11590,7 +11523,7 @@
             root_0 = (Object)adaptor.nil();
 
             LEFT_SQUARE286=(Token)input.LT(1);
-            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk_data3545); if (failed) return retval;
+            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk_data3520); if (failed) return retval;
             if ( backtracking==0 ) {
             LEFT_SQUARE286_tree = (Object)adaptor.create(LEFT_SQUARE286);
             adaptor.addChild(root_0, LEFT_SQUARE286_tree);
@@ -11623,7 +11556,7 @@
             	        if (backtracking>0) {failed=true; return retval;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk_data3548);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk_data3523);    throw mse;
             	    }
 
 
@@ -11632,7 +11565,7 @@
             	case 2 :
             	    // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:790:52: square_chunk_data
             	    {
-            	    pushFollow(FOLLOW_square_chunk_data_in_square_chunk_data3562);
+            	    pushFollow(FOLLOW_square_chunk_data_in_square_chunk_data3537);
             	    square_chunk_data288=square_chunk_data();
             	    _fsp--;
             	    if (failed) return retval;
@@ -11647,7 +11580,7 @@
             } while (true);
 
             RIGHT_SQUARE289=(Token)input.LT(1);
-            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk_data3567); if (failed) return retval;
+            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk_data3542); if (failed) return retval;
             if ( backtracking==0 ) {
             RIGHT_SQUARE289_tree = (Object)adaptor.create(RIGHT_SQUARE289);
             adaptor.addChild(root_0, RIGHT_SQUARE289_tree);
@@ -11702,20 +11635,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:3: ({...}? => ID MISC ID -> VK_DATE_EFFECTIVE[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "date_effective_key", "(validateIdentifierKey(\"date\") && validateLT(2, \"-\") && validateLT(3, \"effective\"))");
+                throw new FailedPredicateException(input, "date_effective_key", "(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))");
             }
             ID290=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_date_effective_key3586); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_date_effective_key3561); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID290);
 
             MISC291=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_date_effective_key3588); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_date_effective_key3563); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC291);
 
             ID292=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_date_effective_key3590); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_date_effective_key3565); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID292);
 
             if ( backtracking==0 ) {
@@ -11790,20 +11723,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:804:3: ({...}? => ID MISC ID -> VK_DATE_EXPIRES[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:804:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "date_expires_key", "(validateIdentifierKey(\"date\") && validateLT(2, \"-\") && validateLT(3, \"expires\"))");
+                throw new FailedPredicateException(input, "date_expires_key", "(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.EXPIRES))");
             }
             ID293=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_date_expires_key3616); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_date_expires_key3591); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID293);
 
             MISC294=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_date_expires_key3618); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_date_expires_key3593); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC294);
 
             ID295=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_date_expires_key3620); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_date_expires_key3595); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID295);
 
             if ( backtracking==0 ) {
@@ -11882,28 +11815,28 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:811:3: ({...}? => ID MISC ID MISC ID -> VK_LOCK_ON_ACTIVE[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:811:5: {...}? => ID MISC ID MISC ID
             {
-            if ( !((validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "lock_on_active_key", "(validateIdentifierKey(\"lock\") && validateLT(2, \"-\") && validateLT(3, \"on\") && validateLT(4, \"-\") && validateLT(5, \"active\"))");
+                throw new FailedPredicateException(input, "lock_on_active_key", "(validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, \"-\") && validateLT(5, DroolsSoftKeywords.ACTIVE))");
             }
             ID296=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_lock_on_active_key3646); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_lock_on_active_key3621); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID296);
 
             MISC297=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_lock_on_active_key3648); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_lock_on_active_key3623); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC297);
 
             ID298=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_lock_on_active_key3650); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_lock_on_active_key3625); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID298);
 
             MISC299=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_lock_on_active_key3652); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_lock_on_active_key3627); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC299);
 
             ID300=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_lock_on_active_key3654); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_lock_on_active_key3629); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID300);
 
             if ( backtracking==0 ) {
@@ -11978,20 +11911,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:818:3: ({...}? => ID MISC ID -> VK_NO_LOOP[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:818:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "no_loop_key", "(validateIdentifierKey(\"no\") && validateLT(2, \"-\") && validateLT(3, \"loop\"))");
+                throw new FailedPredicateException(input, "no_loop_key", "(validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.LOOP))");
             }
             ID301=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_no_loop_key3680); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_no_loop_key3655); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID301);
 
             MISC302=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_no_loop_key3682); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_no_loop_key3657); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC302);
 
             ID303=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_no_loop_key3684); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_no_loop_key3659); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID303);
 
             if ( backtracking==0 ) {
@@ -12066,20 +11999,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:825:3: ({...}? => ID MISC ID -> VK_AUTO_FOCUS[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:825:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "auto_focus_key", "(validateIdentifierKey(\"auto\") && validateLT(2, \"-\") && validateLT(3, \"focus\"))");
+                throw new FailedPredicateException(input, "auto_focus_key", "(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.FOCUS))");
             }
             ID304=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_auto_focus_key3710); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_auto_focus_key3685); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID304);
 
             MISC305=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_auto_focus_key3712); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_auto_focus_key3687); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC305);
 
             ID306=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_auto_focus_key3714); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_auto_focus_key3689); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID306);
 
             if ( backtracking==0 ) {
@@ -12154,20 +12087,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:3: ({...}? => ID MISC ID -> VK_ACTIVATION_GROUP[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "activation_group_key", "(validateIdentifierKey(\"activation\") && validateLT(2, \"-\") && validateLT(3, \"group\"))");
+                throw new FailedPredicateException(input, "activation_group_key", "(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.GROUP))");
             }
             ID307=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_activation_group_key3740); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_activation_group_key3715); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID307);
 
             MISC308=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_activation_group_key3742); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_activation_group_key3717); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC308);
 
             ID309=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_activation_group_key3744); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_activation_group_key3719); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID309);
 
             if ( backtracking==0 ) {
@@ -12242,20 +12175,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:839:3: ({...}? => ID MISC ID -> VK_AGENDA_GROUP[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:839:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "agenda_group_key", "(validateIdentifierKey(\"agenda\") && validateLT(2, \"-\") && validateLT(3, \"group\"))");
+                throw new FailedPredicateException(input, "agenda_group_key", "(validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.GROUP))");
             }
             ID310=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_agenda_group_key3770); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_agenda_group_key3745); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID310);
 
             MISC311=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_agenda_group_key3772); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_agenda_group_key3747); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC311);
 
             ID312=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_agenda_group_key3774); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_agenda_group_key3749); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID312);
 
             if ( backtracking==0 ) {
@@ -12330,20 +12263,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:3: ({...}? => ID MISC ID -> VK_RULEFLOW_GROUP[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "ruleflow_group_key", "(validateIdentifierKey(\"ruleflow\") && validateLT(2, \"-\") && validateLT(3, \"group\"))");
+                throw new FailedPredicateException(input, "ruleflow_group_key", "(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.GROUP))");
             }
             ID313=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_ruleflow_group_key3800); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_ruleflow_group_key3775); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID313);
 
             MISC314=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_ruleflow_group_key3802); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_ruleflow_group_key3777); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC314);
 
             ID315=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_ruleflow_group_key3804); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_ruleflow_group_key3779); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID315);
 
             if ( backtracking==0 ) {
@@ -12410,12 +12343,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:851:2: ({...}? =>id= ID -> VK_DURATION[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:851:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("duration"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.DURATION))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "duration_key", "(validateIdentifierKey(\"duration\"))");
+                throw new FailedPredicateException(input, "duration_key", "(validateIdentifierKey(DroolsSoftKeywords.DURATION))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_duration_key3829); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_duration_key3804); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12430,7 +12363,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 851:52: -> VK_DURATION[$id]
+            // 851:69: -> VK_DURATION[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_DURATION, id));
 
@@ -12479,12 +12412,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:2: ({...}? =>id= ID -> VK_PACKAGE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("package"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.PACKAGE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "package_key", "(validateIdentifierKey(\"package\"))");
+                throw new FailedPredicateException(input, "package_key", "(validateIdentifierKey(DroolsSoftKeywords.PACKAGE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_package_key3851); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_package_key3826); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12499,7 +12432,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 855:51: -> VK_PACKAGE[$id]
+            // 855:68: -> VK_PACKAGE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_PACKAGE, id));
 
@@ -12548,12 +12481,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:859:2: ({...}? =>id= ID -> VK_IMPORT[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:859:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("import"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "import_key", "(validateIdentifierKey(\"import\"))");
+                throw new FailedPredicateException(input, "import_key", "(validateIdentifierKey(DroolsSoftKeywords.IMPORT))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_import_key3873); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_import_key3848); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12568,7 +12501,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 859:50: -> VK_IMPORT[$id]
+            // 859:67: -> VK_IMPORT[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_IMPORT, id));
 
@@ -12617,12 +12550,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:863:2: ({...}? =>id= ID -> VK_DIALECT[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:863:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("dialect"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.DIALECT))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "dialect_key", "(validateIdentifierKey(\"dialect\"))");
+                throw new FailedPredicateException(input, "dialect_key", "(validateIdentifierKey(DroolsSoftKeywords.DIALECT))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_dialect_key3895); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_dialect_key3870); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12637,7 +12570,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 863:51: -> VK_DIALECT[$id]
+            // 863:68: -> VK_DIALECT[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_DIALECT, id));
 
@@ -12686,12 +12619,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:867:2: ({...}? =>id= ID -> VK_SALIENCE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:867:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("salience"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "salience_key", "(validateIdentifierKey(\"salience\"))");
+                throw new FailedPredicateException(input, "salience_key", "(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_salience_key3917); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_salience_key3892); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12706,7 +12639,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 867:52: -> VK_SALIENCE[$id]
+            // 867:69: -> VK_SALIENCE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_SALIENCE, id));
 
@@ -12755,12 +12688,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:2: ({...}? =>id= ID -> VK_ENABLED[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("enabled"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.ENABLED))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "enabled_key", "(validateIdentifierKey(\"enabled\"))");
+                throw new FailedPredicateException(input, "enabled_key", "(validateIdentifierKey(DroolsSoftKeywords.ENABLED))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_enabled_key3939); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_enabled_key3914); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12775,7 +12708,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 871:51: -> VK_ENABLED[$id]
+            // 871:68: -> VK_ENABLED[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_ENABLED, id));
 
@@ -12824,12 +12757,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:875:2: ({...}? =>id= ID -> VK_ATTRIBUTES[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:875:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("attributes"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "attributes_key", "(validateIdentifierKey(\"attributes\"))");
+                throw new FailedPredicateException(input, "attributes_key", "(validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_attributes_key3961); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_attributes_key3936); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12844,7 +12777,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 875:54: -> VK_ATTRIBUTES[$id]
+            // 875:71: -> VK_ATTRIBUTES[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_ATTRIBUTES, id));
 
@@ -12893,12 +12826,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:879:2: ({...}? =>id= ID -> VK_WHEN[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:879:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("when"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "when_key", "(validateIdentifierKey(\"when\"))");
+                throw new FailedPredicateException(input, "when_key", "(validateIdentifierKey(DroolsSoftKeywords.WHEN))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_when_key3983); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_when_key3958); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12913,7 +12846,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 879:48: -> VK_WHEN[$id]
+            // 879:65: -> VK_WHEN[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_WHEN, id));
 
@@ -12962,12 +12895,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:883:2: ({...}? =>id= ID -> VK_RULE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:883:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("rule"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "rule_key", "(validateIdentifierKey(\"rule\"))");
+                throw new FailedPredicateException(input, "rule_key", "(validateIdentifierKey(DroolsSoftKeywords.RULE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_rule_key4005); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_rule_key3980); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -12982,7 +12915,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 883:48: -> VK_RULE[$id]
+            // 883:65: -> VK_RULE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_RULE, id));
 
@@ -13031,12 +12964,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:887:2: ({...}? =>id= ID -> VK_TEMPLATE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:887:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("template"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "template_key", "(validateIdentifierKey(\"template\"))");
+                throw new FailedPredicateException(input, "template_key", "(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_template_key4027); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_template_key4002); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13051,7 +12984,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 887:52: -> VK_TEMPLATE[$id]
+            // 887:69: -> VK_TEMPLATE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_TEMPLATE, id));
 
@@ -13100,12 +13033,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:891:2: ({...}? =>id= ID -> VK_QUERY[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:891:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("query"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "query_key", "(validateIdentifierKey(\"query\"))");
+                throw new FailedPredicateException(input, "query_key", "(validateIdentifierKey(DroolsSoftKeywords.QUERY))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_query_key4049); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_query_key4024); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13120,7 +13053,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 891:49: -> VK_QUERY[$id]
+            // 891:66: -> VK_QUERY[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_QUERY, id));
 
@@ -13169,12 +13102,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:895:2: ({...}? =>id= ID -> VK_DECLARE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:895:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("declare"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.DECLARE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "declare_key", "(validateIdentifierKey(\"declare\"))");
+                throw new FailedPredicateException(input, "declare_key", "(validateIdentifierKey(DroolsSoftKeywords.DECLARE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_declare_key4071); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_declare_key4046); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13189,7 +13122,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 895:51: -> VK_DECLARE[$id]
+            // 895:68: -> VK_DECLARE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_DECLARE, id));
 
@@ -13238,12 +13171,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:2: ({...}? =>id= ID -> VK_FUNCTION[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("function"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "function_key", "(validateIdentifierKey(\"function\"))");
+                throw new FailedPredicateException(input, "function_key", "(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_function_key4093); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_function_key4068); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13258,7 +13191,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 899:52: -> VK_FUNCTION[$id]
+            // 899:69: -> VK_FUNCTION[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_FUNCTION, id));
 
@@ -13307,12 +13240,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:903:2: ({...}? =>id= ID -> VK_GLOBAL[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:903:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("global"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "global_key", "(validateIdentifierKey(\"global\"))");
+                throw new FailedPredicateException(input, "global_key", "(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_global_key4115); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_global_key4090); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13327,7 +13260,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 903:50: -> VK_GLOBAL[$id]
+            // 903:67: -> VK_GLOBAL[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_GLOBAL, id));
 
@@ -13376,12 +13309,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:907:2: ({...}? =>id= ID -> VK_EVAL[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:907:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("eval"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.EVAL))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "eval_key", "(validateIdentifierKey(\"eval\"))");
+                throw new FailedPredicateException(input, "eval_key", "(validateIdentifierKey(DroolsSoftKeywords.EVAL))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_eval_key4137); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_eval_key4112); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13396,7 +13329,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 907:48: -> VK_EVAL[$id]
+            // 907:65: -> VK_EVAL[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_EVAL, id));
 
@@ -13445,12 +13378,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:911:2: ({...}? =>id= ID -> VK_CONTAINS[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:911:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("contains"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.CONTAINS))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "contains_key", "(validateIdentifierKey(\"contains\"))");
+                throw new FailedPredicateException(input, "contains_key", "(validateIdentifierKey(DroolsSoftKeywords.CONTAINS))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_contains_key4159); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_contains_key4134); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13465,7 +13398,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 911:52: -> VK_CONTAINS[$id]
+            // 911:69: -> VK_CONTAINS[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_CONTAINS, id));
 
@@ -13514,12 +13447,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:915:2: ({...}? =>id= ID -> VK_MATCHES[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:915:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("matches"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.MATCHES))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "matches_key", "(validateIdentifierKey(\"matches\"))");
+                throw new FailedPredicateException(input, "matches_key", "(validateIdentifierKey(DroolsSoftKeywords.MATCHES))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_matches_key4181); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_matches_key4156); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13534,7 +13467,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 915:51: -> VK_MATCHES[$id]
+            // 915:68: -> VK_MATCHES[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_MATCHES, id));
 
@@ -13583,12 +13516,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:919:2: ({...}? =>id= ID -> VK_EXCLUDES[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:919:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("excludes"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.EXCLUDES))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "excludes_key", "(validateIdentifierKey(\"excludes\"))");
+                throw new FailedPredicateException(input, "excludes_key", "(validateIdentifierKey(DroolsSoftKeywords.EXCLUDES))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_excludes_key4203); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_excludes_key4178); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13603,7 +13536,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 919:52: -> VK_EXCLUDES[$id]
+            // 919:69: -> VK_EXCLUDES[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_EXCLUDES, id));
 
@@ -13652,12 +13585,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:923:2: ({...}? =>id= ID -> VK_SOUNDSLIKE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:923:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("soundslike"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "soundslike_key", "(validateIdentifierKey(\"soundslike\"))");
+                throw new FailedPredicateException(input, "soundslike_key", "(validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_soundslike_key4225); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_soundslike_key4200); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13672,7 +13605,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 923:54: -> VK_SOUNDSLIKE[$id]
+            // 923:71: -> VK_SOUNDSLIKE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_SOUNDSLIKE, id));
 
@@ -13721,12 +13654,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:927:2: ({...}? =>id= ID -> VK_MEMBEROF[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:927:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("memberof"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.MEMBEROF))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "memberof_key", "(validateIdentifierKey(\"memberof\"))");
+                throw new FailedPredicateException(input, "memberof_key", "(validateIdentifierKey(DroolsSoftKeywords.MEMBEROF))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_memberof_key4247); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_memberof_key4222); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13741,7 +13674,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 927:52: -> VK_MEMBEROF[$id]
+            // 927:69: -> VK_MEMBEROF[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_MEMBEROF, id));
 
@@ -13790,12 +13723,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:2: ({...}? =>id= ID -> VK_NOT[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("not"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.NOT))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "not_key", "(validateIdentifierKey(\"not\"))");
+                throw new FailedPredicateException(input, "not_key", "(validateIdentifierKey(DroolsSoftKeywords.NOT))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_not_key4269); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_not_key4244); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13810,7 +13743,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 931:47: -> VK_NOT[$id]
+            // 931:64: -> VK_NOT[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_NOT, id));
 
@@ -13859,12 +13792,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:935:2: ({...}? =>id= ID -> VK_IN[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:935:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("in"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.IN))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "in_key", "(validateIdentifierKey(\"in\"))");
+                throw new FailedPredicateException(input, "in_key", "(validateIdentifierKey(DroolsSoftKeywords.IN))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_in_key4291); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_in_key4266); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13879,7 +13812,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 935:46: -> VK_IN[$id]
+            // 935:63: -> VK_IN[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_IN, id));
 
@@ -13928,12 +13861,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:2: ({...}? =>id= ID -> VK_OR[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:939:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("or"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.OR))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "or_key", "(validateIdentifierKey(\"or\"))");
+                throw new FailedPredicateException(input, "or_key", "(validateIdentifierKey(DroolsSoftKeywords.OR))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_or_key4313); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_or_key4288); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -13948,7 +13881,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 939:46: -> VK_OR[$id]
+            // 939:63: -> VK_OR[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_OR, id));
 
@@ -13997,12 +13930,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943:2: ({...}? =>id= ID -> VK_AND[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:943:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("and"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.AND))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "and_key", "(validateIdentifierKey(\"and\"))");
+                throw new FailedPredicateException(input, "and_key", "(validateIdentifierKey(DroolsSoftKeywords.AND))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_and_key4335); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_and_key4310); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14017,7 +13950,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 943:47: -> VK_AND[$id]
+            // 943:64: -> VK_AND[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_AND, id));
 
@@ -14066,12 +13999,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:947:2: ({...}? =>id= ID -> VK_EXISTS[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:947:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("exists"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.EXISTS))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "exists_key", "(validateIdentifierKey(\"exists\"))");
+                throw new FailedPredicateException(input, "exists_key", "(validateIdentifierKey(DroolsSoftKeywords.EXISTS))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_exists_key4357); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_exists_key4332); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14086,7 +14019,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 947:50: -> VK_EXISTS[$id]
+            // 947:67: -> VK_EXISTS[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_EXISTS, id));
 
@@ -14135,12 +14068,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:951:2: ({...}? =>id= ID -> VK_FORALL[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:951:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("forall"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.FORALL))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "forall_key", "(validateIdentifierKey(\"forall\"))");
+                throw new FailedPredicateException(input, "forall_key", "(validateIdentifierKey(DroolsSoftKeywords.FORALL))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_forall_key4379); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_forall_key4354); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14155,7 +14088,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 951:50: -> VK_FORALL[$id]
+            // 951:67: -> VK_FORALL[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_FORALL, id));
 
@@ -14204,12 +14137,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:955:2: ({...}? =>id= ID -> VK_FROM[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:955:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("from"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.FROM))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "from_key", "(validateIdentifierKey(\"from\"))");
+                throw new FailedPredicateException(input, "from_key", "(validateIdentifierKey(DroolsSoftKeywords.FROM))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_from_key4401); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_from_key4376); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14224,7 +14157,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 955:48: -> VK_FROM[$id]
+            // 955:65: -> VK_FROM[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_FROM, id));
 
@@ -14281,20 +14214,20 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:3: ({...}? => ID MISC ID -> VK_ENTRY_POINT[$start, text] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:5: {...}? => ID MISC ID
             {
-            if ( !((validateIdentifierKey("entry") && validateLT(2, "-") && validateLT(3, "point"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.POINT))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "entry_point_key", "(validateIdentifierKey(\"entry\") && validateLT(2, \"-\") && validateLT(3, \"point\"))");
+                throw new FailedPredicateException(input, "entry_point_key", "(validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, \"-\") && validateLT(3, DroolsSoftKeywords.POINT))");
             }
             ID316=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_entry_point_key4424); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_entry_point_key4399); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID316);
 
             MISC317=(Token)input.LT(1);
-            match(input,MISC,FOLLOW_MISC_in_entry_point_key4426); if (failed) return retval;
+            match(input,MISC,FOLLOW_MISC_in_entry_point_key4401); if (failed) return retval;
             if ( backtracking==0 ) stream_MISC.add(MISC317);
 
             ID318=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_entry_point_key4428); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_entry_point_key4403); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(ID318);
 
             if ( backtracking==0 ) {
@@ -14361,12 +14294,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:966:2: ({...}? =>id= ID -> VK_ACCUMULATE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:966:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("accumulate"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.ACCUMULATE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "accumulate_key", "(validateIdentifierKey(\"accumulate\"))");
+                throw new FailedPredicateException(input, "accumulate_key", "(validateIdentifierKey(DroolsSoftKeywords.ACCUMULATE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_accumulate_key4453); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_accumulate_key4428); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14381,7 +14314,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 966:54: -> VK_ACCUMULATE[$id]
+            // 966:71: -> VK_ACCUMULATE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_ACCUMULATE, id));
 
@@ -14430,12 +14363,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:2: ({...}? =>id= ID -> VK_INIT[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("init"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.INIT))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "init_key", "(validateIdentifierKey(\"init\"))");
+                throw new FailedPredicateException(input, "init_key", "(validateIdentifierKey(DroolsSoftKeywords.INIT))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_init_key4475); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_init_key4450); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14450,7 +14383,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 970:48: -> VK_INIT[$id]
+            // 970:65: -> VK_INIT[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_INIT, id));
 
@@ -14499,12 +14432,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:974:2: ({...}? =>id= ID -> VK_ACTION[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:974:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("action"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.ACTION))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "action_key", "(validateIdentifierKey(\"action\"))");
+                throw new FailedPredicateException(input, "action_key", "(validateIdentifierKey(DroolsSoftKeywords.ACTION))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_action_key4497); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_action_key4472); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14519,7 +14452,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 974:50: -> VK_ACTION[$id]
+            // 974:67: -> VK_ACTION[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_ACTION, id));
 
@@ -14568,12 +14501,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:978:2: ({...}? =>id= ID -> VK_REVERSE[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:978:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("reverse"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.REVERSE))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "reverse_key", "(validateIdentifierKey(\"reverse\"))");
+                throw new FailedPredicateException(input, "reverse_key", "(validateIdentifierKey(DroolsSoftKeywords.REVERSE))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_reverse_key4519); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_reverse_key4494); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14588,7 +14521,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 978:51: -> VK_REVERSE[$id]
+            // 978:68: -> VK_REVERSE[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_REVERSE, id));
 
@@ -14637,12 +14570,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:982:2: ({...}? =>id= ID -> VK_RESULT[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:982:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("result"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.RESULT))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "result_key", "(validateIdentifierKey(\"result\"))");
+                throw new FailedPredicateException(input, "result_key", "(validateIdentifierKey(DroolsSoftKeywords.RESULT))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_result_key4541); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_result_key4516); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14657,7 +14590,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 982:50: -> VK_RESULT[$id]
+            // 982:67: -> VK_RESULT[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_RESULT, id));
 
@@ -14706,12 +14639,12 @@
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:2: ({...}? =>id= ID -> VK_COLLECT[$id] )
             // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:4: {...}? =>id= ID
             {
-            if ( !((validateIdentifierKey("collect"))) ) {
+            if ( !((validateIdentifierKey(DroolsSoftKeywords.COLLECT))) ) {
                 if (backtracking>0) {failed=true; return retval;}
-                throw new FailedPredicateException(input, "collect_key", "(validateIdentifierKey(\"collect\"))");
+                throw new FailedPredicateException(input, "collect_key", "(validateIdentifierKey(DroolsSoftKeywords.COLLECT))");
             }
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_collect_key4563); if (failed) return retval;
+            match(input,ID,FOLLOW_ID_in_collect_key4538); if (failed) return retval;
             if ( backtracking==0 ) stream_ID.add(id);
 
 
@@ -14726,7 +14659,7 @@
             RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
 
             root_0 = (Object)adaptor.nil();
-            // 986:51: -> VK_COLLECT[$id]
+            // 986:68: -> VK_COLLECT[$id]
             {
                 adaptor.addChild(root_0, adaptor.create(VK_COLLECT, id));
 
@@ -14774,7 +14707,7 @@
         int alt95=2;
         int LA95_0 = input.LA(1);
 
-        if ( (LA95_0==ID) && ((validateIdentifierKey("or")))) {
+        if ( (LA95_0==ID) && ((validateIdentifierKey(DroolsSoftKeywords.OR)))) {
             alt95=1;
         }
         else if ( (LA95_0==DOUBLE_PIPE) ) {
@@ -14830,7 +14763,7 @@
         int alt96=2;
         int LA96_0 = input.LA(1);
 
-        if ( (LA96_0==ID) && ((validateIdentifierKey("and")))) {
+        if ( (LA96_0==ID) && ((validateIdentifierKey(DroolsSoftKeywords.AND)))) {
             alt96=1;
         }
         else if ( (LA96_0==DOUBLE_AMPER) ) {
@@ -14886,13 +14819,13 @@
         int alt97=2;
         int LA97_0 = input.LA(1);
 
-        if ( (LA97_0==ID) && (((validateIdentifierKey("or"))||(validateIdentifierKey("and"))))) {
+        if ( (LA97_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.OR))))) {
             int LA97_1 = input.LA(2);
 
-            if ( ((validateIdentifierKey("or"))) ) {
+            if ( ((validateIdentifierKey(DroolsSoftKeywords.OR))) ) {
                 alt97=1;
             }
-            else if ( ((validateIdentifierKey("and"))) ) {
+            else if ( ((validateIdentifierKey(DroolsSoftKeywords.AND))) ) {
                 alt97=2;
             }
             else {
@@ -14949,13 +14882,13 @@
         int alt98=2;
         int LA98_0 = input.LA(1);
 
-        if ( (LA98_0==ID) && (((validateIdentifierKey("or"))||(validateIdentifierKey("and"))))) {
+        if ( (LA98_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.AND))||(validateIdentifierKey(DroolsSoftKeywords.OR))))) {
             int LA98_1 = input.LA(2);
 
-            if ( ((validateIdentifierKey("or"))) ) {
+            if ( ((validateIdentifierKey(DroolsSoftKeywords.OR))) ) {
                 alt98=1;
             }
-            else if ( ((validateIdentifierKey("and"))) ) {
+            else if ( ((validateIdentifierKey(DroolsSoftKeywords.AND))) ) {
                 alt98=2;
             }
             else {
@@ -15037,14 +14970,10 @@
 
     // $ANTLR start synpred11
     public final void synpred11_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:53: ( DOUBLE_PIPE and_restr_connective )
-        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:53: DOUBLE_PIPE and_restr_connective
+        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:26: ( DOUBLE_PIPE )
+        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:674:27: DOUBLE_PIPE
         {
-        match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred112922); if (failed) return ;
-        pushFollow(FOLLOW_and_restr_connective_in_synpred112925);
-        and_restr_connective();
-        _fsp--;
-        if (failed) return ;
+        match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred112902); if (failed) return ;
 
         }
     }
@@ -15052,14 +14981,10 @@
 
     // $ANTLR start synpred12
     public final void synpred12_fragment() throws RecognitionException {   
-        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:54: ( DOUBLE_AMPER constraint_expression )
-        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:54: DOUBLE_AMPER constraint_expression
+        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:27: ( DOUBLE_AMPER )
+        // /Users/porcelli/Documents/dev/drools/drools-compiler/src/main/resources/org/drools/lang/DRL.g:678:28: DOUBLE_AMPER
         {
-        match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred122952); if (failed) return ;
-        pushFollow(FOLLOW_constraint_expression_in_synpred122955);
-        constraint_expression();
-        _fsp--;
-        if (failed) return ;
+        match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred122928); if (failed) return ;
 
         }
     }
@@ -15452,11 +15377,11 @@
                         int index5_93 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_93==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        if ( (LA5_93==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_93==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_93==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_93==COMMA||LA5_93==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_93==COMMA||LA5_93==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_93);
@@ -15469,13 +15394,13 @@
                         int index5_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("function"))) ) {s = 46;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))) ) {s = 46;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
-                        else if ( ((validateIdentifierKey("query"))) ) {s = 12;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {s = 12;}
 
                          
                         input.seek(index5_23);
@@ -15488,11 +15413,11 @@
                         int index5_86 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_86==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( (LA5_86==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_86==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_86==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_86==COMMA||LA5_86==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_86==COMMA||LA5_86==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_86);
@@ -15505,9 +15430,9 @@
                         int index5_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("function"))) ) {s = 50;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.FUNCTION))) ) {s = 50;}
 
-                        else if ( ((validateIdentifierKey("query"))) ) {s = 12;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {s = 12;}
 
                          
                         input.seek(index5_32);
@@ -15520,19 +15445,19 @@
                         int index5_54 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_54==MISC) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 70;}
+                        if ( (LA5_54==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 70;}
 
-                        else if ( (LA5_54==INT) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 71;}
+                        else if ( (LA5_54==INT) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 71;}
 
-                        else if ( (LA5_54==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 72;}
+                        else if ( (LA5_54==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 72;}
 
-                        else if ( (LA5_54==STRING) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 73;}
+                        else if ( (LA5_54==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 73;}
 
-                        else if ( (LA5_54==COLON||LA5_54==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_54==COLON||LA5_54==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_54==LEFT_PAREN) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 74;}
+                        else if ( (LA5_54==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 74;}
 
-                        else if ( (LA5_54==BOOL) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 75;}
+                        else if ( (LA5_54==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 75;}
 
                          
                         input.seek(index5_54);
@@ -15545,13 +15470,13 @@
                         int index5_48 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_48==LEFT_SQUARE) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 29;}
+                        if ( (LA5_48==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 29;}
 
-                        else if ( (LA5_48==LEFT_PAREN) && ((validateIdentifierKey("query")))) {s = 12;}
+                        else if ( (LA5_48==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) {s = 12;}
 
-                        else if ( (LA5_48==DOT) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 28;}
+                        else if ( (LA5_48==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 28;}
 
-                        else if ( (LA5_48==ID) && ((validateIdentifierKey("template")))) {s = 17;}
+                        else if ( (LA5_48==ID) && ((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE)))) {s = 17;}
 
                          
                         input.seek(index5_48);
@@ -15564,11 +15489,11 @@
                         int index5_75 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_75==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        if ( (LA5_75==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_75==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_75==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_75==COMMA||LA5_75==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_75==COMMA||LA5_75==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_75);
@@ -15581,11 +15506,11 @@
                         int index5_49 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_49==ID) && ((validateIdentifierKey("template")))) {s = 17;}
+                        if ( (LA5_49==ID) && ((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE)))) {s = 17;}
 
-                        else if ( (LA5_49==LEFT_SQUARE) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 29;}
+                        else if ( (LA5_49==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 29;}
 
-                        else if ( (LA5_49==LEFT_PAREN) && ((validateIdentifierKey("query")))) {s = 12;}
+                        else if ( (LA5_49==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) {s = 12;}
 
                          
                         input.seek(index5_49);
@@ -15598,17 +15523,17 @@
                         int index5_79 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_79==MISC) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 87;}
+                        if ( (LA5_79==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 87;}
 
-                        else if ( (LA5_79==BOOL) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 88;}
+                        else if ( (LA5_79==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 88;}
 
-                        else if ( (LA5_79==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_79==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_79==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_79==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_79==STRING) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 89;}
+                        else if ( (LA5_79==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 89;}
 
-                        else if ( (LA5_79==COMMA||LA5_79==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_79==COMMA||LA5_79==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_79);
@@ -15621,11 +15546,11 @@
                         int index5_88 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_88==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( (LA5_88==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_88==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_88==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_88==COMMA||LA5_88==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_88==COMMA||LA5_88==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_88);
@@ -15638,9 +15563,9 @@
                         int index5_101 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_101==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 108;}
+                        if ( (LA5_101==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 108;}
 
-                        else if ( ((LA5_101>=VT_COMPILATION_UNIT && LA5_101<=SEMICOLON)||(LA5_101>=DOT && LA5_101<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_101>=VT_COMPILATION_UNIT && LA5_101<=SEMICOLON)||(LA5_101>=DOT && LA5_101<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_101);
@@ -15653,9 +15578,9 @@
                         int index5_84 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_84==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 96;}
+                        if ( (LA5_84==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 96;}
 
-                        else if ( ((LA5_84>=VT_COMPILATION_UNIT && LA5_84<=SEMICOLON)||(LA5_84>=DOT && LA5_84<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_84>=VT_COMPILATION_UNIT && LA5_84<=SEMICOLON)||(LA5_84>=DOT && LA5_84<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_84);
@@ -15668,9 +15593,9 @@
                         int index5_62 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_62);
@@ -15683,11 +15608,11 @@
                         int index5_105 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_105==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( (LA5_105==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_105==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_105==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_105==COMMA||LA5_105==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_105==COMMA||LA5_105==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_105);
@@ -15700,11 +15625,11 @@
                         int index5_39 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("dialect"))) ) {s = 18;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.DIALECT))) ) {s = 18;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
-                        else if ( ((validateIdentifierKey("query"))) ) {s = 12;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {s = 12;}
 
                          
                         input.seek(index5_39);
@@ -15717,7 +15642,7 @@
                         int index5_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_9==RIGHT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))))) {s = 20;}
+                        if ( (LA5_9==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 20;}
 
                          
                         input.seek(index5_9);
@@ -15730,11 +15655,11 @@
                         int index5_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_11==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("query"))))) {s = 32;}
+                        if ( (LA5_11==ID) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 32;}
 
-                        else if ( (LA5_11==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("query"))))) {s = 33;}
+                        else if ( (LA5_11==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 33;}
 
-                        else if ( (LA5_11==LEFT_PAREN) && ((validateIdentifierKey("query")))) {s = 12;}
+                        else if ( (LA5_11==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) {s = 12;}
 
                          
                         input.seek(index5_11);
@@ -15747,21 +15672,21 @@
                         int index5_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_3==DOT) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))||(validateIdentifierKey("import"))))) {s = 8;}
+                        if ( (LA5_3==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 8;}
 
-                        else if ( (LA5_3==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))))) {s = 9;}
+                        else if ( (LA5_3==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 9;}
 
-                        else if ( (LA5_3==ID) && ((((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import"))!
 )||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "f!
 unction") )&&(validateIdentifierKey("import")))||((validateLT(1, "impo
rt") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("rule"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validate!
 LT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("imp!
 ort")))||((validateLT(1, "import") && validateLT(2, "function") )&&(va
lidateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, !
 "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(valid!
 ateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(
2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("global"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function")!
  )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((valida!
 teLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierK
ey("import")))||(validateIdentifierKey("query"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("import"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&!
 (validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIde!
 ntifierKey("template"))||((validateLT(1, "import") && validateLT(2, "f
unction") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||!
 ((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "func!
 tion") )&&(validateIdentifierKey("import")))||((validateLT(1, "import"
) && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdenti!
 fierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") &!
 & validateLT(2, "function") )&&(validateIdentifierKey("import")))||((v
alidateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function!
 ") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("function"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(vali!
 dateIdentifierKey("import")))||((validateLT(1, "import") && validateLT
(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import!
 ")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2,!
  "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "i
mport") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))))) {s = 10;}
+                        else if ( (LA5_3==ID) && ((((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "funct!
 ion") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateL!
 T(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT))
)||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeyword!
 s.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(Drools!
 SoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "fu
nction") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeyw!
 ords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(Dro!
 olsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, 
"function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && vali!
 dateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "impor!
 t") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftK
eywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(D!
 roolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "impo!
 rt") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoft
Keywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(!
 DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIde!
 ntifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && 
validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifie!
 rKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(valida!
 teIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import"
) && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1!
 , "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(val!
 idateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "impo
rt") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateL!
 T(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||!
 ((validateLT(1, "import") && validateLT(2, "function") )&&(validateIde
ntifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validat!
 eLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") !
 )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1
, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((va!
 lidateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPO!
 RT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(vali
dateIdentifierKey(DroolsSoftKeywords.IMPORT)))))) {s = 10;}
 
-                        else if ( (LA5_3==LEFT_PAREN) && (((validateIdentifierKey("query"))||(validateIdentifierKey("function"))))) {s = 11;}
+                        else if ( (LA5_3==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 11;}
 
-                        else if ( (LA5_3==END) && ((validateIdentifierKey("query")))) {s = 12;}
+                        else if ( (LA5_3==END) && ((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) {s = 12;}
 
-                        else if ( (LA5_3==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_3==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_3==SEMICOLON) && (((validateIdentifierKey("import"))||(validateIdentifierKey("template"))))) {s = 14;}
+                        else if ( (LA5_3==SEMICOLON) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 14;}
 
-                        else if ( (LA5_3==EOF||LA5_3==DOT_STAR) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_3==EOF||LA5_3==DOT_STAR) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_3);
@@ -15774,11 +15699,11 @@
                         int index5_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_27==COMMA||LA5_27==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        if ( (LA5_27==COMMA||LA5_27==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_27==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_27==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_27==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_27==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_27);
@@ -15791,9 +15716,9 @@
                         int index5_52 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("template"))) ) {s = 17;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))) ) {s = 17;}
 
                          
                         input.seek(index5_52);
@@ -15806,15 +15731,15 @@
                         int index5_107 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_107==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        if ( (LA5_107==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( (LA5_107==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_107==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
-                        else if ( ((LA5_107>=VT_COMPILATION_UNIT && LA5_107<=SEMICOLON)||(LA5_107>=DOT && LA5_107<=LEFT_PAREN)||(LA5_107>=COLON && LA5_107<=NULL)||(LA5_107>=RIGHT_SQUARE && LA5_107<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_107>=VT_COMPILATION_UNIT && LA5_107<=SEMICOLON)||(LA5_107>=DOT && LA5_107<=LEFT_PAREN)||(LA5_107>=COLON && LA5_107<=NULL)||(LA5_107>=RIGHT_SQUARE && LA5_107<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_107==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 100;}
+                        else if ( (LA5_107==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 100;}
 
-                        else if ( (LA5_107==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 102;}
+                        else if ( (LA5_107==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 102;}
 
                          
                         input.seek(index5_107);
@@ -15827,11 +15752,11 @@
                         int index5_60 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_60==COMMA||LA5_60==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        if ( (LA5_60==COMMA||LA5_60==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_60==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_60==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_60==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_60==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_60);
@@ -15844,11 +15769,11 @@
                         int index5_56 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_56==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 76;}
+                        if ( (LA5_56==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 76;}
 
-                        else if ( ((LA5_56>=VT_COMPILATION_UNIT && LA5_56<=SEMICOLON)||(LA5_56>=DOT && LA5_56<=COMMA)||(LA5_56>=COLON && LA5_56<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_56>=VT_COMPILATION_UNIT && LA5_56<=SEMICOLON)||(LA5_56>=DOT && LA5_56<=COMMA)||(LA5_56>=COLON && LA5_56<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_56==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        else if ( (LA5_56==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
                          
                         input.seek(index5_56);
@@ -15861,11 +15786,11 @@
                         int index5_59 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_59==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( (LA5_59==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_59==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_59==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_59==COMMA||LA5_59==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_59==COMMA||LA5_59==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_59);
@@ -15878,17 +15803,17 @@
                         int index5_95 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_95==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        if ( (LA5_95==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( (LA5_95==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 100;}
+                        else if ( (LA5_95==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 100;}
 
-                        else if ( ((LA5_95>=VT_COMPILATION_UNIT && LA5_95<=SEMICOLON)||(LA5_95>=DOT_STAR && LA5_95<=LEFT_PAREN)||(LA5_95>=COLON && LA5_95<=NULL)||(LA5_95>=RIGHT_SQUARE && LA5_95<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_95>=VT_COMPILATION_UNIT && LA5_95<=SEMICOLON)||(LA5_95>=DOT_STAR && LA5_95<=LEFT_PAREN)||(LA5_95>=COLON && LA5_95<=NULL)||(LA5_95>=RIGHT_SQUARE && LA5_95<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_95==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_95==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
-                        else if ( (LA5_95==DOT) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 101;}
+                        else if ( (LA5_95==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 101;}
 
-                        else if ( (LA5_95==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 102;}
+                        else if ( (LA5_95==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 102;}
 
                          
                         input.seek(index5_95);
@@ -15901,11 +15826,11 @@
                         int index5_113 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA5_113>=VT_COMPILATION_UNIT && LA5_113<=SEMICOLON)||(LA5_113>=DOT && LA5_113<=NULL)||(LA5_113>=RIGHT_SQUARE && LA5_113<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( ((LA5_113>=VT_COMPILATION_UNIT && LA5_113<=SEMICOLON)||(LA5_113>=DOT && LA5_113<=NULL)||(LA5_113>=RIGHT_SQUARE && LA5_113<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_113==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 102;}
+                        else if ( (LA5_113==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 102;}
 
-                        else if ( (LA5_113==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 111;}
+                        else if ( (LA5_113==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 111;}
 
                          
                         input.seek(index5_113);
@@ -15918,11 +15843,11 @@
                         int index5_110 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA5_110>=VT_COMPILATION_UNIT && LA5_110<=SEMICOLON)||(LA5_110>=DOT && LA5_110<=NULL)||(LA5_110>=RIGHT_SQUARE && LA5_110<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( ((LA5_110>=VT_COMPILATION_UNIT && LA5_110<=SEMICOLON)||(LA5_110>=DOT && LA5_110<=NULL)||(LA5_110>=RIGHT_SQUARE && LA5_110<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_110==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 85;}
+                        else if ( (LA5_110==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 85;}
 
-                        else if ( (LA5_110==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 103;}
+                        else if ( (LA5_110==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 103;}
 
                          
                         input.seek(index5_110);
@@ -15935,9 +15860,9 @@
                         int index5_44 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
-                        else if ( ((validateIdentifierKey("query"))) ) {s = 12;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {s = 12;}
 
                          
                         input.seek(index5_44);
@@ -15950,15 +15875,15 @@
                         int index5_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_4==ID) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))||(validateIdentifierKey("template"))||(validateIdentifierKey("dialect"))))) {s = 16;}
+                        if ( (LA5_4==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 16;}
 
-                        else if ( (LA5_4==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_4==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_4==END||LA5_4==LEFT_PAREN) && ((validateIdentifierKey("query")))) {s = 12;}
+                        else if ( (LA5_4==END||LA5_4==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) {s = 12;}
 
-                        else if ( (LA5_4==SEMICOLON) && ((validateIdentifierKey("template")))) {s = 17;}
+                        else if ( (LA5_4==SEMICOLON) && ((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE)))) {s = 17;}
 
-                        else if ( (LA5_4==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_4==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
                          
                         input.seek(index5_4);
@@ -15971,7 +15896,7 @@
                         int index5_67 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_67==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 80;}
+                        if ( (LA5_67==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 80;}
 
                          
                         input.seek(index5_67);
@@ -15984,7 +15909,7 @@
                         int index5_91 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_91==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 99;}
+                        if ( (LA5_91==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 99;}
 
                          
                         input.seek(index5_91);
@@ -15997,11 +15922,11 @@
                         int index5_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_26==COMMA||LA5_26==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        if ( (LA5_26==COMMA||LA5_26==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_26==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_26==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_26==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_26==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_26);
@@ -16014,13 +15939,13 @@
                         int index5_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_19==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))))) {s = 9;}
+                        if ( (LA5_19==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 9;}
 
-                        else if ( (LA5_19==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))||(validateIdentifierKey("import"))))) {s = 41;}
+                        else if ( (LA5_19==ID) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 41;}
 
-                        else if ( (LA5_19==DOT) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))||(validateIdentifierKey("import"))))) {s = 8;}
+                        else if ( (LA5_19==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 8;}
 
-                        else if ( (LA5_19==EOF||LA5_19==SEMICOLON||LA5_19==DOT_STAR) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_19==EOF||LA5_19==SEMICOLON||LA5_19==DOT_STAR) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_19);
@@ -16033,17 +15958,17 @@
                         int index5_43 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_43==MISC) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 58;}
+                        if ( (LA5_43==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 58;}
 
-                        else if ( (LA5_43==BOOL) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 59;}
+                        else if ( (LA5_43==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 59;}
 
-                        else if ( (LA5_43==COMMA||LA5_43==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_43==COMMA||LA5_43==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_43==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_43==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_43==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_43==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_43==STRING) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 60;}
+                        else if ( (LA5_43==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 60;}
 
                          
                         input.seek(index5_43);
@@ -16056,13 +15981,13 @@
                         int index5_98 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_98==BOOL) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 105;}
+                        if ( (LA5_98==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 105;}
 
-                        else if ( (LA5_98==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_98==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_98==COMMA||LA5_98==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_98==COMMA||LA5_98==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_98==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_98==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_98);
@@ -16075,9 +16000,9 @@
                         int index5_63 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_63);
@@ -16090,11 +16015,11 @@
                         int index5_68 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_68==COMMA||LA5_68==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        if ( (LA5_68==COMMA||LA5_68==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_68==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_68==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_68==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_68==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
                          
                         input.seek(index5_68);
@@ -16107,13 +16032,13 @@
                         int index5_112 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_112==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        if ( (LA5_112==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( (LA5_112==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_112==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
-                        else if ( ((LA5_112>=VT_COMPILATION_UNIT && LA5_112<=LEFT_PAREN)||(LA5_112>=COLON && LA5_112<=NULL)||(LA5_112>=RIGHT_SQUARE && LA5_112<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_112>=VT_COMPILATION_UNIT && LA5_112<=LEFT_PAREN)||(LA5_112>=COLON && LA5_112<=NULL)||(LA5_112>=RIGHT_SQUARE && LA5_112<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_112==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 109;}
+                        else if ( (LA5_112==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 109;}
 
                          
                         input.seek(index5_112);
@@ -16126,17 +16051,17 @@
                         int index5_81 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_81==MISC) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 91;}
+                        if ( (LA5_81==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 91;}
 
-                        else if ( (LA5_81==STRING) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 92;}
+                        else if ( (LA5_81==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 92;}
 
-                        else if ( (LA5_81==BOOL) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 93;}
+                        else if ( (LA5_81==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 93;}
 
-                        else if ( (LA5_81==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_81==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_81==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_81==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_81==COMMA||LA5_81==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_81==COMMA||LA5_81==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_81);
@@ -16149,9 +16074,9 @@
                         int index5_77 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_77==LEFT_CURLY) && ((validateIdentifierKey("function")))) {s = 51;}
+                        if ( (LA5_77==LEFT_CURLY) && ((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))) {s = 51;}
 
-                        else if ( (LA5_77==EOF||LA5_77==ID) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_77==EOF||LA5_77==ID) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_77);
@@ -16164,7 +16089,7 @@
                         int index5_35 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_35==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 53;}
+                        if ( (LA5_35==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 53;}
 
                          
                         input.seek(index5_35);
@@ -16177,7 +16102,7 @@
                         int index5_70 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_70==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 81;}
+                        if ( (LA5_70==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 81;}
 
                          
                         input.seek(index5_70);
@@ -16190,9 +16115,9 @@
                         int index5_25 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_25);
@@ -16205,13 +16130,13 @@
                         int index5_78 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_78==BOOL) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 86;}
+                        if ( (LA5_78==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 86;}
 
-                        else if ( (LA5_78==COMMA||LA5_78==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_78==COMMA||LA5_78==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_78==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_78==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_78==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_78==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_78);
@@ -16224,9 +16149,9 @@
                         int index5_100 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_100==RIGHT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 107;}
+                        if ( (LA5_100==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 107;}
 
-                        else if ( ((LA5_100>=VT_COMPILATION_UNIT && LA5_100<=LEFT_SQUARE)||(LA5_100>=THEN && LA5_100<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_100>=VT_COMPILATION_UNIT && LA5_100<=LEFT_SQUARE)||(LA5_100>=THEN && LA5_100<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_100);
@@ -16239,9 +16164,9 @@
                         int index5_82 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_82==RIGHT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 94;}
+                        if ( (LA5_82==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 94;}
 
-                        else if ( ((LA5_82>=VT_COMPILATION_UNIT && LA5_82<=LEFT_SQUARE)||(LA5_82>=THEN && LA5_82<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_82>=VT_COMPILATION_UNIT && LA5_82<=LEFT_SQUARE)||(LA5_82>=THEN && LA5_82<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_82);
@@ -16254,17 +16179,17 @@
                         int index5_76 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_76==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        if ( (LA5_76==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( (LA5_76==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 82;}
+                        else if ( (LA5_76==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 82;}
 
-                        else if ( ((LA5_76>=VT_COMPILATION_UNIT && LA5_76<=SEMICOLON)||(LA5_76>=DOT_STAR && LA5_76<=LEFT_PAREN)||(LA5_76>=COLON && LA5_76<=NULL)||(LA5_76>=RIGHT_SQUARE && LA5_76<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_76>=VT_COMPILATION_UNIT && LA5_76<=SEMICOLON)||(LA5_76>=DOT_STAR && LA5_76<=LEFT_PAREN)||(LA5_76>=COLON && LA5_76<=NULL)||(LA5_76>=RIGHT_SQUARE && LA5_76<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_76==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_76==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
-                        else if ( (LA5_76==DOT) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 84;}
+                        else if ( (LA5_76==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 84;}
 
-                        else if ( (LA5_76==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 85;}
+                        else if ( (LA5_76==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 85;}
 
                          
                         input.seek(index5_76);
@@ -16277,13 +16202,13 @@
                         int index5_102 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_102==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        if ( (LA5_102==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( (LA5_102==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 109;}
+                        else if ( (LA5_102==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 109;}
 
-                        else if ( ((LA5_102>=VT_COMPILATION_UNIT && LA5_102<=LEFT_PAREN)||(LA5_102>=COLON && LA5_102<=NULL)||(LA5_102>=RIGHT_SQUARE && LA5_102<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_102>=VT_COMPILATION_UNIT && LA5_102<=LEFT_PAREN)||(LA5_102>=COLON && LA5_102<=NULL)||(LA5_102>=RIGHT_SQUARE && LA5_102<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_102==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_102==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
                          
                         input.seek(index5_102);
@@ -16296,9 +16221,9 @@
                         int index5_111 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_111==RIGHT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 113;}
+                        if ( (LA5_111==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 113;}
 
-                        else if ( ((LA5_111>=VT_COMPILATION_UNIT && LA5_111<=LEFT_SQUARE)||(LA5_111>=THEN && LA5_111<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_111>=VT_COMPILATION_UNIT && LA5_111<=LEFT_SQUARE)||(LA5_111>=THEN && LA5_111<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_111);
@@ -16311,9 +16236,9 @@
                         int index5_109 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_109==RIGHT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 112;}
+                        if ( (LA5_109==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 112;}
 
-                        else if ( ((LA5_109>=VT_COMPILATION_UNIT && LA5_109<=LEFT_SQUARE)||(LA5_109>=THEN && LA5_109<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_109>=VT_COMPILATION_UNIT && LA5_109<=LEFT_SQUARE)||(LA5_109>=THEN && LA5_109<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_109);
@@ -16326,9 +16251,9 @@
                         int index5_103 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_103==RIGHT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 110;}
+                        if ( (LA5_103==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 110;}
 
-                        else if ( ((LA5_103>=VT_COMPILATION_UNIT && LA5_103<=LEFT_SQUARE)||(LA5_103>=THEN && LA5_103<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_103>=VT_COMPILATION_UNIT && LA5_103<=LEFT_SQUARE)||(LA5_103>=THEN && LA5_103<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_103);
@@ -16341,9 +16266,9 @@
                         int index5_97 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_97==RIGHT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 104;}
+                        if ( (LA5_97==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 104;}
 
-                        else if ( ((LA5_97>=VT_COMPILATION_UNIT && LA5_97<=LEFT_SQUARE)||(LA5_97>=THEN && LA5_97<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_97>=VT_COMPILATION_UNIT && LA5_97<=LEFT_SQUARE)||(LA5_97>=THEN && LA5_97<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_97);
@@ -16356,7 +16281,7 @@
                         int index5_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_8==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))||(validateIdentifierKey("import"))))) {s = 19;}
+                        if ( (LA5_8==ID) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 19;}
 
                          
                         input.seek(index5_8);
@@ -16369,9 +16294,9 @@
                         int index5_83 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA5_83>=VT_COMPILATION_UNIT && LA5_83<=SEMICOLON)||(LA5_83>=DOT && LA5_83<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( ((LA5_83>=VT_COMPILATION_UNIT && LA5_83<=SEMICOLON)||(LA5_83>=DOT && LA5_83<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_83==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 95;}
+                        else if ( (LA5_83==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 95;}
 
                          
                         input.seek(index5_83);
@@ -16384,25 +16309,25 @@
                         int index5_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_16==MISC) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 35;}
+                        if ( (LA5_16==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 35;}
 
-                        else if ( (LA5_16==COLON) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))))) {s = 22;}
+                        else if ( (LA5_16==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))))) {s = 22;}
 
-                        else if ( (LA5_16==INT) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 36;}
+                        else if ( (LA5_16==INT) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 36;}
 
-                        else if ( (LA5_16==ID) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))||(validateIdentifierKey("template"))||(validateIdentifierKey("dialect"))))) {s = 37;}
+                        else if ( (LA5_16==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 37;}
 
-                        else if ( (LA5_16==STRING) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 38;}
+                        else if ( (LA5_16==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 38;}
 
-                        else if ( (LA5_16==LEFT_PAREN) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 39;}
+                        else if ( (LA5_16==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 39;}
 
-                        else if ( (LA5_16==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_16==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_16==BOOL) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 40;}
+                        else if ( (LA5_16==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 40;}
 
-                        else if ( (LA5_16==DOT) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 28;}
+                        else if ( (LA5_16==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 28;}
 
-                        else if ( (LA5_16==LEFT_SQUARE) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 29;}
+                        else if ( (LA5_16==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 29;}
 
                          
                         input.seek(index5_16);
@@ -16415,9 +16340,9 @@
                         int index5_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_20==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))))) {s = 42;}
+                        if ( (LA5_20==ID) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 42;}
 
-                        else if ( (LA5_20==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("global"))))) {s = 9;}
+                        else if ( (LA5_20==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 9;}
 
                          
                         input.seek(index5_20);
@@ -16430,7 +16355,7 @@
                         int index5_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_29==RIGHT_SQUARE) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 49;}
+                        if ( (LA5_29==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 49;}
 
                          
                         input.seek(index5_29);
@@ -16443,9 +16368,9 @@
                         int index5_74 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("dialect"))) ) {s = 18;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.DIALECT))) ) {s = 18;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_74);
@@ -16458,11 +16383,11 @@
                         int index5_106 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_106==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        if ( (LA5_106==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_106==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_106==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_106==COMMA||LA5_106==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_106==COMMA||LA5_106==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_106);
@@ -16475,11 +16400,11 @@
                         int index5_40 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_40==COMMA||LA5_40==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        if ( (LA5_40==COMMA||LA5_40==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_40==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_40==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_40==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_40==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
                          
                         input.seek(index5_40);
@@ -16492,11 +16417,11 @@
                         int index5_92 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_92==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        if ( (LA5_92==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_92==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_92==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_92==COMMA||LA5_92==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_92==COMMA||LA5_92==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_92);
@@ -16509,11 +16434,11 @@
                         int index5_71 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_71==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        if ( (LA5_71==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_71==COMMA||LA5_71==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_71==COMMA||LA5_71==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_71==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_71==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
                          
                         input.seek(index5_71);
@@ -16526,11 +16451,11 @@
                         int index5_36 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_36==COMMA||LA5_36==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        if ( (LA5_36==COMMA||LA5_36==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_36==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_36==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_36==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_36==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
                          
                         input.seek(index5_36);
@@ -16543,11 +16468,11 @@
                         int index5_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_22==ID) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))))) {s = 44;}
+                        if ( (LA5_22==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))))) {s = 44;}
 
-                        else if ( (LA5_22==LEFT_PAREN) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))))) {s = 45;}
+                        else if ( (LA5_22==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.RULE))))) {s = 45;}
 
-                        else if ( (LA5_22==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_22==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_22);
@@ -16560,13 +16485,13 @@
                         int index5_108 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA5_108>=VT_COMPILATION_UNIT && LA5_108<=SEMICOLON)||(LA5_108>=DOT_STAR && LA5_108<=NULL)||(LA5_108>=RIGHT_SQUARE && LA5_108<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( ((LA5_108>=VT_COMPILATION_UNIT && LA5_108<=SEMICOLON)||(LA5_108>=DOT_STAR && LA5_108<=NULL)||(LA5_108>=RIGHT_SQUARE && LA5_108<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_108==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 111;}
+                        else if ( (LA5_108==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 111;}
 
-                        else if ( (LA5_108==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 102;}
+                        else if ( (LA5_108==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 102;}
 
-                        else if ( (LA5_108==DOT) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 101;}
+                        else if ( (LA5_108==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 101;}
 
                          
                         input.seek(index5_108);
@@ -16579,13 +16504,13 @@
                         int index5_96 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA5_96>=VT_COMPILATION_UNIT && LA5_96<=SEMICOLON)||(LA5_96>=DOT_STAR && LA5_96<=NULL)||(LA5_96>=RIGHT_SQUARE && LA5_96<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( ((LA5_96>=VT_COMPILATION_UNIT && LA5_96<=SEMICOLON)||(LA5_96>=DOT_STAR && LA5_96<=NULL)||(LA5_96>=RIGHT_SQUARE && LA5_96<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_96==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 103;}
+                        else if ( (LA5_96==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 103;}
 
-                        else if ( (LA5_96==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 85;}
+                        else if ( (LA5_96==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 85;}
 
-                        else if ( (LA5_96==DOT) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 84;}
+                        else if ( (LA5_96==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 84;}
 
                          
                         input.seek(index5_96);
@@ -16598,9 +16523,9 @@
                         int index5_72 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("dialect"))) ) {s = 18;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.DIALECT))) ) {s = 18;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_72);
@@ -16613,13 +16538,13 @@
                         int index5_99 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_99==BOOL) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 106;}
+                        if ( (LA5_99==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 106;}
 
-                        else if ( (LA5_99==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_99==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_99==COMMA||LA5_99==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_99==COMMA||LA5_99==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_99==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_99==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
                          
                         input.seek(index5_99);
@@ -16632,11 +16557,11 @@
                         int index5_89 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_89==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        if ( (LA5_89==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_89==COMMA||LA5_89==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_89==COMMA||LA5_89==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_89==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_89==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_89);
@@ -16649,11 +16574,11 @@
                         int index5_65 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_65==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        if ( (LA5_65==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_65==COMMA||LA5_65==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_65==COMMA||LA5_65==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_65==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_65==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_65);
@@ -16666,9 +16591,9 @@
                         int index5_64 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_64);
@@ -16681,9 +16606,9 @@
                         int index5_38 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("dialect"))) ) {s = 18;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.DIALECT))) ) {s = 18;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_38);
@@ -16696,13 +16621,13 @@
                         int index5_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("template"))) ) {s = 17;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))) ) {s = 17;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
-                        else if ( ((validateIdentifierKey("query"))) ) {s = 12;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {s = 12;}
 
                          
                         input.seek(index5_24);
@@ -16715,9 +16640,9 @@
                         int index5_42 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_42==LEFT_PAREN) && ((validateIdentifierKey("function")))) {s = 51;}
+                        if ( (LA5_42==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))) {s = 51;}
 
-                        else if ( (LA5_42==EOF||(LA5_42>=SEMICOLON && LA5_42<=ID)) && ((validateIdentifierKey("global")))) {s = 57;}
+                        else if ( (LA5_42==EOF||(LA5_42>=SEMICOLON && LA5_42<=ID)) && ((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))) {s = 57;}
 
                          
                         input.seek(index5_42);
@@ -16730,7 +16655,7 @@
                         int index5_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_0==ID) && (((validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("duration"))||(validateIdentifierKey("template"))||(validateIdentifierKey("query"))||(validateIdentifierKey("global"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("import"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("function"))||(v!
 alidateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("rule"))||(validateIdentifierKey("enabled"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("salience"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("dialect"))))) {s = 1;}
+                        if ( (LA5_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))||(validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||((validateLT(1, "import") && validateLT(2, "function"!
 ) )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.ENABLED))||(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))||(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.DURATION))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(Drool!
 sSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftK
eywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))))) {s = 1;}
 
                          
                         input.seek(index5_0);
@@ -16743,9 +16668,9 @@
                         int index5_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_14==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("template"))))) {s = 34;}
+                        if ( (LA5_14==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 34;}
 
-                        else if ( (LA5_14==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( (LA5_14==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_14);
@@ -16758,17 +16683,17 @@
                         int index5_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_1==MISC) && (((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))))) {s = 2;}
+                        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("function"))||(validateIdentifierKey("query"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("global"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("import"))||(validateIdentifierKey("rule"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))||(validateIdentifierKey("template"))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))))) {s = 3;}
+                        else if ( (LA5_1==ID) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))||((validateLT(1, "import") && validateLT(2, "function") )&&(validateId!
 entifierKey(DroolsSoftKeywords.IMPORT)))))) {s = 3;}
 
-                        else if ( (LA5_1==STRING) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))||(validateIdentifierKey("template"))||(validateIdentifierKey("dialect"))))) {s = 4;}
+                        else if ( (LA5_1==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 4;}
 
-                        else if ( (LA5_1==BOOL) && ((validateIdentifierKey("enabled")))) {s = 5;}
+                        else if ( (LA5_1==BOOL) && ((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))) {s = 5;}
 
-                        else if ( (LA5_1==INT) && (((validateIdentifierKey("duration"))||(validateIdentifierKey("salience"))))) {s = 6;}
+                        else if ( (LA5_1==INT) && (((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))||(validateIdentifierKey(DroolsSoftKeywords.DURATION))))) {s = 6;}
 
-                        else if ( (LA5_1==LEFT_PAREN) && ((validateIdentifierKey("salience")))) {s = 7;}
+                        else if ( (LA5_1==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 7;}
 
                          
                         input.seek(index5_1);
@@ -16781,9 +16706,9 @@
                         int index5_45 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
-                        else if ( ((validateIdentifierKey("query"))) ) {s = 12;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {s = 12;}
 
                          
                         input.seek(index5_45);
@@ -16796,11 +16721,11 @@
                         int index5_66 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_66==EOF) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( (LA5_66==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_66==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 47;}
+                        else if ( (LA5_66==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 47;}
 
-                        else if ( (LA5_66==COMMA||LA5_66==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_66==COMMA||LA5_66==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_66);
@@ -16813,19 +16738,19 @@
                         int index5_47 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_47==MISC) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 61;}
+                        if ( (LA5_47==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 61;}
 
-                        else if ( (LA5_47==STRING) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 62;}
+                        else if ( (LA5_47==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 62;}
 
-                        else if ( (LA5_47==COLON||LA5_47==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_47==COLON||LA5_47==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_47==LEFT_PAREN) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 63;}
+                        else if ( (LA5_47==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 63;}
 
-                        else if ( (LA5_47==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 64;}
+                        else if ( (LA5_47==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 64;}
 
-                        else if ( (LA5_47==INT) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 65;}
+                        else if ( (LA5_47==INT) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 65;}
 
-                        else if ( (LA5_47==BOOL) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 66;}
+                        else if ( (LA5_47==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 66;}
 
                          
                         input.seek(index5_47);
@@ -16838,13 +16763,13 @@
                         int index5_41 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_41==STRING||(LA5_41>=BOOL && LA5_41<=INT)||LA5_41==MISC) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( (LA5_41==STRING||(LA5_41>=BOOL && LA5_41<=INT)||LA5_41==MISC) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_41==ID) && (((validateIdentifierKey("global"))||(validateIdentifierKey("import"))))) {s = 55;}
+                        else if ( (LA5_41==ID) && (((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 55;}
 
-                        else if ( (LA5_41==LEFT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 56;}
+                        else if ( (LA5_41==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 56;}
 
-                        else if ( (LA5_41==EOF||LA5_41==SEMICOLON) && ((validateIdentifierKey("global")))) {s = 57;}
+                        else if ( (LA5_41==EOF||LA5_41==SEMICOLON) && ((validateIdentifierKey(DroolsSoftKeywords.GLOBAL)))) {s = 57;}
 
                          
                         input.seek(index5_41);
@@ -16857,9 +16782,9 @@
                         int index5_73 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("dialect"))) ) {s = 18;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.DIALECT))) ) {s = 18;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
                          
                         input.seek(index5_73);
@@ -16872,9 +16797,9 @@
                         int index5_33 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_33==ID||LA5_33==END||LA5_33==LEFT_PAREN) && ((validateIdentifierKey("query")))) {s = 12;}
+                        if ( (LA5_33==ID||LA5_33==END||LA5_33==LEFT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.QUERY)))) {s = 12;}
 
-                        else if ( (LA5_33==LEFT_CURLY) && ((validateIdentifierKey("function")))) {s = 51;}
+                        else if ( (LA5_33==LEFT_CURLY) && ((validateIdentifierKey(DroolsSoftKeywords.FUNCTION)))) {s = 51;}
 
                          
                         input.seek(index5_33);
@@ -16887,29 +16812,29 @@
                         int index5_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_10==MISC) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 21;}
+                        if ( (LA5_10==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 21;}
 
-                        else if ( (LA5_10==COLON) && (((validateIdentifierKey("query"))||(validateIdentifierKey("rule"))))) {s = 22;}
+                        else if ( (LA5_10==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))))) {s = 22;}
 
-                        else if ( (LA5_10==LEFT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("query"))||(validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 23;}
+                        else if ( (LA5_10==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 23;}
 
-                        else if ( (LA5_10==ID) && (((validateIdentifierKey("query"))||(validateIdentifierKey("import"))||(validateIdentifierKey("rule"))||(validateIdentifierKey("template"))))) {s = 24;}
+                        else if ( (LA5_10==ID) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 24;}
 
-                        else if ( (LA5_10==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_10==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_10==STRING) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 25;}
+                        else if ( (LA5_10==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 25;}
 
-                        else if ( (LA5_10==INT) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 26;}
+                        else if ( (LA5_10==INT) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 26;}
 
-                        else if ( (LA5_10==BOOL) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 27;}
+                        else if ( (LA5_10==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 27;}
 
-                        else if ( (LA5_10==DOT) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 28;}
+                        else if ( (LA5_10==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 28;}
 
-                        else if ( (LA5_10==LEFT_SQUARE) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 29;}
+                        else if ( (LA5_10==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 29;}
 
-                        else if ( (((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey("import")))) ) {s = 30;}
+                        else if ( (((validateLT(1, "import") && validateLT(2, "function") )&&(validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) ) {s = 30;}
 
-                        else if ( ((validateIdentifierKey("global"))) ) {s = 31;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))) ) {s = 31;}
 
                          
                         input.seek(index5_10);
@@ -16922,13 +16847,13 @@
                         int index5_104 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_104==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        if ( (LA5_104==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( (LA5_104==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_104==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
-                        else if ( ((LA5_104>=VT_COMPILATION_UNIT && LA5_104<=LEFT_PAREN)||(LA5_104>=COLON && LA5_104<=NULL)||(LA5_104>=RIGHT_SQUARE && LA5_104<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_104>=VT_COMPILATION_UNIT && LA5_104<=LEFT_PAREN)||(LA5_104>=COLON && LA5_104<=NULL)||(LA5_104>=RIGHT_SQUARE && LA5_104<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_104==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 97;}
+                        else if ( (LA5_104==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 97;}
 
                          
                         input.seek(index5_104);
@@ -16941,11 +16866,11 @@
                         int index5_34 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA5_34>=STRING && LA5_34<=LEFT_PAREN)||(LA5_34>=BOOL && LA5_34<=INT)||LA5_34==MISC) && ((validateIdentifierKey("import")))) {s = 15;}
+                        if ( ((LA5_34>=STRING && LA5_34<=LEFT_PAREN)||(LA5_34>=BOOL && LA5_34<=INT)||LA5_34==MISC) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_34==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("template"))))) {s = 52;}
+                        else if ( (LA5_34==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 52;}
 
-                        else if ( (LA5_34==DOT||LA5_34==LEFT_SQUARE) && ((validateIdentifierKey("template")))) {s = 17;}
+                        else if ( (LA5_34==DOT||LA5_34==LEFT_SQUARE) && ((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE)))) {s = 17;}
 
                          
                         input.seek(index5_34);
@@ -16958,13 +16883,13 @@
                         int index5_37 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("dialect"))) ) {s = 18;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.DIALECT))) ) {s = 18;}
 
-                        else if ( ((validateIdentifierKey("template"))) ) {s = 17;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))) ) {s = 17;}
 
-                        else if ( ((validateIdentifierKey("rule"))) ) {s = 13;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RULE))) ) {s = 13;}
 
-                        else if ( ((validateIdentifierKey("query"))) ) {s = 12;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.QUERY))) ) {s = 12;}
 
                          
                         input.seek(index5_37);
@@ -16977,7 +16902,7 @@
                         int index5_58 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_58==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 78;}
+                        if ( (LA5_58==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 78;}
 
                          
                         input.seek(index5_58);
@@ -16990,7 +16915,7 @@
                         int index5_87 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_87==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 98;}
+                        if ( (LA5_87==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 98;}
 
                          
                         input.seek(index5_87);
@@ -17003,13 +16928,13 @@
                         int index5_80 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_80==BOOL) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 90;}
+                        if ( (LA5_80==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 90;}
 
-                        else if ( (LA5_80==COMMA||LA5_80==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_80==COMMA||LA5_80==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_80==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_80==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_80==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_80==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
                          
                         input.seek(index5_80);
@@ -17022,11 +16947,11 @@
                         int index5_69 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_69==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        if ( (LA5_69==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_69==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_69==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_69==COMMA||LA5_69==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_69==COMMA||LA5_69==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_69);
@@ -17039,17 +16964,17 @@
                         int index5_53 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_53==MISC) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 67;}
+                        if ( (LA5_53==MISC) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 67;}
 
-                        else if ( (LA5_53==BOOL) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 68;}
+                        else if ( (LA5_53==BOOL) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 68;}
 
-                        else if ( (LA5_53==COMMA||LA5_53==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_53==COMMA||LA5_53==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
-                        else if ( (LA5_53==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_53==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_53==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        else if ( (LA5_53==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_53==STRING) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 69;}
+                        else if ( (LA5_53==STRING) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 69;}
 
                          
                         input.seek(index5_53);
@@ -17062,7 +16987,7 @@
                         int index5_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_28==ID) && (((validateIdentifierKey("query"))||(validateIdentifierKey("template"))))) {s = 48;}
+                        if ( (LA5_28==ID) && (((validateIdentifierKey(DroolsSoftKeywords.QUERY))||(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))))) {s = 48;}
 
                          
                         input.seek(index5_28);
@@ -17075,13 +17000,13 @@
                         int index5_85 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_85==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 97;}
+                        if ( (LA5_85==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 97;}
 
-                        else if ( (LA5_85==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_85==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
-                        else if ( (LA5_85==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        else if ( (LA5_85==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( ((LA5_85>=VT_COMPILATION_UNIT && LA5_85<=LEFT_PAREN)||(LA5_85>=COLON && LA5_85<=NULL)||(LA5_85>=RIGHT_SQUARE && LA5_85<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_85>=VT_COMPILATION_UNIT && LA5_85<=LEFT_PAREN)||(LA5_85>=COLON && LA5_85<=NULL)||(LA5_85>=RIGHT_SQUARE && LA5_85<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
                          
                         input.seek(index5_85);
@@ -17094,11 +17019,11 @@
                         int index5_90 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_90==EOF) && ((validateIdentifierKey("dialect")))) {s = 18;}
+                        if ( (LA5_90==EOF) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 18;}
 
-                        else if ( (LA5_90==ID) && (((validateIdentifierKey("rule"))||(validateIdentifierKey("dialect"))))) {s = 54;}
+                        else if ( (LA5_90==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))))) {s = 54;}
 
-                        else if ( (LA5_90==COMMA||LA5_90==THEN) && ((validateIdentifierKey("rule")))) {s = 13;}
+                        else if ( (LA5_90==COMMA||LA5_90==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.RULE)))) {s = 13;}
 
                          
                         input.seek(index5_90);
@@ -17111,7 +17036,7 @@
                         int index5_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_21==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 43;}
+                        if ( (LA5_21==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 43;}
 
                          
                         input.seek(index5_21);
@@ -17124,9 +17049,9 @@
                         int index5_55 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("import"))) ) {s = 15;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.IMPORT))) ) {s = 15;}
 
-                        else if ( ((validateIdentifierKey("global"))) ) {s = 57;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.GLOBAL))) ) {s = 57;}
 
                          
                         input.seek(index5_55);
@@ -17139,7 +17064,7 @@
                         int index5_61 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_61==ID) && (((validateIdentifierKey("import"))||(validateIdentifierKey("rule"))))) {s = 79;}
+                        if ( (LA5_61==ID) && (((validateIdentifierKey(DroolsSoftKeywords.RULE))||(validateIdentifierKey(DroolsSoftKeywords.IMPORT))))) {s = 79;}
 
                          
                         input.seek(index5_61);
@@ -17152,15 +17077,15 @@
                         int index5_94 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA5_94==RIGHT_PAREN) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 77;}
+                        if ( (LA5_94==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 77;}
 
-                        else if ( (LA5_94==ID) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 85;}
+                        else if ( (LA5_94==ID) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 85;}
 
-                        else if ( ((LA5_94>=VT_COMPILATION_UNIT && LA5_94<=SEMICOLON)||(LA5_94>=DOT && LA5_94<=LEFT_PAREN)||(LA5_94>=COLON && LA5_94<=NULL)||(LA5_94>=RIGHT_SQUARE && LA5_94<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("import")))) {s = 15;}
+                        else if ( ((LA5_94>=VT_COMPILATION_UNIT && LA5_94<=SEMICOLON)||(LA5_94>=DOT && LA5_94<=LEFT_PAREN)||(LA5_94>=COLON && LA5_94<=NULL)||(LA5_94>=RIGHT_SQUARE && LA5_94<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.IMPORT)))) {s = 15;}
 
-                        else if ( (LA5_94==LEFT_SQUARE) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 82;}
+                        else if ( (LA5_94==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 82;}
 
-                        else if ( (LA5_94==COMMA) && (((validateIdentifierKey("function"))||(validateIdentifierKey("import"))))) {s = 83;}
+                        else if ( (LA5_94==COMMA) && (((validateIdentifierKey(DroolsSoftKeywords.IMPORT))||(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))))) {s = 83;}
 
                          
                         input.seek(index5_94);
@@ -17378,7 +17303,7 @@
                         int index24_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA24_0==ID) && (((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("duration"))||(validateIdentifierKey("when"))||(validateIdentifierKey("attributes"))||(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("enabled"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("salience"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("dialect"))))) {s = 1;}
+                        if ( (LA24_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(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))||(validateIdentifierK!
 ey(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 ( (LA24_0==THEN) ) {s = 2;}
 
@@ -17393,11 +17318,11 @@
                         int index24_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA24_22>=VT_COMPILATION_UNIT && LA24_22<=STRING)||(LA24_22>=COMMA && LA24_22<=NULL)||(LA24_22>=RIGHT_SQUARE && LA24_22<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        if ( ((LA24_22>=VT_COMPILATION_UNIT && LA24_22<=STRING)||(LA24_22>=COMMA && LA24_22<=NULL)||(LA24_22>=RIGHT_SQUARE && LA24_22<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
-                        else if ( (LA24_22==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 18;}
+                        else if ( (LA24_22==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 18;}
 
-                        else if ( (LA24_22==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 26;}
+                        else if ( (LA24_22==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 26;}
 
                          
                         input.seek(index24_22);
@@ -17410,9 +17335,9 @@
                         int index24_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA24_17==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 21;}
+                        if ( (LA24_17==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 21;}
 
-                        else if ( ((LA24_17>=VT_COMPILATION_UNIT && LA24_17<=SEMICOLON)||(LA24_17>=DOT && LA24_17<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        else if ( ((LA24_17>=VT_COMPILATION_UNIT && LA24_17<=SEMICOLON)||(LA24_17>=DOT && LA24_17<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
                          
                         input.seek(index24_17);
@@ -17425,11 +17350,11 @@
                         int index24_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA24_14>=VT_COMPILATION_UNIT && LA24_14<=SEMICOLON)||(LA24_14>=DOT && LA24_14<=STRING)||(LA24_14>=COMMA && LA24_14<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        if ( ((LA24_14>=VT_COMPILATION_UNIT && LA24_14<=SEMICOLON)||(LA24_14>=DOT && LA24_14<=STRING)||(LA24_14>=COMMA && LA24_14<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
-                        else if ( (LA24_14==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 19;}
+                        else if ( (LA24_14==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 19;}
 
-                        else if ( (LA24_14==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 20;}
+                        else if ( (LA24_14==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 20;}
 
                          
                         input.seek(index24_14);
@@ -17442,9 +17367,9 @@
                         int index24_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 12;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 12;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 7;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 7;}
 
                          
                         input.seek(index24_16);
@@ -17457,9 +17382,9 @@
                         int index24_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA24_18==RIGHT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 22;}
+                        if ( (LA24_18==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 22;}
 
-                        else if ( ((LA24_18>=VT_COMPILATION_UNIT && LA24_18<=LEFT_SQUARE)||(LA24_18>=THEN && LA24_18<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        else if ( ((LA24_18>=VT_COMPILATION_UNIT && LA24_18<=LEFT_SQUARE)||(LA24_18>=THEN && LA24_18<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
                          
                         input.seek(index24_18);
@@ -17472,11 +17397,11 @@
                         int index24_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA24_5==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 10;}
+                        if ( (LA24_5==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 10;}
 
-                        else if ( (LA24_5==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 11;}
+                        else if ( (LA24_5==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 11;}
 
-                        else if ( ((LA24_5>=VT_COMPILATION_UNIT && LA24_5<=SEMICOLON)||(LA24_5>=DOT && LA24_5<=STRING)||(LA24_5>=COMMA && LA24_5<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        else if ( ((LA24_5>=VT_COMPILATION_UNIT && LA24_5<=SEMICOLON)||(LA24_5>=DOT && LA24_5<=STRING)||(LA24_5>=COMMA && LA24_5<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
                          
                         input.seek(index24_5);
@@ -17489,9 +17414,9 @@
                         int index24_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 12;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 12;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 7;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 7;}
 
                          
                         input.seek(index24_20);
@@ -17504,9 +17429,9 @@
                         int index24_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA24_6==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("attributes"))))) {s = 13;}
+                        if ( (LA24_6==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))))) {s = 13;}
 
-                        else if ( (LA24_6==LEFT_PAREN||LA24_6==THEN) && ((validateIdentifierKey("when")))) {s = 7;}
+                        else if ( (LA24_6==LEFT_PAREN||LA24_6==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.WHEN)))) {s = 7;}
 
                          
                         input.seek(index24_6);
@@ -17519,19 +17444,19 @@
                         int index24_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA24_1==MISC) && (((validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))))) {s = 3;}
+                        if ( (LA24_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) && validateL!
 T(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))))) {s = 3;}
 
-                        else if ( (LA24_1==INT) && (((validateIdentifierKey("duration"))||(validateIdentifierKey("salience"))))) {s = 4;}
+                        else if ( (LA24_1==INT) && (((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))||(validateIdentifierKey(DroolsSoftKeywords.DURATION))))) {s = 4;}
 
-                        else if ( (LA24_1==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 5;}
+                        else if ( (LA24_1==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 5;}
 
-                        else if ( (LA24_1==COLON) && (((validateIdentifierKey("when"))||(validateIdentifierKey("attributes"))))) {s = 6;}
+                        else if ( (LA24_1==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))))) {s = 6;}
 
-                        else if ( (LA24_1==ID||LA24_1==THEN) && ((validateIdentifierKey("when")))) {s = 7;}
+                        else if ( (LA24_1==ID||LA24_1==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.WHEN)))) {s = 7;}
 
-                        else if ( (LA24_1==BOOL) && ((validateIdentifierKey("enabled")))) {s = 8;}
+                        else if ( (LA24_1==BOOL) && ((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))) {s = 8;}
 
-                        else if ( (LA24_1==STRING) && ((validateIdentifierKey("dialect")))) {s = 9;}
+                        else if ( (LA24_1==STRING) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 9;}
 
                          
                         input.seek(index24_1);
@@ -17544,9 +17469,9 @@
                         int index24_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 12;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 12;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 7;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 7;}
 
                          
                         input.seek(index24_15);
@@ -17559,13 +17484,13 @@
                         int index24_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA24_19>=VT_COMPILATION_UNIT && LA24_19<=ID)||(LA24_19>=DOT_STAR && LA24_19<=STRING)||(LA24_19>=COMMA && LA24_19<=NULL)||(LA24_19>=RIGHT_SQUARE && LA24_19<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        if ( ((LA24_19>=VT_COMPILATION_UNIT && LA24_19<=ID)||(LA24_19>=DOT_STAR && LA24_19<=STRING)||(LA24_19>=COMMA && LA24_19<=NULL)||(LA24_19>=RIGHT_SQUARE && LA24_19<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
-                        else if ( (LA24_19==DOT) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 23;}
+                        else if ( (LA24_19==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 23;}
 
-                        else if ( (LA24_19==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 24;}
+                        else if ( (LA24_19==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 24;}
 
-                        else if ( (LA24_19==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 25;}
+                        else if ( (LA24_19==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 25;}
 
                          
                         input.seek(index24_19);
@@ -17578,9 +17503,9 @@
                         int index24_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("attributes"))) ) {s = 12;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))) ) {s = 12;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 7;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 7;}
 
                          
                         input.seek(index24_13);
@@ -17593,9 +17518,9 @@
                         int index24_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 12;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 12;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 7;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 7;}
 
                          
                         input.seek(index24_11);
@@ -17608,13 +17533,13 @@
                         int index24_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA24_21>=VT_COMPILATION_UNIT && LA24_21<=ID)||(LA24_21>=DOT_STAR && LA24_21<=STRING)||(LA24_21>=COMMA && LA24_21<=NULL)||(LA24_21>=RIGHT_SQUARE && LA24_21<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        if ( ((LA24_21>=VT_COMPILATION_UNIT && LA24_21<=ID)||(LA24_21>=DOT_STAR && LA24_21<=STRING)||(LA24_21>=COMMA && LA24_21<=NULL)||(LA24_21>=RIGHT_SQUARE && LA24_21<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
-                        else if ( (LA24_21==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 18;}
+                        else if ( (LA24_21==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 18;}
 
-                        else if ( (LA24_21==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 26;}
+                        else if ( (LA24_21==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 26;}
 
-                        else if ( (LA24_21==DOT) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 17;}
+                        else if ( (LA24_21==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 17;}
 
                          
                         input.seek(index24_21);
@@ -17627,17 +17552,17 @@
                         int index24_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA24_10==COLON) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 14;}
+                        if ( (LA24_10==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 14;}
 
-                        else if ( (LA24_10==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 15;}
+                        else if ( (LA24_10==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 15;}
 
-                        else if ( (LA24_10==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 16;}
+                        else if ( (LA24_10==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 16;}
 
-                        else if ( ((LA24_10>=VT_COMPILATION_UNIT && LA24_10<=SEMICOLON)||(LA24_10>=DOT_STAR && LA24_10<=STRING)||(LA24_10>=COMMA && LA24_10<=RIGHT_PAREN)||(LA24_10>=BOOL && LA24_10<=NULL)||(LA24_10>=RIGHT_SQUARE && LA24_10<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 12;}
+                        else if ( ((LA24_10>=VT_COMPILATION_UNIT && LA24_10<=SEMICOLON)||(LA24_10>=DOT_STAR && LA24_10<=STRING)||(LA24_10>=COMMA && LA24_10<=RIGHT_PAREN)||(LA24_10>=BOOL && LA24_10<=NULL)||(LA24_10>=RIGHT_SQUARE && LA24_10<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 12;}
 
-                        else if ( (LA24_10==DOT) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 17;}
+                        else if ( (LA24_10==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 17;}
 
-                        else if ( (LA24_10==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 18;}
+                        else if ( (LA24_10==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 18;}
 
                          
                         input.seek(index24_10);
@@ -17738,11 +17663,11 @@
                         int index30_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA30_21>=VT_COMPILATION_UNIT && LA30_21<=STRING)||(LA30_21>=COMMA && LA30_21<=NULL)||(LA30_21>=RIGHT_SQUARE && LA30_21<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        if ( ((LA30_21>=VT_COMPILATION_UNIT && LA30_21<=STRING)||(LA30_21>=COMMA && LA30_21<=NULL)||(LA30_21>=RIGHT_SQUARE && LA30_21<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
-                        else if ( (LA30_21==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 17;}
+                        else if ( (LA30_21==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 17;}
 
-                        else if ( (LA30_21==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 25;}
+                        else if ( (LA30_21==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 25;}
 
                          
                         input.seek(index30_21);
@@ -17755,9 +17680,9 @@
                         int index30_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 11;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 11;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 6;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 6;}
 
                          
                         input.seek(index30_14);
@@ -17770,9 +17695,9 @@
                         int index30_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA30_16==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 20;}
+                        if ( (LA30_16==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 20;}
 
-                        else if ( ((LA30_16>=VT_COMPILATION_UNIT && LA30_16<=SEMICOLON)||(LA30_16>=DOT && LA30_16<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        else if ( ((LA30_16>=VT_COMPILATION_UNIT && LA30_16<=SEMICOLON)||(LA30_16>=DOT && LA30_16<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
                          
                         input.seek(index30_16);
@@ -17785,11 +17710,11 @@
                         int index30_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA30_13>=VT_COMPILATION_UNIT && LA30_13<=SEMICOLON)||(LA30_13>=DOT && LA30_13<=STRING)||(LA30_13>=COMMA && LA30_13<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        if ( ((LA30_13>=VT_COMPILATION_UNIT && LA30_13<=SEMICOLON)||(LA30_13>=DOT && LA30_13<=STRING)||(LA30_13>=COMMA && LA30_13<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
-                        else if ( (LA30_13==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 18;}
+                        else if ( (LA30_13==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 18;}
 
-                        else if ( (LA30_13==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 19;}
+                        else if ( (LA30_13==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 19;}
 
                          
                         input.seek(index30_13);
@@ -17802,17 +17727,17 @@
                         int index30_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA30_1==MISC) && (((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))))) {s = 4;}
+                        if ( (LA30_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) && validateL!
 T(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))))) {s = 4;}
 
-                        else if ( (LA30_1==INT) && (((validateIdentifierKey("duration"))||(validateIdentifierKey("salience"))))) {s = 5;}
+                        else if ( (LA30_1==INT) && (((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))||(validateIdentifierKey(DroolsSoftKeywords.DURATION))))) {s = 5;}
 
-                        else if ( (LA30_1==ID||LA30_1==COLON||LA30_1==THEN) && ((validateIdentifierKey("when")))) {s = 6;}
+                        else if ( (LA30_1==ID||LA30_1==COLON||LA30_1==THEN) && ((validateIdentifierKey(DroolsSoftKeywords.WHEN)))) {s = 6;}
 
-                        else if ( (LA30_1==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 7;}
+                        else if ( (LA30_1==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 7;}
 
-                        else if ( (LA30_1==STRING) && ((validateIdentifierKey("dialect")))) {s = 8;}
+                        else if ( (LA30_1==STRING) && ((validateIdentifierKey(DroolsSoftKeywords.DIALECT)))) {s = 8;}
 
-                        else if ( (LA30_1==BOOL) && ((validateIdentifierKey("enabled")))) {s = 9;}
+                        else if ( (LA30_1==BOOL) && ((validateIdentifierKey(DroolsSoftKeywords.ENABLED)))) {s = 9;}
 
                          
                         input.seek(index30_1);
@@ -17825,9 +17750,9 @@
                         int index30_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA30_17==RIGHT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 21;}
+                        if ( (LA30_17==RIGHT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 21;}
 
-                        else if ( ((LA30_17>=VT_COMPILATION_UNIT && LA30_17<=LEFT_SQUARE)||(LA30_17>=THEN && LA30_17<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        else if ( ((LA30_17>=VT_COMPILATION_UNIT && LA30_17<=LEFT_SQUARE)||(LA30_17>=THEN && LA30_17<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
                          
                         input.seek(index30_17);
@@ -17840,11 +17765,11 @@
                         int index30_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA30_7==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 10;}
+                        if ( (LA30_7==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 10;}
 
-                        else if ( ((LA30_7>=VT_COMPILATION_UNIT && LA30_7<=SEMICOLON)||(LA30_7>=DOT && LA30_7<=STRING)||(LA30_7>=COMMA && LA30_7<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        else if ( ((LA30_7>=VT_COMPILATION_UNIT && LA30_7<=SEMICOLON)||(LA30_7>=DOT && LA30_7<=STRING)||(LA30_7>=COMMA && LA30_7<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
-                        else if ( (LA30_7==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 12;}
+                        else if ( (LA30_7==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 12;}
 
                          
                         input.seek(index30_7);
@@ -17857,7 +17782,7 @@
                         int index30_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA30_0==ID) && (((validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))||(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))||(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("duration"))||(validateIdentifierKey("when"))||(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))||(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))||(validateIdentifierKey("enabled"))||(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))||(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))||(validateIdentifierKey("salience"))||(validateIdentifierKey("dialect"))))) {s = 1;}
+                        if ( (LA30_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.DIALECT))||(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))||(validateIdentifierK!
 ey(DroolsSoftKeywords.SALIENCE))||(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))||(validateIdentifierKey(DroolsSoftKeywords.ENABLED))||(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))))) {s = 1;}
 
                         else if ( (LA30_0==THEN) ) {s = 2;}
 
@@ -17874,9 +17799,9 @@
                         int index30_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 11;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 11;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 6;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 6;}
 
                          
                         input.seek(index30_19);
@@ -17889,9 +17814,9 @@
                         int index30_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 11;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 11;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 6;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 6;}
 
                          
                         input.seek(index30_15);
@@ -17904,13 +17829,13 @@
                         int index30_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA30_18>=VT_COMPILATION_UNIT && LA30_18<=ID)||(LA30_18>=DOT_STAR && LA30_18<=STRING)||(LA30_18>=COMMA && LA30_18<=NULL)||(LA30_18>=RIGHT_SQUARE && LA30_18<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        if ( ((LA30_18>=VT_COMPILATION_UNIT && LA30_18<=ID)||(LA30_18>=DOT_STAR && LA30_18<=STRING)||(LA30_18>=COMMA && LA30_18<=NULL)||(LA30_18>=RIGHT_SQUARE && LA30_18<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
-                        else if ( (LA30_18==DOT) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 22;}
+                        else if ( (LA30_18==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 22;}
 
-                        else if ( (LA30_18==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 23;}
+                        else if ( (LA30_18==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 23;}
 
-                        else if ( (LA30_18==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 24;}
+                        else if ( (LA30_18==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 24;}
 
                          
                         input.seek(index30_18);
@@ -17923,9 +17848,9 @@
                         int index30_12 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("salience"))) ) {s = 11;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE))) ) {s = 11;}
 
-                        else if ( ((validateIdentifierKey("when"))) ) {s = 6;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.WHEN))) ) {s = 6;}
 
                          
                         input.seek(index30_12);
@@ -17938,13 +17863,13 @@
                         int index30_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA30_20>=VT_COMPILATION_UNIT && LA30_20<=ID)||(LA30_20>=DOT_STAR && LA30_20<=STRING)||(LA30_20>=COMMA && LA30_20<=NULL)||(LA30_20>=RIGHT_SQUARE && LA30_20<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        if ( ((LA30_20>=VT_COMPILATION_UNIT && LA30_20<=ID)||(LA30_20>=DOT_STAR && LA30_20<=STRING)||(LA30_20>=COMMA && LA30_20<=NULL)||(LA30_20>=RIGHT_SQUARE && LA30_20<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
-                        else if ( (LA30_20==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 17;}
+                        else if ( (LA30_20==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 17;}
 
-                        else if ( (LA30_20==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 25;}
+                        else if ( (LA30_20==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 25;}
 
-                        else if ( (LA30_20==DOT) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 16;}
+                        else if ( (LA30_20==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 16;}
 
                          
                         input.seek(index30_20);
@@ -17957,17 +17882,17 @@
                         int index30_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA30_10==COLON) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 13;}
+                        if ( (LA30_10==COLON) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 13;}
 
-                        else if ( ((LA30_10>=VT_COMPILATION_UNIT && LA30_10<=SEMICOLON)||(LA30_10>=DOT_STAR && LA30_10<=STRING)||(LA30_10>=COMMA && LA30_10<=RIGHT_PAREN)||(LA30_10>=BOOL && LA30_10<=NULL)||(LA30_10>=RIGHT_SQUARE && LA30_10<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey("salience")))) {s = 11;}
+                        else if ( ((LA30_10>=VT_COMPILATION_UNIT && LA30_10<=SEMICOLON)||(LA30_10>=DOT_STAR && LA30_10<=STRING)||(LA30_10>=COMMA && LA30_10<=RIGHT_PAREN)||(LA30_10>=BOOL && LA30_10<=NULL)||(LA30_10>=RIGHT_SQUARE && LA30_10<=MULTI_LINE_COMMENT)) && ((validateIdentifierKey(DroolsSoftKeywords.SALIENCE)))) {s = 11;}
 
-                        else if ( (LA30_10==ID) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 14;}
+                        else if ( (LA30_10==ID) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 14;}
 
-                        else if ( (LA30_10==LEFT_PAREN) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 15;}
+                        else if ( (LA30_10==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 15;}
 
-                        else if ( (LA30_10==DOT) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 16;}
+                        else if ( (LA30_10==DOT) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 16;}
 
-                        else if ( (LA30_10==LEFT_SQUARE) && (((validateIdentifierKey("when"))||(validateIdentifierKey("salience"))))) {s = 17;}
+                        else if ( (LA30_10==LEFT_SQUARE) && (((validateIdentifierKey(DroolsSoftKeywords.WHEN))||(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))))) {s = 17;}
 
                          
                         input.seek(index30_10);
@@ -18296,7 +18221,7 @@
 
                         else if ( (LA47_2==LEFT_SQUARE) ) {s = 8;}
 
-                        else if ( (LA47_2==ID) && (((synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))))) {s = 9;}
+                        else if ( (LA47_2==ID) && (((synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred6()&&(validateIdentifierK!
 ey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))))) {s = 9;}
 
                          
                         input.seek(index47_2);
@@ -18324,7 +18249,7 @@
                         int index47_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (((synpred6()&&(validateIdentifierKey("exists")))||(synpred6()&&(validateIdentifierKey("not")))||(synpred6()&&(validateIdentifierKey("eval")))||(synpred6()&&(validateIdentifierKey("forall")))||synpred6())) ) {s = 9;}
+                        if ( ((synpred6()||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EVAL)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.FORALL)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred6()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS))))) ) {s = 9;}
 
                         else if ( (true) ) {s = 14;}
 
@@ -18633,7 +18558,7 @@
                         int index48_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (((synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("forall")))||synpred7()||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("eval"))))) ) {s = 7;}
+                        if ( ((synpred7()||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.FORALL)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EVAL))))) ) {s = 7;}
 
                         else if ( (true) ) {s = 14;}
 
@@ -18652,7 +18577,7 @@
 
                         else if ( (LA48_2==LEFT_PAREN) ) {s = 6;}
 
-                        else if ( (LA48_2==ID) && (((synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("exists")))||(synpred7()&&(validateIdentifierKey("not")))))) {s = 7;}
+                        else if ( (LA48_2==ID) && (((synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.NOT)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(!
 DroolsSoftKeywords.EXISTS)))||(synpred7()&&(validateIdentifierKey(DroolsSoftKeywords.EXISTS)))))) {s = 7;}
 
                         else if ( (LA48_2==DOT) ) {s = 8;}
 
@@ -18768,7 +18693,7 @@
                         int index53_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA53_5==ID||LA53_5==COMMA) && ((validateIdentifierKey("init")))) {s = 9;}
+                        if ( (LA53_5==ID||LA53_5==COMMA) && ((validateIdentifierKey(DroolsSoftKeywords.INIT)))) {s = 9;}
 
                         else if ( (LA53_5==RIGHT_PAREN) ) {s = 10;}
 
@@ -18783,7 +18708,7 @@
                         int index53_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("init"))) ) {s = 9;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.INIT))) ) {s = 9;}
 
                         else if ( (true) ) {s = 10;}
 
@@ -18798,7 +18723,7 @@
                         int index53_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("init"))) ) {s = 7;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.INIT))) ) {s = 7;}
 
                         else if ( (true) ) {s = 8;}
 
@@ -18882,9 +18807,9 @@
                         int index57_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("reverse"))) ) {s = 10;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.REVERSE))) ) {s = 10;}
 
-                        else if ( ((validateIdentifierKey("result"))) ) {s = 9;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RESULT))) ) {s = 9;}
 
                          
                         input.seek(index57_6);
@@ -18897,9 +18822,9 @@
                         int index57_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((validateIdentifierKey("reverse"))) ) {s = 7;}
+                        if ( ((validateIdentifierKey(DroolsSoftKeywords.REVERSE))) ) {s = 7;}
 
-                        else if ( ((validateIdentifierKey("result"))) ) {s = 8;}
+                        else if ( ((validateIdentifierKey(DroolsSoftKeywords.RESULT))) ) {s = 8;}
 
                          
                         input.seek(index57_4);
@@ -18912,11 +18837,11 @@
                         int index57_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( ((LA57_2>=VT_COMPILATION_UNIT && LA57_2<=STRING)||LA57_2==COMMA||(LA57_2>=COLON && LA57_2<=MULTI_LINE_COMMENT)) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 3;}
+                        if ( ((LA57_2>=VT_COMPILATION_UNIT && LA57_2<=STRING)||LA57_2==COMMA||(LA57_2>=COLON && LA57_2<=MULTI_LINE_COMMENT)) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 3;}
 
-                        else if ( (LA57_2==LEFT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 4;}
+                        else if ( (LA57_2==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 4;}
 
-                        else if ( (LA57_2==RIGHT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 5;}
+                        else if ( (LA57_2==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 5;}
 
                          
                         input.seek(index57_2);
@@ -18929,11 +18854,11 @@
                         int index57_3 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA57_3==RIGHT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 5;}
+                        if ( (LA57_3==RIGHT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 5;}
 
-                        else if ( ((LA57_3>=VT_COMPILATION_UNIT && LA57_3<=STRING)||LA57_3==COMMA||(LA57_3>=COLON && LA57_3<=MULTI_LINE_COMMENT)) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 3;}
+                        else if ( ((LA57_3>=VT_COMPILATION_UNIT && LA57_3<=STRING)||LA57_3==COMMA||(LA57_3>=COLON && LA57_3<=MULTI_LINE_COMMENT)) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 3;}
 
-                        else if ( (LA57_3==LEFT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 6;}
+                        else if ( (LA57_3==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 6;}
 
                          
                         input.seek(index57_3);
@@ -18946,9 +18871,9 @@
                         int index57_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA57_5==RIGHT_PAREN) && ((validateIdentifierKey("result")))) {s = 9;}
+                        if ( (LA57_5==RIGHT_PAREN) && ((validateIdentifierKey(DroolsSoftKeywords.RESULT)))) {s = 9;}
 
-                        else if ( (LA57_5==ID||LA57_5==COMMA) && ((validateIdentifierKey("reverse")))) {s = 10;}
+                        else if ( (LA57_5==ID||LA57_5==COMMA) && ((validateIdentifierKey(DroolsSoftKeywords.REVERSE)))) {s = 10;}
 
                          
                         input.seek(index57_5);
@@ -18961,7 +18886,7 @@
                         int index57_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA57_0==ID) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 1;}
+                        if ( (LA57_0==ID) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 1;}
 
                          
                         input.seek(index57_0);
@@ -18974,7 +18899,7 @@
                         int index57_1 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA57_1==LEFT_PAREN) && (((validateIdentifierKey("reverse"))||(validateIdentifierKey("result"))))) {s = 2;}
+                        if ( (LA57_1==LEFT_PAREN) && (((validateIdentifierKey(DroolsSoftKeywords.REVERSE))||(validateIdentifierKey(DroolsSoftKeywords.RESULT))))) {s = 2;}
 
                          
                         input.seek(index57_1);
@@ -18989,36 +18914,49 @@
         }
     }
     static final String DFA74_eotS =
-        "\30\uffff";
+        "\43\uffff";
     static final String DFA74_eofS =
-        "\30\uffff";
+        "\43\uffff";
     static final String DFA74_minS =
-        "\1\134\1\uffff\2\126\1\uffff\1\0\1\126\1\0\1\4\1\0\1\4\1\0\2\4\12"+
-        "\0";
+        "\1\134\1\uffff\2\126\6\uffff\1\0\1\126\1\uffff\1\0\1\4\1\0\1\4\1"+
+        "\0\1\4\5\uffff\1\4\12\0";
     static final String DFA74_maxS =
-        "\1\142\1\uffff\1\151\1\154\1\uffff\1\0\1\154\1\0\1\172\1\0\1\172"+
-        "\1\0\2\172\12\0";
+        "\1\142\1\uffff\1\151\1\154\6\uffff\1\0\1\154\1\uffff\1\0\1\172\1"+
+        "\0\1\172\1\0\1\172\5\uffff\1\172\12\0";
     static final String DFA74_acceptS =
-        "\1\uffff\1\2\2\uffff\1\1\23\uffff";
+        "\1\uffff\1\2\2\uffff\6\1\2\uffff\1\1\6\uffff\5\1\13\uffff";
     static final String DFA74_specialS =
-        "\5\uffff\1\3\1\uffff\1\1\1\uffff\1\2\1\uffff\1\0\14\uffff}>";
+        "\2\uffff\1\5\1\0\6\uffff\1\6\1\2\1\uffff\1\4\1\uffff\1\3\1\uffff"+
+        "\1\1\21\uffff}>";
     static final String[] DFA74_transitionS = {
             "\2\1\3\uffff\1\2\1\1",
             "",
-            "\1\3\4\uffff\1\5\10\uffff\6\4",
-            "\1\6\1\1\2\uffff\1\4\1\7\2\uffff\1\1\2\4\3\uffff\6\1\2\4\1\10",
+            "\1\3\4\uffff\1\12\10\uffff\1\4\1\5\1\6\1\7\1\10\1\11",
+            "\1\13\1\1\2\uffff\1\14\1\15\2\uffff\1\1\2\14\3\uffff\6\1\2\14"+
+            "\1\16",
             "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\uffff",
-            "\1\11\1\4\2\uffff\1\13\1\12\2\4\1\uffff\2\13\2\4\7\uffff\2\13"+
-            "\1\14",
+            "\1\17\1\23\2\uffff\1\21\1\20\1\26\1\27\1\uffff\2\21\1\25\1\24"+
+            "\7\uffff\2\21\1\22",
+            "",
             "\1\uffff",
-            "\150\15\1\16\1\17\15\15",
+            "\150\30\1\31\1\32\15\30",
             "\1\uffff",
-            "\122\23\1\20\3\23\1\21\1\22\1\23\1\24\1\23\2\21\11\23\2\21\17"+
-            "\23",
+            "\122\36\1\33\3\36\1\34\1\35\1\36\1\37\1\36\2\34\11\36\2\34\17"+
+            "\36",
             "\1\uffff",
-            "\150\25\1\26\1\27\15\25",
-            "\150\15\1\16\1\17\15\15",
+            "\150\40\1\41\1\42\15\40",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\150\30\1\31\1\32\15\30",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -19061,69 +18999,146 @@
             this.transition = DFA74_transition;
         }
         public String getDescription() {
-            return "()* loopback of 674:25: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective )*";
+            return "()* loopback of 674:25: ( ( DOUBLE_PIPE )=> DOUBLE_PIPE and_restr_connective )*";
         }
         public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
         	int _s = s;
             switch ( s ) {
                     case 0 : 
+                        int LA74_3 = input.LA(1);
+
+                         
+                        int index74_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA74_3==DOT||LA74_3==COLON||(LA74_3>=EQUAL && LA74_3<=NOT_EQUAL)) ) {s = 1;}
+
+                        else if ( (LA74_3==ID) ) {s = 11;}
+
+                        else if ( (LA74_3==STRING||(LA74_3>=BOOL && LA74_3<=INT)||(LA74_3>=FLOAT && LA74_3<=NULL)) && (synpred11())) {s = 12;}
+
+                        else if ( (LA74_3==LEFT_PAREN) ) {s = 13;}
+
+                        else if ( (LA74_3==LEFT_SQUARE) ) {s = 14;}
+
+                         
+                        input.seek(index74_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA74_17 = input.LA(1);
+
+                         
+                        int index74_17 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred11()) ) {s = 23;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index74_17);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
                         int LA74_11 = input.LA(1);
 
                          
                         int index74_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred11()) ) {s = 4;}
+                        if ( (LA74_11==ID) ) {s = 15;}
 
-                        else if ( (true) ) {s = 1;}
+                        else if ( (LA74_11==LEFT_PAREN) ) {s = 16;}
 
+                        else if ( (LA74_11==STRING||(LA74_11>=BOOL && LA74_11<=INT)||(LA74_11>=FLOAT && LA74_11<=NULL)) ) {s = 17;}
+
+                        else if ( (LA74_11==LEFT_SQUARE) ) {s = 18;}
+
+                        else if ( (LA74_11==DOT) && (synpred11())) {s = 19;}
+
+                        else if ( (LA74_11==DOUBLE_AMPER) && (synpred11())) {s = 20;}
+
+                        else if ( (LA74_11==DOUBLE_PIPE) && (synpred11())) {s = 21;}
+
+                        else if ( (LA74_11==COMMA) && (synpred11())) {s = 22;}
+
+                        else if ( (LA74_11==RIGHT_PAREN) && (synpred11())) {s = 23;}
+
                          
                         input.seek(index74_11);
                         if ( s>=0 ) return s;
                         break;
-                    case 1 : 
-                        int LA74_7 = input.LA(1);
+                    case 3 : 
+                        int LA74_15 = input.LA(1);
 
                          
-                        int index74_7 = input.index();
+                        int index74_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred11()) ) {s = 4;}
+                        if ( (synpred11()) ) {s = 23;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index74_7);
+                        input.seek(index74_15);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
-                        int LA74_9 = input.LA(1);
+                    case 4 : 
+                        int LA74_13 = input.LA(1);
 
                          
-                        int index74_9 = input.index();
+                        int index74_13 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred11()) ) {s = 4;}
+                        if ( (synpred11()) ) {s = 23;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index74_9);
+                        input.seek(index74_13);
                         if ( s>=0 ) return s;
                         break;
-                    case 3 : 
-                        int LA74_5 = input.LA(1);
+                    case 5 : 
+                        int LA74_2 = input.LA(1);
 
                          
-                        int index74_5 = input.index();
+                        int index74_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred11()) ) {s = 4;}
+                        if ( (LA74_2==ID) ) {s = 3;}
 
+                        else if ( (LA74_2==EQUAL) && (synpred11())) {s = 4;}
+
+                        else if ( (LA74_2==GREATER) && (synpred11())) {s = 5;}
+
+                        else if ( (LA74_2==GREATER_EQUAL) && (synpred11())) {s = 6;}
+
+                        else if ( (LA74_2==LESS) && (synpred11())) {s = 7;}
+
+                        else if ( (LA74_2==LESS_EQUAL) && (synpred11())) {s = 8;}
+
+                        else if ( (LA74_2==NOT_EQUAL) && (synpred11())) {s = 9;}
+
+                        else if ( (LA74_2==LEFT_PAREN) ) {s = 10;}
+
+                         
+                        input.seek(index74_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA74_10 = input.LA(1);
+
+                         
+                        int index74_10 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred11()) ) {s = 12;}
+
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index74_5);
+                        input.seek(index74_10);
                         if ( s>=0 ) return s;
                         break;
             }
@@ -19135,44 +19150,65 @@
         }
     }
     static final String DFA75_eotS =
-        "\61\uffff";
+        "\103\uffff";
     static final String DFA75_eofS =
-        "\1\1\5\uffff\1\4\52\uffff";
+        "\103\uffff";
     static final String DFA75_minS =
-        "\1\134\1\uffff\2\126\1\uffff\2\126\2\4\1\126\3\0\5\4\37\0";
+        "\1\134\1\uffff\2\126\6\uffff\2\126\1\4\1\uffff\1\4\1\126\1\0\6\uffff"+
+        "\2\0\2\4\5\uffff\3\4\16\0\1\uffff\21\0";
     static final String DFA75_maxS =
-        "\1\142\1\uffff\1\151\1\154\1\uffff\1\151\1\154\2\172\1\154\3\0\5"+
-        "\172\37\0";
+        "\1\142\1\uffff\1\151\1\154\6\uffff\1\151\1\154\1\172\1\uffff\1\172"+
+        "\1\154\1\0\6\uffff\2\0\2\172\5\uffff\3\172\16\0\1\uffff\21\0";
     static final String DFA75_acceptS =
-        "\1\uffff\1\2\2\uffff\1\1\54\uffff";
+        "\1\uffff\1\2\2\uffff\6\1\3\uffff\1\1\3\uffff\6\1\4\uffff\5\1\21"+
+        "\uffff\1\1\21\uffff";
     static final String DFA75_specialS =
-        "\12\uffff\1\0\1\1\1\2\44\uffff}>";
+        "\2\uffff\1\4\1\6\6\uffff\1\7\1\2\3\uffff\1\5\1\1\6\uffff\1\3\1\0"+
+        "\52\uffff}>";
     static final String[] DFA75_transitionS = {
             "\2\1\3\uffff\1\1\1\2",
             "",
-            "\1\3\4\uffff\1\5\10\uffff\6\4",
-            "\1\6\1\1\2\uffff\1\4\1\7\2\uffff\1\1\2\4\3\uffff\6\1\2\4\1\10",
+            "\1\3\4\uffff\1\12\10\uffff\1\4\1\5\1\6\1\7\1\10\1\11",
+            "\1\13\1\1\2\uffff\1\15\1\14\2\uffff\1\1\2\15\3\uffff\6\1\2\15"+
+            "\1\16",
             "",
-            "\1\11\4\uffff\1\12\10\uffff\6\4",
-            "\1\13\1\4\2\uffff\1\14\1\15\2\4\1\uffff\2\14\2\4\7\uffff\2\14"+
-            "\1\16",
-            "\122\31\1\17\3\31\1\27\1\26\1\31\1\30\1\31\2\27\3\31\1\20\1"+
-            "\21\1\22\1\23\1\24\1\25\2\27\17\31",
-            "\150\32\1\33\1\34\15\32",
-            "\1\37\1\1\2\uffff\1\4\1\35\2\uffff\1\1\2\4\3\uffff\6\1\2\4\1"+
-            "\36",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\17\4\uffff\1\20\10\uffff\1\21\1\22\1\23\1\24\1\25\1\26",
+            "\1\27\1\33\2\uffff\1\30\1\31\1\36\1\37\1\uffff\2\30\1\34\1\35"+
+            "\7\uffff\2\30\1\32",
+            "\122\52\1\40\3\52\1\50\1\47\1\52\1\51\1\52\2\50\3\52\1\41\1"+
+            "\42\1\43\1\44\1\45\1\46\2\50\17\52",
+            "",
+            "\150\53\1\54\1\55\15\53",
+            "\1\60\1\1\2\uffff\1\61\1\56\2\uffff\1\1\2\61\3\uffff\6\1\2\61"+
+            "\1\57",
             "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\uffff",
             "\1\uffff",
-            "\122\44\1\40\3\44\1\43\1\41\1\44\1\42\1\44\2\43\11\44\2\43\17"+
-            "\44",
-            "\150\45\1\46\1\47\15\45",
-            "\122\31\1\54\1\51\2\31\1\55\1\56\1\52\1\53\1\31\2\55\11\31\2"+
-            "\55\1\50\16\31",
-            "\122\31\1\57\3\31\1\55\1\60\1\31\1\30\1\31\2\55\11\31\2\55\17"+
-            "\31",
-            "\122\31\1\57\3\31\1\55\1\60\1\31\1\30\1\31\2\55\11\31\2\55\17"+
-            "\31",
+            "\122\66\1\62\3\66\1\65\1\63\1\66\1\64\1\66\2\65\11\66\2\65\17"+
+            "\66",
+            "\150\67\1\70\1\71\15\67",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\122\52\1\76\1\73\2\52\1\77\1\100\1\74\1\75\1\52\2\77\11\52"+
+            "\2\77\1\72\16\52",
+            "\122\52\1\101\3\52\1\77\1\102\1\52\1\51\1\52\2\77\11\52\2\77"+
+            "\17\52",
+            "\122\52\1\101\3\52\1\77\1\102\1\52\1\51\1\52\2\77\11\52\2\77"+
+            "\17\52",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -19187,6 +19223,7 @@
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
+            "",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -19236,56 +19273,181 @@
             this.transition = DFA75_transition;
         }
         public String getDescription() {
-            return "()* loopback of 678:26: ( options {backtrack=true; } : DOUBLE_AMPER constraint_expression )*";
+            return "()* loopback of 678:26: ( ( DOUBLE_AMPER )=> DOUBLE_AMPER constraint_expression )*";
         }
         public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA75_10 = input.LA(1);
+                        int LA75_24 = input.LA(1);
 
                          
-                        int index75_10 = input.index();
+                        int index75_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred12()) ) {s = 4;}
+                        if ( (synpred12()) ) {s = 49;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index75_10);
+                        input.seek(index75_24);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
+                        int LA75_16 = input.LA(1);
+
+                         
+                        int index75_16 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred12()) ) {s = 49;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index75_16);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
                         int LA75_11 = input.LA(1);
 
                          
                         int index75_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred12()) ) {s = 4;}
+                        if ( (LA75_11==ID) ) {s = 23;}
 
-                        else if ( (true) ) {s = 1;}
+                        else if ( (LA75_11==STRING||(LA75_11>=BOOL && LA75_11<=INT)||(LA75_11>=FLOAT && LA75_11<=NULL)) ) {s = 24;}
 
+                        else if ( (LA75_11==LEFT_PAREN) ) {s = 25;}
+
+                        else if ( (LA75_11==LEFT_SQUARE) ) {s = 26;}
+
+                        else if ( (LA75_11==DOT) && (synpred12())) {s = 27;}
+
+                        else if ( (LA75_11==DOUBLE_PIPE) && (synpred12())) {s = 28;}
+
+                        else if ( (LA75_11==DOUBLE_AMPER) && (synpred12())) {s = 29;}
+
+                        else if ( (LA75_11==COMMA) && (synpred12())) {s = 30;}
+
+                        else if ( (LA75_11==RIGHT_PAREN) && (synpred12())) {s = 31;}
+
                          
                         input.seek(index75_11);
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
-                        int LA75_12 = input.LA(1);
+                    case 3 : 
+                        int LA75_23 = input.LA(1);
 
                          
-                        int index75_12 = input.index();
+                        int index75_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred12()) ) {s = 4;}
+                        if ( (synpred12()) ) {s = 49;}
 
                         else if ( (true) ) {s = 1;}
 
                          
-                        input.seek(index75_12);
+                        input.seek(index75_23);
                         if ( s>=0 ) return s;
                         break;
+                    case 4 : 
+                        int LA75_2 = input.LA(1);
+
+                         
+                        int index75_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA75_2==ID) ) {s = 3;}
+
+                        else if ( (LA75_2==EQUAL) && (synpred12())) {s = 4;}
+
+                        else if ( (LA75_2==GREATER) && (synpred12())) {s = 5;}
+
+                        else if ( (LA75_2==GREATER_EQUAL) && (synpred12())) {s = 6;}
+
+                        else if ( (LA75_2==LESS) && (synpred12())) {s = 7;}
+
+                        else if ( (LA75_2==LESS_EQUAL) && (synpred12())) {s = 8;}
+
+                        else if ( (LA75_2==NOT_EQUAL) && (synpred12())) {s = 9;}
+
+                        else if ( (LA75_2==LEFT_PAREN) ) {s = 10;}
+
+                         
+                        input.seek(index75_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA75_15 = input.LA(1);
+
+                         
+                        int index75_15 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA75_15==DOT||LA75_15==COLON||(LA75_15>=EQUAL && LA75_15<=NOT_EQUAL)) ) {s = 1;}
+
+                        else if ( (LA75_15==LEFT_PAREN) ) {s = 46;}
+
+                        else if ( (LA75_15==LEFT_SQUARE) ) {s = 47;}
+
+                        else if ( (LA75_15==ID) ) {s = 48;}
+
+                        else if ( (LA75_15==STRING||(LA75_15>=BOOL && LA75_15<=INT)||(LA75_15>=FLOAT && LA75_15<=NULL)) && (synpred12())) {s = 49;}
+
+                         
+                        input.seek(index75_15);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA75_3 = input.LA(1);
+
+                         
+                        int index75_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA75_3==DOT||LA75_3==COLON||(LA75_3>=EQUAL && LA75_3<=NOT_EQUAL)) ) {s = 1;}
+
+                        else if ( (LA75_3==ID) ) {s = 11;}
+
+                        else if ( (LA75_3==LEFT_PAREN) ) {s = 12;}
+
+                        else if ( (LA75_3==STRING||(LA75_3>=BOOL && LA75_3<=INT)||(LA75_3>=FLOAT && LA75_3<=NULL)) && (synpred12())) {s = 13;}
+
+                        else if ( (LA75_3==LEFT_SQUARE) ) {s = 14;}
+
+                         
+                        input.seek(index75_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA75_10 = input.LA(1);
+
+                         
+                        int index75_10 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA75_10==ID) ) {s = 15;}
+
+                        else if ( (LA75_10==LEFT_PAREN) ) {s = 16;}
+
+                        else if ( (LA75_10==EQUAL) && (synpred12())) {s = 17;}
+
+                        else if ( (LA75_10==GREATER) && (synpred12())) {s = 18;}
+
+                        else if ( (LA75_10==GREATER_EQUAL) && (synpred12())) {s = 19;}
+
+                        else if ( (LA75_10==LESS) && (synpred12())) {s = 20;}
+
+                        else if ( (LA75_10==LESS_EQUAL) && (synpred12())) {s = 21;}
+
+                        else if ( (LA75_10==NOT_EQUAL) && (synpred12())) {s = 22;}
+
+                         
+                        input.seek(index75_10);
+                        if ( s>=0 ) return s;
+                        break;
             }
             if (backtracking>0) {failed=true; return -1;}
             NoViableAltException nvae =
@@ -19529,161 +19691,161 @@
     public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr2730 = new BitSet(new long[]{0x0000000000000000L,0x0000000008400000L});
     public static final BitSet FOLLOW_unary_constr_in_and_constr2733 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
     public static final BitSet FOLLOW_eval_key_in_unary_constr2754 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_unary_constr2756 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_field_constraint_in_unary_constr2769 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr2774 = new BitSet(new long[]{0x0000000000000000L,0x0000000008400000L});
-    public static final BitSet FOLLOW_or_constr_in_unary_constr2776 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr2778 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_label_in_field_constraint2798 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint2800 = new BitSet(new long[]{0x0000000000000002L,0x000003F808400000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint2804 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ARROW_in_field_constraint2810 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_field_constraint2812 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint2866 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint2868 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_label2892 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_COLON_in_label2894 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective2910 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective2922 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective2925 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective2940 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective2952 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective2955 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
-    public static final BitSet FOLLOW_compound_operator_in_constraint_expression2977 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_simple_operator_in_constraint_expression2982 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression2987 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression2989 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression2991 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EQUAL_in_simple_operator3009 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_GREATER_in_simple_operator3015 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_GREATER_EQUAL_in_simple_operator3021 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_LESS_in_simple_operator3027 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_LESS_EQUAL_in_simple_operator3033 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_NOT_EQUAL_in_simple_operator3039 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_not_key_in_simple_operator3045 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_contains_key_in_simple_operator3048 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_soundslike_key_in_simple_operator3051 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_matches_key_in_simple_operator3054 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_memberof_key_in_simple_operator3057 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_ID_in_simple_operator3060 = new BitSet(new long[]{0x0000000000000000L,0x00001C018C400000L});
-    public static final BitSet FOLLOW_square_chunk_in_simple_operator3063 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_contains_key_in_simple_operator3070 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_excludes_key_in_simple_operator3076 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_matches_key_in_simple_operator3082 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_soundslike_key_in_simple_operator3088 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_memberof_key_in_simple_operator3094 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_ID_in_simple_operator3100 = new BitSet(new long[]{0x0000000000000000L,0x00001C018C400000L});
-    public static final BitSet FOLLOW_square_chunk_in_simple_operator3103 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_expression_value_in_simple_operator3108 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_in_key_in_compound_operator3123 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_not_key_in_compound_operator3128 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_in_key_in_compound_operator3130 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator3135 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator3138 = new BitSet(new long[]{0x0000000000000000L,0x0000000030000000L});
-    public static final BitSet FOLLOW_COMMA_in_compound_operator3142 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator3145 = new BitSet(new long[]{0x0000000000000000L,0x0000000030000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator3150 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_expression_value3161 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_constraint_in_expression_value3166 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_value3172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_unary_constr2757 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_field_constraint_in_unary_constr2762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr2767 = new BitSet(new long[]{0x0000000000000000L,0x0000000008400000L});
+    public static final BitSet FOLLOW_or_constr_in_unary_constr2770 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr2772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_label_in_field_constraint2786 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint2788 = new BitSet(new long[]{0x0000000000000002L,0x000003F808400000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint2792 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ARROW_in_field_constraint2798 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_field_constraint2800 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint2854 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint2856 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_label2880 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_COLON_in_label2882 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective2898 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective2906 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective2909 = new BitSet(new long[]{0x0000000000000002L,0x0000000200000000L});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective2924 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective2932 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective2935 = new BitSet(new long[]{0x0000000000000002L,0x0000000400000000L});
+    public static final BitSet FOLLOW_compound_operator_in_constraint_expression2957 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_simple_operator_in_constraint_expression2962 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression2967 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression2970 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression2972 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EQUAL_in_simple_operator2984 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_GREATER_in_simple_operator2990 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_GREATER_EQUAL_in_simple_operator2996 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_LESS_in_simple_operator3002 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_LESS_EQUAL_in_simple_operator3008 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_NOT_EQUAL_in_simple_operator3014 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_not_key_in_simple_operator3020 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_contains_key_in_simple_operator3023 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_soundslike_key_in_simple_operator3026 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_matches_key_in_simple_operator3029 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_memberof_key_in_simple_operator3032 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_ID_in_simple_operator3035 = new BitSet(new long[]{0x0000000000000000L,0x00001C018C400000L});
+    public static final BitSet FOLLOW_square_chunk_in_simple_operator3038 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_contains_key_in_simple_operator3045 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_excludes_key_in_simple_operator3051 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_matches_key_in_simple_operator3057 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_soundslike_key_in_simple_operator3063 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_memberof_key_in_simple_operator3069 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_ID_in_simple_operator3075 = new BitSet(new long[]{0x0000000000000000L,0x00001C018C400000L});
+    public static final BitSet FOLLOW_square_chunk_in_simple_operator3078 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_expression_value_in_simple_operator3083 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_in_key_in_compound_operator3098 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_not_key_in_compound_operator3103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_in_key_in_compound_operator3105 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator3110 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator3113 = new BitSet(new long[]{0x0000000000000000L,0x0000000030000000L});
+    public static final BitSet FOLLOW_COMMA_in_compound_operator3117 = new BitSet(new long[]{0x0000000000000000L,0x00000C018C400000L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator3120 = new BitSet(new long[]{0x0000000000000000L,0x0000000030000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator3125 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_expression_value3136 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_constraint_in_expression_value3141 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_value3147 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_set_in_literal_constraint0 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_pattern_type3214 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
-    public static final BitSet FOLLOW_DOT_in_pattern_type3218 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_pattern_type3220 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
-    public static final BitSet FOLLOW_dimension_definition_in_pattern_type3225 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_ID_in_data_type3251 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
-    public static final BitSet FOLLOW_DOT_in_data_type3255 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_data_type3257 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
-    public static final BitSet FOLLOW_dimension_definition_in_data_type3262 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition3288 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition3290 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path3301 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
-    public static final BitSet FOLLOW_DOT_in_accessor_path3305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path3307 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
-    public static final BitSet FOLLOW_ID_in_accessor_element3331 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_square_chunk_in_accessor_element3333 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
-    public static final BitSet FOLLOW_rhs_chunk_data_in_rhs_chunk3362 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_THEN_in_rhs_chunk_data3381 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_set_in_rhs_chunk_data3385 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_END_in_rhs_chunk_data3391 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
-    public static final BitSet FOLLOW_SEMICOLON_in_rhs_chunk_data3393 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk3410 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk_data3429 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_set_in_curly_chunk_data3432 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk_data3446 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk_data3451 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk3467 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk_data3487 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_set_in_paren_chunk_data3490 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk_data3504 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk_data3509 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk3526 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk_data3545 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_set_in_square_chunk_data3548 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk_data3562 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk_data3567 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_date_effective_key3586 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_date_effective_key3588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_date_effective_key3590 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_date_expires_key3616 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_date_expires_key3618 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_date_expires_key3620 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key3646 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_lock_on_active_key3648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key3650 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_lock_on_active_key3652 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_lock_on_active_key3654 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_no_loop_key3680 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_no_loop_key3682 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_no_loop_key3684 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_auto_focus_key3710 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_auto_focus_key3712 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_auto_focus_key3714 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_activation_group_key3740 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_activation_group_key3742 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_activation_group_key3744 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_agenda_group_key3770 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_agenda_group_key3772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_agenda_group_key3774 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_ruleflow_group_key3800 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_ruleflow_group_key3802 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_ruleflow_group_key3804 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_duration_key3829 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_package_key3851 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_import_key3873 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_dialect_key3895 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_salience_key3917 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_enabled_key3939 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_attributes_key3961 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_when_key3983 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_rule_key4005 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_template_key4027 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_query_key4049 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_declare_key4071 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_key4093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_global_key4115 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_eval_key4137 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_contains_key4159 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_matches_key4181 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_excludes_key4203 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_soundslike_key4225 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_memberof_key4247 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_not_key4269 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_in_key4291 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_or_key4313 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_and_key4335 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_exists_key4357 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_forall_key4379 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_from_key4401 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_entry_point_key4424 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_MISC_in_entry_point_key4426 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_ID_in_entry_point_key4428 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_accumulate_key4453 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_init_key4475 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_action_key4497 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_reverse_key4519 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_result_key4541 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_collect_key4563 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_pattern_type3189 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
+    public static final BitSet FOLLOW_DOT_in_pattern_type3193 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_pattern_type3195 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
+    public static final BitSet FOLLOW_dimension_definition_in_pattern_type3200 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_ID_in_data_type3226 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
+    public static final BitSet FOLLOW_DOT_in_data_type3230 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_data_type3232 = new BitSet(new long[]{0x0000000000000002L,0x0000100000800000L});
+    public static final BitSet FOLLOW_dimension_definition_in_data_type3237 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_dimension_definition3263 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dimension_definition3265 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path3276 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
+    public static final BitSet FOLLOW_DOT_in_accessor_path3280 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path3282 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
+    public static final BitSet FOLLOW_ID_in_accessor_element3306 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_square_chunk_in_accessor_element3308 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_rhs_chunk_data_in_rhs_chunk3337 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_THEN_in_rhs_chunk_data3356 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_rhs_chunk_data3360 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_END_in_rhs_chunk_data3366 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
+    public static final BitSet FOLLOW_SEMICOLON_in_rhs_chunk_data3368 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk3385 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk_data3404 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_curly_chunk_data3407 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_curly_chunk_data_in_curly_chunk_data3421 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk_data3426 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk3442 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk_data3462 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_paren_chunk_data3465 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_paren_chunk_data_in_paren_chunk_data3479 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk_data3484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk3501 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk_data3520 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_set_in_square_chunk_data3523 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_square_chunk_data_in_square_chunk_data3537 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x07FFFFFFFFFFFFFFL});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk_data3542 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_date_effective_key3561 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_date_effective_key3563 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_date_effective_key3565 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_date_expires_key3591 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_date_expires_key3593 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_date_expires_key3595 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key3621 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_lock_on_active_key3623 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key3625 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_lock_on_active_key3627 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_lock_on_active_key3629 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_no_loop_key3655 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_no_loop_key3657 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_no_loop_key3659 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_auto_focus_key3685 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_auto_focus_key3687 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_auto_focus_key3689 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_activation_group_key3715 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_activation_group_key3717 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_activation_group_key3719 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_agenda_group_key3745 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_agenda_group_key3747 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_agenda_group_key3749 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_ruleflow_group_key3775 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_ruleflow_group_key3777 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_ruleflow_group_key3779 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_duration_key3804 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_package_key3826 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_import_key3848 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_dialect_key3870 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_salience_key3892 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_enabled_key3914 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_attributes_key3936 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_when_key3958 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_rule_key3980 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_template_key4002 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_query_key4024 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_declare_key4046 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_key4068 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_global_key4090 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_eval_key4112 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_contains_key4134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_matches_key4156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_excludes_key4178 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_soundslike_key4200 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_memberof_key4222 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_not_key4244 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_in_key4266 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_or_key4288 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_and_key4310 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_exists_key4332 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_forall_key4354 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_from_key4376 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_entry_point_key4399 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_MISC_in_entry_point_key4401 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_ID_in_entry_point_key4403 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_accumulate_key4428 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_init_key4450 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_action_key4472 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_reverse_key4494 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_result_key4516 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_collect_key4538 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_LEFT_PAREN_in_synpred11491 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
     public static final BitSet FOLLOW_or_key_in_synpred11493 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_or_key_in_synpred21540 = new BitSet(new long[]{0x0000000000000002L});
@@ -19702,9 +19864,7 @@
     public static final BitSet FOLLOW_LEFT_PAREN_in_synpred82366 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred92427 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_LEFT_PAREN_in_synpred102449 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred112922 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
-    public static final BitSet FOLLOW_and_restr_connective_in_synpred112925 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred122952 = new BitSet(new long[]{0x0000000000000000L,0x000003F008400000L});
-    public static final BitSet FOLLOW_constraint_expression_in_synpred122955 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred112902 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred122928 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-06-05 00:03:07 UTC (rev 20314)
+++ labs/jbossrules/branches/parser-rewrite/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-06-05 00:05:00 UTC (rev 20315)
@@ -652,9 +652,9 @@
 
 unary_constr
 options {k=2;}
-	:	eval_key paren_chunk -> ^(eval_key paren_chunk)
+	:	eval_key^ paren_chunk
 	|	field_constraint
-	|	LEFT_PAREN or_constr RIGHT_PAREN -> or_constr RIGHT_PAREN
+	|	LEFT_PAREN! or_constr RIGHT_PAREN
 	;
 
 field_constraint
@@ -671,11 +671,11 @@
 	;
 
 or_restr_connective
-	:	and_restr_connective (options{backtrack=true;}:  DOUBLE_PIPE^ and_restr_connective )* 
+	:	and_restr_connective ((DOUBLE_PIPE)=> DOUBLE_PIPE^ and_restr_connective )* 
 	;
 
 and_restr_connective
-	:	constraint_expression (options{backtrack=true;}:  DOUBLE_AMPER^ constraint_expression )*
+	:	constraint_expression ((DOUBLE_AMPER)=> DOUBLE_AMPER^ constraint_expression )*
 	;
 
 constraint_expression
@@ -683,7 +683,7 @@
 k=3;
 }	:	compound_operator
 	|	simple_operator
-	|	LEFT_PAREN or_restr_connective RIGHT_PAREN -> or_restr_connective RIGHT_PAREN
+	|	LEFT_PAREN! or_restr_connective RIGHT_PAREN
 	;
 
 simple_operator
@@ -794,196 +794,196 @@
 date_effective_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "effective"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EFFECTIVE))}?=>  ID MISC ID {text = $text;}
 	->	VK_DATE_EFFECTIVE[$start, text]
 	;
 
 date_expires_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("date") && validateLT(2, "-") && validateLT(3, "expires"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.DATE) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.EXPIRES))}?=>  ID MISC ID {text = $text;}
 	->	VK_DATE_EXPIRES[$start, text]
 	;
 
 lock_on_active_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("lock") && validateLT(2, "-") && validateLT(3, "on") && validateLT(4, "-") && validateLT(5, "active"))}?=>  ID MISC ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.LOCK) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.ON) && validateLT(4, "-") && validateLT(5, DroolsSoftKeywords.ACTIVE))}?=>  ID MISC ID MISC ID {text = $text;}
 	->	VK_LOCK_ON_ACTIVE[$start, text]
 	;
 
 no_loop_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("no") && validateLT(2, "-") && validateLT(3, "loop"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.NO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.LOOP))}?=>  ID MISC ID {text = $text;}
 	->	VK_NO_LOOP[$start, text]
 	;
 
 auto_focus_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("auto") && validateLT(2, "-") && validateLT(3, "focus"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.AUTO) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.FOCUS))}?=>  ID MISC ID {text = $text;}
 	->	VK_AUTO_FOCUS[$start, text]
 	;
 
 activation_group_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("activation") && validateLT(2, "-") && validateLT(3, "group"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.ACTIVATION) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))}?=>  ID MISC ID {text = $text;}
 	->	VK_ACTIVATION_GROUP[$start, text]
 	;
 
 agenda_group_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("agenda") && validateLT(2, "-") && validateLT(3, "group"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.AGENDA) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))}?=>  ID MISC ID {text = $text;}
 	->	VK_AGENDA_GROUP[$start, text]
 	;
 
 ruleflow_group_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("ruleflow") && validateLT(2, "-") && validateLT(3, "group"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.RULEFLOW) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.GROUP))}?=>  ID MISC ID {text = $text;}
 	->	VK_RULEFLOW_GROUP[$start, text]
 	;
 
 duration_key
-	:	{(validateIdentifierKey("duration"))}?=>  id=ID	->	VK_DURATION[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.DURATION))}?=>  id=ID	->	VK_DURATION[$id]
 	;
 
 package_key
-	:	{(validateIdentifierKey("package"))}?=>  id=ID	->	VK_PACKAGE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.PACKAGE))}?=>  id=ID	->	VK_PACKAGE[$id]
 	;
 
 import_key
-	:	{(validateIdentifierKey("import"))}?=>  id=ID	->	VK_IMPORT[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.IMPORT))}?=>  id=ID	->	VK_IMPORT[$id]
 	;
 
 dialect_key
-	:	{(validateIdentifierKey("dialect"))}?=>  id=ID	->	VK_DIALECT[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.DIALECT))}?=>  id=ID	->	VK_DIALECT[$id]
 	;
 
 salience_key
-	:	{(validateIdentifierKey("salience"))}?=>  id=ID	->	VK_SALIENCE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.SALIENCE))}?=>  id=ID	->	VK_SALIENCE[$id]
 	;
 
 enabled_key
-	:	{(validateIdentifierKey("enabled"))}?=>  id=ID	->	VK_ENABLED[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.ENABLED))}?=>  id=ID	->	VK_ENABLED[$id]
 	;
 
 attributes_key
-	:	{(validateIdentifierKey("attributes"))}?=>  id=ID	->	VK_ATTRIBUTES[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.ATTRIBUTES))}?=>  id=ID	->	VK_ATTRIBUTES[$id]
 	;
 
 when_key
-	:	{(validateIdentifierKey("when"))}?=>  id=ID	->	VK_WHEN[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.WHEN))}?=>  id=ID	->	VK_WHEN[$id]
 	;
 
 rule_key
-	:	{(validateIdentifierKey("rule"))}?=>  id=ID	->	VK_RULE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.RULE))}?=>  id=ID	->	VK_RULE[$id]
 	;
 
 template_key
-	:	{(validateIdentifierKey("template"))}?=>  id=ID	->	VK_TEMPLATE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.TEMPLATE))}?=>  id=ID	->	VK_TEMPLATE[$id]
 	;
 
 query_key
-	:	{(validateIdentifierKey("query"))}?=>  id=ID	->	VK_QUERY[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.QUERY))}?=>  id=ID	->	VK_QUERY[$id]
 	;
 
 declare_key
-	:	{(validateIdentifierKey("declare"))}?=>  id=ID	->	VK_DECLARE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.DECLARE))}?=>  id=ID	->	VK_DECLARE[$id]
 	;
 
 function_key
-	:	{(validateIdentifierKey("function"))}?=>  id=ID	->	VK_FUNCTION[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.FUNCTION))}?=>  id=ID	->	VK_FUNCTION[$id]
 	;
 
 global_key
-	:	{(validateIdentifierKey("global"))}?=>  id=ID	->	VK_GLOBAL[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.GLOBAL))}?=>  id=ID	->	VK_GLOBAL[$id]
 	;
 
 eval_key
-	:	{(validateIdentifierKey("eval"))}?=>  id=ID	->	VK_EVAL[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.EVAL))}?=>  id=ID	->	VK_EVAL[$id]
 	;
 
 contains_key
-	:	{(validateIdentifierKey("contains"))}?=>  id=ID	->	VK_CONTAINS[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.CONTAINS))}?=>  id=ID	->	VK_CONTAINS[$id]
 	;
 
 matches_key
-	:	{(validateIdentifierKey("matches"))}?=>  id=ID	->	VK_MATCHES[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.MATCHES))}?=>  id=ID	->	VK_MATCHES[$id]
 	;
 
 excludes_key
-	:	{(validateIdentifierKey("excludes"))}?=>  id=ID	->	VK_EXCLUDES[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.EXCLUDES))}?=>  id=ID	->	VK_EXCLUDES[$id]
 	;
 
 soundslike_key
-	:	{(validateIdentifierKey("soundslike"))}?=>  id=ID	->	VK_SOUNDSLIKE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.SOUNDSLIKE))}?=>  id=ID	->	VK_SOUNDSLIKE[$id]
 	;
 
 memberof_key
-	:	{(validateIdentifierKey("memberof"))}?=>  id=ID	->	VK_MEMBEROF[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.MEMBEROF))}?=>  id=ID	->	VK_MEMBEROF[$id]
 	;
 
 not_key
-	:	{(validateIdentifierKey("not"))}?=>  id=ID	->	VK_NOT[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.NOT))}?=>  id=ID	->	VK_NOT[$id]
 	;
 
 in_key
-	:	{(validateIdentifierKey("in"))}?=>  id=ID	->	VK_IN[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.IN))}?=>  id=ID	->	VK_IN[$id]
 	;
 
 or_key
-	:	{(validateIdentifierKey("or"))}?=>  id=ID	->	VK_OR[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.OR))}?=>  id=ID	->	VK_OR[$id]
 	;
 
 and_key
-	:	{(validateIdentifierKey("and"))}?=>  id=ID	->	VK_AND[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.AND))}?=>  id=ID	->	VK_AND[$id]
 	;
 
 exists_key
-	:	{(validateIdentifierKey("exists"))}?=>  id=ID	->	VK_EXISTS[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.EXISTS))}?=>  id=ID	->	VK_EXISTS[$id]
 	;
 
 forall_key
-	:	{(validateIdentifierKey("forall"))}?=>  id=ID	->	VK_FORALL[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.FORALL))}?=>  id=ID	->	VK_FORALL[$id]
 	;
 
 from_key
-	:	{(validateIdentifierKey("from"))}?=>  id=ID	->	VK_FROM[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.FROM))}?=>  id=ID	->	VK_FROM[$id]
 	;
 
 entry_point_key
 @init{
 	String text = "";
-}	:	{(validateIdentifierKey("entry") && validateLT(2, "-") && validateLT(3, "point"))}?=>  ID MISC ID {text = $text;}
+}	:	{(validateIdentifierKey(DroolsSoftKeywords.ENTRY) && validateLT(2, "-") && validateLT(3, DroolsSoftKeywords.POINT))}?=>  ID MISC ID {text = $text;}
 	->	VK_ENTRY_POINT[$start, text]
 	;
 
 accumulate_key
-	:	{(validateIdentifierKey("accumulate"))}?=>  id=ID	->	VK_ACCUMULATE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.ACCUMULATE))}?=>  id=ID	->	VK_ACCUMULATE[$id]
 	;
 
 init_key
-	:	{(validateIdentifierKey("init"))}?=>  id=ID	->	VK_INIT[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.INIT))}?=>  id=ID	->	VK_INIT[$id]
 	;
 
 action_key
-	:	{(validateIdentifierKey("action"))}?=>  id=ID	->	VK_ACTION[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.ACTION))}?=>  id=ID	->	VK_ACTION[$id]
 	;
 
 reverse_key
-	:	{(validateIdentifierKey("reverse"))}?=>  id=ID	->	VK_REVERSE[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.REVERSE))}?=>  id=ID	->	VK_REVERSE[$id]
 	;
 
 result_key
-	:	{(validateIdentifierKey("result"))}?=>  id=ID	->	VK_RESULT[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.RESULT))}?=>  id=ID	->	VK_RESULT[$id]
 	;
 
 collect_key
-	:	{(validateIdentifierKey("collect"))}?=>  id=ID	->	VK_COLLECT[$id]
+	:	{(validateIdentifierKey(DroolsSoftKeywords.COLLECT))}?=>  id=ID	->	VK_COLLECT[$id]
 	;
 
 WS      :       (	' '




More information about the jboss-svn-commits mailing list