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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 11 12:58:30 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-04-11 12:58:30 -0400 (Wed, 11 Apr 2007)
New Revision: 10893

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LockOnActive.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes.drl
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes_alt.drl
Log:
JBRULES-788 lock-on-activate rule attribute
-includes core changes, grammar changes, ide changes, with full unit/integration testing.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2007-04-11 16:58:30 UTC (rev 10893)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-03-29 08:21:35
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-04-11 16:59:52
 
 	package org.drools.lang;
 
@@ -10,121 +10,90 @@
 import java.util.Map;
 import java.util.HashMap;
 public class DRLLexer extends Lexer {
-    public static final int EXISTS=47;
-    public static final int AUTO_FOCUS=22;
-    public static final int END=9;
-    public static final int HexDigit=55;
-    public static final int FORALL=50;
-    public static final int TEMPLATE=10;
-    public static final int T70=70;
-    public static final int MISC=61;
-    public static final int FLOAT=39;
-    public static final int T74=74;
-    public static final int QUERY=8;
-    public static final int THEN=51;
-    public static final int RULE=11;
-    public static final int INIT=28;
-    public static final int IMPORT=5;
-    public static final int OR=33;
+    public static final int T75=75;
     public static final int PACKAGE=4;
-    public static final int DATE_EFFECTIVE=14;
-    public static final int T64=64;
-    public static final int AND=45;
     public static final int FUNCTION=6;
-    public static final int GLOBAL=7;
-    public static final int EscapeSequence=54;
-    public static final int INT=20;
-    public static final int DATE_EXPIRES=16;
-    public static final int LEFT_SQUARE=43;
-    public static final int CONTAINS=36;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=58;
+    public static final int ACCUMULATE=28;
+    public static final int T76=76;
+    public static final int RIGHT_SQUARE=45;
+    public static final int T73=73;
+    public static final int T74=74;
+    public static final int ACTIVATION_GROUP=23;
     public static final int T77=77;
+    public static final int RIGHT_CURLY=43;
     public static final int ATTRIBUTES=13;
-    public static final int RESULT=30;
-    public static final int LEFT_CURLY=41;
-    public static final int T69=69;
-    public static final int FROM=46;
-    public static final int ID=32;
-    public static final int T62=62;
-    public static final int ACTIVATION_GROUP=23;
-    public static final int LEFT_PAREN=34;
-    public static final int RIGHT_CURLY=42;
-    public static final int BOOL=18;
-    public static final int EXCLUDES=38;
-    public static final int T73=73;
-    public static final int T68=68;
-    public static final int WHEN=12;
-    public static final int RULEFLOW_GROUP=24;
-    public static final int WS=53;
-    public static final int STRING=15;
-    public static final int T66=66;
-    public static final int ACTION=29;
+    public static final int T78=78;
+    public static final int CONTAINS=37;
+    public static final int NO_LOOP=21;
+    public static final int LOCK_ON_ACTIVE=27;
+    public static final int AGENDA_GROUP=25;
+    public static final int FLOAT=40;
+    public static final int NOT=49;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=59;
+    public static final int ID=33;
+    public static final int AND=46;
+    public static final int EOF=-1;
+    public static final int HexDigit=56;
+    public static final int DATE_EFFECTIVE=14;
+    public static final int T72=72;
+    public static final int ACTION=30;
     public static final int T71=71;
+    public static final int T70=70;
     public static final int T63=63;
-    public static final int T72=72;
+    public static final int T64=64;
+    public static final int RIGHT_PAREN=36;
     public static final int T65=65;
-    public static final int COLLECT=31;
-    public static final int T76=76;
-    public static final int ACCUMULATE=27;
-    public static final int NO_LOOP=21;
-    public static final int UnicodeEscape=56;
-    public static final int T75=75;
-    public static final int DURATION=26;
-    public static final int EVAL=49;
-    public static final int MATCHES=37;
-    public static final int EOF=-1;
+    public static final int IMPORT=5;
+    public static final int T66=66;
+    public static final int EOL=53;
     public static final int T67=67;
-    public static final int NULL=40;
-    public static final int AGENDA_GROUP=25;
-    public static final int EOL=52;
-    public static final int Tokens=78;
+    public static final int THEN=52;
+    public static final int T68=68;
+    public static final int T69=69;
+    public static final int MATCHES=38;
+    public static final int ENABLED=17;
+    public static final int EXISTS=48;
+    public static final int RULE=11;
+    public static final int EXCLUDES=39;
+    public static final int AUTO_FOCUS=22;
+    public static final int NULL=41;
+    public static final int BOOL=18;
+    public static final int FORALL=51;
     public static final int SALIENCE=19;
-    public static final int OctalEscape=57;
-    public static final int MULTI_LINE_COMMENT=60;
-    public static final int RIGHT_PAREN=35;
-    public static final int NOT=48;
-    public static final int ENABLED=17;
-    public static final int RIGHT_SQUARE=44;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=59;
+    public static final int RULEFLOW_GROUP=24;
+    public static final int RESULT=31;
+    public static final int INT=20;
+    public static final int Tokens=79;
+    public static final int MULTI_LINE_COMMENT=61;
+    public static final int DURATION=26;
+    public static final int WS=54;
+    public static final int TEMPLATE=10;
+    public static final int EVAL=50;
+    public static final int WHEN=12;
+    public static final int UnicodeEscape=57;
+    public static final int LEFT_CURLY=42;
+    public static final int OR=34;
+    public static final int LEFT_PAREN=35;
+    public static final int QUERY=8;
+    public static final int GLOBAL=7;
+    public static final int END=9;
+    public static final int FROM=47;
+    public static final int MISC=62;
+    public static final int COLLECT=32;
+    public static final int INIT=29;
+    public static final int LEFT_SQUARE=44;
+    public static final int EscapeSequence=55;
+    public static final int OctalEscape=58;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=60;
+    public static final int STRING=15;
+    public static final int DATE_EXPIRES=16;
     public DRLLexer() {;} 
     public DRLLexer(CharStream input) {
         super(input);
-        ruleMemo = new HashMap[76+1];
+        ruleMemo = new HashMap[77+1];
      }
-    public String getGrammarFileName() { return "D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g"; }
+    public String getGrammarFileName() { return "C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g"; }
 
-    // $ANTLR start T62
-    public void mT62() throws RecognitionException {
-        try {
-            ruleNestingLevel++;
-            int _type = T62;
-            int _start = getCharIndex();
-            int _line = getLine();
-            int _charPosition = getCharPositionInLine();
-            int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:6:7: ( ';' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:6:7: ';'
-            {
-            match(';'); if (failed) return ;
-
-            }
-
-
-            if ( backtracking==0 ) {
-
-                      if ( token==null && ruleNestingLevel==1 ) {
-                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
-                      }
-
-                      
-            }
-        }
-        finally {
-            ruleNestingLevel--;
-        }
-    }
-    // $ANTLR end T62
-
     // $ANTLR start T63
     public void mT63() throws RecognitionException {
         try {
@@ -134,10 +103,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:7:7: ( '.' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:7:7: '.'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:6:7: ( ';' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:6:7: ';'
             {
-            match('.'); if (failed) return ;
+            match(';'); if (failed) return ;
 
             }
 
@@ -166,12 +135,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:8:7: ( '.*' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:8:7: '.*'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:7:7: ( '.' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:7:7: '.'
             {
-            match(".*"); if (failed) return ;
+            match('.'); if (failed) return ;
 
-
             }
 
 
@@ -199,11 +167,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:9:7: ( ',' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:9:7: ','
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:8:7: ( '.*' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:8:7: '.*'
             {
-            match(','); if (failed) return ;
+            match(".*"); if (failed) return ;
 
+
             }
 
 
@@ -231,10 +200,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:10:7: ( ':' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:10:7: ':'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:9:7: ( ',' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:9:7: ','
             {
-            match(':'); if (failed) return ;
+            match(','); if (failed) return ;
 
             }
 
@@ -263,12 +232,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:11:7: ( '||' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:11:7: '||'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:10:7: ( ':' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:10:7: ':'
             {
-            match("||"); if (failed) return ;
+            match(':'); if (failed) return ;
 
-
             }
 
 
@@ -296,11 +264,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:12:7: ( '&' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:12:7: '&'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:11:7: ( '||' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:11:7: '||'
             {
-            match('&'); if (failed) return ;
+            match("||"); if (failed) return ;
 
+
             }
 
 
@@ -328,10 +297,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:13:7: ( '|' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:13:7: '|'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:12:7: ( '&' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:12:7: '&'
             {
-            match('|'); if (failed) return ;
+            match('&'); if (failed) return ;
 
             }
 
@@ -360,12 +329,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:14:7: ( '->' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:14:7: '->'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:13:7: ( '|' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:13:7: '|'
             {
-            match("->"); if (failed) return ;
+            match('|'); if (failed) return ;
 
-
             }
 
 
@@ -393,10 +361,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:15:7: ( '==' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:15:7: '=='
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:14:7: ( '->' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:14:7: '->'
             {
-            match("=="); if (failed) return ;
+            match("->"); if (failed) return ;
 
 
             }
@@ -426,11 +394,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:16:7: ( '>' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:16:7: '>'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:15:7: ( '==' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:15:7: '=='
             {
-            match('>'); if (failed) return ;
+            match("=="); if (failed) return ;
 
+
             }
 
 
@@ -458,12 +427,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:17:7: ( '>=' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:17:7: '>='
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:16:7: ( '>' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:16:7: '>'
             {
-            match(">="); if (failed) return ;
+            match('>'); if (failed) return ;
 
-
             }
 
 
@@ -491,11 +459,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:18:7: ( '<' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:18:7: '<'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:17:7: ( '>=' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:17:7: '>='
             {
-            match('<'); if (failed) return ;
+            match(">="); if (failed) return ;
 
+
             }
 
 
@@ -523,12 +492,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:19:7: ( '<=' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:19:7: '<='
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:18:7: ( '<' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:18:7: '<'
             {
-            match("<="); if (failed) return ;
+            match('<'); if (failed) return ;
 
-
             }
 
 
@@ -556,10 +524,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:20:7: ( '!=' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:20:7: '!='
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:19:7: ( '<=' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:19:7: '<='
             {
-            match("!="); if (failed) return ;
+            match("<="); if (failed) return ;
 
 
             }
@@ -589,10 +557,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:21:7: ( '&&' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:21:7: '&&'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:20:7: ( '!=' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:20:7: '!='
             {
-            match("&&"); if (failed) return ;
+            match("!="); if (failed) return ;
 
 
             }
@@ -613,6 +581,39 @@
     }
     // $ANTLR end T77
 
+    // $ANTLR start T78
+    public void mT78() throws RecognitionException {
+        try {
+            ruleNestingLevel++;
+            int _type = T78;
+            int _start = getCharIndex();
+            int _line = getLine();
+            int _charPosition = getCharPositionInLine();
+            int _channel = Token.DEFAULT_CHANNEL;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:21:7: ( '&&' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:21:7: '&&'
+            {
+            match("&&"); if (failed) return ;
+
+
+            }
+
+
+            if ( backtracking==0 ) {
+
+                      if ( token==null && ruleNestingLevel==1 ) {
+                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
+                      }
+
+                      
+            }
+        }
+        finally {
+            ruleNestingLevel--;
+        }
+    }
+    // $ANTLR end T78
+
     // $ANTLR start WS
     public void mWS() throws RecognitionException {
         try {
@@ -622,10 +623,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1435:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1435:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:17: ( ' ' | '\\t' | '\\f' | EOL )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1435:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:17: ( ' ' | '\\t' | '\\f' | EOL )
             int alt1=4;
             switch ( input.LA(1) ) {
             case ' ':
@@ -644,35 +645,35 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1435:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
+                    new NoViableAltException("1465:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
 
                 throw nvae;
             }
 
             switch (alt1) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1435:19: ' '
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:19: ' '
                     {
                     match(' '); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1436:19: '\\t'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1466:19: '\\t'
                     {
                     match('\t'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:19: '\\f'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1467:19: '\\f'
                     {
                     match('\f'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:19: EOL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1468:19: EOL
                     {
                     mEOL(); if (failed) return ;
 
@@ -707,10 +708,10 @@
     public void mEOL() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1445:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1445:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1475:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1475:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1445:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1475:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
             if ( (LA2_0=='\r') ) {
@@ -727,13 +728,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1445:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+                    new NoViableAltException("1475:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
 
                 throw nvae;
             }
             switch (alt2) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1445:14: ( '\\r\\n' )=> '\\r\\n'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1475:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (failed) return ;
 
@@ -741,14 +742,14 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1446:25: '\\r'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:25: '\\r'
                     {
                     match('\r'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1447:25: '\\n'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1477:25: '\\n'
                     {
                     match('\n'); if (failed) return ;
 
@@ -776,10 +777,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1452:4: ( ( '-' )? ( '0' .. '9' )+ )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1452:4: ( '-' )? ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1482:4: ( ( '-' )? ( '0' .. '9' )+ )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1482:4: ( '-' )? ( '0' .. '9' )+
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1452:4: ( '-' )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1482:4: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
             if ( (LA3_0=='-') ) {
@@ -787,7 +788,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1452:5: '-'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1482:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -796,7 +797,7 @@
 
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1452:10: ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1482:10: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -809,7 +810,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1452:11: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1482:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -854,10 +855,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:4: ( '-' )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:4: ( '-' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
             if ( (LA5_0=='-') ) {
@@ -865,7 +866,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:5: '-'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -874,7 +875,7 @@
 
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:10: ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:10: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -887,7 +888,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:11: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -905,7 +906,7 @@
             } while (true);
 
             match('.'); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:26: ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:26: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -918,7 +919,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:27: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1486:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -963,7 +964,7 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1460:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
             if ( (LA10_0=='\"') ) {
@@ -975,19 +976,19 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1459:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 10, 0, input);
+                    new NoViableAltException("1489:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 10, 0, input);
 
                 throw nvae;
             }
             switch (alt10) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1460:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1460:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1460:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
                     {
                     match('\"'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1460:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
                     loop8:
                     do {
                         int alt8=3;
@@ -1002,14 +1003,14 @@
 
                         switch (alt8) {
                     	case 1 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1460:15: EscapeSequence
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1460:32: ~ ('\\\\'|'\"')
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:32: ~ ('\\\\'|'\"')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -1039,13 +1040,13 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1491:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1491:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1491:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
                     {
                     match('\''); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1491:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
                     loop9:
                     do {
                         int alt9=3;
@@ -1060,14 +1061,14 @@
 
                         switch (alt9) {
                     	case 1 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:16: EscapeSequence
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1491:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:33: ~ ('\\\\'|'\\'')
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1491:33: ~ ('\\\\'|'\\'')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -1118,8 +1119,8 @@
     public void mHexDigit() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:12: ('0'..'9'|'a'..'f'|'A'..'F')
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1495:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1495:12: ('0'..'9'|'a'..'f'|'A'..'F')
             {
             if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
                 input.consume();
@@ -1146,14 +1147,11 @@
     public void mEscapeSequence() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1469:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.') | UnicodeEscape | OctalEscape )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1499:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.') | UnicodeEscape | OctalEscape )
             int alt11=3;
             int LA11_0 = input.LA(1);
             if ( (LA11_0=='\\') ) {
                 switch ( input.LA(2) ) {
-                case 'u':
-                    alt11=2;
-                    break;
                 case '\"':
                 case '\'':
                 case '.':
@@ -1165,6 +1163,9 @@
                 case 't':
                     alt11=1;
                     break;
+                case 'u':
+                    alt11=2;
+                    break;
                 case '0':
                 case '1':
                 case '2':
@@ -1178,7 +1179,7 @@
                 default:
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1467:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.') | UnicodeEscape | OctalEscape );", 11, 1, input);
+                        new NoViableAltException("1497:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.') | UnicodeEscape | OctalEscape );", 11, 1, input);
 
                     throw nvae;
                 }
@@ -1187,13 +1188,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1467:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.') | UnicodeEscape | OctalEscape );", 11, 0, input);
+                    new NoViableAltException("1497:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.') | UnicodeEscape | OctalEscape );", 11, 0, input);
 
                 throw nvae;
             }
             switch (alt11) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1469:9: '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.')
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1499:9: '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\'|'.')
                     {
                     match('\\'); if (failed) return ;
                     if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='.'||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
@@ -1211,14 +1212,14 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1470:9: UnicodeEscape
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1500:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1471:9: OctalEscape
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1501:9: OctalEscape
                     {
                     mOctalEscape(); if (failed) return ;
 
@@ -1237,7 +1238,7 @@
     public void mOctalEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
             int alt12=3;
             int LA12_0 = input.LA(1);
             if ( (LA12_0=='\\') ) {
@@ -1266,7 +1267,7 @@
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1474:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+                        new NoViableAltException("1504:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
 
                     throw nvae;
                 }
@@ -1274,31 +1275,31 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1474:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
+                    new NoViableAltException("1504:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
 
                 throw nvae;
             }
             switch (alt12) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:14: ( '0' .. '3' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:15: '0' .. '3'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:14: ( '0' .. '3' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (failed) return ;
 
                     }
 
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:25: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:26: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:25: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:36: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:37: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:36: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1308,18 +1309,18 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1477:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1477:14: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1477:15: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:14: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1477:25: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1477:26: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:25: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1329,11 +1330,11 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:9: '\\\\' ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1508:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:14: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:15: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1508:14: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1508:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1355,8 +1356,8 @@
     public void mUnicodeEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1483:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1483:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1513:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1513:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (failed) return ;
             match('u'); if (failed) return ;
@@ -1383,10 +1384,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1487:4: ( ( 'true' | 'false' ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1487:4: ( 'true' | 'false' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:4: ( ( 'true' | 'false' ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:4: ( 'true' | 'false' )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1487:4: ( 'true' | 'false' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:4: ( 'true' | 'false' )
             int alt13=2;
             int LA13_0 = input.LA(1);
             if ( (LA13_0=='t') ) {
@@ -1398,13 +1399,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1487:4: ( 'true' | 'false' )", 13, 0, input);
+                    new NoViableAltException("1517:4: ( 'true' | 'false' )", 13, 0, input);
 
                 throw nvae;
             }
             switch (alt13) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1487:5: 'true'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:5: 'true'
                     {
                     match("true"); if (failed) return ;
 
@@ -1412,7 +1413,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1487:12: 'false'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:12: 'false'
                     {
                     match("false"); if (failed) return ;
 
@@ -1450,8 +1451,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:11: ( 'package' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:11: 'package'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1520:11: ( 'package' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1520:11: 'package'
             {
             match("package"); if (failed) return ;
 
@@ -1483,8 +1484,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1492:10: ( 'import' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1492:10: 'import'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1522:10: ( 'import' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1522:10: 'import'
             {
             match("import"); if (failed) return ;
 
@@ -1516,8 +1517,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1494:12: ( 'function' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1494:12: 'function'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1524:12: ( 'function' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1524:12: 'function'
             {
             match("function"); if (failed) return ;
 
@@ -1549,8 +1550,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1496:10: ( 'global' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1496:10: 'global'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1526:10: ( 'global' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1526:10: 'global'
             {
             match("global"); if (failed) return ;
 
@@ -1582,8 +1583,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1498:11: ( 'rule' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1498:11: 'rule'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1528:11: ( 'rule' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1528:11: 'rule'
             {
             match("rule"); if (failed) return ;
 
@@ -1615,8 +1616,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1500:9: ( 'query' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1500:9: 'query'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1530:9: ( 'query' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1530:9: 'query'
             {
             match("query"); if (failed) return ;
 
@@ -1648,8 +1649,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1502:12: ( 'template' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1502:12: 'template'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1532:12: ( 'template' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1532:12: 'template'
             {
             match("template"); if (failed) return ;
 
@@ -1681,8 +1682,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1504:14: ( 'attributes' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1504:14: 'attributes'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:14: ( 'attributes' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:14: 'attributes'
             {
             match("attributes"); if (failed) return ;
 
@@ -1714,8 +1715,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:4: ( 'date-effective' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:4: 'date-effective'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1537:4: ( 'date-effective' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1537:4: 'date-effective'
             {
             match("date-effective"); if (failed) return ;
 
@@ -1747,8 +1748,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1510:4: ( 'date-expires' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1510:4: 'date-expires'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1540:4: ( 'date-expires' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1540:4: 'date-expires'
             {
             match("date-expires"); if (failed) return ;
 
@@ -1780,8 +1781,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1512:11: ( 'enabled' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1512:11: 'enabled'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1542:11: ( 'enabled' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1542:11: 'enabled'
             {
             match("enabled"); if (failed) return ;
 
@@ -1813,8 +1814,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1515:4: ( 'salience' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1515:4: 'salience'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:4: ( 'salience' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:4: 'salience'
             {
             match("salience"); if (failed) return ;
 
@@ -1846,8 +1847,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:11: ( 'no-loop' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:11: 'no-loop'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1547:11: ( 'no-loop' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1547:11: 'no-loop'
             {
             match("no-loop"); if (failed) return ;
 
@@ -1879,8 +1880,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1520:4: ( 'auto-focus' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1520:4: 'auto-focus'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1550:4: ( 'auto-focus' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1550:4: 'auto-focus'
             {
             match("auto-focus"); if (failed) return ;
 
@@ -1912,8 +1913,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1523:4: ( 'activation-group' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1523:4: 'activation-group'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1553:4: ( 'activation-group' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1553:4: 'activation-group'
             {
             match("activation-group"); if (failed) return ;
 
@@ -1945,8 +1946,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1526:4: ( 'agenda-group' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1526:4: 'agenda-group'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1556:4: ( 'agenda-group' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1556:4: 'agenda-group'
             {
             match("agenda-group"); if (failed) return ;
 
@@ -1978,8 +1979,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1529:4: ( 'ruleflow-group' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1529:4: 'ruleflow-group'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1559:4: ( 'ruleflow-group' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1559:4: 'ruleflow-group'
             {
             match("ruleflow-group"); if (failed) return ;
 
@@ -2011,8 +2012,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1532:4: ( 'duration' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1532:4: 'duration'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1562:4: ( 'duration' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1562:4: 'duration'
             {
             match("duration"); if (failed) return ;
 
@@ -2035,6 +2036,39 @@
     }
     // $ANTLR end DURATION
 
+    // $ANTLR start LOCK_ON_ACTIVE
+    public void mLOCK_ON_ACTIVE() throws RecognitionException {
+        try {
+            ruleNestingLevel++;
+            int _type = LOCK_ON_ACTIVE;
+            int _start = getCharIndex();
+            int _line = getLine();
+            int _charPosition = getCharPositionInLine();
+            int _channel = Token.DEFAULT_CHANNEL;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1565:4: ( 'lock-on-active' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1565:4: 'lock-on-active'
+            {
+            match("lock-on-active"); if (failed) return ;
+
+
+            }
+
+
+            if ( backtracking==0 ) {
+
+                      if ( token==null && ruleNestingLevel==1 ) {
+                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
+                      }
+
+                      
+            }
+        }
+        finally {
+            ruleNestingLevel--;
+        }
+    }
+    // $ANTLR end LOCK_ON_ACTIVE
+
     // $ANTLR start FROM
     public void mFROM() throws RecognitionException {
         try {
@@ -2044,8 +2078,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:8: ( 'from' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:8: 'from'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1567:8: ( 'from' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1567:8: 'from'
             {
             match("from"); if (failed) return ;
 
@@ -2077,8 +2111,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1537:4: ( 'accumulate' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1537:4: 'accumulate'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1570:4: ( 'accumulate' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1570:4: 'accumulate'
             {
             match("accumulate"); if (failed) return ;
 
@@ -2110,8 +2144,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1539:8: ( 'init' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1539:8: 'init'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1572:8: ( 'init' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1572:8: 'init'
             {
             match("init"); if (failed) return ;
 
@@ -2143,8 +2177,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1541:10: ( 'action' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1541:10: 'action'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1574:10: ( 'action' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1574:10: 'action'
             {
             match("action"); if (failed) return ;
 
@@ -2176,8 +2210,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1543:10: ( 'result' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1543:10: 'result'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1576:10: ( 'result' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1576:10: 'result'
             {
             match("result"); if (failed) return ;
 
@@ -2209,8 +2243,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:11: ( 'collect' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:11: 'collect'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1578:11: ( 'collect' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1578:11: 'collect'
             {
             match("collect"); if (failed) return ;
 
@@ -2242,8 +2276,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1547:6: ( 'or' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1547:6: 'or'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1580:6: ( 'or' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1580:6: 'or'
             {
             match("or"); if (failed) return ;
 
@@ -2275,8 +2309,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1549:7: ( 'and' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1549:7: 'and'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1582:7: ( 'and' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1582:7: 'and'
             {
             match("and"); if (failed) return ;
 
@@ -2308,8 +2342,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1552:4: ( 'contains' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1552:4: 'contains'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1585:4: ( 'contains' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1585:4: 'contains'
             {
             match("contains"); if (failed) return ;
 
@@ -2341,8 +2375,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1555:4: ( 'excludes' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1555:4: 'excludes'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1588:4: ( 'excludes' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1588:4: 'excludes'
             {
             match("excludes"); if (failed) return ;
 
@@ -2374,8 +2408,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1557:11: ( 'matches' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1557:11: 'matches'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1590:11: ( 'matches' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1590:11: 'matches'
             {
             match("matches"); if (failed) return ;
 
@@ -2407,8 +2441,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1559:8: ( 'null' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1559:8: 'null'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1592:8: ( 'null' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1592:8: 'null'
             {
             match("null"); if (failed) return ;
 
@@ -2440,8 +2474,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1561:10: ( 'exists' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1561:10: 'exists'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1594:10: ( 'exists' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1594:10: 'exists'
             {
             match("exists"); if (failed) return ;
 
@@ -2473,8 +2507,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1563:7: ( 'not' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1563:7: 'not'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1596:7: ( 'not' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1596:7: 'not'
             {
             match("not"); if (failed) return ;
 
@@ -2506,8 +2540,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1565:8: ( 'eval' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1565:8: 'eval'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1598:8: ( 'eval' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1598:8: 'eval'
             {
             match("eval"); if (failed) return ;
 
@@ -2539,8 +2573,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1567:10: ( 'forall' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1567:10: 'forall'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1600:10: ( 'forall' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1600:10: 'forall'
             {
             match("forall"); if (failed) return ;
 
@@ -2572,8 +2606,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1569:11: ( 'when' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1569:11: 'when'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1602:11: ( 'when' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1602:11: 'when'
             {
             match("when"); if (failed) return ;
 
@@ -2605,8 +2639,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1571:12: ( 'then' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1571:12: 'then'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1604:12: ( 'then' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1604:12: 'then'
             {
             match("then"); if (failed) return ;
 
@@ -2638,8 +2672,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1573:11: ( 'end' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1573:11: 'end'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1606:11: ( 'end' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1606:11: 'end'
             {
             match("end"); if (failed) return ;
 
@@ -2671,8 +2705,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1576:4: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1576:4: ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1609:4: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1609:4: ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
             {
             if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
                 input.consume();
@@ -2685,7 +2719,7 @@
                 recover(mse);    throw mse;
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1576:50: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1609:50: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
             loop14:
             do {
                 int alt14=2;
@@ -2697,7 +2731,7 @@
 
                 switch (alt14) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1576:51: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1609:51: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
             	    {
             	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
             	        input.consume();
@@ -2747,11 +2781,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1581:4: ( '#' ( options {greedy=false; } : . )* EOL )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1581:4: '#' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1614:4: ( '#' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1614:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1581:8: ( options {greedy=false; } : . )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1614:8: ( options {greedy=false; } : . )*
             loop15:
             do {
                 int alt15=2;
@@ -2769,7 +2803,7 @@
 
                 switch (alt15) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1581:35: .
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1614:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2813,12 +2847,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1587:4: ( '//' ( options {greedy=false; } : . )* EOL )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1587:4: '//' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1620:4: ( '//' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1620:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (failed) return ;
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1587:9: ( options {greedy=false; } : . )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1620:9: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -2836,7 +2870,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1587:36: .
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1620:36: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2880,8 +2914,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1593:11: ( '(' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1593:11: '('
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1626:11: ( '(' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1626:11: '('
             {
             match('('); if (failed) return ;
 
@@ -2912,8 +2946,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1597:11: ( ')' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1597:11: ')'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1630:11: ( ')' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1630:11: ')'
             {
             match(')'); if (failed) return ;
 
@@ -2944,8 +2978,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1601:11: ( '[' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1601:11: '['
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1634:11: ( '[' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1634:11: '['
             {
             match('['); if (failed) return ;
 
@@ -2976,8 +3010,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1605:11: ( ']' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1605:11: ']'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1638:11: ( ']' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1638:11: ']'
             {
             match(']'); if (failed) return ;
 
@@ -3008,8 +3042,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1609:11: ( '{' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1609:11: '{'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1642:11: ( '{' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1642:11: '{'
             {
             match('{'); if (failed) return ;
 
@@ -3040,8 +3074,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1613:11: ( '}' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1613:11: '}'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1646:11: ( '}' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1646:11: '}'
             {
             match('}'); if (failed) return ;
 
@@ -3072,12 +3106,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1617:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1617:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1650:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1650:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (failed) return ;
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1617:9: ( options {greedy=false; } : . )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1650:9: ( options {greedy=false; } : . )*
             loop17:
             do {
                 int alt17=2;
@@ -3100,7 +3134,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1617:35: .
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1650:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -3145,8 +3179,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1621:7: ( ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\'))
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1622:3: ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\')
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1654:7: ( ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\'))
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1655:3: ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\')
             {
             if ( input.LA(1)=='!'||(input.LA(1)>='$' && input.LA(1)<='\'')||(input.LA(1)>='*' && input.LA(1)<='-')||input.LA(1)=='/'||input.LA(1)=='='||(input.LA(1)>='?' && input.LA(1)<='@')||input.LA(1)=='\\'||(input.LA(1)>='^' && input.LA(1)<='_')||input.LA(1)=='|' ) {
                 input.consume();
@@ -3179,489 +3213,496 @@
     // $ANTLR end MISC
 
     public void mTokens() throws RecognitionException {
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:10: ( T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | RULEFLOW_GROUP | DURATION | FROM | ACCUMULATE | INIT | ACTION | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MATCHES | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | MULTI_LINE_COMMENT | MISC )
-        int alt18=69;
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:10: ( T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MATCHES | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | MULTI_LINE_COMMENT | MISC )
+        int alt18=70;
         alt18 = dfa18.predict(input);
         switch (alt18) {
             case 1 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:10: T62
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:10: T63
                 {
-                mT62(); if (failed) return ;
+                mT63(); if (failed) return ;
 
                 }
                 break;
             case 2 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:14: T63
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:14: T64
                 {
-                mT63(); if (failed) return ;
+                mT64(); if (failed) return ;
 
                 }
                 break;
             case 3 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:18: T64
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:18: T65
                 {
-                mT64(); if (failed) return ;
+                mT65(); if (failed) return ;
 
                 }
                 break;
             case 4 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:22: T65
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:22: T66
                 {
-                mT65(); if (failed) return ;
+                mT66(); if (failed) return ;
 
                 }
                 break;
             case 5 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:26: T66
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:26: T67
                 {
-                mT66(); if (failed) return ;
+                mT67(); if (failed) return ;
 
                 }
                 break;
             case 6 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:30: T67
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:30: T68
                 {
-                mT67(); if (failed) return ;
+                mT68(); if (failed) return ;
 
                 }
                 break;
             case 7 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:34: T68
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:34: T69
                 {
-                mT68(); if (failed) return ;
+                mT69(); if (failed) return ;
 
                 }
                 break;
             case 8 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:38: T69
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:38: T70
                 {
-                mT69(); if (failed) return ;
+                mT70(); if (failed) return ;
 
                 }
                 break;
             case 9 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:42: T70
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:42: T71
                 {
-                mT70(); if (failed) return ;
+                mT71(); if (failed) return ;
 
                 }
                 break;
             case 10 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:46: T71
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:46: T72
                 {
-                mT71(); if (failed) return ;
+                mT72(); if (failed) return ;
 
                 }
                 break;
             case 11 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:50: T72
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:50: T73
                 {
-                mT72(); if (failed) return ;
+                mT73(); if (failed) return ;
 
                 }
                 break;
             case 12 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:54: T73
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:54: T74
                 {
-                mT73(); if (failed) return ;
+                mT74(); if (failed) return ;
 
                 }
                 break;
             case 13 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:58: T74
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:58: T75
                 {
-                mT74(); if (failed) return ;
+                mT75(); if (failed) return ;
 
                 }
                 break;
             case 14 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:62: T75
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:62: T76
                 {
-                mT75(); if (failed) return ;
+                mT76(); if (failed) return ;
 
                 }
                 break;
             case 15 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:66: T76
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:66: T77
                 {
-                mT76(); if (failed) return ;
+                mT77(); if (failed) return ;
 
                 }
                 break;
             case 16 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:70: T77
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:70: T78
                 {
-                mT77(); if (failed) return ;
+                mT78(); if (failed) return ;
 
                 }
                 break;
             case 17 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:74: WS
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:74: WS
                 {
                 mWS(); if (failed) return ;
 
                 }
                 break;
             case 18 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:77: INT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:77: INT
                 {
                 mINT(); if (failed) return ;
 
                 }
                 break;
             case 19 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:81: FLOAT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:81: FLOAT
                 {
                 mFLOAT(); if (failed) return ;
 
                 }
                 break;
             case 20 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:87: STRING
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:87: STRING
                 {
                 mSTRING(); if (failed) return ;
 
                 }
                 break;
             case 21 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:94: BOOL
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:94: BOOL
                 {
                 mBOOL(); if (failed) return ;
 
                 }
                 break;
             case 22 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:99: PACKAGE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:99: PACKAGE
                 {
                 mPACKAGE(); if (failed) return ;
 
                 }
                 break;
             case 23 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:107: IMPORT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:107: IMPORT
                 {
                 mIMPORT(); if (failed) return ;
 
                 }
                 break;
             case 24 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:114: FUNCTION
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:114: FUNCTION
                 {
                 mFUNCTION(); if (failed) return ;
 
                 }
                 break;
             case 25 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:123: GLOBAL
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:123: GLOBAL
                 {
                 mGLOBAL(); if (failed) return ;
 
                 }
                 break;
             case 26 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:130: RULE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:130: RULE
                 {
                 mRULE(); if (failed) return ;
 
                 }
                 break;
             case 27 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:135: QUERY
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:135: QUERY
                 {
                 mQUERY(); if (failed) return ;
 
                 }
                 break;
             case 28 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:141: TEMPLATE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:141: TEMPLATE
                 {
                 mTEMPLATE(); if (failed) return ;
 
                 }
                 break;
             case 29 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:150: ATTRIBUTES
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:150: ATTRIBUTES
                 {
                 mATTRIBUTES(); if (failed) return ;
 
                 }
                 break;
             case 30 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:161: DATE_EFFECTIVE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:161: DATE_EFFECTIVE
                 {
                 mDATE_EFFECTIVE(); if (failed) return ;
 
                 }
                 break;
             case 31 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:176: DATE_EXPIRES
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:176: DATE_EXPIRES
                 {
                 mDATE_EXPIRES(); if (failed) return ;
 
                 }
                 break;
             case 32 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:189: ENABLED
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:189: ENABLED
                 {
                 mENABLED(); if (failed) return ;
 
                 }
                 break;
             case 33 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:197: SALIENCE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:197: SALIENCE
                 {
                 mSALIENCE(); if (failed) return ;
 
                 }
                 break;
             case 34 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:206: NO_LOOP
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:206: NO_LOOP
                 {
                 mNO_LOOP(); if (failed) return ;
 
                 }
                 break;
             case 35 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:214: AUTO_FOCUS
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:214: AUTO_FOCUS
                 {
                 mAUTO_FOCUS(); if (failed) return ;
 
                 }
                 break;
             case 36 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:225: ACTIVATION_GROUP
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:225: ACTIVATION_GROUP
                 {
                 mACTIVATION_GROUP(); if (failed) return ;
 
                 }
                 break;
             case 37 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:242: AGENDA_GROUP
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:242: AGENDA_GROUP
                 {
                 mAGENDA_GROUP(); if (failed) return ;
 
                 }
                 break;
             case 38 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:255: RULEFLOW_GROUP
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:255: RULEFLOW_GROUP
                 {
                 mRULEFLOW_GROUP(); if (failed) return ;
 
                 }
                 break;
             case 39 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:270: DURATION
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:270: DURATION
                 {
                 mDURATION(); if (failed) return ;
 
                 }
                 break;
             case 40 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:279: FROM
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:279: LOCK_ON_ACTIVE
                 {
-                mFROM(); if (failed) return ;
+                mLOCK_ON_ACTIVE(); if (failed) return ;
 
                 }
                 break;
             case 41 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:284: ACCUMULATE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:294: FROM
                 {
-                mACCUMULATE(); if (failed) return ;
+                mFROM(); if (failed) return ;
 
                 }
                 break;
             case 42 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:295: INIT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:299: ACCUMULATE
                 {
-                mINIT(); if (failed) return ;
+                mACCUMULATE(); if (failed) return ;
 
                 }
                 break;
             case 43 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:300: ACTION
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:310: INIT
                 {
-                mACTION(); if (failed) return ;
+                mINIT(); if (failed) return ;
 
                 }
                 break;
             case 44 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:307: RESULT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:315: ACTION
                 {
-                mRESULT(); if (failed) return ;
+                mACTION(); if (failed) return ;
 
                 }
                 break;
             case 45 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:314: COLLECT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:322: RESULT
                 {
-                mCOLLECT(); if (failed) return ;
+                mRESULT(); if (failed) return ;
 
                 }
                 break;
             case 46 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:322: OR
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:329: COLLECT
                 {
-                mOR(); if (failed) return ;
+                mCOLLECT(); if (failed) return ;
 
                 }
                 break;
             case 47 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:325: AND
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:337: OR
                 {
-                mAND(); if (failed) return ;
+                mOR(); if (failed) return ;
 
                 }
                 break;
             case 48 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:329: CONTAINS
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:340: AND
                 {
-                mCONTAINS(); if (failed) return ;
+                mAND(); if (failed) return ;
 
                 }
                 break;
             case 49 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:338: EXCLUDES
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:344: CONTAINS
                 {
-                mEXCLUDES(); if (failed) return ;
+                mCONTAINS(); if (failed) return ;
 
                 }
                 break;
             case 50 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:347: MATCHES
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:353: EXCLUDES
                 {
-                mMATCHES(); if (failed) return ;
+                mEXCLUDES(); if (failed) return ;
 
                 }
                 break;
             case 51 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:355: NULL
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:362: MATCHES
                 {
-                mNULL(); if (failed) return ;
+                mMATCHES(); if (failed) return ;
 
                 }
                 break;
             case 52 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:360: EXISTS
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:370: NULL
                 {
-                mEXISTS(); if (failed) return ;
+                mNULL(); if (failed) return ;
 
                 }
                 break;
             case 53 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:367: NOT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:375: EXISTS
                 {
-                mNOT(); if (failed) return ;
+                mEXISTS(); if (failed) return ;
 
                 }
                 break;
             case 54 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:371: EVAL
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:382: NOT
                 {
-                mEVAL(); if (failed) return ;
+                mNOT(); if (failed) return ;
 
                 }
                 break;
             case 55 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:376: FORALL
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:386: EVAL
                 {
-                mFORALL(); if (failed) return ;
+                mEVAL(); if (failed) return ;
 
                 }
                 break;
             case 56 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:383: WHEN
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:391: FORALL
                 {
-                mWHEN(); if (failed) return ;
+                mFORALL(); if (failed) return ;
 
                 }
                 break;
             case 57 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:388: THEN
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:398: WHEN
                 {
-                mTHEN(); if (failed) return ;
+                mWHEN(); if (failed) return ;
 
                 }
                 break;
             case 58 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:393: END
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:403: THEN
                 {
-                mEND(); if (failed) return ;
+                mTHEN(); if (failed) return ;
 
                 }
                 break;
             case 59 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:397: ID
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:408: END
                 {
-                mID(); if (failed) return ;
+                mEND(); if (failed) return ;
 
                 }
                 break;
             case 60 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:400: SH_STYLE_SINGLE_LINE_COMMENT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:412: ID
                 {
-                mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+                mID(); if (failed) return ;
 
                 }
                 break;
             case 61 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:429: C_STYLE_SINGLE_LINE_COMMENT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:415: SH_STYLE_SINGLE_LINE_COMMENT
                 {
-                mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+                mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 62 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:457: LEFT_PAREN
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:444: C_STYLE_SINGLE_LINE_COMMENT
                 {
-                mLEFT_PAREN(); if (failed) return ;
+                mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 63 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:468: RIGHT_PAREN
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:472: LEFT_PAREN
                 {
-                mRIGHT_PAREN(); if (failed) return ;
+                mLEFT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 64 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:480: LEFT_SQUARE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:483: RIGHT_PAREN
                 {
-                mLEFT_SQUARE(); if (failed) return ;
+                mRIGHT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 65 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:492: RIGHT_SQUARE
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:495: LEFT_SQUARE
                 {
-                mRIGHT_SQUARE(); if (failed) return ;
+                mLEFT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 66 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:505: LEFT_CURLY
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:507: RIGHT_SQUARE
                 {
-                mLEFT_CURLY(); if (failed) return ;
+                mRIGHT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 67 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:516: RIGHT_CURLY
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:520: LEFT_CURLY
                 {
-                mRIGHT_CURLY(); if (failed) return ;
+                mLEFT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 68 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:528: MULTI_LINE_COMMENT
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:531: RIGHT_CURLY
                 {
-                mMULTI_LINE_COMMENT(); if (failed) return ;
+                mRIGHT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 69 :
-                // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:547: MISC
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:543: MULTI_LINE_COMMENT
                 {
+                mMULTI_LINE_COMMENT(); if (failed) return ;
+
+                }
+                break;
+            case 70 :
+                // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1:562: MISC
+                {
                 mMISC(); if (failed) return ;
 
                 }
@@ -3674,118 +3715,120 @@
 
     protected DFA18 dfa18 = new DFA18(this);
     public static final String DFA18_eotS =
-        "\2\uffff\1\54\2\uffff\1\57\1\61\2\52\1\65\1\67\1\52\1\uffff\1\72"+
-        "\1\uffff\1\52\20\51\2\uffff\1\52\30\uffff\34\51\1\175\2\51\2\uffff"+
-        "\21\51\1\u0091\7\51\1\u0099\2\51\1\uffff\1\u009c\3\51\1\uffff\2"+
-        "\51\1\u00a2\1\51\1\u00a4\1\u00a5\5\51\1\u00ab\2\51\1\u00af\4\51"+
-        "\1\uffff\6\51\1\u00bb\1\uffff\2\51\1\uffff\1\u00be\3\51\1\u00c2"+
-        "\1\uffff\1\51\2\uffff\2\51\1\u00a4\2\51\1\uffff\3\51\1\uffff\1\u00cb"+
-        "\3\51\1\uffff\2\51\1\uffff\3\51\1\uffff\2\51\1\uffff\3\51\1\uffff"+
-        "\1\51\1\u00db\2\51\1\u00de\1\u00df\1\u00e0\1\51\1\uffff\1\51\1\u00e3"+
-        "\3\51\1\uffff\1\51\1\u00ea\7\51\1\uffff\1\51\1\u00f3\3\uffff\2\51"+
-        "\1\uffff\2\51\3\uffff\1\51\1\uffff\1\51\1\u00fa\2\51\1\u00fd\1\u00fe"+
-        "\1\u00ff\1\u0100\1\uffff\4\51\1\u0105\1\u0106\1\uffff\1\u0107\1"+
-        "\u0108\5\uffff\3\51\4\uffff\1\u010c\1\51\1\u010e\3\uffff";
+        "\2\uffff\1\55\2\uffff\1\60\1\62\2\53\1\66\1\70\1\53\1\uffff\1\73"+
+        "\1\uffff\1\53\21\52\2\uffff\1\53\30\uffff\35\52\1\u0080\2\52\2\uffff"+
+        "\16\52\1\u0091\13\52\1\u009d\1\52\1\u009f\1\uffff\4\52\1\uffff\2"+
+        "\52\1\u00a6\1\u00a7\4\52\1\u00ac\2\52\1\u00af\2\52\1\u00b3\1\52"+
+        "\1\uffff\7\52\1\u00bd\3\52\1\uffff\1\52\1\uffff\1\u00c2\4\52\1\u00c7"+
+        "\2\uffff\2\52\1\u00a7\1\52\1\uffff\2\52\1\uffff\3\52\1\uffff\1\u00d0"+
+        "\1\uffff\5\52\1\uffff\1\52\1\uffff\4\52\2\uffff\3\52\1\uffff\1\52"+
+        "\1\u00e0\2\52\1\u00e3\1\u00e4\1\u00e5\1\52\1\uffff\2\52\1\u00e9"+
+        "\2\52\1\uffff\1\52\1\u00ef\7\52\1\uffff\1\52\1\u00f8\3\uffff\3\52"+
+        "\1\uffff\1\52\3\uffff\1\52\1\uffff\1\52\1\u00ff\1\52\1\u0101\1\52"+
+        "\1\u0103\1\u0104\1\u0105\1\uffff\4\52\1\u010a\1\u010b\1\uffff\1"+
+        "\u010c\1\uffff\1\u010d\4\uffff\3\52\4\uffff\1\u0111\1\52\1\u0113"+
+        "\3\uffff";
     public static final String DFA18_eofS =
-        "\u010f\uffff";
+        "\u0114\uffff";
     public static final String DFA18_minS =
         "\1\11\1\uffff\1\52\2\uffff\1\174\1\46\1\60\4\75\1\uffff\1\56\1\uffff"+
         "\1\0\1\145\2\141\1\155\1\154\1\145\1\165\1\143\1\141\1\156\1\141"+
-        "\2\157\1\162\1\141\1\150\2\uffff\1\52\30\uffff\1\145\1\155\1\165"+
-        "\1\157\1\162\1\156\1\154\1\143\1\160\1\151\1\157\1\163\1\154\1\145"+
-        "\1\143\1\164\1\144\1\164\1\145\1\164\1\162\1\143\2\141\1\154\1\55"+
-        "\2\154\1\60\1\164\1\145\2\uffff\1\156\1\160\1\145\1\155\1\141\1"+
-        "\143\1\163\1\153\1\157\1\164\1\142\1\165\1\145\1\162\1\165\1\151"+
-        "\1\157\1\60\1\162\1\156\1\145\1\141\1\163\2\154\1\60\1\142\1\151"+
-        "\1\uffff\1\60\1\154\1\164\1\154\1\uffff\1\143\1\156\1\60\1\154\2"+
-        "\60\1\154\1\164\1\145\1\141\1\162\1\60\1\141\1\154\1\60\1\171\1"+
-        "\155\1\157\1\55\1\uffff\1\151\1\144\1\55\2\164\1\165\1\60\1\uffff"+
-        "\1\154\1\145\1\uffff\1\60\1\141\1\145\1\150\1\60\1\uffff\1\141\2"+
-        "\uffff\1\154\1\151\1\60\1\147\1\164\1\uffff\1\154\1\164\1\154\1"+
-        "\uffff\1\60\1\165\1\156\1\141\1\uffff\1\142\1\141\1\145\1\151\1"+
-        "\163\1\144\1\uffff\1\145\1\156\1\uffff\1\151\1\143\1\145\1\uffff"+
-        "\1\164\1\60\1\157\1\145\3\60\1\157\1\uffff\1\154\1\60\1\164\1\165"+
-        "\1\55\1\146\1\157\1\60\1\145\1\144\1\143\1\156\1\164\1\163\1\145"+
-        "\1\uffff\1\156\1\60\3\uffff\1\167\1\141\1\uffff\1\151\1\164\3\uffff"+
-        "\1\156\1\uffff\1\163\1\60\1\145\1\163\4\60\1\uffff\1\55\1\164\1"+
-        "\157\1\145\2\60\1\uffff\2\60\5\uffff\1\145\1\156\1\163\4\uffff\1"+
-        "\60\1\55\1\60\3\uffff";
+        "\3\157\1\162\1\141\1\150\2\uffff\1\52\30\uffff\1\145\1\165\1\155"+
+        "\1\162\1\154\1\156\1\157\1\143\1\160\1\151\1\157\1\163\1\154\1\145"+
+        "\1\144\2\164\1\143\1\145\1\164\1\162\1\141\1\143\1\141\1\154\1\55"+
+        "\1\154\1\143\1\154\1\60\1\164\1\145\2\uffff\1\156\1\145\1\160\1"+
+        "\141\1\163\1\143\1\155\1\153\1\157\1\164\1\142\1\165\1\145\1\162"+
+        "\1\60\1\157\1\162\1\151\1\165\1\156\1\145\1\141\1\154\1\163\1\154"+
+        "\1\142\1\60\1\151\1\60\1\uffff\1\154\1\153\1\154\1\164\1\uffff\1"+
+        "\143\1\156\2\60\2\154\1\145\1\164\1\60\1\141\1\162\1\60\1\141\1"+
+        "\154\1\60\1\171\1\uffff\1\55\1\151\1\157\1\155\1\144\1\55\1\164"+
+        "\1\60\1\164\1\165\1\154\1\uffff\1\145\1\uffff\1\60\1\55\1\145\1"+
+        "\141\1\150\1\60\2\uffff\1\141\1\154\1\60\1\151\1\uffff\1\147\1\164"+
+        "\1\uffff\1\154\1\164\1\154\1\uffff\1\60\1\uffff\1\142\1\141\1\156"+
+        "\1\165\1\141\1\145\1\151\1\uffff\1\163\1\144\1\145\1\156\2\uffff"+
+        "\1\143\1\151\1\145\1\uffff\1\164\1\60\1\157\1\145\3\60\1\157\1\uffff"+
+        "\1\165\1\164\1\60\1\154\1\55\1\146\1\157\1\60\1\145\1\144\1\143"+
+        "\1\164\1\156\1\163\1\145\1\uffff\1\156\1\60\3\uffff\1\167\1\164"+
+        "\1\151\1\uffff\1\141\3\uffff\1\156\1\uffff\1\163\1\60\1\145\1\60"+
+        "\1\163\3\60\1\uffff\1\55\1\145\1\157\1\164\2\60\1\uffff\1\60\1\uffff"+
+        "\1\60\4\uffff\1\163\1\156\1\145\4\uffff\1\60\1\55\1\60\3\uffff";
     public static final String DFA18_maxS =
         "\1\u00ff\1\uffff\1\52\2\uffff\1\174\1\46\1\76\4\75\1\uffff\1\71"+
         "\1\uffff\1\ufffe\1\162\1\165\1\141\1\156\1\154\4\165\1\170\1\141"+
-        "\1\165\1\157\1\162\1\141\1\150\2\uffff\1\57\30\uffff\1\145\1\155"+
-        "\1\165\1\157\1\162\1\156\1\154\1\143\1\160\1\151\1\157\1\163\1\154"+
-        "\1\145\2\164\1\144\1\164\1\145\1\164\1\162\1\151\1\141\1\144\1\154"+
-        "\1\164\1\154\1\156\1\u00ff\1\164\1\145\2\uffff\1\156\1\160\1\145"+
-        "\1\155\1\141\1\143\1\163\1\153\1\157\1\164\1\142\1\165\1\145\1\162"+
-        "\1\165\1\151\1\157\1\u00ff\1\162\1\156\1\145\1\141\1\163\2\154\1"+
-        "\u00ff\1\142\1\151\1\uffff\1\u00ff\1\154\1\164\1\154\1\uffff\1\143"+
-        "\1\156\1\u00ff\1\154\2\u00ff\1\154\1\164\1\145\1\141\1\162\1\u00ff"+
-        "\1\141\1\154\1\u00ff\1\171\1\155\1\166\1\55\1\uffff\1\151\1\144"+
-        "\1\55\2\164\1\165\1\u00ff\1\uffff\1\154\1\145\1\uffff\1\u00ff\1"+
-        "\141\1\145\1\150\1\u00ff\1\uffff\1\141\2\uffff\1\154\1\151\1\u00ff"+
-        "\1\147\1\164\1\uffff\1\154\1\164\1\154\1\uffff\1\u00ff\1\165\1\156"+
-        "\1\141\1\uffff\1\142\1\141\1\145\1\151\1\163\1\144\1\uffff\1\145"+
-        "\1\156\1\uffff\1\151\1\143\1\145\1\uffff\1\164\1\u00ff\1\157\1\145"+
-        "\3\u00ff\1\157\1\uffff\1\154\1\u00ff\1\164\1\165\1\55\1\170\1\157"+
-        "\1\u00ff\1\145\1\144\1\143\1\156\1\164\1\163\1\145\1\uffff\1\156"+
-        "\1\u00ff\3\uffff\1\167\1\141\1\uffff\1\151\1\164\3\uffff\1\156\1"+
-        "\uffff\1\163\1\u00ff\1\145\1\163\4\u00ff\1\uffff\1\55\1\164\1\157"+
-        "\1\145\2\u00ff\1\uffff\2\u00ff\5\uffff\1\145\1\156\1\163\4\uffff"+
-        "\1\u00ff\1\55\1\u00ff\3\uffff";
+        "\1\165\2\157\1\162\1\141\1\150\2\uffff\1\57\30\uffff\1\145\1\165"+
+        "\1\155\1\162\1\154\1\156\1\157\1\143\1\160\1\151\1\157\1\163\1\154"+
+        "\1\145\1\144\3\164\1\145\1\164\1\162\1\141\1\151\1\144\1\154\1\164"+
+        "\1\154\1\143\1\156\1\u00ff\1\164\1\145\2\uffff\1\156\1\145\1\160"+
+        "\1\141\1\163\1\143\1\155\1\153\1\157\1\164\1\142\1\165\1\145\1\162"+
+        "\1\u00ff\1\157\1\162\1\151\1\165\1\156\1\145\1\141\1\154\1\163\1"+
+        "\154\1\142\1\u00ff\1\151\1\u00ff\1\uffff\1\154\1\153\1\154\1\164"+
+        "\1\uffff\1\143\1\156\2\u00ff\2\154\1\145\1\164\1\u00ff\1\141\1\162"+
+        "\1\u00ff\1\141\1\154\1\u00ff\1\171\1\uffff\1\55\1\151\1\166\1\155"+
+        "\1\144\1\55\1\164\1\u00ff\1\164\1\165\1\154\1\uffff\1\145\1\uffff"+
+        "\1\u00ff\1\55\1\145\1\141\1\150\1\u00ff\2\uffff\1\141\1\154\1\u00ff"+
+        "\1\151\1\uffff\1\147\1\164\1\uffff\1\154\1\164\1\154\1\uffff\1\u00ff"+
+        "\1\uffff\1\142\1\141\1\156\1\165\1\141\1\145\1\151\1\uffff\1\163"+
+        "\1\144\1\145\1\156\2\uffff\1\143\1\151\1\145\1\uffff\1\164\1\u00ff"+
+        "\1\157\1\145\3\u00ff\1\157\1\uffff\1\165\1\164\1\u00ff\1\154\1\55"+
+        "\1\170\1\157\1\u00ff\1\145\1\144\1\143\1\164\1\156\1\163\1\145\1"+
+        "\uffff\1\156\1\u00ff\3\uffff\1\167\1\164\1\151\1\uffff\1\141\3\uffff"+
+        "\1\156\1\uffff\1\163\1\u00ff\1\145\1\u00ff\1\163\3\u00ff\1\uffff"+
+        "\1\55\1\145\1\157\1\164\2\u00ff\1\uffff\1\u00ff\1\uffff\1\u00ff"+
+        "\4\uffff\1\163\1\156\1\145\4\uffff\1\u00ff\1\55\1\u00ff\3\uffff";
     public static final String DFA18_acceptS =
-        "\1\uffff\1\1\1\uffff\1\4\1\5\7\uffff\1\21\1\uffff\1\24\21\uffff"+
-        "\1\73\1\74\1\uffff\1\76\1\77\1\100\1\101\1\102\1\103\1\73\1\105"+
+        "\1\uffff\1\1\1\uffff\1\4\1\5\7\uffff\1\21\1\uffff\1\24\22\uffff"+
+        "\1\74\1\75\1\uffff\1\77\1\100\1\101\1\102\1\103\1\104\1\74\1\106"+
         "\1\3\1\2\1\4\1\6\1\10\1\20\1\7\1\11\1\12\1\14\1\13\1\16\1\15\1\17"+
-        "\1\23\1\22\37\uffff\1\104\1\75\34\uffff\1\42\4\uffff\1\56\23\uffff"+
-        "\1\57\7\uffff\1\72\2\uffff\1\65\5\uffff\1\71\1\uffff\1\25\1\50\5"+
-        "\uffff\1\52\3\uffff\1\32\4\uffff\1\43\6\uffff\1\66\2\uffff\1\63"+
-        "\3\uffff\1\70\10\uffff\1\33\17\uffff\1\67\2\uffff\1\27\1\31\1\54"+
-        "\2\uffff\1\53\2\uffff\1\45\1\37\1\36\1\uffff\1\64\10\uffff\1\26"+
-        "\6\uffff\1\40\2\uffff\1\55\1\62\1\34\1\30\1\46\3\uffff\1\47\1\61"+
-        "\1\41\1\60\3\uffff\1\51\1\44\1\35";
+        "\1\23\1\22\40\uffff\1\105\1\76\35\uffff\1\42\4\uffff\1\57\20\uffff"+
+        "\1\60\13\uffff\1\73\1\uffff\1\66\6\uffff\1\72\1\25\4\uffff\1\51"+
+        "\2\uffff\1\53\3\uffff\1\32\1\uffff\1\43\7\uffff\1\67\4\uffff\1\64"+
+        "\1\50\3\uffff\1\71\10\uffff\1\33\17\uffff\1\70\2\uffff\1\27\1\31"+
+        "\1\55\3\uffff\1\54\1\uffff\1\45\1\37\1\36\1\uffff\1\65\10\uffff"+
+        "\1\26\6\uffff\1\40\1\uffff\1\56\1\uffff\1\63\1\34\1\30\1\46\3\uffff"+
+        "\1\47\1\62\1\41\1\61\3\uffff\1\35\1\44\1\52";
     public static final String DFA18_specialS =
-        "\u010f\uffff}>";
+        "\u0114\uffff}>";
     public static final String[] DFA18_transition = {
-        "\2\14\1\uffff\2\14\22\uffff\1\14\1\13\1\16\1\41\1\40\1\52\1\6\1"+
-        "\17\1\43\1\44\2\52\1\3\1\7\1\2\1\42\12\15\1\4\1\1\1\12\1\10\1\11"+
-        "\2\52\32\51\1\45\1\52\1\46\1\52\1\40\1\uffff\1\27\1\51\1\34\1\30"+
-        "\1\31\1\21\1\24\1\51\1\23\3\51\1\36\1\33\1\35\1\22\1\26\1\25\1\32"+
-        "\1\20\2\51\1\37\3\51\1\47\1\5\1\50\102\uffff\100\51",
+        "\2\14\1\uffff\2\14\22\uffff\1\14\1\13\1\16\1\42\1\41\1\53\1\6\1"+
+        "\17\1\44\1\45\2\53\1\3\1\7\1\2\1\43\12\15\1\4\1\1\1\12\1\10\1\11"+
+        "\2\53\32\52\1\46\1\53\1\47\1\53\1\41\1\uffff\1\27\1\52\1\35\1\30"+
+        "\1\31\1\21\1\24\1\52\1\23\2\52\1\34\1\37\1\33\1\36\1\22\1\26\1\25"+
+        "\1\32\1\20\2\52\1\40\3\52\1\50\1\5\1\51\102\uffff\100\52",
         "",
-        "\1\53",
+        "\1\54",
         "",
         "",
-        "\1\56",
-        "\1\60",
-        "\12\15\4\uffff\1\62",
-        "\1\63",
+        "\1\57",
+        "\1\61",
+        "\12\15\4\uffff\1\63",
         "\1\64",
-        "\1\66",
-        "\1\70",
+        "\1\65",
+        "\1\67",
+        "\1\71",
         "",
-        "\1\71\1\uffff\12\15",
+        "\1\72\1\uffff\12\15",
         "",
         "\uffff\16",
-        "\1\74\2\uffff\1\73\11\uffff\1\75",
-        "\1\101\15\uffff\1\77\2\uffff\1\76\2\uffff\1\100",
-        "\1\102",
-        "\1\103\1\104",
-        "\1\105",
-        "\1\106\17\uffff\1\107",
-        "\1\110",
-        "\1\111\3\uffff\1\115\6\uffff\1\113\5\uffff\1\114\1\112",
-        "\1\116\23\uffff\1\117",
-        "\1\122\7\uffff\1\121\1\uffff\1\120",
-        "\1\123",
-        "\1\124\5\uffff\1\125",
-        "\1\126",
+        "\1\76\2\uffff\1\74\11\uffff\1\75",
+        "\1\100\15\uffff\1\77\2\uffff\1\102\2\uffff\1\101",
+        "\1\103",
+        "\1\104\1\105",
+        "\1\106",
+        "\1\107\17\uffff\1\110",
+        "\1\111",
+        "\1\115\3\uffff\1\116\6\uffff\1\112\5\uffff\1\114\1\113",
+        "\1\117\23\uffff\1\120",
+        "\1\123\7\uffff\1\121\1\uffff\1\122",
+        "\1\124",
+        "\1\125\5\uffff\1\126",
         "\1\127",
         "\1\130",
         "\1\131",
+        "\1\132",
+        "\1\133",
         "",
         "",
-        "\1\132\4\uffff\1\133",
+        "\1\134\4\uffff\1\135",
         "",
         "",
         "",
@@ -3810,8 +3853,6 @@
         "",
         "",
         "",
-        "\1\134",
-        "\1\135",
         "\1\136",
         "\1\137",
         "\1\140",
@@ -3824,28 +3865,28 @@
         "\1\147",
         "\1\150",
         "\1\151",
-        "\1\152\20\uffff\1\153",
+        "\1\152",
+        "\1\153",
         "\1\154",
         "\1\155",
         "\1\156",
-        "\1\157",
-        "\1\160",
+        "\1\160\20\uffff\1\157",
         "\1\161",
-        "\1\163\5\uffff\1\162",
+        "\1\162",
+        "\1\163",
         "\1\164",
-        "\1\166\2\uffff\1\165",
-        "\1\167",
-        "\1\170\106\uffff\1\171",
-        "\1\172",
-        "\1\174\1\uffff\1\173",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\1\176",
-        "\1\177",
+        "\1\166\5\uffff\1\165",
+        "\1\167\2\uffff\1\170",
+        "\1\171",
+        "\1\173\106\uffff\1\172",
+        "\1\174",
+        "\1\175",
+        "\1\176\1\uffff\1\177",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\1\u0081",
+        "\1\u0082",
         "",
         "",
-        "\1\u0080",
-        "\1\u0081",
-        "\1\u0082",
         "\1\u0083",
         "\1\u0084",
         "\1\u0085",
@@ -3860,7 +3901,7 @@
         "\1\u008e",
         "\1\u008f",
         "\1\u0090",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u0092",
         "\1\u0093",
         "\1\u0094",
@@ -3868,160 +3909,166 @@
         "\1\u0096",
         "\1\u0097",
         "\1\u0098",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\1\u0099",
         "\1\u009a",
         "\1\u009b",
-        "",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\1\u009d",
+        "\1\u009c",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u009e",
-        "\1\u009f",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
         "\1\u00a0",
         "\1\u00a1",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\1\u00a2",
         "\1\u00a3",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\1\u00a6",
-        "\1\u00a7",
+        "",
+        "\1\u00a4",
+        "\1\u00a5",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00a8",
         "\1\u00a9",
         "\1\u00aa",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\1\u00ac",
+        "\1\u00ab",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00ad",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\5\51\1\u00ae\24\51\105"+
-        "\uffff\100\51",
+        "\1\u00ae",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00b0",
         "\1\u00b1",
-        "\1\u00b2\6\uffff\1\u00b3",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\5\52\1\u00b2\24\52\105"+
+        "\uffff\100\52",
         "\1\u00b4",
         "",
         "\1\u00b5",
         "\1\u00b6",
-        "\1\u00b7",
-        "\1\u00b8",
+        "\1\u00b8\6\uffff\1\u00b7",
         "\1\u00b9",
         "\1\u00ba",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "",
+        "\1\u00bb",
         "\1\u00bc",
-        "\1\u00bd",
-        "",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\1\u00be",
         "\1\u00bf",
         "\1\u00c0",
+        "",
         "\1\u00c1",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
         "",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00c3",
-        "",
-        "",
         "\1\u00c4",
         "\1\u00c5",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
         "\1\u00c6",
-        "\1\u00c7",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
+        "",
         "\1\u00c8",
         "\1\u00c9",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00ca",
         "",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\1\u00cb",
         "\1\u00cc",
+        "",
         "\1\u00cd",
         "\1\u00ce",
+        "\1\u00cf",
         "",
-        "\1\u00cf",
-        "\1\u00d0",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "",
         "\1\u00d1",
         "\1\u00d2",
         "\1\u00d3",
         "\1\u00d4",
-        "",
         "\1\u00d5",
         "\1\u00d6",
+        "\1\u00d7",
         "",
-        "\1\u00d7",
         "\1\u00d8",
         "\1\u00d9",
+        "\1\u00da",
+        "\1\u00db",
         "",
-        "\1\u00da",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "",
         "\1\u00dc",
         "\1\u00dd",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\1\u00de",
+        "",
+        "\1\u00df",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00e1",
-        "",
         "\1\u00e2",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\1\u00e4",
-        "\1\u00e5",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00e6",
-        "\1\u00e8\21\uffff\1\u00e7",
-        "\1\u00e9",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "",
+        "\1\u00e7",
+        "\1\u00e8",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\1\u00ea",
         "\1\u00eb",
-        "\1\u00ec",
-        "\1\u00ed",
+        "\1\u00ed\21\uffff\1\u00ec",
         "\1\u00ee",
-        "\1\u00ef",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u00f0",
         "\1\u00f1",
-        "",
         "\1\u00f2",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "",
-        "",
-        "",
+        "\1\u00f3",
         "\1\u00f4",
         "\1\u00f5",
+        "\1\u00f6",
         "",
-        "\1\u00f6",
         "\1\u00f7",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
         "",
         "",
-        "\1\u00f8",
-        "",
         "\1\u00f9",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\1\u00fa",
         "\1\u00fb",
+        "",
         "\1\u00fc",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
         "",
-        "\1\u0101",
+        "",
+        "",
+        "\1\u00fd",
+        "",
+        "\1\u00fe",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\1\u0100",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "\1\u0102",
-        "\1\u0103",
-        "\1\u0104",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
+        "\1\u0106",
+        "\1\u0107",
+        "\1\u0108",
+        "\1\u0109",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
         "",
         "",
-        "\1\u0109",
-        "\1\u010a",
-        "\1\u010b",
         "",
+        "\1\u010e",
+        "\1\u010f",
+        "\1\u0110",
         "",
         "",
         "",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
-        "\1\u010d",
-        "\12\51\7\uffff\32\51\4\uffff\1\51\1\uffff\32\51\105\uffff\100\51",
         "",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
+        "\1\u0112",
+        "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100\52",
         "",
+        "",
         ""
     };
 
@@ -4042,7 +4089,7 @@
             }
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T62 | T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | RULEFLOW_GROUP | DURATION | FROM | ACCUMULATE | INIT | ACTION | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MATCHES | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | MULTI_LINE_COMMENT | MISC );";
+            return "1:1: Tokens : ( T63 | T64 | T65 | T66 | T67 | T68 | T69 | T70 | T71 | T72 | T73 | T74 | T75 | T76 | T77 | T78 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MATCHES | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | MULTI_LINE_COMMENT | MISC );";
         }
     }
  

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2007-04-11 16:58:30 UTC (rev 10893)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-03-29 08:21:34
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-04-11 16:59:51
 
 	package org.drools.lang;
 	import java.util.List;
@@ -18,76 +18,77 @@
 import java.util.HashMap;
 public class DRLParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PACKAGE", "IMPORT", "FUNCTION", "GLOBAL", "QUERY", "END", "TEMPLATE", "RULE", "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "STRING", "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT", "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP", "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "ACCUMULATE", "INIT", "ACTION", "RESULT", "COLLECT", "ID", "OR", "LEFT_PAREN", "RIGHT_PAREN", "CONTAINS", "MATCHES", "EXCLUDES", "FLOAT", "NULL", "LEFT_CURLY", "RIGHT_CURLY", "LEFT_SQUARE", "RIGHT_SQUARE", "AND", "FROM", "EXISTS", "NOT", "EVAL", "FORALL", "THEN", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "MISC", "';'", "'.'", "'.*'", "','", "':'", "'||'", "'&'", "'|'", "'->'", "'=='", "'>'", "'>='", "'<'", "'<='", "'!='", "'&&'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PACKAGE", "IMPORT", "FUNCTION", "GLOBAL", "QUERY", "END", "TEMPLATE", "RULE", "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "STRING", "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT", "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP", "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "LOCK_ON_ACTIVE", "ACCUMULATE", "INIT", "ACTION", "RESULT", "COLLECT", "ID", "OR", "LEFT_PAREN", "RIGHT_PAREN", "CONTAINS", "MATCHES", "EXCLUDES", "FLOAT", "NULL", "LEFT_CURLY", "RIGHT_CURLY", "LEFT_SQUARE", "RIGHT_SQUARE", "AND", "FROM", "EXISTS", "NOT", "EVAL", "FORALL", "THEN", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "MISC", "';'", "'.'", "'.*'", "','", "':'", "'||'", "'&'", "'|'", "'->'", "'=='", "'>'", "'>='", "'<'", "'<='", "'!='", "'&&'"
     };
-    public static final int EXISTS=47;
+    public static final int PACKAGE=4;
+    public static final int FUNCTION=6;
+    public static final int ACCUMULATE=28;
+    public static final int RIGHT_SQUARE=45;
+    public static final int ACTIVATION_GROUP=23;
+    public static final int ATTRIBUTES=13;
+    public static final int RIGHT_CURLY=43;
+    public static final int CONTAINS=37;
+    public static final int NO_LOOP=21;
+    public static final int LOCK_ON_ACTIVE=27;
+    public static final int AGENDA_GROUP=25;
+    public static final int FLOAT=40;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=59;
+    public static final int NOT=49;
+    public static final int AND=46;
+    public static final int ID=33;
+    public static final int EOF=-1;
+    public static final int HexDigit=56;
+    public static final int DATE_EFFECTIVE=14;
+    public static final int ACTION=30;
+    public static final int RIGHT_PAREN=36;
+    public static final int IMPORT=5;
+    public static final int EOL=53;
+    public static final int THEN=52;
+    public static final int MATCHES=38;
+    public static final int ENABLED=17;
+    public static final int EXISTS=48;
+    public static final int RULE=11;
+    public static final int EXCLUDES=39;
     public static final int AUTO_FOCUS=22;
-    public static final int END=9;
-    public static final int HexDigit=55;
-    public static final int FORALL=50;
+    public static final int NULL=41;
+    public static final int BOOL=18;
+    public static final int FORALL=51;
+    public static final int SALIENCE=19;
+    public static final int RULEFLOW_GROUP=24;
+    public static final int RESULT=31;
+    public static final int INT=20;
+    public static final int MULTI_LINE_COMMENT=61;
+    public static final int DURATION=26;
+    public static final int WS=54;
+    public static final int EVAL=50;
     public static final int TEMPLATE=10;
-    public static final int MISC=61;
-    public static final int FLOAT=39;
+    public static final int WHEN=12;
+    public static final int UnicodeEscape=57;
+    public static final int LEFT_CURLY=42;
+    public static final int OR=34;
+    public static final int LEFT_PAREN=35;
     public static final int QUERY=8;
-    public static final int THEN=51;
-    public static final int RULE=11;
-    public static final int INIT=28;
-    public static final int IMPORT=5;
-    public static final int DATE_EFFECTIVE=14;
-    public static final int PACKAGE=4;
-    public static final int OR=33;
-    public static final int AND=45;
-    public static final int FUNCTION=6;
+    public static final int MISC=62;
+    public static final int FROM=47;
+    public static final int END=9;
     public static final int GLOBAL=7;
-    public static final int EscapeSequence=54;
-    public static final int INT=20;
+    public static final int COLLECT=32;
+    public static final int LEFT_SQUARE=44;
+    public static final int INIT=29;
+    public static final int OctalEscape=58;
+    public static final int EscapeSequence=55;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=60;
     public static final int DATE_EXPIRES=16;
-    public static final int LEFT_SQUARE=43;
-    public static final int CONTAINS=36;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=58;
-    public static final int ATTRIBUTES=13;
-    public static final int RESULT=30;
-    public static final int LEFT_CURLY=41;
-    public static final int FROM=46;
-    public static final int ID=32;
-    public static final int ACTIVATION_GROUP=23;
-    public static final int LEFT_PAREN=34;
-    public static final int RIGHT_CURLY=42;
-    public static final int BOOL=18;
-    public static final int EXCLUDES=38;
-    public static final int WHEN=12;
-    public static final int RULEFLOW_GROUP=24;
-    public static final int WS=53;
     public static final int STRING=15;
-    public static final int ACTION=29;
-    public static final int COLLECT=31;
-    public static final int NO_LOOP=21;
-    public static final int ACCUMULATE=27;
-    public static final int UnicodeEscape=56;
-    public static final int DURATION=26;
-    public static final int EVAL=49;
-    public static final int MATCHES=37;
-    public static final int EOF=-1;
-    public static final int EOL=52;
-    public static final int AGENDA_GROUP=25;
-    public static final int NULL=40;
-    public static final int OctalEscape=57;
-    public static final int SALIENCE=19;
-    public static final int MULTI_LINE_COMMENT=60;
-    public static final int NOT=48;
-    public static final int RIGHT_PAREN=35;
-    public static final int ENABLED=17;
-    public static final int RIGHT_SQUARE=44;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=59;
 
         public DRLParser(TokenStream input) {
             super(input);
-            ruleMemo = new HashMap[173+1];
+            ruleMemo = new HashMap[176+1];
          }
         
 
     public String[] getTokenNames() { return tokenNames; }
-    public String getGrammarFileName() { return "D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g"; }
+    public String getGrammarFileName() { return "C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g"; }
 
     
     	private PackageDescr packageDescr;
@@ -240,23 +241,23 @@
 
 
     // $ANTLR start opt_semicolon
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:168:1: opt_semicolon : ( ( ';' )=> ';' )? ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:168:1: opt_semicolon : ( ( ';' )=> ';' )? ;
     public void opt_semicolon() throws RecognitionException {
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:169:4: ( ( ( ';' )=> ';' )? )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:169:4: ( ( ';' )=> ';' )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:169:4: ( ( ( ';' )=> ';' )? )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:169:4: ( ( ';' )=> ';' )?
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:169:4: ( ( ';' )=> ';' )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:169:4: ( ( ';' )=> ';' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
-            if ( (LA1_0==62) ) {
+            if ( (LA1_0==63) ) {
                 alt1=1;
             }
             switch (alt1) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( ';' )=> ';'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( ';' )=> ';'
                     {
-                    match(input,62,FOLLOW_62_in_opt_semicolon46); if (failed) return ;
+                    match(input,63,FOLLOW_63_in_opt_semicolon46); if (failed) return ;
 
                     }
                     break;
@@ -279,17 +280,17 @@
 
 
     // $ANTLR start compilation_unit
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:172:1: compilation_unit : prolog ( ( statement )=> statement )+ ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:172:1: compilation_unit : prolog ( ( statement )=> statement )+ ;
     public void compilation_unit() throws RecognitionException {
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:173:4: ( prolog ( ( statement )=> statement )+ )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:173:4: prolog ( ( statement )=> statement )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:173:4: ( prolog ( ( statement )=> statement )+ )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:173:4: prolog ( ( statement )=> statement )+
             {
             pushFollow(FOLLOW_prolog_in_compilation_unit58);
             prolog();
             _fsp--;
             if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:174:3: ( ( statement )=> statement )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:174:3: ( ( statement )=> statement )+
             int cnt2=0;
             loop2:
             do {
@@ -302,7 +303,7 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:174:5: ( statement )=> statement
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:174:5: ( statement )=> statement
             	    {
             	    pushFollow(FOLLOW_statement_in_compilation_unit65);
             	    statement();
@@ -338,7 +339,7 @@
 
 
     // $ANTLR start prolog
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:177:1: prolog : ( ( package_statement )=>n= package_statement )? ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:177:1: prolog : ( ( package_statement )=>n= package_statement )? ;
     public void prolog() throws RecognitionException {
         String n = null;
 
@@ -347,10 +348,10 @@
         		String packageName = "";
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:4: ( ( ( package_statement )=>n= package_statement )? )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:4: ( ( package_statement )=>n= package_statement )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:4: ( ( ( package_statement )=>n= package_statement )? )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:4: ( ( package_statement )=>n= package_statement )?
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:4: ( ( package_statement )=>n= package_statement )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:4: ( ( package_statement )=>n= package_statement )?
             int alt3=2;
             int LA3_0 = input.LA(1);
             if ( (LA3_0==PACKAGE) ) {
@@ -358,7 +359,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:6: ( package_statement )=>n= package_statement
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:181:6: ( package_statement )=>n= package_statement
                     {
                     pushFollow(FOLLOW_package_statement_in_prolog90);
                     n=package_statement();
@@ -394,7 +395,7 @@
 
 
     // $ANTLR start statement
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:187:1: statement : ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:187:1: statement : ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query ) ;
     public void statement() throws RecognitionException {
         FactTemplateDescr t = null;
 
@@ -404,10 +405,10 @@
 
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:2: ( ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:2: ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:2: ( ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:2: ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:2: ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:2: ( ( function_import_statement )=> function_import_statement | ( import_statement )=> import_statement | ( global )=> global | ( function )=> function | ( template )=>t= template | ( rule )=>r= rule | q= query )
             int alt4=7;
             switch ( input.LA(1) ) {
             case IMPORT:
@@ -450,7 +451,7 @@
 
             switch (alt4) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:4: ( function_import_statement )=> function_import_statement
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:4: ( function_import_statement )=> function_import_statement
                     {
                     pushFollow(FOLLOW_function_import_statement_in_statement114);
                     function_import_statement();
@@ -460,7 +461,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:190:4: ( import_statement )=> import_statement
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:190:4: ( import_statement )=> import_statement
                     {
                     pushFollow(FOLLOW_import_statement_in_statement120);
                     import_statement();
@@ -470,7 +471,7 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:191:4: ( global )=> global
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:191:4: ( global )=> global
                     {
                     pushFollow(FOLLOW_global_in_statement126);
                     global();
@@ -480,7 +481,7 @@
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:192:4: ( function )=> function
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:192:4: ( function )=> function
                     {
                     pushFollow(FOLLOW_function_in_statement132);
                     function();
@@ -490,7 +491,7 @@
                     }
                     break;
                 case 5 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:193:10: ( template )=>t= template
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:193:10: ( template )=>t= template
                     {
                     pushFollow(FOLLOW_template_in_statement146);
                     t=template();
@@ -503,7 +504,7 @@
                     }
                     break;
                 case 6 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:194:4: ( rule )=>r= rule
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:194:4: ( rule )=>r= rule
                     {
                     pushFollow(FOLLOW_rule_in_statement155);
                     r=rule();
@@ -516,7 +517,7 @@
                     }
                     break;
                 case 7 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:195:4: q= query
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:195:4: q= query
                     {
                     pushFollow(FOLLOW_query_in_statement167);
                     q=query();
@@ -547,7 +548,7 @@
 
 
     // $ANTLR start package_statement
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:199:1: package_statement returns [String packageName] : PACKAGE n= dotted_name[null] opt_semicolon ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:199:1: package_statement returns [String packageName] : PACKAGE n= dotted_name[null] opt_semicolon ;
     public String package_statement() throws RecognitionException {
         String packageName = null;
 
@@ -558,8 +559,8 @@
         		packageName = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:204:3: ( PACKAGE n= dotted_name[null] opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:204:3: PACKAGE n= dotted_name[null] opt_semicolon
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:204:3: ( PACKAGE n= dotted_name[null] opt_semicolon )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:204:3: PACKAGE n= dotted_name[null] opt_semicolon
             {
             match(input,PACKAGE,FOLLOW_PACKAGE_in_package_statement196); if (failed) return packageName;
             pushFollow(FOLLOW_dotted_name_in_package_statement200);
@@ -591,7 +592,7 @@
 
 
     // $ANTLR start import_statement
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:211:1: import_statement : imp= IMPORT import_name[importDecl] opt_semicolon ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:211:1: import_statement : imp= IMPORT import_name[importDecl] opt_semicolon ;
     public void import_statement() throws RecognitionException {
         Token imp=null;
 
@@ -599,8 +600,8 @@
                 	ImportDescr importDecl = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:215:4: (imp= IMPORT import_name[importDecl] opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:215:4: imp= IMPORT import_name[importDecl] opt_semicolon
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:215:4: (imp= IMPORT import_name[importDecl] opt_semicolon )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:215:4: imp= IMPORT import_name[importDecl] opt_semicolon
             {
             imp=(Token)input.LT(1);
             match(input,IMPORT,FOLLOW_IMPORT_in_import_statement235); if (failed) return ;
@@ -637,7 +638,7 @@
 
 
     // $ANTLR start function_import_statement
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:226:1: function_import_statement : imp= IMPORT FUNCTION import_name[importDecl] opt_semicolon ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:226:1: function_import_statement : imp= IMPORT FUNCTION import_name[importDecl] opt_semicolon ;
     public void function_import_statement() throws RecognitionException {
         Token imp=null;
 
@@ -645,8 +646,8 @@
                 	FunctionImportDescr importDecl = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:230:4: (imp= IMPORT FUNCTION import_name[importDecl] opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:230:4: imp= IMPORT FUNCTION import_name[importDecl] opt_semicolon
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:230:4: (imp= IMPORT FUNCTION import_name[importDecl] opt_semicolon )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:230:4: imp= IMPORT FUNCTION import_name[importDecl] opt_semicolon
             {
             imp=(Token)input.LT(1);
             match(input,IMPORT,FOLLOW_IMPORT_in_function_import_statement287); if (failed) return ;
@@ -684,7 +685,7 @@
 
 
     // $ANTLR start import_name
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:242:1: import_name[ImportDescr importDecl] returns [String name] : id= identifier ( ( '.' identifier )=> '.' id= identifier )* ( ( '.*' )=>star= '.*' )? ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:242:1: import_name[ImportDescr importDecl] returns [String name] : id= identifier ( ( '.' identifier )=> '.' id= identifier )* ( ( '.*' )=>star= '.*' )? ;
     public String import_name(ImportDescr importDecl) throws RecognitionException {
         String name = null;
 
@@ -696,8 +697,8 @@
         		name = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:247:3: (id= identifier ( ( '.' identifier )=> '.' id= identifier )* ( ( '.*' )=>star= '.*' )? )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:247:3: id= identifier ( ( '.' identifier )=> '.' id= identifier )* ( ( '.*' )=>star= '.*' )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:247:3: (id= identifier ( ( '.' identifier )=> '.' id= identifier )* ( ( '.*' )=>star= '.*' )? )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:247:3: id= identifier ( ( '.' identifier )=> '.' id= identifier )* ( ( '.*' )=>star= '.*' )?
             {
             pushFollow(FOLLOW_identifier_in_import_name343);
             id=identifier();
@@ -710,21 +711,21 @@
               		    importDecl.setEndCharacter( ((CommonToken)id).getStopIndex() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:253:3: ( ( '.' identifier )=> '.' id= identifier )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:253:3: ( ( '.' identifier )=> '.' id= identifier )*
             loop5:
             do {
                 int alt5=2;
                 int LA5_0 = input.LA(1);
-                if ( (LA5_0==63) ) {
+                if ( (LA5_0==64) ) {
                     alt5=1;
                 }
 
 
                 switch (alt5) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:253:5: ( '.' identifier )=> '.' id= identifier
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:253:5: ( '.' identifier )=> '.' id= identifier
             	    {
-            	    match(input,63,FOLLOW_63_in_import_name355); if (failed) return name;
+            	    match(input,64,FOLLOW_64_in_import_name355); if (failed) return name;
             	    pushFollow(FOLLOW_identifier_in_import_name359);
             	    id=identifier();
             	    _fsp--;
@@ -745,18 +746,18 @@
                 }
             } while (true);
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:260:3: ( ( '.*' )=>star= '.*' )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:260:3: ( ( '.*' )=>star= '.*' )?
             int alt6=2;
             int LA6_0 = input.LA(1);
-            if ( (LA6_0==64) ) {
+            if ( (LA6_0==65) ) {
                 alt6=1;
             }
             switch (alt6) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:260:5: ( '.*' )=>star= '.*'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:260:5: ( '.*' )=>star= '.*'
                     {
                     star=(Token)input.LT(1);
-                    match(input,64,FOLLOW_64_in_import_name383); if (failed) return name;
+                    match(input,65,FOLLOW_65_in_import_name383); if (failed) return name;
                     if ( backtracking==0 ) {
                        
                       		        name = name + star.getText(); 
@@ -786,7 +787,7 @@
 
 
     // $ANTLR start global
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:270:1: global : loc= GLOBAL type= dotted_name[null] id= identifier opt_semicolon ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:270:1: global : loc= GLOBAL type= dotted_name[null] id= identifier opt_semicolon ;
     public void global() throws RecognitionException {
         Token loc=null;
         String type = null;
@@ -798,8 +799,8 @@
         	    GlobalDescr global = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:275:3: (loc= GLOBAL type= dotted_name[null] id= identifier opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:275:3: loc= GLOBAL type= dotted_name[null] id= identifier opt_semicolon
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:275:3: (loc= GLOBAL type= dotted_name[null] id= identifier opt_semicolon )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:275:3: loc= GLOBAL type= dotted_name[null] id= identifier opt_semicolon
             {
             loc=(Token)input.LT(1);
             match(input,GLOBAL,FOLLOW_GLOBAL_in_global419); if (failed) return ;
@@ -849,7 +850,7 @@
 
 
     // $ANTLR start function
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:293:1: function : loc= FUNCTION ( ( dotted_name[null] )=>retType= dotted_name[null] )? n= identifier '(' ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )? ')' body= curly_chunk[f] ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:293:1: function : loc= FUNCTION ( ( dotted_name[null] )=>retType= dotted_name[null] )? n= identifier '(' ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )? ')' body= curly_chunk[f] ;
     public void function() throws RecognitionException {
         Token loc=null;
         String retType = null;
@@ -867,23 +868,23 @@
         		FunctionDescr f = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:3: (loc= FUNCTION ( ( dotted_name[null] )=>retType= dotted_name[null] )? n= identifier '(' ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )? ')' body= curly_chunk[f] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:3: loc= FUNCTION ( ( dotted_name[null] )=>retType= dotted_name[null] )? n= identifier '(' ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )? ')' body= curly_chunk[f]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:3: (loc= FUNCTION ( ( dotted_name[null] )=>retType= dotted_name[null] )? n= identifier '(' ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )? ')' body= curly_chunk[f] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:3: loc= FUNCTION ( ( dotted_name[null] )=>retType= dotted_name[null] )? n= identifier '(' ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )? ')' body= curly_chunk[f]
             {
             loc=(Token)input.LT(1);
             match(input,FUNCTION,FOLLOW_FUNCTION_in_function471); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:16: ( ( dotted_name[null] )=>retType= dotted_name[null] )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:16: ( ( dotted_name[null] )=>retType= dotted_name[null] )?
             int alt7=2;
             int LA7_0 = input.LA(1);
             if ( (LA7_0==ID) ) {
                 int LA7_1 = input.LA(2);
-                if ( ((LA7_1>=PACKAGE && LA7_1<=ATTRIBUTES)||LA7_1==ENABLED||LA7_1==SALIENCE||(LA7_1>=DURATION && LA7_1<=OR)||(LA7_1>=CONTAINS && LA7_1<=EXCLUDES)||LA7_1==NULL||LA7_1==LEFT_SQUARE||(LA7_1>=AND && LA7_1<=THEN)||LA7_1==63) ) {
+                if ( ((LA7_1>=PACKAGE && LA7_1<=ATTRIBUTES)||LA7_1==ENABLED||LA7_1==SALIENCE||LA7_1==DURATION||(LA7_1>=ACCUMULATE && LA7_1<=OR)||(LA7_1>=CONTAINS && LA7_1<=EXCLUDES)||LA7_1==NULL||LA7_1==LEFT_SQUARE||(LA7_1>=AND && LA7_1<=THEN)||LA7_1==64) ) {
                     alt7=1;
                 }
             }
             switch (alt7) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:17: ( dotted_name[null] )=>retType= dotted_name[null]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:298:17: ( dotted_name[null] )=>retType= dotted_name[null]
                     {
                     pushFollow(FOLLOW_dotted_name_in_function476);
                     retType=dotted_name(null);
@@ -909,22 +910,22 @@
               		
             }
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function492); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:4: ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:4: ( ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )* )?
             int alt11=2;
             int LA11_0 = input.LA(1);
-            if ( ((LA11_0>=PACKAGE && LA11_0<=ATTRIBUTES)||LA11_0==ENABLED||LA11_0==SALIENCE||(LA11_0>=DURATION && LA11_0<=OR)||(LA11_0>=CONTAINS && LA11_0<=EXCLUDES)||LA11_0==NULL||(LA11_0>=AND && LA11_0<=THEN)) ) {
+            if ( ((LA11_0>=PACKAGE && LA11_0<=ATTRIBUTES)||LA11_0==ENABLED||LA11_0==SALIENCE||LA11_0==DURATION||(LA11_0>=ACCUMULATE && LA11_0<=OR)||(LA11_0>=CONTAINS && LA11_0<=EXCLUDES)||LA11_0==NULL||(LA11_0>=AND && LA11_0<=THEN)) ) {
                 alt11=1;
             }
             switch (alt11) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:6: ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )*
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:6: ( ( ( dotted_name[null] )=> dotted_name[null] )? argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )* )=> ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )*
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:6: ( ( dotted_name[null] )=>paramType= dotted_name[null] )?
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:6: ( ( dotted_name[null] )=>paramType= dotted_name[null] )?
                     int alt8=2;
                     alt8 = dfa8.predict(input);
                     switch (alt8) {
                         case 1 :
-                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:7: ( dotted_name[null] )=>paramType= dotted_name[null]
+                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:307:7: ( dotted_name[null] )=>paramType= dotted_name[null]
                             {
                             pushFollow(FOLLOW_dotted_name_in_function502);
                             paramType=dotted_name(null);
@@ -945,27 +946,27 @@
                       					f.addParameter( paramType, paramName );
                       				
                     }
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:5: ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )*
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:5: ( ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument )*
                     loop10:
                     do {
                         int alt10=2;
                         int LA10_0 = input.LA(1);
-                        if ( (LA10_0==65) ) {
+                        if ( (LA10_0==66) ) {
                             alt10=1;
                         }
 
 
                         switch (alt10) {
                     	case 1 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:7: ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:7: ( ',' ( ( dotted_name[null] )=> dotted_name[null] )? argument )=> ',' ( ( dotted_name[null] )=>paramType= dotted_name[null] )? paramName= argument
                     	    {
-                    	    match(input,65,FOLLOW_65_in_function523); if (failed) return ;
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:11: ( ( dotted_name[null] )=>paramType= dotted_name[null] )?
+                    	    match(input,66,FOLLOW_66_in_function523); if (failed) return ;
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:11: ( ( dotted_name[null] )=>paramType= dotted_name[null] )?
                     	    int alt9=2;
                     	    alt9 = dfa9.predict(input);
                     	    switch (alt9) {
                     	        case 1 :
-                    	            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:12: ( dotted_name[null] )=>paramType= dotted_name[null]
+                    	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:311:12: ( dotted_name[null] )=>paramType= dotted_name[null]
                     	            {
                     	            pushFollow(FOLLOW_dotted_name_in_function528);
                     	            paramType=dotted_name(null);
@@ -1028,7 +1029,7 @@
 
 
     // $ANTLR start query
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:327:1: query returns [QueryDescr query] : loc= QUERY queryName= name ( normal_lhs_block[lhs] ) loc= END ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:327:1: query returns [QueryDescr query] : loc= QUERY queryName= name ( normal_lhs_block[lhs] ) loc= END ;
     public QueryDescr query() throws RecognitionException {
         QueryDescr query = null;
 
@@ -1041,8 +1042,8 @@
         		AndDescr lhs = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:333:3: (loc= QUERY queryName= name ( normal_lhs_block[lhs] ) loc= END )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:333:3: loc= QUERY queryName= name ( normal_lhs_block[lhs] ) loc= END
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:333:3: (loc= QUERY queryName= name ( normal_lhs_block[lhs] ) loc= END )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:333:3: loc= QUERY queryName= name ( normal_lhs_block[lhs] ) loc= END
             {
             loc=(Token)input.LT(1);
             match(input,QUERY,FOLLOW_QUERY_in_query597); if (failed) return query;
@@ -1059,8 +1060,8 @@
               			lhs.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:341:3: ( normal_lhs_block[lhs] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:342:4: normal_lhs_block[lhs]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:341:3: ( normal_lhs_block[lhs] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:342:4: normal_lhs_block[lhs]
             {
             pushFollow(FOLLOW_normal_lhs_block_in_query614);
             normal_lhs_block(lhs);
@@ -1092,7 +1093,7 @@
 
 
     // $ANTLR start template
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:352:1: template returns [FactTemplateDescr template] : loc= TEMPLATE templateName= identifier opt_semicolon ( ( template_slot )=>slot= template_slot )+ loc= END opt_semicolon ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:352:1: template returns [FactTemplateDescr template] : loc= TEMPLATE templateName= identifier opt_semicolon ( ( template_slot )=>slot= template_slot )+ loc= END opt_semicolon ;
     public FactTemplateDescr template() throws RecognitionException {
         FactTemplateDescr template = null;
 
@@ -1106,8 +1107,8 @@
         		template = null;		
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:357:3: (loc= TEMPLATE templateName= identifier opt_semicolon ( ( template_slot )=>slot= template_slot )+ loc= END opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:357:3: loc= TEMPLATE templateName= identifier opt_semicolon ( ( template_slot )=>slot= template_slot )+ loc= END opt_semicolon
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:357:3: (loc= TEMPLATE templateName= identifier opt_semicolon ( ( template_slot )=>slot= template_slot )+ loc= END opt_semicolon )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:357:3: loc= TEMPLATE templateName= identifier opt_semicolon ( ( template_slot )=>slot= template_slot )+ loc= END opt_semicolon
             {
             loc=(Token)input.LT(1);
             match(input,TEMPLATE,FOLLOW_TEMPLATE_in_template661); if (failed) return template;
@@ -1126,7 +1127,7 @@
               			template.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:363:3: ( ( template_slot )=>slot= template_slot )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:363:3: ( ( template_slot )=>slot= template_slot )+
             int cnt12=0;
             loop12:
             do {
@@ -1139,7 +1140,7 @@
 
                 switch (alt12) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:364:4: ( template_slot )=>slot= template_slot
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:364:4: ( template_slot )=>slot= template_slot
             	    {
             	    pushFollow(FOLLOW_template_slot_in_template682);
             	    slot=template_slot();
@@ -1191,7 +1192,7 @@
 
 
     // $ANTLR start template_slot
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:375:1: template_slot returns [FieldTemplateDescr field] : fieldType= dotted_name[field] n= identifier opt_semicolon ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:375:1: template_slot returns [FieldTemplateDescr field] : fieldType= dotted_name[field] n= identifier opt_semicolon ;
     public FieldTemplateDescr template_slot() throws RecognitionException {
         FieldTemplateDescr field = null;
 
@@ -1204,8 +1205,8 @@
         		field = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:380:11: (fieldType= dotted_name[field] n= identifier opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:380:11: fieldType= dotted_name[field] n= identifier opt_semicolon
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:380:11: (fieldType= dotted_name[field] n= identifier opt_semicolon )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:380:11: fieldType= dotted_name[field] n= identifier opt_semicolon
             {
             if ( backtracking==0 ) {
               
@@ -1252,7 +1253,7 @@
 
 
     // $ANTLR start rule
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:396:1: rule returns [RuleDescr rule] : loc= RULE ruleName= name rule_attributes[rule] ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )? rhs_chunk[rule] ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:396:1: rule returns [RuleDescr rule] : loc= RULE ruleName= name rule_attributes[rule] ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )? rhs_chunk[rule] ;
     public RuleDescr rule() throws RecognitionException {
         RuleDescr rule = null;
 
@@ -1266,8 +1267,8 @@
         		AndDescr lhs = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:403:3: (loc= RULE ruleName= name rule_attributes[rule] ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )? rhs_chunk[rule] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:403:3: loc= RULE ruleName= name rule_attributes[rule] ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )? rhs_chunk[rule]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:403:3: (loc= RULE ruleName= name rule_attributes[rule] ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )? rhs_chunk[rule] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:403:3: loc= RULE ruleName= name rule_attributes[rule] ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )? rhs_chunk[rule]
             {
             loc=(Token)input.LT(1);
             match(input,RULE,FOLLOW_RULE_in_rule800); if (failed) return rule;
@@ -1287,7 +1288,7 @@
             rule_attributes(rule);
             _fsp--;
             if (failed) return rule;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:411:3: ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:411:3: ( ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )?
             int alt14=2;
             int LA14_0 = input.LA(1);
             if ( (LA14_0==WHEN) ) {
@@ -1295,21 +1296,21 @@
             }
             switch (alt14) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:411:5: ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:411:5: ( WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] ) )=>loc= WHEN ( ( ':' )=> ':' )? ( normal_lhs_block[lhs] )
                     {
                     loc=(Token)input.LT(1);
                     match(input,WHEN,FOLLOW_WHEN_in_rule822); if (failed) return rule;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:411:14: ( ( ':' )=> ':' )?
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:411:14: ( ( ':' )=> ':' )?
                     int alt13=2;
                     int LA13_0 = input.LA(1);
-                    if ( (LA13_0==66) ) {
+                    if ( (LA13_0==67) ) {
                         alt13=1;
                     }
                     switch (alt13) {
                         case 1 :
-                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( ':' )=> ':'
+                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( ':' )=> ':'
                             {
-                            match(input,66,FOLLOW_66_in_rule824); if (failed) return rule;
+                            match(input,67,FOLLOW_67_in_rule824); if (failed) return rule;
 
                             }
                             break;
@@ -1323,8 +1324,8 @@
                       				lhs.setStartCharacter( ((CommonToken)loc).getStartIndex() );
                       			
                     }
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:417:4: ( normal_lhs_block[lhs] )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:419:5: normal_lhs_block[lhs]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:417:4: ( normal_lhs_block[lhs] )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:419:5: normal_lhs_block[lhs]
                     {
                     pushFollow(FOLLOW_normal_lhs_block_in_rule842);
                     normal_lhs_block(lhs);
@@ -1359,16 +1360,16 @@
 
 
     // $ANTLR start rule_attributes
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:428:1: rule_attributes[RuleDescr rule] : ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )? ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )* ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:428:1: rule_attributes[RuleDescr rule] : ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )? ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )* ;
     public void rule_attributes(RuleDescr rule) throws RecognitionException {
         AttributeDescr a = null;
 
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:4: ( ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )? ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:4: ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )? ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:4: ( ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )? ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:4: ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )? ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )*
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:4: ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:4: ( ( ATTRIBUTES ':' )=> ATTRIBUTES ':' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
             if ( (LA15_0==ATTRIBUTES) ) {
@@ -1376,41 +1377,41 @@
             }
             switch (alt15) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:5: ( ATTRIBUTES ':' )=> ATTRIBUTES ':'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:430:5: ( ATTRIBUTES ':' )=> ATTRIBUTES ':'
                     {
                     match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_rule_attributes884); if (failed) return ;
-                    match(input,66,FOLLOW_66_in_rule_attributes886); if (failed) return ;
+                    match(input,67,FOLLOW_67_in_rule_attributes886); if (failed) return ;
 
                     }
                     break;
 
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:431:4: ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:431:4: ( ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute )*
             loop17:
             do {
                 int alt17=2;
                 int LA17_0 = input.LA(1);
-                if ( (LA17_0==DATE_EFFECTIVE||(LA17_0>=DATE_EXPIRES && LA17_0<=ENABLED)||LA17_0==SALIENCE||(LA17_0>=NO_LOOP && LA17_0<=DURATION)||LA17_0==65) ) {
+                if ( (LA17_0==DATE_EFFECTIVE||(LA17_0>=DATE_EXPIRES && LA17_0<=ENABLED)||LA17_0==SALIENCE||(LA17_0>=NO_LOOP && LA17_0<=LOCK_ON_ACTIVE)||LA17_0==66) ) {
                     alt17=1;
                 }
 
 
                 switch (alt17) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:431:6: ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:431:6: ( ( ( ',' )=> ',' )? rule_attribute )=> ( ( ',' )=> ',' )? a= rule_attribute
             	    {
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:431:6: ( ( ',' )=> ',' )?
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:431:6: ( ( ',' )=> ',' )?
             	    int alt16=2;
             	    int LA16_0 = input.LA(1);
-            	    if ( (LA16_0==65) ) {
+            	    if ( (LA16_0==66) ) {
             	        alt16=1;
             	    }
             	    switch (alt16) {
             	        case 1 :
-            	            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( ',' )=> ','
+            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( ',' )=> ','
             	            {
-            	            match(input,65,FOLLOW_65_in_rule_attributes895); if (failed) return ;
+            	            match(input,66,FOLLOW_66_in_rule_attributes895); if (failed) return ;
 
             	            }
             	            break;
@@ -1451,7 +1452,7 @@
 
 
     // $ANTLR start rule_attribute
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:440:1: rule_attribute returns [AttributeDescr d] : ( ( salience )=>a= salience | ( no_loop )=>a= no_loop | ( agenda_group )=>a= agenda_group | ( duration )=>a= duration | ( activation_group )=>a= activation_group | ( auto_focus )=>a= auto_focus | ( date_effective )=>a= date_effective | ( date_expires )=>a= date_expires | ( enabled )=>a= enabled | a= ruleflow_group );
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:440:1: rule_attribute returns [AttributeDescr d] : ( ( salience )=>a= salience | ( no_loop )=>a= no_loop | ( agenda_group )=>a= agenda_group | ( duration )=>a= duration | ( activation_group )=>a= activation_group | ( auto_focus )=>a= auto_focus | ( date_effective )=>a= date_effective | ( date_expires )=>a= date_expires | ( enabled )=>a= enabled | ( ruleflow_group )=>a= ruleflow_group | a= lock_on_active );
     public AttributeDescr rule_attribute() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -1462,8 +1463,8 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:445:4: ( ( salience )=>a= salience | ( no_loop )=>a= no_loop | ( agenda_group )=>a= agenda_group | ( duration )=>a= duration | ( activation_group )=>a= activation_group | ( auto_focus )=>a= auto_focus | ( date_effective )=>a= date_effective | ( date_expires )=>a= date_expires | ( enabled )=>a= enabled | a= ruleflow_group )
-            int alt18=10;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:445:4: ( ( salience )=>a= salience | ( no_loop )=>a= no_loop | ( agenda_group )=>a= agenda_group | ( duration )=>a= duration | ( activation_group )=>a= activation_group | ( auto_focus )=>a= auto_focus | ( date_effective )=>a= date_effective | ( date_expires )=>a= date_expires | ( enabled )=>a= enabled | ( ruleflow_group )=>a= ruleflow_group | a= lock_on_active )
+            int alt18=11;
             switch ( input.LA(1) ) {
             case SALIENCE:
                 alt18=1;
@@ -1495,17 +1496,20 @@
             case RULEFLOW_GROUP:
                 alt18=10;
                 break;
+            case LOCK_ON_ACTIVE:
+                alt18=11;
+                break;
             default:
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("440:1: rule_attribute returns [AttributeDescr d] : ( ( salience )=>a= salience | ( no_loop )=>a= no_loop | ( agenda_group )=>a= agenda_group | ( duration )=>a= duration | ( activation_group )=>a= activation_group | ( auto_focus )=>a= auto_focus | ( date_effective )=>a= date_effective | ( date_expires )=>a= date_expires | ( enabled )=>a= enabled | a= ruleflow_group );", 18, 0, input);
+                    new NoViableAltException("440:1: rule_attribute returns [AttributeDescr d] : ( ( salience )=>a= salience | ( no_loop )=>a= no_loop | ( agenda_group )=>a= agenda_group | ( duration )=>a= duration | ( activation_group )=>a= activation_group | ( auto_focus )=>a= auto_focus | ( date_effective )=>a= date_effective | ( date_expires )=>a= date_expires | ( enabled )=>a= enabled | ( ruleflow_group )=>a= ruleflow_group | a= lock_on_active );", 18, 0, input);
 
                 throw nvae;
             }
 
             switch (alt18) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:445:4: ( salience )=>a= salience
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:445:4: ( salience )=>a= salience
                     {
                     pushFollow(FOLLOW_salience_in_rule_attribute941);
                     a=salience();
@@ -1518,7 +1522,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:446:5: ( no_loop )=>a= no_loop
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:446:5: ( no_loop )=>a= no_loop
                     {
                     pushFollow(FOLLOW_no_loop_in_rule_attribute951);
                     a=no_loop();
@@ -1531,7 +1535,7 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:447:5: ( agenda_group )=>a= agenda_group
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:447:5: ( agenda_group )=>a= agenda_group
                     {
                     pushFollow(FOLLOW_agenda_group_in_rule_attribute962);
                     a=agenda_group();
@@ -1544,7 +1548,7 @@
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:448:5: ( duration )=>a= duration
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:448:5: ( duration )=>a= duration
                     {
                     pushFollow(FOLLOW_duration_in_rule_attribute975);
                     a=duration();
@@ -1557,7 +1561,7 @@
                     }
                     break;
                 case 5 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:449:5: ( activation_group )=>a= activation_group
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:449:5: ( activation_group )=>a= activation_group
                     {
                     pushFollow(FOLLOW_activation_group_in_rule_attribute989);
                     a=activation_group();
@@ -1570,7 +1574,7 @@
                     }
                     break;
                 case 6 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:450:5: ( auto_focus )=>a= auto_focus
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:450:5: ( auto_focus )=>a= auto_focus
                     {
                     pushFollow(FOLLOW_auto_focus_in_rule_attribute1000);
                     a=auto_focus();
@@ -1583,9 +1587,9 @@
                     }
                     break;
                 case 7 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:451:11: ( date_effective )=>a= date_effective
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:451:5: ( date_effective )=>a= date_effective
                     {
-                    pushFollow(FOLLOW_date_effective_in_rule_attribute1017);
+                    pushFollow(FOLLOW_date_effective_in_rule_attribute1011);
                     a=date_effective();
                     _fsp--;
                     if (failed) return d;
@@ -1596,9 +1600,9 @@
                     }
                     break;
                 case 8 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:452:5: ( date_expires )=>a= date_expires
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:452:5: ( date_expires )=>a= date_expires
                     {
-                    pushFollow(FOLLOW_date_expires_in_rule_attribute1027);
+                    pushFollow(FOLLOW_date_expires_in_rule_attribute1021);
                     a=date_expires();
                     _fsp--;
                     if (failed) return d;
@@ -1609,9 +1613,9 @@
                     }
                     break;
                 case 9 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:453:11: ( enabled )=>a= enabled
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:453:5: ( enabled )=>a= enabled
                     {
-                    pushFollow(FOLLOW_enabled_in_rule_attribute1043);
+                    pushFollow(FOLLOW_enabled_in_rule_attribute1031);
                     a=enabled();
                     _fsp--;
                     if (failed) return d;
@@ -1622,9 +1626,9 @@
                     }
                     break;
                 case 10 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:454:11: a= ruleflow_group
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:454:5: ( ruleflow_group )=>a= ruleflow_group
                     {
-                    pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1059);
+                    pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1041);
                     a=ruleflow_group();
                     _fsp--;
                     if (failed) return d;
@@ -1634,7 +1638,20 @@
 
                     }
                     break;
+                case 11 :
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:455:5: a= lock_on_active
+                    {
+                    pushFollow(FOLLOW_lock_on_active_in_rule_attribute1051);
+                    a=lock_on_active();
+                    _fsp--;
+                    if (failed) return d;
+                    if ( backtracking==0 ) {
+                       d = a; 
+                    }
 
+                    }
+                    break;
+
             }
         }
         catch (RecognitionException re) {
@@ -1649,7 +1666,7 @@
 
 
     // $ANTLR start date_effective
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:458:1: date_effective returns [AttributeDescr d] : loc= DATE_EFFECTIVE val= STRING ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:459:1: date_effective returns [AttributeDescr d] : loc= DATE_EFFECTIVE val= STRING ;
     public AttributeDescr date_effective() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -1660,13 +1677,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:463:3: (loc= DATE_EFFECTIVE val= STRING )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:463:3: loc= DATE_EFFECTIVE val= STRING
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:464:3: (loc= DATE_EFFECTIVE val= STRING )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:464:3: loc= DATE_EFFECTIVE val= STRING
             {
             loc=(Token)input.LT(1);
-            match(input,DATE_EFFECTIVE,FOLLOW_DATE_EFFECTIVE_in_date_effective1091); if (failed) return d;
+            match(input,DATE_EFFECTIVE,FOLLOW_DATE_EFFECTIVE_in_date_effective1082); if (failed) return d;
             val=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_date_effective1095); if (failed) return d;
+            match(input,STRING,FOLLOW_STRING_in_date_effective1086); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new AttributeDescr( "date-effective", getString( val ) );
@@ -1691,7 +1708,7 @@
 
 
     // $ANTLR start date_expires
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:473:1: date_expires returns [AttributeDescr d] : loc= DATE_EXPIRES val= STRING ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:474:1: date_expires returns [AttributeDescr d] : loc= DATE_EXPIRES val= STRING ;
     public AttributeDescr date_expires() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -1702,13 +1719,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:478:3: (loc= DATE_EXPIRES val= STRING )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:478:3: loc= DATE_EXPIRES val= STRING
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:479:3: (loc= DATE_EXPIRES val= STRING )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:479:3: loc= DATE_EXPIRES val= STRING
             {
             loc=(Token)input.LT(1);
-            match(input,DATE_EXPIRES,FOLLOW_DATE_EXPIRES_in_date_expires1128); if (failed) return d;
+            match(input,DATE_EXPIRES,FOLLOW_DATE_EXPIRES_in_date_expires1119); if (failed) return d;
             val=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_date_expires1132); if (failed) return d;
+            match(input,STRING,FOLLOW_STRING_in_date_expires1123); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new AttributeDescr( "date-expires", getString( val ) );
@@ -1733,7 +1750,7 @@
 
 
     // $ANTLR start enabled
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:489:1: enabled returns [AttributeDescr d] : loc= ENABLED t= BOOL ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:490:1: enabled returns [AttributeDescr d] : loc= ENABLED t= BOOL ;
     public AttributeDescr enabled() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -1744,13 +1761,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:494:4: (loc= ENABLED t= BOOL )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:494:4: loc= ENABLED t= BOOL
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:495:4: (loc= ENABLED t= BOOL )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:495:4: loc= ENABLED t= BOOL
             {
             loc=(Token)input.LT(1);
-            match(input,ENABLED,FOLLOW_ENABLED_in_enabled1167); if (failed) return d;
+            match(input,ENABLED,FOLLOW_ENABLED_in_enabled1158); if (failed) return d;
             t=(Token)input.LT(1);
-            match(input,BOOL,FOLLOW_BOOL_in_enabled1171); if (failed) return d;
+            match(input,BOOL,FOLLOW_BOOL_in_enabled1162); if (failed) return d;
             if ( backtracking==0 ) {
               
               				d = new AttributeDescr( "enabled", t.getText() );
@@ -1775,7 +1792,7 @@
 
 
     // $ANTLR start salience
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:507:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:508:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
     public AttributeDescr salience() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -1786,13 +1803,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:512:3: (loc= SALIENCE i= INT )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:512:3: loc= SALIENCE i= INT
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:513:3: (loc= SALIENCE i= INT )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:513:3: loc= SALIENCE i= INT
             {
             loc=(Token)input.LT(1);
-            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience1216); if (failed) return d;
+            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience1207); if (failed) return d;
             i=(Token)input.LT(1);
-            match(input,INT,FOLLOW_INT_in_salience1220); if (failed) return d;
+            match(input,INT,FOLLOW_INT_in_salience1211); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new AttributeDescr( "salience", i.getText() );
@@ -1817,7 +1834,7 @@
 
 
     // $ANTLR start no_loop
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:521:1: no_loop returns [AttributeDescr d] : ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) );
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:522:1: no_loop returns [AttributeDescr d] : ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) );
     public AttributeDescr no_loop() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -1828,7 +1845,7 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:526:3: ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:527:3: ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) )
             int alt19=2;
             int LA19_0 = input.LA(1);
             if ( (LA19_0==NO_LOOP) ) {
@@ -1836,13 +1853,13 @@
                 if ( (LA19_1==BOOL) ) {
                     alt19=2;
                 }
-                else if ( (LA19_1==EOF||LA19_1==WHEN||LA19_1==DATE_EFFECTIVE||(LA19_1>=DATE_EXPIRES && LA19_1<=ENABLED)||LA19_1==SALIENCE||(LA19_1>=NO_LOOP && LA19_1<=DURATION)||LA19_1==THEN||LA19_1==65) ) {
+                else if ( (LA19_1==EOF||LA19_1==WHEN||LA19_1==DATE_EFFECTIVE||(LA19_1>=DATE_EXPIRES && LA19_1<=ENABLED)||LA19_1==SALIENCE||(LA19_1>=NO_LOOP && LA19_1<=LOCK_ON_ACTIVE)||LA19_1==THEN||LA19_1==66) ) {
                     alt19=1;
                 }
                 else {
                     if (backtracking>0) {failed=true; return d;}
                     NoViableAltException nvae =
-                        new NoViableAltException("521:1: no_loop returns [AttributeDescr d] : ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) );", 19, 1, input);
+                        new NoViableAltException("522:1: no_loop returns [AttributeDescr d] : ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) );", 19, 1, input);
 
                     throw nvae;
                 }
@@ -1850,19 +1867,19 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("521:1: no_loop returns [AttributeDescr d] : ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) );", 19, 0, input);
+                    new NoViableAltException("522:1: no_loop returns [AttributeDescr d] : ( ( ( NO_LOOP ) )=> (loc= NO_LOOP ) | (loc= NO_LOOP t= BOOL ) );", 19, 0, input);
 
                 throw nvae;
             }
             switch (alt19) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:526:3: ( ( NO_LOOP ) )=> (loc= NO_LOOP )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:527:3: ( ( NO_LOOP ) )=> (loc= NO_LOOP )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:526:3: (loc= NO_LOOP )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:527:4: loc= NO_LOOP
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:527:3: (loc= NO_LOOP )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:528:4: loc= NO_LOOP
                     {
                     loc=(Token)input.LT(1);
-                    match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1258); if (failed) return d;
+                    match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1249); if (failed) return d;
                     if ( backtracking==0 ) {
                       
                       				d = new AttributeDescr( "no-loop", "true" );
@@ -1878,15 +1895,15 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:536:3: (loc= NO_LOOP t= BOOL )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:537:3: (loc= NO_LOOP t= BOOL )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:536:3: (loc= NO_LOOP t= BOOL )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:537:4: loc= NO_LOOP t= BOOL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:537:3: (loc= NO_LOOP t= BOOL )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:538:4: loc= NO_LOOP t= BOOL
                     {
                     loc=(Token)input.LT(1);
-                    match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1286); if (failed) return d;
+                    match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1277); if (failed) return d;
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_no_loop1290); if (failed) return d;
+                    match(input,BOOL,FOLLOW_BOOL_in_no_loop1281); if (failed) return d;
                     if ( backtracking==0 ) {
                       
                       				d = new AttributeDescr( "no-loop", t.getText() );
@@ -1916,7 +1933,7 @@
 
 
     // $ANTLR start auto_focus
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:549:1: auto_focus returns [AttributeDescr d] : ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) );
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:550:1: auto_focus returns [AttributeDescr d] : ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) );
     public AttributeDescr auto_focus() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -1927,7 +1944,7 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:554:3: ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:555:3: ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) )
             int alt20=2;
             int LA20_0 = input.LA(1);
             if ( (LA20_0==AUTO_FOCUS) ) {
@@ -1935,13 +1952,13 @@
                 if ( (LA20_1==BOOL) ) {
                     alt20=2;
                 }
-                else if ( (LA20_1==EOF||LA20_1==WHEN||LA20_1==DATE_EFFECTIVE||(LA20_1>=DATE_EXPIRES && LA20_1<=ENABLED)||LA20_1==SALIENCE||(LA20_1>=NO_LOOP && LA20_1<=DURATION)||LA20_1==THEN||LA20_1==65) ) {
+                else if ( (LA20_1==EOF||LA20_1==WHEN||LA20_1==DATE_EFFECTIVE||(LA20_1>=DATE_EXPIRES && LA20_1<=ENABLED)||LA20_1==SALIENCE||(LA20_1>=NO_LOOP && LA20_1<=LOCK_ON_ACTIVE)||LA20_1==THEN||LA20_1==66) ) {
                     alt20=1;
                 }
                 else {
                     if (backtracking>0) {failed=true; return d;}
                     NoViableAltException nvae =
-                        new NoViableAltException("549:1: auto_focus returns [AttributeDescr d] : ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) );", 20, 1, input);
+                        new NoViableAltException("550:1: auto_focus returns [AttributeDescr d] : ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) );", 20, 1, input);
 
                     throw nvae;
                 }
@@ -1949,19 +1966,19 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("549:1: auto_focus returns [AttributeDescr d] : ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) );", 20, 0, input);
+                    new NoViableAltException("550:1: auto_focus returns [AttributeDescr d] : ( ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS ) | (loc= AUTO_FOCUS t= BOOL ) );", 20, 0, input);
 
                 throw nvae;
             }
             switch (alt20) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:554:3: ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:555:3: ( ( AUTO_FOCUS ) )=> (loc= AUTO_FOCUS )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:554:3: (loc= AUTO_FOCUS )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:555:4: loc= AUTO_FOCUS
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:555:3: (loc= AUTO_FOCUS )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:556:4: loc= AUTO_FOCUS
                     {
                     loc=(Token)input.LT(1);
-                    match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1339); if (failed) return d;
+                    match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1330); if (failed) return d;
                     if ( backtracking==0 ) {
                       
                       				d = new AttributeDescr( "auto-focus", "true" );
@@ -1977,15 +1994,15 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:564:3: (loc= AUTO_FOCUS t= BOOL )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:565:3: (loc= AUTO_FOCUS t= BOOL )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:564:3: (loc= AUTO_FOCUS t= BOOL )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:565:4: loc= AUTO_FOCUS t= BOOL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:565:3: (loc= AUTO_FOCUS t= BOOL )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:566:4: loc= AUTO_FOCUS t= BOOL
                     {
                     loc=(Token)input.LT(1);
-                    match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1367); if (failed) return d;
+                    match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1358); if (failed) return d;
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_auto_focus1371); if (failed) return d;
+                    match(input,BOOL,FOLLOW_BOOL_in_auto_focus1362); if (failed) return d;
                     if ( backtracking==0 ) {
                       
                       				d = new AttributeDescr( "auto-focus", t.getText() );
@@ -2015,7 +2032,7 @@
 
 
     // $ANTLR start activation_group
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:577:1: activation_group returns [AttributeDescr d] : loc= ACTIVATION_GROUP n= STRING ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:578:1: activation_group returns [AttributeDescr d] : loc= ACTIVATION_GROUP n= STRING ;
     public AttributeDescr activation_group() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -2026,13 +2043,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:582:3: (loc= ACTIVATION_GROUP n= STRING )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:582:3: loc= ACTIVATION_GROUP n= STRING
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:583:3: (loc= ACTIVATION_GROUP n= STRING )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:583:3: loc= ACTIVATION_GROUP n= STRING
             {
             loc=(Token)input.LT(1);
-            match(input,ACTIVATION_GROUP,FOLLOW_ACTIVATION_GROUP_in_activation_group1416); if (failed) return d;
+            match(input,ACTIVATION_GROUP,FOLLOW_ACTIVATION_GROUP_in_activation_group1407); if (failed) return d;
             n=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_activation_group1420); if (failed) return d;
+            match(input,STRING,FOLLOW_STRING_in_activation_group1411); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new AttributeDescr( "activation-group", getString( n ) );
@@ -2057,7 +2074,7 @@
 
 
     // $ANTLR start ruleflow_group
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:591:1: ruleflow_group returns [AttributeDescr d] : loc= RULEFLOW_GROUP n= STRING ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:592:1: ruleflow_group returns [AttributeDescr d] : loc= RULEFLOW_GROUP n= STRING ;
     public AttributeDescr ruleflow_group() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -2068,13 +2085,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:596:3: (loc= RULEFLOW_GROUP n= STRING )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:596:3: loc= RULEFLOW_GROUP n= STRING
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:597:3: (loc= RULEFLOW_GROUP n= STRING )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:597:3: loc= RULEFLOW_GROUP n= STRING
             {
             loc=(Token)input.LT(1);
-            match(input,RULEFLOW_GROUP,FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1452); if (failed) return d;
+            match(input,RULEFLOW_GROUP,FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1443); if (failed) return d;
             n=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_ruleflow_group1456); if (failed) return d;
+            match(input,STRING,FOLLOW_STRING_in_ruleflow_group1447); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new AttributeDescr( "ruleflow-group", getString( n ) );
@@ -2099,7 +2116,7 @@
 
 
     // $ANTLR start agenda_group
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:605:1: agenda_group returns [AttributeDescr d] : loc= AGENDA_GROUP n= STRING ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:606:1: agenda_group returns [AttributeDescr d] : loc= AGENDA_GROUP n= STRING ;
     public AttributeDescr agenda_group() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -2110,13 +2127,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:610:3: (loc= AGENDA_GROUP n= STRING )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:610:3: loc= AGENDA_GROUP n= STRING
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:611:3: (loc= AGENDA_GROUP n= STRING )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:611:3: loc= AGENDA_GROUP n= STRING
             {
             loc=(Token)input.LT(1);
-            match(input,AGENDA_GROUP,FOLLOW_AGENDA_GROUP_in_agenda_group1488); if (failed) return d;
+            match(input,AGENDA_GROUP,FOLLOW_AGENDA_GROUP_in_agenda_group1479); if (failed) return d;
             n=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_agenda_group1492); if (failed) return d;
+            match(input,STRING,FOLLOW_STRING_in_agenda_group1483); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new AttributeDescr( "agenda-group", getString( n ) );
@@ -2141,7 +2158,7 @@
 
 
     // $ANTLR start duration
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:620:1: duration returns [AttributeDescr d] : loc= DURATION i= INT ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:621:1: duration returns [AttributeDescr d] : loc= DURATION i= INT ;
     public AttributeDescr duration() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -2152,13 +2169,13 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:625:3: (loc= DURATION i= INT )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:625:3: loc= DURATION i= INT
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:626:3: (loc= DURATION i= INT )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:626:3: loc= DURATION i= INT
             {
             loc=(Token)input.LT(1);
-            match(input,DURATION,FOLLOW_DURATION_in_duration1527); if (failed) return d;
+            match(input,DURATION,FOLLOW_DURATION_in_duration1518); if (failed) return d;
             i=(Token)input.LT(1);
-            match(input,INT,FOLLOW_INT_in_duration1531); if (failed) return d;
+            match(input,INT,FOLLOW_INT_in_duration1522); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new AttributeDescr( "duration", i.getText() );
@@ -2182,31 +2199,130 @@
     // $ANTLR end duration
 
 
+    // $ANTLR start lock_on_active
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:637:1: lock_on_active returns [AttributeDescr d] : ( ( ( LOCK_ON_ACTIVE ) )=> (loc= LOCK_ON_ACTIVE ) | (loc= LOCK_ON_ACTIVE t= BOOL ) );
+    public AttributeDescr lock_on_active() throws RecognitionException {
+        AttributeDescr d = null;
+
+        Token loc=null;
+        Token t=null;
+
+        
+        		d = null;
+        	
+        try {
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:642:3: ( ( ( LOCK_ON_ACTIVE ) )=> (loc= LOCK_ON_ACTIVE ) | (loc= LOCK_ON_ACTIVE t= BOOL ) )
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+            if ( (LA21_0==LOCK_ON_ACTIVE) ) {
+                int LA21_1 = input.LA(2);
+                if ( (LA21_1==BOOL) ) {
+                    alt21=2;
+                }
+                else if ( (LA21_1==EOF||LA21_1==WHEN||LA21_1==DATE_EFFECTIVE||(LA21_1>=DATE_EXPIRES && LA21_1<=ENABLED)||LA21_1==SALIENCE||(LA21_1>=NO_LOOP && LA21_1<=LOCK_ON_ACTIVE)||LA21_1==THEN||LA21_1==66) ) {
+                    alt21=1;
+                }
+                else {
+                    if (backtracking>0) {failed=true; return d;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("637:1: lock_on_active returns [AttributeDescr d] : ( ( ( LOCK_ON_ACTIVE ) )=> (loc= LOCK_ON_ACTIVE ) | (loc= LOCK_ON_ACTIVE t= BOOL ) );", 21, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (backtracking>0) {failed=true; return d;}
+                NoViableAltException nvae =
+                    new NoViableAltException("637:1: lock_on_active returns [AttributeDescr d] : ( ( ( LOCK_ON_ACTIVE ) )=> (loc= LOCK_ON_ACTIVE ) | (loc= LOCK_ON_ACTIVE t= BOOL ) );", 21, 0, input);
+
+                throw nvae;
+            }
+            switch (alt21) {
+                case 1 :
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:642:3: ( ( LOCK_ON_ACTIVE ) )=> (loc= LOCK_ON_ACTIVE )
+                    {
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:642:3: (loc= LOCK_ON_ACTIVE )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:643:4: loc= LOCK_ON_ACTIVE
+                    {
+                    loc=(Token)input.LT(1);
+                    match(input,LOCK_ON_ACTIVE,FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1564); if (failed) return d;
+                    if ( backtracking==0 ) {
+                      
+                      				d = new AttributeDescr( "lock-on-active", "true" );
+                      				d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+                      				d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+                      				d.setEndCharacter( ((CommonToken)loc).getStopIndex() );
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:652:3: (loc= LOCK_ON_ACTIVE t= BOOL )
+                    {
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:652:3: (loc= LOCK_ON_ACTIVE t= BOOL )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:653:4: loc= LOCK_ON_ACTIVE t= BOOL
+                    {
+                    loc=(Token)input.LT(1);
+                    match(input,LOCK_ON_ACTIVE,FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1592); if (failed) return d;
+                    t=(Token)input.LT(1);
+                    match(input,BOOL,FOLLOW_BOOL_in_lock_on_active1596); if (failed) return d;
+                    if ( backtracking==0 ) {
+                      
+                      				d = new AttributeDescr( "lock-on-active", t.getText() );
+                      				d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+                      				d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+                      				d.setEndCharacter( ((CommonToken)t).getStopIndex() );
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return d;
+    }
+    // $ANTLR end lock_on_active
+
+
     // $ANTLR start normal_lhs_block
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:635:1: normal_lhs_block[AndDescr descr] : ( ( lhs[descr] )=>d= lhs[descr] )* ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:665:1: normal_lhs_block[AndDescr descr] : ( ( lhs[descr] )=>d= lhs[descr] )* ;
     public void normal_lhs_block(AndDescr descr) throws RecognitionException {
         BaseDescr d = null;
 
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:637:3: ( ( ( lhs[descr] )=>d= lhs[descr] )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:637:3: ( ( lhs[descr] )=>d= lhs[descr] )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:667:3: ( ( ( lhs[descr] )=>d= lhs[descr] )* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:667:3: ( ( lhs[descr] )=>d= lhs[descr] )*
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:637:3: ( ( lhs[descr] )=>d= lhs[descr] )*
-            loop21:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:667:3: ( ( lhs[descr] )=>d= lhs[descr] )*
+            loop22:
             do {
-                int alt21=2;
-                int LA21_0 = input.LA(1);
-                if ( (LA21_0==ID||LA21_0==LEFT_PAREN||(LA21_0>=EXISTS && LA21_0<=FORALL)) ) {
-                    alt21=1;
+                int alt22=2;
+                int LA22_0 = input.LA(1);
+                if ( (LA22_0==ID||LA22_0==LEFT_PAREN||(LA22_0>=EXISTS && LA22_0<=FORALL)) ) {
+                    alt22=1;
                 }
 
 
-                switch (alt21) {
+                switch (alt22) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:637:5: ( lhs[descr] )=>d= lhs[descr]
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:667:5: ( lhs[descr] )=>d= lhs[descr]
             	    {
-            	    pushFollow(FOLLOW_lhs_in_normal_lhs_block1558);
+            	    pushFollow(FOLLOW_lhs_in_normal_lhs_block1634);
             	    d=lhs(descr);
             	    _fsp--;
             	    if (failed) return ;
@@ -2218,7 +2334,7 @@
             	    break;
 
             	default :
-            	    break loop21;
+            	    break loop22;
                 }
             } while (true);
 
@@ -2238,7 +2354,7 @@
 
 
     // $ANTLR start lhs
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:643:1: lhs[ConditionalElementDescr ce] returns [BaseDescr d] : l= lhs_or ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:673:1: lhs[ConditionalElementDescr ce] returns [BaseDescr d] : l= lhs_or ;
     public BaseDescr lhs(ConditionalElementDescr ce) throws RecognitionException {
         BaseDescr d = null;
 
@@ -2249,10 +2365,10 @@
         		d=null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:647:4: (l= lhs_or )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:647:4: l= lhs_or
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:677:4: (l= lhs_or )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:677:4: l= lhs_or
             {
-            pushFollow(FOLLOW_lhs_or_in_lhs1595);
+            pushFollow(FOLLOW_lhs_or_in_lhs1671);
             l=lhs_or();
             _fsp--;
             if (failed) return d;
@@ -2275,7 +2391,7 @@
 
 
     // $ANTLR start lhs_column
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:651:1: lhs_column returns [BaseDescr d] : ( ( fact_binding )=>f= fact_binding | f= fact );
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:681:1: lhs_column returns [BaseDescr d] : ( ( fact_binding )=>f= fact_binding | f= fact );
     public BaseDescr lhs_column() throws RecognitionException {
         BaseDescr d = null;
 
@@ -2286,21 +2402,21 @@
         		d=null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:655:4: ( ( fact_binding )=>f= fact_binding | f= fact )
-            int alt22=2;
-            int LA22_0 = input.LA(1);
-            if ( (LA22_0==ID) ) {
-                int LA22_1 = input.LA(2);
-                if ( (LA22_1==66) ) {
-                    alt22=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:685:4: ( ( fact_binding )=>f= fact_binding | f= fact )
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+            if ( (LA23_0==ID) ) {
+                int LA23_1 = input.LA(2);
+                if ( (LA23_1==67) ) {
+                    alt23=1;
                 }
-                else if ( (LA22_1==LEFT_PAREN||LA22_1==LEFT_SQUARE||LA22_1==63) ) {
-                    alt22=2;
+                else if ( (LA23_1==LEFT_PAREN||LA23_1==LEFT_SQUARE||LA23_1==64) ) {
+                    alt23=2;
                 }
                 else {
                     if (backtracking>0) {failed=true; return d;}
                     NoViableAltException nvae =
-                        new NoViableAltException("651:1: lhs_column returns [BaseDescr d] : ( ( fact_binding )=>f= fact_binding | f= fact );", 22, 1, input);
+                        new NoViableAltException("681:1: lhs_column returns [BaseDescr d] : ( ( fact_binding )=>f= fact_binding | f= fact );", 23, 1, input);
 
                     throw nvae;
                 }
@@ -2308,15 +2424,15 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("651:1: lhs_column returns [BaseDescr d] : ( ( fact_binding )=>f= fact_binding | f= fact );", 22, 0, input);
+                    new NoViableAltException("681:1: lhs_column returns [BaseDescr d] : ( ( fact_binding )=>f= fact_binding | f= fact );", 23, 0, input);
 
                 throw nvae;
             }
-            switch (alt22) {
+            switch (alt23) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:655:4: ( fact_binding )=>f= fact_binding
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:685:4: ( fact_binding )=>f= fact_binding
                     {
-                    pushFollow(FOLLOW_fact_binding_in_lhs_column1623);
+                    pushFollow(FOLLOW_fact_binding_in_lhs_column1699);
                     f=fact_binding();
                     _fsp--;
                     if (failed) return d;
@@ -2327,9 +2443,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:656:4: f= fact
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:686:4: f= fact
                     {
-                    pushFollow(FOLLOW_fact_in_lhs_column1632);
+                    pushFollow(FOLLOW_fact_in_lhs_column1708);
                     f=fact();
                     _fsp--;
                     if (failed) return d;
@@ -2354,7 +2470,7 @@
 
 
     // $ANTLR start from_statement
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:659:1: from_statement returns [FromDescr d] : ds= from_source[d] ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:689:1: from_statement returns [FromDescr d] : ds= from_source[d] ;
     public FromDescr from_statement() throws RecognitionException {
         FromDescr d = null;
 
@@ -2365,10 +2481,10 @@
         		d=factory.createFrom();
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:664:2: (ds= from_source[d] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:664:2: ds= from_source[d]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:694:2: (ds= from_source[d] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:694:2: ds= from_source[d]
             {
-            pushFollow(FOLLOW_from_source_in_from_statement1659);
+            pushFollow(FOLLOW_from_source_in_from_statement1735);
             ds=from_source(d);
             _fsp--;
             if (failed) return d;
@@ -2394,7 +2510,7 @@
 
 
     // $ANTLR start from_source
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:674:1: from_source[FromDescr from] returns [DeclarativeInvokerDescr ds] : ident= identifier ( ( paren_chunk[from] )=>args= paren_chunk[from] )? ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )? ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:704:1: from_source[FromDescr from] returns [DeclarativeInvokerDescr ds] : ident= identifier ( ( paren_chunk[from] )=>args= paren_chunk[from] )? ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )? ;
     public DeclarativeInvokerDescr from_source(FromDescr from) throws RecognitionException {
         DeclarativeInvokerDescr ds = null;
 
@@ -2408,10 +2524,10 @@
         		AccessorDescr ad = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:680:3: (ident= identifier ( ( paren_chunk[from] )=>args= paren_chunk[from] )? ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )? )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:680:3: ident= identifier ( ( paren_chunk[from] )=>args= paren_chunk[from] )? ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:710:3: (ident= identifier ( ( paren_chunk[from] )=>args= paren_chunk[from] )? ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )? )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:710:3: ident= identifier ( ( paren_chunk[from] )=>args= paren_chunk[from] )? ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )?
             {
-            pushFollow(FOLLOW_identifier_in_from_source1701);
+            pushFollow(FOLLOW_identifier_in_from_source1777);
             ident=identifier();
             _fsp--;
             if (failed) return ds;
@@ -2424,19 +2540,19 @@
               			ds = ad;
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:688:3: ( ( paren_chunk[from] )=>args= paren_chunk[from] )?
-            int alt23=2;
-            int LA23_0 = input.LA(1);
-            if ( (LA23_0==LEFT_PAREN) ) {
-                if ( (synpred36()) ) {
-                    alt23=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:718:3: ( ( paren_chunk[from] )=>args= paren_chunk[from] )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+            if ( (LA24_0==LEFT_PAREN) ) {
+                if ( (synpred38()) ) {
+                    alt24=1;
                 }
             }
-            switch (alt23) {
+            switch (alt24) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:688:4: ( paren_chunk[from] )=>args= paren_chunk[from]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:718:4: ( paren_chunk[from] )=>args= paren_chunk[from]
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_from_source1712);
+                    pushFollow(FOLLOW_paren_chunk_in_from_source1788);
                     args=paren_chunk(from);
                     _fsp--;
                     if (failed) return ds;
@@ -2459,17 +2575,17 @@
 
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:701:3: ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )?
-            int alt24=2;
-            int LA24_0 = input.LA(1);
-            if ( (LA24_0==63) ) {
-                alt24=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:731:3: ( ( expression_chain[from, ad] )=> expression_chain[from, ad] )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+            if ( (LA25_0==64) ) {
+                alt25=1;
             }
-            switch (alt24) {
+            switch (alt25) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( expression_chain[from, ad] )=> expression_chain[from, ad]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( expression_chain[from, ad] )=> expression_chain[from, ad]
                     {
-                    pushFollow(FOLLOW_expression_chain_in_from_source1726);
+                    pushFollow(FOLLOW_expression_chain_in_from_source1802);
                     expression_chain(from,  ad);
                     _fsp--;
                     if (failed) return ds;
@@ -2495,7 +2611,7 @@
 
 
     // $ANTLR start expression_chain
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:704:1: expression_chain[FromDescr from, AccessorDescr as] : ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:734:1: expression_chain[FromDescr from, AccessorDescr as] : ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? ) ;
     public void expression_chain(FromDescr from, AccessorDescr as) throws RecognitionException {
         Token field = null;
 
@@ -2509,14 +2625,14 @@
         	    	MethodAccessDescr ma = null;	
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:710:2: ( ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:710:2: ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:740:2: ( ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:740:2: ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:710:2: ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:710:4: '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:740:2: ( '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )? )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:740:4: '.' field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )? ( ( expression_chain[from, as] )=> expression_chain[from, as] )?
             {
-            match(input,63,FOLLOW_63_in_expression_chain1751); if (failed) return ;
-            pushFollow(FOLLOW_identifier_in_expression_chain1755);
+            match(input,64,FOLLOW_64_in_expression_chain1827); if (failed) return ;
+            pushFollow(FOLLOW_identifier_in_expression_chain1831);
             field=identifier();
             _fsp--;
             if (failed) return ;
@@ -2528,22 +2644,22 @@
               		fa.setEndCharacter( ((CommonToken)field).getStopIndex() );
               	    
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:717:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )?
-            int alt25=3;
-            int LA25_0 = input.LA(1);
-            if ( (LA25_0==LEFT_SQUARE) ) {
-                alt25=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:747:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk[from] | ( LEFT_PAREN )=>paarg= paren_chunk[from] )?
+            int alt26=3;
+            int LA26_0 = input.LA(1);
+            if ( (LA26_0==LEFT_SQUARE) ) {
+                alt26=1;
             }
-            else if ( (LA25_0==LEFT_PAREN) ) {
-                if ( (synpred39()) ) {
-                    alt25=2;
+            else if ( (LA26_0==LEFT_PAREN) ) {
+                if ( (synpred41()) ) {
+                    alt26=2;
                 }
             }
-            switch (alt25) {
+            switch (alt26) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:718:6: ( LEFT_SQUARE )=>sqarg= square_chunk[from]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:748:6: ( LEFT_SQUARE )=>sqarg= square_chunk[from]
                     {
-                    pushFollow(FOLLOW_square_chunk_in_expression_chain1786);
+                    pushFollow(FOLLOW_square_chunk_in_expression_chain1862);
                     sqarg=square_chunk(from);
                     _fsp--;
                     if (failed) return ;
@@ -2556,9 +2672,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:723:6: ( LEFT_PAREN )=>paarg= paren_chunk[from]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:753:6: ( LEFT_PAREN )=>paarg= paren_chunk[from]
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_expression_chain1820);
+                    pushFollow(FOLLOW_paren_chunk_in_expression_chain1896);
                     paarg=paren_chunk(from);
                     _fsp--;
                     if (failed) return ;
@@ -2584,17 +2700,17 @@
               	      }
               	  
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:737:4: ( ( expression_chain[from, as] )=> expression_chain[from, as] )?
-            int alt26=2;
-            int LA26_0 = input.LA(1);
-            if ( (LA26_0==63) ) {
-                alt26=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:767:4: ( ( expression_chain[from, as] )=> expression_chain[from, as] )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+            if ( (LA27_0==64) ) {
+                alt27=1;
             }
-            switch (alt26) {
+            switch (alt27) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( expression_chain[from, as] )=> expression_chain[from, as]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:0:0: ( expression_chain[from, as] )=> expression_chain[from, as]
                     {
-                    pushFollow(FOLLOW_expression_chain_in_expression_chain1841);
+                    pushFollow(FOLLOW_expression_chain_in_expression_chain1917);
                     expression_chain(from,  as);
                     _fsp--;
                     if (failed) return ;
@@ -2623,7 +2739,7 @@
 
 
     // $ANTLR start accumulate_statement
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:741:1: accumulate_statement returns [AccumulateDescr d] : loc= ACCUMULATE '(' column= lhs_column ',' INIT text= paren_chunk[null] ',' ACTION text= paren_chunk[null] ',' RESULT text= paren_chunk[null] loc= ')' ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:771:1: accumulate_statement returns [AccumulateDescr d] : loc= ACCUMULATE '(' column= lhs_column ',' INIT text= paren_chunk[null] ',' ACTION text= paren_chunk[null] ',' RESULT text= paren_chunk[null] loc= ')' ;
     public AccumulateDescr accumulate_statement() throws RecognitionException {
         AccumulateDescr d = null;
 
@@ -2637,57 +2753,57 @@
         		d = factory.createAccumulate();
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:746:10: (loc= ACCUMULATE '(' column= lhs_column ',' INIT text= paren_chunk[null] ',' ACTION text= paren_chunk[null] ',' RESULT text= paren_chunk[null] loc= ')' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:746:10: loc= ACCUMULATE '(' column= lhs_column ',' INIT text= paren_chunk[null] ',' ACTION text= paren_chunk[null] ',' RESULT text= paren_chunk[null] loc= ')'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:776:10: (loc= ACCUMULATE '(' column= lhs_column ',' INIT text= paren_chunk[null] ',' ACTION text= paren_chunk[null] ',' RESULT text= paren_chunk[null] loc= ')' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:776:10: loc= ACCUMULATE '(' column= lhs_column ',' INIT text= paren_chunk[null] ',' ACTION text= paren_chunk[null] ',' RESULT text= paren_chunk[null] loc= ')'
             {
             loc=(Token)input.LT(1);
-            match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement1882); if (failed) return d;
+            match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement1958); if (failed) return d;
             if ( backtracking==0 ) {
                
               			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
               			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		
             }
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement1892); if (failed) return d;
-            pushFollow(FOLLOW_lhs_column_in_accumulate_statement1896);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement1968); if (failed) return d;
+            pushFollow(FOLLOW_lhs_column_in_accumulate_statement1972);
             column=lhs_column();
             _fsp--;
             if (failed) return d;
-            match(input,65,FOLLOW_65_in_accumulate_statement1898); if (failed) return d;
+            match(input,66,FOLLOW_66_in_accumulate_statement1974); if (failed) return d;
             if ( backtracking==0 ) {
               
               		        d.setSourceColumn( (ColumnDescr)column );
               		
             }
-            match(input,INIT,FOLLOW_INIT_in_accumulate_statement1907); if (failed) return d;
-            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement1911);
+            match(input,INIT,FOLLOW_INIT_in_accumulate_statement1983); if (failed) return d;
+            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement1987);
             text=paren_chunk(null);
             _fsp--;
             if (failed) return d;
-            match(input,65,FOLLOW_65_in_accumulate_statement1914); if (failed) return d;
+            match(input,66,FOLLOW_66_in_accumulate_statement1990); if (failed) return d;
             if ( backtracking==0 ) {
               
               		        d.setInitCode( text.substring(1, text.length()-1) );
               		
             }
-            match(input,ACTION,FOLLOW_ACTION_in_accumulate_statement1923); if (failed) return d;
-            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement1927);
+            match(input,ACTION,FOLLOW_ACTION_in_accumulate_statement1999); if (failed) return d;
+            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2003);
             text=paren_chunk(null);
             _fsp--;
             if (failed) return d;
-            match(input,65,FOLLOW_65_in_accumulate_statement1930); if (failed) return d;
+            match(input,66,FOLLOW_66_in_accumulate_statement2006); if (failed) return d;
             if ( backtracking==0 ) {
               
               		        d.setActionCode( text.substring(1, text.length()-1) );
               		
             }
-            match(input,RESULT,FOLLOW_RESULT_in_accumulate_statement1939); if (failed) return d;
-            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement1943);
+            match(input,RESULT,FOLLOW_RESULT_in_accumulate_statement2015); if (failed) return d;
+            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2019);
             text=paren_chunk(null);
             _fsp--;
             if (failed) return d;
             loc=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement1948); if (failed) return d;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement2024); if (failed) return d;
             if ( backtracking==0 ) {
               
               		        d.setResultCode( text.substring(1, text.length()-1) );
@@ -2710,7 +2826,7 @@
 
 
     // $ANTLR start collect_statement
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:770:1: collect_statement returns [CollectDescr d] : loc= COLLECT '(' column= lhs_column loc= ')' ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:800:1: collect_statement returns [CollectDescr d] : loc= COLLECT '(' column= lhs_column loc= ')' ;
     public CollectDescr collect_statement() throws RecognitionException {
         CollectDescr d = null;
 
@@ -2722,24 +2838,24 @@
         		d = factory.createCollect();
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:775:10: (loc= COLLECT '(' column= lhs_column loc= ')' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:775:10: loc= COLLECT '(' column= lhs_column loc= ')'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:805:10: (loc= COLLECT '(' column= lhs_column loc= ')' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:805:10: loc= COLLECT '(' column= lhs_column loc= ')'
             {
             loc=(Token)input.LT(1);
-            match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement1991); if (failed) return d;
+            match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement2067); if (failed) return d;
             if ( backtracking==0 ) {
                
               			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
               			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		
             }
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement2001); if (failed) return d;
-            pushFollow(FOLLOW_lhs_column_in_collect_statement2005);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement2077); if (failed) return d;
+            pushFollow(FOLLOW_lhs_column_in_collect_statement2081);
             column=lhs_column();
             _fsp--;
             if (failed) return d;
             loc=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement2009); if (failed) return d;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement2085); if (failed) return d;
             if ( backtracking==0 ) {
               
               		        d.setSourceColumn( (ColumnDescr)column );
@@ -2762,7 +2878,7 @@
 
 
     // $ANTLR start fact_binding
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:787:1: fact_binding returns [BaseDescr d] : id= ID ':' fe= fact_expression[id.getText()] ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:817:1: fact_binding returns [BaseDescr d] : id= ID ':' fe= fact_expression[id.getText()] ;
     public BaseDescr fact_binding() throws RecognitionException {
         BaseDescr d = null;
 
@@ -2775,12 +2891,12 @@
         		boolean multi=false;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:793:4: (id= ID ':' fe= fact_expression[id.getText()] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:793:4: id= ID ':' fe= fact_expression[id.getText()]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:823:4: (id= ID ':' fe= fact_expression[id.getText()] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:823:4: id= ID ':' fe= fact_expression[id.getText()]
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_fact_binding2043); if (failed) return d;
-            match(input,66,FOLLOW_66_in_fact_binding2045); if (failed) return d;
+            match(input,ID,FOLLOW_ID_in_fact_binding2119); if (failed) return d;
+            match(input,67,FOLLOW_67_in_fact_binding2121); if (failed) return d;
             if ( backtracking==0 ) {
               
                		        // handling incomplete parsing
@@ -2788,7 +2904,7 @@
                		        ((ColumnDescr) d).setIdentifier( id.getText() );
                		
             }
-            pushFollow(FOLLOW_fact_expression_in_fact_binding2058);
+            pushFollow(FOLLOW_fact_expression_in_fact_binding2134);
             fe=fact_expression(id.getText());
             _fsp--;
             if (failed) return d;
@@ -2817,7 +2933,7 @@
 
 
     // $ANTLR start fact_expression
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:809:2: fact_expression[String id] returns [BaseDescr pd] : ( ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')' | f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )* );
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:839:2: fact_expression[String id] returns [BaseDescr pd] : ( ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')' | f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )* );
     public BaseDescr fact_expression(String id) throws RecognitionException {
         BaseDescr pd = null;
 
@@ -2831,32 +2947,32 @@
          		boolean multi = false;
          	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:814:5: ( ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')' | f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )* )
-            int alt28=2;
-            int LA28_0 = input.LA(1);
-            if ( (LA28_0==LEFT_PAREN) ) {
-                alt28=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:844:5: ( ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')' | f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )* )
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+            if ( (LA29_0==LEFT_PAREN) ) {
+                alt29=1;
             }
-            else if ( (LA28_0==ID) ) {
-                alt28=2;
+            else if ( (LA29_0==ID) ) {
+                alt29=2;
             }
             else {
                 if (backtracking>0) {failed=true; return pd;}
                 NoViableAltException nvae =
-                    new NoViableAltException("809:2: fact_expression[String id] returns [BaseDescr pd] : ( ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')' | f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )* );", 28, 0, input);
+                    new NoViableAltException("839:2: fact_expression[String id] returns [BaseDescr pd] : ( ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')' | f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )* );", 29, 0, input);
 
                 throw nvae;
             }
-            switch (alt28) {
+            switch (alt29) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:814:5: ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:844:5: ( '(' fact_expression[id] ')' )=> '(' fe= fact_expression[id] ')'
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_expression2090); if (failed) return pd;
-                    pushFollow(FOLLOW_fact_expression_in_fact_expression2094);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_expression2166); if (failed) return pd;
+                    pushFollow(FOLLOW_fact_expression_in_fact_expression2170);
                     fe=fact_expression(id);
                     _fsp--;
                     if (failed) return pd;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_expression2097); if (failed) return pd;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_expression2173); if (failed) return pd;
                     if ( backtracking==0 ) {
                        pd=fe; 
                     }
@@ -2864,9 +2980,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:815:6: f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )*
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:845:6: f= fact ( ( (OR|'||') fact )=> (OR|'||')f= fact )*
                     {
-                    pushFollow(FOLLOW_fact_in_fact_expression2108);
+                    pushFollow(FOLLOW_fact_in_fact_expression2184);
                     f=fact();
                     _fsp--;
                     if (failed) return pd;
@@ -2876,25 +2992,25 @@
                        			pd = f;
                        		
                     }
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:820:4: ( ( (OR|'||') fact )=> (OR|'||')f= fact )*
-                    loop27:
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:850:4: ( ( (OR|'||') fact )=> (OR|'||')f= fact )*
+                    loop28:
                     do {
-                        int alt27=2;
-                        int LA27_0 = input.LA(1);
-                        if ( (LA27_0==OR||LA27_0==67) ) {
-                            if ( (synpred42()) ) {
-                                alt27=1;
+                        int alt28=2;
+                        int LA28_0 = input.LA(1);
+                        if ( (LA28_0==OR||LA28_0==68) ) {
+                            if ( (synpred44()) ) {
+                                alt28=1;
                             }
 
 
                         }
 
 
-                        switch (alt27) {
+                        switch (alt28) {
                     	case 1 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:820:6: ( (OR|'||') fact )=> (OR|'||')f= fact
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:850:6: ( (OR|'||') fact )=> (OR|'||')f= fact
                     	    {
-                    	    if ( input.LA(1)==OR||input.LA(1)==67 ) {
+                    	    if ( input.LA(1)==OR||input.LA(1)==68 ) {
                     	        input.consume();
                     	        errorRecovery=false;failed=false;
                     	    }
@@ -2902,7 +3018,7 @@
                     	        if (backtracking>0) {failed=true; return pd;}
                     	        MismatchedSetException mse =
                     	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_expression2121);    throw mse;
+                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_expression2197);    throw mse;
                     	    }
 
                     	    if ( backtracking==0 ) {
@@ -2914,7 +3030,7 @@
                     	       				}
                     	       			
                     	    }
-                    	    pushFollow(FOLLOW_fact_in_fact_expression2138);
+                    	    pushFollow(FOLLOW_fact_in_fact_expression2214);
                     	    f=fact();
                     	    _fsp--;
                     	    if (failed) return pd;
@@ -2929,7 +3045,7 @@
                     	    break;
 
                     	default :
-                    	    break loop27;
+                    	    break loop28;
                         }
                     } while (true);
 
@@ -2951,7 +3067,7 @@
 
 
     // $ANTLR start fact
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:836:1: fact returns [BaseDescr d] : id= dotted_name[d] loc= LEFT_PAREN ( ( constraints[column] )=> constraints[column] )? endLoc= RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:866:1: fact returns [BaseDescr d] : id= dotted_name[d] loc= LEFT_PAREN ( ( constraints[column] )=> constraints[column] )? endLoc= RIGHT_PAREN ;
     public BaseDescr fact() throws RecognitionException {
         BaseDescr d = null;
 
@@ -2965,8 +3081,8 @@
         		ColumnDescr column = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:842:11: (id= dotted_name[d] loc= LEFT_PAREN ( ( constraints[column] )=> constraints[column] )? endLoc= RIGHT_PAREN )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:842:11: id= dotted_name[d] loc= LEFT_PAREN ( ( constraints[column] )=> constraints[column] )? endLoc= RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:872:11: (id= dotted_name[d] loc= LEFT_PAREN ( ( constraints[column] )=> constraints[column] )? endLoc= RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:872:11: id= dotted_name[d] loc= LEFT_PAREN ( ( constraints[column] )=> constraints[column] )? endLoc= RIGHT_PAREN
             {
             if ( backtracking==0 ) {
               
@@ -2974,7 +3090,7 @@
                			d = column; 
                	        
             }
-            pushFollow(FOLLOW_dotted_name_in_fact2199);
+            pushFollow(FOLLOW_dotted_name_in_fact2275);
             id=dotted_name(d);
             _fsp--;
             if (failed) return d;
@@ -2985,24 +3101,24 @@
                		
             }
             loc=(Token)input.LT(1);
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact2213); if (failed) return d;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact2289); if (failed) return d;
             if ( backtracking==0 ) {
               
                				column.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
                			        column.setLeftParentCharacter( ((CommonToken)loc).getStartIndex() );
                			
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:855:4: ( ( constraints[column] )=> constraints[column] )?
-            int alt29=2;
-            int LA29_0 = input.LA(1);
-            if ( ((LA29_0>=PACKAGE && LA29_0<=ATTRIBUTES)||LA29_0==ENABLED||LA29_0==SALIENCE||(LA29_0>=DURATION && LA29_0<=LEFT_PAREN)||(LA29_0>=CONTAINS && LA29_0<=EXCLUDES)||LA29_0==NULL||(LA29_0>=AND && LA29_0<=THEN)) ) {
-                alt29=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:885:4: ( ( constraints[column] )=> constraints[column] )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+            if ( ((LA30_0>=PACKAGE && LA30_0<=ATTRIBUTES)||LA30_0==ENABLED||LA30_0==SALIENCE||LA30_0==DURATION||(LA30_0>=ACCUMULATE && LA30_0<=LEFT_PAREN)||(LA30_0>=CONTAINS && LA30_0<=EXCLUDES)||LA30_0==NULL||(LA30_0>=AND && LA30_0<=THEN)) ) {
+                alt30=1;
             }
-            switch (alt29) {
+            switch (alt30) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:855:6: ( constraints[column] )=> constraints[column]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:885:6: ( constraints[column] )=> constraints[column]
                     {
-                    pushFollow(FOLLOW_constraints_in_fact2223);
+                    pushFollow(FOLLOW_constraints_in_fact2299);
                     constraints(column);
                     _fsp--;
                     if (failed) return d;
@@ -3013,7 +3129,7 @@
             }
 
             endLoc=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact2236); if (failed) return d;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact2312); if (failed) return d;
             if ( backtracking==0 ) {
               
               		        if( endLoc.getType() == RIGHT_PAREN ) {
@@ -3039,33 +3155,33 @@
 
 
     // $ANTLR start constraints
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:867:1: constraints[ColumnDescr column] : ( ( constraint[column] )=> constraint[column] | predicate[column] ) ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )* ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:897:1: constraints[ColumnDescr column] : ( ( constraint[column] )=> constraint[column] | predicate[column] ) ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )* ;
     public void constraints(ColumnDescr column) throws RecognitionException {
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:868:4: ( ( ( constraint[column] )=> constraint[column] | predicate[column] ) ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:868:4: ( ( constraint[column] )=> constraint[column] | predicate[column] ) ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:898:4: ( ( ( constraint[column] )=> constraint[column] | predicate[column] ) ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:898:4: ( ( constraint[column] )=> constraint[column] | predicate[column] ) ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )*
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:868:4: ( ( constraint[column] )=> constraint[column] | predicate[column] )
-            int alt30=2;
-            int LA30_0 = input.LA(1);
-            if ( ((LA30_0>=PACKAGE && LA30_0<=ATTRIBUTES)||LA30_0==ENABLED||LA30_0==SALIENCE||(LA30_0>=DURATION && LA30_0<=OR)||(LA30_0>=CONTAINS && LA30_0<=EXCLUDES)||LA30_0==NULL||(LA30_0>=AND && LA30_0<=THEN)) ) {
-                alt30=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:898:4: ( ( constraint[column] )=> constraint[column] | predicate[column] )
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+            if ( ((LA31_0>=PACKAGE && LA31_0<=ATTRIBUTES)||LA31_0==ENABLED||LA31_0==SALIENCE||LA31_0==DURATION||(LA31_0>=ACCUMULATE && LA31_0<=OR)||(LA31_0>=CONTAINS && LA31_0<=EXCLUDES)||LA31_0==NULL||(LA31_0>=AND && LA31_0<=THEN)) ) {
+                alt31=1;
             }
-            else if ( (LA30_0==LEFT_PAREN) ) {
-                alt30=2;
+            else if ( (LA31_0==LEFT_PAREN) ) {
+                alt31=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("868:4: ( ( constraint[column] )=> constraint[column] | predicate[column] )", 30, 0, input);
+                    new NoViableAltException("898:4: ( ( constraint[column] )=> constraint[column] | predicate[column] )", 31, 0, input);
 
                 throw nvae;
             }
-            switch (alt30) {
+            switch (alt31) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:868:5: ( constraint[column] )=> constraint[column]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:898:5: ( constraint[column] )=> constraint[column]
                     {
-                    pushFollow(FOLLOW_constraint_in_constraints2257);
+                    pushFollow(FOLLOW_constraint_in_constraints2333);
                     constraint(column);
                     _fsp--;
                     if (failed) return ;
@@ -3073,9 +3189,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:868:24: predicate[column]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:898:24: predicate[column]
                     {
-                    pushFollow(FOLLOW_predicate_in_constraints2260);
+                    pushFollow(FOLLOW_predicate_in_constraints2336);
                     predicate(column);
                     _fsp--;
                     if (failed) return ;
@@ -3085,42 +3201,42 @@
 
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:869:3: ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )*
-            loop32:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:899:3: ( ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )*
+            loop33:
             do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
-                if ( (LA32_0==65) ) {
-                    alt32=1;
+                int alt33=2;
+                int LA33_0 = input.LA(1);
+                if ( (LA33_0==66) ) {
+                    alt33=1;
                 }
 
 
-                switch (alt32) {
+                switch (alt33) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:869:5: ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] )
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:899:5: ( ',' ( ( constraint[column] )=> constraint[column] | predicate[column] ) )=> ',' ( ( constraint[column] )=> constraint[column] | predicate[column] )
             	    {
-            	    match(input,65,FOLLOW_65_in_constraints2268); if (failed) return ;
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:869:9: ( ( constraint[column] )=> constraint[column] | predicate[column] )
-            	    int alt31=2;
-            	    int LA31_0 = input.LA(1);
-            	    if ( ((LA31_0>=PACKAGE && LA31_0<=ATTRIBUTES)||LA31_0==ENABLED||LA31_0==SALIENCE||(LA31_0>=DURATION && LA31_0<=OR)||(LA31_0>=CONTAINS && LA31_0<=EXCLUDES)||LA31_0==NULL||(LA31_0>=AND && LA31_0<=THEN)) ) {
-            	        alt31=1;
+            	    match(input,66,FOLLOW_66_in_constraints2344); if (failed) return ;
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:899:9: ( ( constraint[column] )=> constraint[column] | predicate[column] )
+            	    int alt32=2;
+            	    int LA32_0 = input.LA(1);
+            	    if ( ((LA32_0>=PACKAGE && LA32_0<=ATTRIBUTES)||LA32_0==ENABLED||LA32_0==SALIENCE||LA32_0==DURATION||(LA32_0>=ACCUMULATE && LA32_0<=OR)||(LA32_0>=CONTAINS && LA32_0<=EXCLUDES)||LA32_0==NULL||(LA32_0>=AND && LA32_0<=THEN)) ) {
+            	        alt32=1;
             	    }
-            	    else if ( (LA31_0==LEFT_PAREN) ) {
-            	        alt31=2;
+            	    else if ( (LA32_0==LEFT_PAREN) ) {
+            	        alt32=2;
             	    }
             	    else {
             	        if (backtracking>0) {failed=true; return ;}
             	        NoViableAltException nvae =
-            	            new NoViableAltException("869:9: ( ( constraint[column] )=> constraint[column] | predicate[column] )", 31, 0, input);
+            	            new NoViableAltException("899:9: ( ( constraint[column] )=> constraint[column] | predicate[column] )", 32, 0, input);
 
             	        throw nvae;
             	    }
-            	    switch (alt31) {
+            	    switch (alt32) {
             	        case 1 :
-            	            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:869:10: ( constraint[column] )=> constraint[column]
+            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:899:10: ( constraint[column] )=> constraint[column]
             	            {
-            	            pushFollow(FOLLOW_constraint_in_constraints2271);
+            	            pushFollow(FOLLOW_constraint_in_constraints2347);
             	            constraint(column);
             	            _fsp--;
             	            if (failed) return ;
@@ -3128,9 +3244,9 @@
             	            }
             	            break;
             	        case 2 :
-            	            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:869:29: predicate[column]
+            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:899:29: predicate[column]
             	            {
-            	            pushFollow(FOLLOW_predicate_in_constraints2274);
+            	            pushFollow(FOLLOW_predicate_in_constraints2350);
             	            predicate(column);
             	            _fsp--;
             	            if (failed) return ;
@@ -3145,7 +3261,7 @@
             	    break;
 
             	default :
-            	    break loop32;
+            	    break loop33;
                 }
             } while (true);
 
@@ -3165,7 +3281,7 @@
 
 
     // $ANTLR start constraint
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:872:1: constraint[ColumnDescr column] : ( ( ID ':' )=>fb= ID ':' )? f= identifier ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )? ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:902:1: constraint[ColumnDescr column] : ( ( ID ':' )=>fb= ID ':' )? f= identifier ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )? ;
     public void constraint(ColumnDescr column) throws RecognitionException {
         Token fb=null;
         Token con=null;
@@ -3179,25 +3295,25 @@
         		FieldConstraintDescr fc = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:878:3: ( ( ( ID ':' )=>fb= ID ':' )? f= identifier ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )? )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:878:3: ( ( ID ':' )=>fb= ID ':' )? f= identifier ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )?
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:908:3: ( ( ( ID ':' )=>fb= ID ':' )? f= identifier ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )? )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:908:3: ( ( ID ':' )=>fb= ID ':' )? f= identifier ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )?
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:878:3: ( ( ID ':' )=>fb= ID ':' )?
-            int alt33=2;
-            int LA33_0 = input.LA(1);
-            if ( (LA33_0==ID) ) {
-                int LA33_1 = input.LA(2);
-                if ( (LA33_1==66) ) {
-                    alt33=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:908:3: ( ( ID ':' )=>fb= ID ':' )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+            if ( (LA34_0==ID) ) {
+                int LA34_1 = input.LA(2);
+                if ( (LA34_1==67) ) {
+                    alt34=1;
                 }
             }
-            switch (alt33) {
+            switch (alt34) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:878:5: ( ID ':' )=>fb= ID ':'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:908:5: ( ID ':' )=>fb= ID ':'
                     {
                     fb=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_constraint2303); if (failed) return ;
-                    match(input,66,FOLLOW_66_in_constraint2305); if (failed) return ;
+                    match(input,ID,FOLLOW_ID_in_constraint2379); if (failed) return ;
+                    match(input,67,FOLLOW_67_in_constraint2381); if (failed) return ;
                     if ( backtracking==0 ) {
                        
                       			fbd = new FieldBindingDescr();
@@ -3214,7 +3330,7 @@
 
             }
 
-            pushFollow(FOLLOW_identifier_in_constraint2326);
+            pushFollow(FOLLOW_identifier_in_constraint2402);
             f=identifier();
             _fsp--;
             if (failed) return ;
@@ -3237,23 +3353,23 @@
               		    }
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:906:3: ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )?
-            int alt35=3;
-            int LA35_0 = input.LA(1);
-            if ( ((LA35_0>=CONTAINS && LA35_0<=EXCLUDES)||(LA35_0>=71 && LA35_0<=76)) ) {
-                alt35=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:936:3: ( ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* ) | ( '->' predicate[column] )=> '->' predicate[column] )?
+            int alt36=3;
+            int LA36_0 = input.LA(1);
+            if ( ((LA36_0>=CONTAINS && LA36_0<=EXCLUDES)||(LA36_0>=72 && LA36_0<=77)) ) {
+                alt36=1;
             }
-            else if ( (LA35_0==70) ) {
-                alt35=2;
+            else if ( (LA36_0==71) ) {
+                alt36=2;
             }
-            switch (alt35) {
+            switch (alt36) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:907:4: ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:937:4: ( ( constraint_expression ( ( ('&'|'|') constraint_expression )=> ('&'|'|') constraint_expression )* ) )=> (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:907:4: (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:907:6: rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )*
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:937:4: (rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )* )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:937:6: rd= constraint_expression ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )*
                     {
-                    pushFollow(FOLLOW_constraint_expression_in_constraint2344);
+                    pushFollow(FOLLOW_constraint_expression_in_constraint2420);
                     rd=constraint_expression();
                     _fsp--;
                     if (failed) return ;
@@ -3266,22 +3382,22 @@
                       					}
                       				
                     }
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:915:5: ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )*
-                    loop34:
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:945:5: ( ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression )*
+                    loop35:
                     do {
-                        int alt34=2;
-                        int LA34_0 = input.LA(1);
-                        if ( ((LA34_0>=68 && LA34_0<=69)) ) {
-                            alt34=1;
+                        int alt35=2;
+                        int LA35_0 = input.LA(1);
+                        if ( ((LA35_0>=69 && LA35_0<=70)) ) {
+                            alt35=1;
                         }
 
 
-                        switch (alt34) {
+                        switch (alt35) {
                     	case 1 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:916:6: ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression
+                    	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:946:6: ( ('&'|'|') constraint_expression )=>con= ('&'|'|')rd= constraint_expression
                     	    {
                     	    con=(Token)input.LT(1);
-                    	    if ( (input.LA(1)>=68 && input.LA(1)<=69) ) {
+                    	    if ( (input.LA(1)>=69 && input.LA(1)<=70) ) {
                     	        input.consume();
                     	        errorRecovery=false;failed=false;
                     	    }
@@ -3289,7 +3405,7 @@
                     	        if (backtracking>0) {failed=true; return ;}
                     	        MismatchedSetException mse =
                     	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_constraint2366);    throw mse;
+                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_constraint2442);    throw mse;
                     	    }
 
                     	    if ( backtracking==0 ) {
@@ -3301,7 +3417,7 @@
                     	      						}							
                     	      					
                     	    }
-                    	    pushFollow(FOLLOW_constraint_expression_in_constraint2385);
+                    	    pushFollow(FOLLOW_constraint_expression_in_constraint2461);
                     	    rd=constraint_expression();
                     	    _fsp--;
                     	    if (failed) return ;
@@ -3317,7 +3433,7 @@
                     	    break;
 
                     	default :
-                    	    break loop34;
+                    	    break loop35;
                         }
                     } while (true);
 
@@ -3328,10 +3444,10 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:933:4: ( '->' predicate[column] )=> '->' predicate[column]
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:963:4: ( '->' predicate[column] )=> '->' predicate[column]
                     {
-                    match(input,70,FOLLOW_70_in_constraint2413); if (failed) return ;
-                    pushFollow(FOLLOW_predicate_in_constraint2415);
+                    match(input,71,FOLLOW_71_in_constraint2489); if (failed) return ;
+                    pushFollow(FOLLOW_predicate_in_constraint2491);
                     predicate(column);
                     _fsp--;
                     if (failed) return ;
@@ -3357,7 +3473,7 @@
 
 
     // $ANTLR start constraint_expression
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:937:1: constraint_expression returns [RestrictionDescr rd] : op= ('=='|'>'|'>='|'<'|'<='|'!='|CONTAINS|MATCHES|EXCLUDES) ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:967:1: constraint_expression returns [RestrictionDescr rd] : op= ('=='|'>'|'>='|'<'|'<='|'!='|CONTAINS|MATCHES|EXCLUDES) ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint ) ;
     public RestrictionDescr constraint_expression() throws RecognitionException {
         RestrictionDescr rd = null;
 
@@ -3369,11 +3485,11 @@
 
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:939:3: (op= ('=='|'>'|'>='|'<'|'<='|'!='|CONTAINS|MATCHES|EXCLUDES) ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:939:3: op= ('=='|'>'|'>='|'<'|'<='|'!='|CONTAINS|MATCHES|EXCLUDES) ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:969:3: (op= ('=='|'>'|'>='|'<'|'<='|'!='|CONTAINS|MATCHES|EXCLUDES) ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:969:3: op= ('=='|'>'|'>='|'<'|'<='|'!='|CONTAINS|MATCHES|EXCLUDES) ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )
             {
             op=(Token)input.LT(1);
-            if ( (input.LA(1)>=CONTAINS && input.LA(1)<=EXCLUDES)||(input.LA(1)>=71 && input.LA(1)<=76) ) {
+            if ( (input.LA(1)>=CONTAINS && input.LA(1)<=EXCLUDES)||(input.LA(1)>=72 && input.LA(1)<=77) ) {
                 input.consume();
                 errorRecovery=false;failed=false;
             }
@@ -3381,24 +3497,24 @@
                 if (backtracking>0) {failed=true; return rd;}
                 MismatchedSetException mse =
                     new MismatchedSetException(null,input);
-                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_constraint_expression2452);    throw mse;
+                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_constraint_expression2528);    throw mse;
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:949:3: ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )
-            int alt36=4;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:979:3: ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )
+            int alt37=4;
             switch ( input.LA(1) ) {
             case ID:
-                int LA36_1 = input.LA(2);
-                if ( (LA36_1==63) ) {
-                    alt36=2;
+                int LA37_1 = input.LA(2);
+                if ( (LA37_1==64) ) {
+                    alt37=2;
                 }
-                else if ( (LA36_1==EOF||LA36_1==RIGHT_PAREN||LA36_1==65||(LA36_1>=68 && LA36_1<=69)) ) {
-                    alt36=1;
+                else if ( (LA37_1==EOF||LA37_1==RIGHT_PAREN||LA37_1==66||(LA37_1>=69 && LA37_1<=70)) ) {
+                    alt37=1;
                 }
                 else {
                     if (backtracking>0) {failed=true; return rd;}
                     NoViableAltException nvae =
-                        new NoViableAltException("949:3: ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )", 36, 1, input);
+                        new NoViableAltException("979:3: ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )", 37, 1, input);
 
                     throw nvae;
                 }
@@ -3408,25 +3524,25 @@
             case INT:
             case FLOAT:
             case NULL:
-                alt36=3;
+                alt37=3;
                 break;
             case LEFT_PAREN:
-                alt36=4;
+                alt37=4;
                 break;
             default:
                 if (backtracking>0) {failed=true; return rd;}
                 NoViableAltException nvae =
-                    new NoViableAltException("949:3: ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )", 36, 0, input);
+                    new NoViableAltException("979:3: ( ( ID )=>bvc= ID | ( enum_constraint )=>lc= enum_constraint | ( literal_constraint )=>lc= literal_constraint | rvc= retval_constraint )", 37, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt36) {
+            switch (alt37) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:949:5: ( ID )=>bvc= ID
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:979:5: ( ID )=>bvc= ID
                     {
                     bvc=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_constraint_expression2519); if (failed) return rd;
+                    match(input,ID,FOLLOW_ID_in_constraint_expression2595); if (failed) return rd;
                     if ( backtracking==0 ) {
                       
                       				rd = new VariableRestrictionDescr(op.getText(), bvc.getText());
@@ -3436,9 +3552,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:954:4: ( enum_constraint )=>lc= enum_constraint
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:984:4: ( enum_constraint )=>lc= enum_constraint
                     {
-                    pushFollow(FOLLOW_enum_constraint_in_constraint_expression2535);
+                    pushFollow(FOLLOW_enum_constraint_in_constraint_expression2611);
                     lc=enum_constraint();
                     _fsp--;
                     if (failed) return rd;
@@ -3451,9 +3567,9 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:959:4: ( literal_constraint )=>lc= literal_constraint
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:989:4: ( literal_constraint )=>lc= literal_constraint
                     {
-                    pushFollow(FOLLOW_literal_constraint_in_constraint_expression2558);
+                    pushFollow(FOLLOW_literal_constraint_in_constraint_expression2634);
                     lc=literal_constraint();
                     _fsp--;
                     if (failed) return rd;
@@ -3466,9 +3582,9 @@
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:963:5: rvc= retval_constraint
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:993:5: rvc= retval_constraint
                     {
-                    pushFollow(FOLLOW_retval_constraint_in_constraint_expression2572);
+                    pushFollow(FOLLOW_retval_constraint_in_constraint_expression2648);
                     rvc=retval_constraint();
                     _fsp--;
                     if (failed) return rd;
@@ -3499,7 +3615,7 @@
 
 
     // $ANTLR start literal_constraint
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:970:1: literal_constraint returns [String text] : ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1000:1: literal_constraint returns [String text] : ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL ) ;
     public String literal_constraint() throws RecognitionException {
         String text = null;
 
@@ -3509,41 +3625,41 @@
         		text = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:974:4: ( ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:974:4: ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1004:4: ( ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1004:4: ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:974:4: ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL )
-            int alt37=5;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1004:4: ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL )
+            int alt38=5;
             switch ( input.LA(1) ) {
             case STRING:
-                alt37=1;
+                alt38=1;
                 break;
             case INT:
-                alt37=2;
+                alt38=2;
                 break;
             case FLOAT:
-                alt37=3;
+                alt38=3;
                 break;
             case BOOL:
-                alt37=4;
+                alt38=4;
                 break;
             case NULL:
-                alt37=5;
+                alt38=5;
                 break;
             default:
                 if (backtracking>0) {failed=true; return text;}
                 NoViableAltException nvae =
-                    new NoViableAltException("974:4: ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL )", 37, 0, input);
+                    new NoViableAltException("1004:4: ( ( STRING )=>t= STRING | ( INT )=>t= INT | ( FLOAT )=>t= FLOAT | ( BOOL )=>t= BOOL | t= NULL )", 38, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt37) {
+            switch (alt38) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:974:6: ( STRING )=>t= STRING
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1004:6: ( STRING )=>t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_literal_constraint2611); if (failed) return text;
+                    match(input,STRING,FOLLOW_STRING_in_literal_constraint2687); if (failed) return text;
                     if ( backtracking==0 ) {
                        text = getString( t ); 
                     }
@@ -3551,10 +3667,10 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:975:5: ( INT )=>t= INT
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1005:5: ( INT )=>t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_literal_constraint2622); if (failed) return text;
+                    match(input,INT,FOLLOW_INT_in_literal_constraint2698); if (failed) return text;
                     if ( backtracking==0 ) {
                        text = t.getText(); 
                     }
@@ -3562,10 +3678,10 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:976:5: ( FLOAT )=>t= FLOAT
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1006:5: ( FLOAT )=>t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint2635); if (failed) return text;
+                    match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint2711); if (failed) return text;
                     if ( backtracking==0 ) {
                        text = t.getText(); 
                     }
@@ -3573,10 +3689,10 @@
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:977:5: ( BOOL )=>t= BOOL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1007:5: ( BOOL )=>t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_literal_constraint2646); if (failed) return text;
+                    match(input,BOOL,FOLLOW_BOOL_in_literal_constraint2722); if (failed) return text;
                     if ( backtracking==0 ) {
                        text = t.getText(); 
                     }
@@ -3584,10 +3700,10 @@
                     }
                     break;
                 case 5 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:978:5: t= NULL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1008:5: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_literal_constraint2658); if (failed) return text;
+                    match(input,NULL,FOLLOW_NULL_in_literal_constraint2734); if (failed) return text;
                     if ( backtracking==0 ) {
                        text = null; 
                     }
@@ -3613,7 +3729,7 @@
 
 
     // $ANTLR start enum_constraint
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:982:1: enum_constraint returns [String text] : id= ID ( ( '.' identifier )=> '.' ident= identifier )+ ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1012:1: enum_constraint returns [String text] : id= ID ( ( '.' identifier )=> '.' ident= identifier )+ ;
     public String enum_constraint() throws RecognitionException {
         String text = null;
 
@@ -3625,31 +3741,31 @@
         		text = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:987:3: (id= ID ( ( '.' identifier )=> '.' ident= identifier )+ )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:987:3: id= ID ( ( '.' identifier )=> '.' ident= identifier )+
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1017:3: (id= ID ( ( '.' identifier )=> '.' ident= identifier )+ )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1017:3: id= ID ( ( '.' identifier )=> '.' ident= identifier )+
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_enum_constraint2693); if (failed) return text;
+            match(input,ID,FOLLOW_ID_in_enum_constraint2769); if (failed) return text;
             if ( backtracking==0 ) {
                text=id.getText(); 
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:987:32: ( ( '.' identifier )=> '.' ident= identifier )+
-            int cnt38=0;
-            loop38:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1017:32: ( ( '.' identifier )=> '.' ident= identifier )+
+            int cnt39=0;
+            loop39:
             do {
-                int alt38=2;
-                int LA38_0 = input.LA(1);
-                if ( (LA38_0==63) ) {
-                    alt38=1;
+                int alt39=2;
+                int LA39_0 = input.LA(1);
+                if ( (LA39_0==64) ) {
+                    alt39=1;
                 }
 
 
-                switch (alt38) {
+                switch (alt39) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:987:34: ( '.' identifier )=> '.' ident= identifier
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1017:34: ( '.' identifier )=> '.' ident= identifier
             	    {
-            	    match(input,63,FOLLOW_63_in_enum_constraint2699); if (failed) return text;
-            	    pushFollow(FOLLOW_identifier_in_enum_constraint2703);
+            	    match(input,64,FOLLOW_64_in_enum_constraint2775); if (failed) return text;
+            	    pushFollow(FOLLOW_identifier_in_enum_constraint2779);
             	    ident=identifier();
             	    _fsp--;
             	    if (failed) return text;
@@ -3661,13 +3777,13 @@
             	    break;
 
             	default :
-            	    if ( cnt38 >= 1 ) break loop38;
+            	    if ( cnt39 >= 1 ) break loop39;
             	    if (backtracking>0) {failed=true; return text;}
                         EarlyExitException eee =
-                            new EarlyExitException(38, input);
+                            new EarlyExitException(39, input);
                         throw eee;
                 }
-                cnt38++;
+                cnt39++;
             } while (true);
 
 
@@ -3686,7 +3802,7 @@
 
 
     // $ANTLR start predicate
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:991:1: predicate[ColumnDescr column] : text= paren_chunk[d] ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1021:1: predicate[ColumnDescr column] : text= paren_chunk[d] ;
     public void predicate(ColumnDescr column) throws RecognitionException {
         String text = null;
 
@@ -3695,15 +3811,15 @@
         		PredicateDescr d = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:996:3: (text= paren_chunk[d] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:996:3: text= paren_chunk[d]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1026:3: (text= paren_chunk[d] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1026:3: text= paren_chunk[d]
             {
             if ( backtracking==0 ) {
               
               			d = new PredicateDescr( );
               		
             }
-            pushFollow(FOLLOW_paren_chunk_in_predicate2745);
+            pushFollow(FOLLOW_paren_chunk_in_predicate2821);
             text=paren_chunk(d);
             _fsp--;
             if (failed) return ;
@@ -3732,7 +3848,7 @@
 
 
     // $ANTLR start paren_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1009:1: paren_chunk[BaseDescr descr] returns [String text] : loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1039:1: paren_chunk[BaseDescr descr] returns [String text] : loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN ;
     public String paren_chunk(BaseDescr descr) throws RecognitionException {
         String text = null;
 
@@ -3745,8 +3861,8 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1015:10: (loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1015:10: loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1045:10: (loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1045:10: loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN
             {
             if ( backtracking==0 ) {
               
@@ -3756,31 +3872,31 @@
               	        
             }
             loc=(Token)input.LT(1);
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk2794); if (failed) return text;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk2870); if (failed) return text;
             if ( backtracking==0 ) {
               
               		    buf.append( loc.getText());
                
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1025:3: ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )*
-            loop39:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1055:3: ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )*
+            loop40:
             do {
-                int alt39=3;
-                int LA39_0 = input.LA(1);
-                if ( ((LA39_0>=PACKAGE && LA39_0<=OR)||(LA39_0>=CONTAINS && LA39_0<=77)) ) {
-                    alt39=1;
+                int alt40=3;
+                int LA40_0 = input.LA(1);
+                if ( ((LA40_0>=PACKAGE && LA40_0<=OR)||(LA40_0>=CONTAINS && LA40_0<=78)) ) {
+                    alt40=1;
                 }
-                else if ( (LA39_0==LEFT_PAREN) ) {
-                    alt39=2;
+                else if ( (LA40_0==LEFT_PAREN) ) {
+                    alt40=2;
                 }
 
 
-                switch (alt39) {
+                switch (alt40) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1026:4: (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN)
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1056:4: (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN)
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=OR)||(input.LA(1)>=CONTAINS && input.LA(1)<=77) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=OR)||(input.LA(1)>=CONTAINS && input.LA(1)<=78) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -3788,7 +3904,7 @@
             	        if (backtracking>0) {failed=true; return text;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk2810);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk2886);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -3800,9 +3916,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1031:4: ( paren_chunk[null] )=>chunk= paren_chunk[null]
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1061:4: ( paren_chunk[null] )=>chunk= paren_chunk[null]
             	    {
-            	    pushFollow(FOLLOW_paren_chunk_in_paren_chunk2834);
+            	    pushFollow(FOLLOW_paren_chunk_in_paren_chunk2910);
             	    chunk=paren_chunk(null);
             	    _fsp--;
             	    if (failed) return text;
@@ -3816,7 +3932,7 @@
             	    break;
 
             	default :
-            	    break loop39;
+            	    break loop40;
                 }
             } while (true);
 
@@ -3830,7 +3946,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk2871); if (failed) return text;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk2947); if (failed) return text;
             if ( backtracking==0 ) {
               
                                   buf.append( loc.getText() );
@@ -3856,7 +3972,7 @@
 
 
     // $ANTLR start curly_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1053:1: curly_chunk[BaseDescr descr] returns [String text] : loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1083:1: curly_chunk[BaseDescr descr] returns [String text] : loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY ;
     public String curly_chunk(BaseDescr descr) throws RecognitionException {
         String text = null;
 
@@ -3869,11 +3985,11 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1059:3: (loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1059:3: loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1089:3: (loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1089:3: loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY
             {
             loc=(Token)input.LT(1);
-            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk2922); if (failed) return text;
+            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk2998); if (failed) return text;
             if ( backtracking==0 ) {
               
               	            channel = ((SwitchingCommonTokenStream)input).getTokenTypeChannel( WS ); 
@@ -3883,24 +3999,24 @@
               		    buf.append( loc.getText() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1067:3: ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )*
-            loop40:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1097:3: ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )*
+            loop41:
             do {
-                int alt40=3;
-                int LA40_0 = input.LA(1);
-                if ( ((LA40_0>=PACKAGE && LA40_0<=NULL)||(LA40_0>=LEFT_SQUARE && LA40_0<=77)) ) {
-                    alt40=1;
+                int alt41=3;
+                int LA41_0 = input.LA(1);
+                if ( ((LA41_0>=PACKAGE && LA41_0<=NULL)||(LA41_0>=LEFT_SQUARE && LA41_0<=78)) ) {
+                    alt41=1;
                 }
-                else if ( (LA40_0==LEFT_CURLY) ) {
-                    alt40=2;
+                else if ( (LA41_0==LEFT_CURLY) ) {
+                    alt41=2;
                 }
 
 
-                switch (alt40) {
+                switch (alt41) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1068:4: (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY)
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1098:4: (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY)
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=NULL)||(input.LA(1)>=LEFT_SQUARE && input.LA(1)<=77) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=NULL)||(input.LA(1)>=LEFT_SQUARE && input.LA(1)<=78) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -3908,7 +4024,7 @@
             	        if (backtracking>0) {failed=true; return text;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk2938);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk3014);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -3920,9 +4036,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1073:4: ( curly_chunk[descr] )=>chunk= curly_chunk[descr]
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1103:4: ( curly_chunk[descr] )=>chunk= curly_chunk[descr]
             	    {
-            	    pushFollow(FOLLOW_curly_chunk_in_curly_chunk2962);
+            	    pushFollow(FOLLOW_curly_chunk_in_curly_chunk3038);
             	    chunk=curly_chunk(descr);
             	    _fsp--;
             	    if (failed) return text;
@@ -3936,7 +4052,7 @@
             	    break;
 
             	default :
-            	    break loop40;
+            	    break loop41;
                 }
             } while (true);
 
@@ -3950,7 +4066,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk2999); if (failed) return text;
+            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk3075); if (failed) return text;
             if ( backtracking==0 ) {
               
                                   buf.append( loc.getText() );
@@ -3976,7 +4092,7 @@
 
 
     // $ANTLR start square_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1095:1: square_chunk[BaseDescr descr] returns [String text] : loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1125:1: square_chunk[BaseDescr descr] returns [String text] : loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE ;
     public String square_chunk(BaseDescr descr) throws RecognitionException {
         String text = null;
 
@@ -3989,8 +4105,8 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1101:10: (loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1101:10: loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1131:10: (loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1131:10: loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE
             {
             if ( backtracking==0 ) {
               
@@ -4000,31 +4116,31 @@
               	        
             }
             loc=(Token)input.LT(1);
-            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk3062); if (failed) return text;
+            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk3138); if (failed) return text;
             if ( backtracking==0 ) {
               
               		    buf.append( loc.getText());
                
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1111:3: ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )*
-            loop41:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1141:3: ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )*
+            loop42:
             do {
-                int alt41=3;
-                int LA41_0 = input.LA(1);
-                if ( ((LA41_0>=PACKAGE && LA41_0<=RIGHT_CURLY)||(LA41_0>=AND && LA41_0<=77)) ) {
-                    alt41=1;
+                int alt42=3;
+                int LA42_0 = input.LA(1);
+                if ( ((LA42_0>=PACKAGE && LA42_0<=RIGHT_CURLY)||(LA42_0>=AND && LA42_0<=78)) ) {
+                    alt42=1;
                 }
-                else if ( (LA41_0==LEFT_SQUARE) ) {
-                    alt41=2;
+                else if ( (LA42_0==LEFT_SQUARE) ) {
+                    alt42=2;
                 }
 
 
-                switch (alt41) {
+                switch (alt42) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1112:4: (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE)
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1142:4: (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE)
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=RIGHT_CURLY)||(input.LA(1)>=AND && input.LA(1)<=77) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=RIGHT_CURLY)||(input.LA(1)>=AND && input.LA(1)<=78) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -4032,7 +4148,7 @@
             	        if (backtracking>0) {failed=true; return text;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk3078);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk3154);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -4044,9 +4160,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1117:4: ( square_chunk[null] )=>chunk= square_chunk[null]
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1147:4: ( square_chunk[null] )=>chunk= square_chunk[null]
             	    {
-            	    pushFollow(FOLLOW_square_chunk_in_square_chunk3102);
+            	    pushFollow(FOLLOW_square_chunk_in_square_chunk3178);
             	    chunk=square_chunk(null);
             	    _fsp--;
             	    if (failed) return text;
@@ -4060,7 +4176,7 @@
             	    break;
 
             	default :
-            	    break loop41;
+            	    break loop42;
                 }
             } while (true);
 
@@ -4074,7 +4190,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk3139); if (failed) return text;
+            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk3215); if (failed) return text;
             if ( backtracking==0 ) {
               
                                   buf.append( loc.getText() );
@@ -4100,7 +4216,7 @@
 
 
     // $ANTLR start retval_constraint
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1139:1: retval_constraint returns [String text] : c= paren_chunk[null] ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1169:1: retval_constraint returns [String text] : c= paren_chunk[null] ;
     public String retval_constraint() throws RecognitionException {
         String text = null;
 
@@ -4111,10 +4227,10 @@
         		text = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1144:3: (c= paren_chunk[null] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1144:3: c= paren_chunk[null]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1174:3: (c= paren_chunk[null] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1174:3: c= paren_chunk[null]
             {
-            pushFollow(FOLLOW_paren_chunk_in_retval_constraint3184);
+            pushFollow(FOLLOW_paren_chunk_in_retval_constraint3260);
             c=paren_chunk(null);
             _fsp--;
             if (failed) return text;
@@ -4137,7 +4253,7 @@
 
 
     // $ANTLR start lhs_or
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1147:1: lhs_or returns [BaseDescr d] : left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1177:1: lhs_or returns [BaseDescr d] : left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* ;
     public BaseDescr lhs_or() throws RecognitionException {
         BaseDescr d = null;
 
@@ -4151,31 +4267,31 @@
         		OrDescr or = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1153:3: (left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1153:3: left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1183:3: (left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1183:3: left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
             {
-            pushFollow(FOLLOW_lhs_and_in_lhs_or3212);
+            pushFollow(FOLLOW_lhs_and_in_lhs_or3288);
             left=lhs_and();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
               d = left; 
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1154:3: ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
-            loop42:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1184:3: ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
+            loop43:
             do {
-                int alt42=2;
-                int LA42_0 = input.LA(1);
-                if ( (LA42_0==OR||LA42_0==67) ) {
-                    alt42=1;
+                int alt43=2;
+                int LA43_0 = input.LA(1);
+                if ( (LA43_0==OR||LA43_0==68) ) {
+                    alt43=1;
                 }
 
 
-                switch (alt42) {
+                switch (alt43) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1154:5: ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1184:5: ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and
             	    {
-            	    if ( input.LA(1)==OR||input.LA(1)==67 ) {
+            	    if ( input.LA(1)==OR||input.LA(1)==68 ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -4183,10 +4299,10 @@
             	        if (backtracking>0) {failed=true; return d;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or3221);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or3297);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_lhs_and_in_lhs_or3231);
+            	    pushFollow(FOLLOW_lhs_and_in_lhs_or3307);
             	    right=lhs_and();
             	    _fsp--;
             	    if (failed) return d;
@@ -4206,7 +4322,7 @@
             	    break;
 
             	default :
-            	    break loop42;
+            	    break loop43;
                 }
             } while (true);
 
@@ -4226,7 +4342,7 @@
 
 
     // $ANTLR start lhs_and
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1168:1: lhs_and returns [BaseDescr d] : left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:1: lhs_and returns [BaseDescr d] : left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* ;
     public BaseDescr lhs_and() throws RecognitionException {
         BaseDescr d = null;
 
@@ -4240,31 +4356,31 @@
         		AndDescr and = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1174:3: (left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1174:3: left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1204:3: (left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1204:3: left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
             {
-            pushFollow(FOLLOW_lhs_unary_in_lhs_and3267);
+            pushFollow(FOLLOW_lhs_unary_in_lhs_and3343);
             left=lhs_unary();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
                d = left; 
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1175:3: ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
-            loop43:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1205:3: ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
+            loop44:
             do {
-                int alt43=2;
-                int LA43_0 = input.LA(1);
-                if ( (LA43_0==AND||LA43_0==77) ) {
-                    alt43=1;
+                int alt44=2;
+                int LA44_0 = input.LA(1);
+                if ( (LA44_0==AND||LA44_0==78) ) {
+                    alt44=1;
                 }
 
 
-                switch (alt43) {
+                switch (alt44) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1175:5: ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1205:5: ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary
             	    {
-            	    if ( input.LA(1)==AND||input.LA(1)==77 ) {
+            	    if ( input.LA(1)==AND||input.LA(1)==78 ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -4272,10 +4388,10 @@
             	        if (backtracking>0) {failed=true; return d;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and3276);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and3352);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_lhs_unary_in_lhs_and3286);
+            	    pushFollow(FOLLOW_lhs_unary_in_lhs_and3362);
             	    right=lhs_unary();
             	    _fsp--;
             	    if (failed) return d;
@@ -4295,7 +4411,7 @@
             	    break;
 
             	default :
-            	    break loop43;
+            	    break loop44;
                 }
             } while (true);
 
@@ -4315,7 +4431,7 @@
 
 
     // $ANTLR start lhs_unary
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1189:1: lhs_unary returns [BaseDescr d] : ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1219:1: lhs_unary returns [BaseDescr d] : ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon ;
     public BaseDescr lhs_unary() throws RecognitionException {
         BaseDescr d = null;
 
@@ -4332,43 +4448,43 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:4: ( ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1223:4: ( ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1223:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )
-            int alt46=6;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1223:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )
+            int alt47=6;
             switch ( input.LA(1) ) {
             case EXISTS:
-                alt46=1;
+                alt47=1;
                 break;
             case NOT:
-                alt46=2;
+                alt47=2;
                 break;
             case EVAL:
-                alt46=3;
+                alt47=3;
                 break;
             case ID:
-                alt46=4;
+                alt47=4;
                 break;
             case FORALL:
-                alt46=5;
+                alt47=5;
                 break;
             case LEFT_PAREN:
-                alt46=6;
+                alt47=6;
                 break;
             default:
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1193:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )", 46, 0, input);
+                    new NoViableAltException("1223:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )", 47, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt46) {
+            switch (alt47) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:6: ( lhs_exist )=>u= lhs_exist
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1223:6: ( lhs_exist )=>u= lhs_exist
                     {
-                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary3323);
+                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary3399);
                     u=lhs_exist();
                     _fsp--;
                     if (failed) return d;
@@ -4376,9 +4492,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1194:5: ( lhs_not )=>u= lhs_not
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1224:5: ( lhs_not )=>u= lhs_not
                     {
-                    pushFollow(FOLLOW_lhs_not_in_lhs_unary3331);
+                    pushFollow(FOLLOW_lhs_not_in_lhs_unary3407);
                     u=lhs_not();
                     _fsp--;
                     if (failed) return d;
@@ -4386,9 +4502,9 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1195:5: ( lhs_eval )=>u= lhs_eval
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1225:5: ( lhs_eval )=>u= lhs_eval
                     {
-                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary3339);
+                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary3415);
                     u=lhs_eval();
                     _fsp--;
                     if (failed) return d;
@@ -4396,52 +4512,52 @@
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1196:5: ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1226:5: ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
                     {
-                    pushFollow(FOLLOW_lhs_column_in_lhs_unary3347);
+                    pushFollow(FOLLOW_lhs_column_in_lhs_unary3423);
                     u=lhs_column();
                     _fsp--;
                     if (failed) return d;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1196:18: ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
-                    int alt45=2;
-                    int LA45_0 = input.LA(1);
-                    if ( (LA45_0==FROM) ) {
-                        alt45=1;
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1226:18: ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
+                    int alt46=2;
+                    int LA46_0 = input.LA(1);
+                    if ( (LA46_0==FROM) ) {
+                        alt46=1;
                     }
-                    switch (alt45) {
+                    switch (alt46) {
                         case 1 :
-                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1197:13: ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
+                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1227:13: ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
                             {
-                            match(input,FROM,FOLLOW_FROM_in_lhs_unary3363); if (failed) return d;
-                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1197:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
-                            int alt44=3;
+                            match(input,FROM,FOLLOW_FROM_in_lhs_unary3439); if (failed) return d;
+                            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1227:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
+                            int alt45=3;
                             switch ( input.LA(1) ) {
                             case ACCUMULATE:
-                                if ( (synpred70()) ) {
-                                    alt44=1;
+                                if ( (synpred72()) ) {
+                                    alt45=1;
                                 }
-                                else if ( (synpred72()) ) {
-                                    alt44=3;
+                                else if ( (synpred74()) ) {
+                                    alt45=3;
                                 }
                                 else {
                                     if (backtracking>0) {failed=true; return d;}
                                     NoViableAltException nvae =
-                                        new NoViableAltException("1197:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 1, input);
+                                        new NoViableAltException("1227:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 45, 1, input);
 
                                     throw nvae;
                                 }
                                 break;
                             case COLLECT:
-                                if ( (synpred71()) ) {
-                                    alt44=2;
+                                if ( (synpred73()) ) {
+                                    alt45=2;
                                 }
-                                else if ( (synpred72()) ) {
-                                    alt44=3;
+                                else if ( (synpred74()) ) {
+                                    alt45=3;
                                 }
                                 else {
                                     if (backtracking>0) {failed=true; return d;}
                                     NoViableAltException nvae =
-                                        new NoViableAltException("1197:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 2, input);
+                                        new NoViableAltException("1227:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 45, 2, input);
 
                                     throw nvae;
                                 }
@@ -4475,24 +4591,24 @@
                             case EVAL:
                             case FORALL:
                             case THEN:
-                                alt44=3;
+                                alt45=3;
                                 break;
                             default:
                                 if (backtracking>0) {failed=true; return d;}
                                 NoViableAltException nvae =
-                                    new NoViableAltException("1197:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 0, input);
+                                    new NoViableAltException("1227:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 45, 0, input);
 
                                 throw nvae;
                             }
 
-                            switch (alt44) {
+                            switch (alt45) {
                                 case 1 :
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:14: ( ACCUMULATE )=> (ac= accumulate_statement )
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1228:14: ( ACCUMULATE )=> (ac= accumulate_statement )
                                     {
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:32: (ac= accumulate_statement )
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:33: ac= accumulate_statement
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1228:32: (ac= accumulate_statement )
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1228:33: ac= accumulate_statement
                                     {
-                                    pushFollow(FOLLOW_accumulate_statement_in_lhs_unary3391);
+                                    pushFollow(FOLLOW_accumulate_statement_in_lhs_unary3467);
                                     ac=accumulate_statement();
                                     _fsp--;
                                     if (failed) return d;
@@ -4506,12 +4622,12 @@
                                     }
                                     break;
                                 case 2 :
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1199:14: ( COLLECT )=> (cs= collect_statement )
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1229:14: ( COLLECT )=> (cs= collect_statement )
                                     {
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1199:29: (cs= collect_statement )
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1199:30: cs= collect_statement
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1229:29: (cs= collect_statement )
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1229:30: cs= collect_statement
                                     {
-                                    pushFollow(FOLLOW_collect_statement_in_lhs_unary3420);
+                                    pushFollow(FOLLOW_collect_statement_in_lhs_unary3496);
                                     cs=collect_statement();
                                     _fsp--;
                                     if (failed) return d;
@@ -4525,12 +4641,12 @@
                                     }
                                     break;
                                 case 3 :
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:14: (~ (ACCUMULATE|COLLECT))=> (fm= from_statement )
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1230:14: (~ (ACCUMULATE|COLLECT))=> (fm= from_statement )
                                     {
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:43: (fm= from_statement )
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:44: fm= from_statement
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1230:43: (fm= from_statement )
+                                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1230:44: fm= from_statement
                                     {
-                                    pushFollow(FOLLOW_from_statement_in_lhs_unary3455);
+                                    pushFollow(FOLLOW_from_statement_in_lhs_unary3531);
                                     fm=from_statement();
                                     _fsp--;
                                     if (failed) return d;
@@ -4556,9 +4672,9 @@
                     }
                     break;
                 case 5 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1203:5: ( lhs_forall )=>u= lhs_forall
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1233:5: ( lhs_forall )=>u= lhs_forall
                     {
-                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary3494);
+                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary3570);
                     u=lhs_forall();
                     _fsp--;
                     if (failed) return d;
@@ -4566,14 +4682,14 @@
                     }
                     break;
                 case 6 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1204:5: '(' u= lhs_or ')'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1234:5: '(' u= lhs_or ')'
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary3502); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_unary3506);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary3578); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_unary3582);
                     u=lhs_or();
                     _fsp--;
                     if (failed) return d;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary3508); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary3584); if (failed) return d;
 
                     }
                     break;
@@ -4583,7 +4699,7 @@
             if ( backtracking==0 ) {
                d = u; 
             }
-            pushFollow(FOLLOW_opt_semicolon_in_lhs_unary3518);
+            pushFollow(FOLLOW_opt_semicolon_in_lhs_unary3594);
             opt_semicolon();
             _fsp--;
             if (failed) return d;
@@ -4603,7 +4719,7 @@
 
 
     // $ANTLR start lhs_exist
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1209:1: lhs_exist returns [BaseDescr d] : loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1239:1: lhs_exist returns [BaseDescr d] : loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) ;
     public BaseDescr lhs_exist() throws RecognitionException {
         BaseDescr d = null;
 
@@ -4616,11 +4732,11 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1213:4: (loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1213:4: loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1243:4: (loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1243:4: loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist3542); if (failed) return d;
+            match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist3618); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new ExistsDescr( ); 
@@ -4628,31 +4744,31 @@
               			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1219:10: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
-            int alt47=2;
-            int LA47_0 = input.LA(1);
-            if ( (LA47_0==LEFT_PAREN) ) {
-                alt47=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1249:10: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
+            int alt48=2;
+            int LA48_0 = input.LA(1);
+            if ( (LA48_0==LEFT_PAREN) ) {
+                alt48=1;
             }
-            else if ( (LA47_0==ID) ) {
-                alt47=2;
+            else if ( (LA48_0==ID) ) {
+                alt48=2;
             }
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1219:10: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )", 47, 0, input);
+                    new NoViableAltException("1249:10: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )", 48, 0, input);
 
                 throw nvae;
             }
-            switch (alt47) {
+            switch (alt48) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1219:12: ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1249:12: ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1219:12: ( '(' column= lhs_or end= ')' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1219:14: '(' column= lhs_or end= ')'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1249:12: ( '(' column= lhs_or end= ')' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1249:14: '(' column= lhs_or end= ')'
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist3562); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3566);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist3638); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3642);
                     column=lhs_or();
                     _fsp--;
                     if (failed) return d;
@@ -4660,7 +4776,7 @@
                        if ( column != null ) ((ExistsDescr)d).addDescr( column ); 
                     }
                     end=(Token)input.LT(1);
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist3598); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist3674); if (failed) return d;
                     if ( backtracking==0 ) {
                        if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() ); 
                     }
@@ -4671,9 +4787,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1224:12: column= lhs_column
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1254:12: column= lhs_column
                     {
-                    pushFollow(FOLLOW_lhs_column_in_lhs_exist3648);
+                    pushFollow(FOLLOW_lhs_column_in_lhs_exist3724);
                     column=lhs_column();
                     _fsp--;
                     if (failed) return d;
@@ -4707,7 +4823,7 @@
 
 
     // $ANTLR start lhs_not
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1234:1: lhs_not returns [NotDescr d] : loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1264:1: lhs_not returns [NotDescr d] : loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) ;
     public NotDescr lhs_not() throws RecognitionException {
         NotDescr d = null;
 
@@ -4720,11 +4836,11 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1238:4: (loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1238:4: loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1268:4: (loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1268:4: loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,NOT,FOLLOW_NOT_in_lhs_not3702); if (failed) return d;
+            match(input,NOT,FOLLOW_NOT_in_lhs_not3778); if (failed) return d;
             if ( backtracking==0 ) {
               
               			d = new NotDescr( ); 
@@ -4732,31 +4848,31 @@
               			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1244:3: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
-            int alt48=2;
-            int LA48_0 = input.LA(1);
-            if ( (LA48_0==LEFT_PAREN) ) {
-                alt48=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1274:3: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
+            int alt49=2;
+            int LA49_0 = input.LA(1);
+            if ( (LA49_0==LEFT_PAREN) ) {
+                alt49=1;
             }
-            else if ( (LA48_0==ID) ) {
-                alt48=2;
+            else if ( (LA49_0==ID) ) {
+                alt49=2;
             }
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1244:3: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )", 48, 0, input);
+                    new NoViableAltException("1274:3: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )", 49, 0, input);
 
                 throw nvae;
             }
-            switch (alt48) {
+            switch (alt49) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1244:5: ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1274:5: ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1244:5: ( '(' column= lhs_or end= ')' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1244:7: '(' column= lhs_or end= ')'
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1274:5: ( '(' column= lhs_or end= ')' )
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1274:7: '(' column= lhs_or end= ')'
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not3715); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_not3719);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not3791); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_not3795);
                     column=lhs_or();
                     _fsp--;
                     if (failed) return d;
@@ -4764,7 +4880,7 @@
                        if ( column != null ) d.addDescr( column ); 
                     }
                     end=(Token)input.LT(1);
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not3752); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not3828); if (failed) return d;
                     if ( backtracking==0 ) {
                        if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() ); 
                     }
@@ -4775,9 +4891,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1250:3: column= lhs_column
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1280:3: column= lhs_column
                     {
-                    pushFollow(FOLLOW_lhs_column_in_lhs_not3789);
+                    pushFollow(FOLLOW_lhs_column_in_lhs_not3865);
                     column=lhs_column();
                     _fsp--;
                     if (failed) return d;
@@ -4811,7 +4927,7 @@
 
 
     // $ANTLR start lhs_eval
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1260:1: lhs_eval returns [BaseDescr d] : loc= EVAL c= paren_chunk[d] ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1290:1: lhs_eval returns [BaseDescr d] : loc= EVAL c= paren_chunk[d] ;
     public BaseDescr lhs_eval() throws RecognitionException {
         BaseDescr d = null;
 
@@ -4823,12 +4939,12 @@
         		d = new EvalDescr( );
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1265:3: (loc= EVAL c= paren_chunk[d] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1265:3: loc= EVAL c= paren_chunk[d]
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1295:3: (loc= EVAL c= paren_chunk[d] )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1295:3: loc= EVAL c= paren_chunk[d]
             {
             loc=(Token)input.LT(1);
-            match(input,EVAL,FOLLOW_EVAL_in_lhs_eval3837); if (failed) return d;
-            pushFollow(FOLLOW_paren_chunk_in_lhs_eval3841);
+            match(input,EVAL,FOLLOW_EVAL_in_lhs_eval3913); if (failed) return d;
+            pushFollow(FOLLOW_paren_chunk_in_lhs_eval3917);
             c=paren_chunk(d);
             _fsp--;
             if (failed) return d;
@@ -4858,7 +4974,7 @@
 
 
     // $ANTLR start lhs_forall
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1276:1: lhs_forall returns [ForallDescr d] : loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')' ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1306:1: lhs_forall returns [ForallDescr d] : loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')' ;
     public ForallDescr lhs_forall() throws RecognitionException {
         ForallDescr d = null;
 
@@ -4873,13 +4989,13 @@
         		d = factory.createForall();
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1280:4: (loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1280:4: loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')'
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1310:4: (loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')' )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1310:4: loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')'
             {
             loc=(Token)input.LT(1);
-            match(input,FORALL,FOLLOW_FORALL_in_lhs_forall3870); if (failed) return d;
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall3872); if (failed) return d;
-            pushFollow(FOLLOW_lhs_column_in_lhs_forall3876);
+            match(input,FORALL,FOLLOW_FORALL_in_lhs_forall3946); if (failed) return d;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall3948); if (failed) return d;
+            pushFollow(FOLLOW_lhs_column_in_lhs_forall3952);
             base=lhs_column();
             _fsp--;
             if (failed) return d;
@@ -4891,39 +5007,39 @@
               			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1287:3: ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+
-            int cnt50=0;
-            loop50:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1317:3: ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+
+            int cnt51=0;
+            loop51:
             do {
-                int alt50=2;
-                int LA50_0 = input.LA(1);
-                if ( (LA50_0==ID||LA50_0==65) ) {
-                    alt50=1;
+                int alt51=2;
+                int LA51_0 = input.LA(1);
+                if ( (LA51_0==ID||LA51_0==66) ) {
+                    alt51=1;
                 }
 
 
-                switch (alt50) {
+                switch (alt51) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1287:5: ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1317:5: ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column
             	    {
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1287:5: ( ( ',' )=> ',' )?
-            	    int alt49=2;
-            	    int LA49_0 = input.LA(1);
-            	    if ( (LA49_0==65) ) {
-            	        alt49=1;
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1317:5: ( ( ',' )=> ',' )?
+            	    int alt50=2;
+            	    int LA50_0 = input.LA(1);
+            	    if ( (LA50_0==66) ) {
+            	        alt50=1;
             	    }
-            	    switch (alt49) {
+            	    switch (alt50) {
             	        case 1 :
-            	            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1287:6: ( ',' )=> ','
+            	            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1317:6: ( ',' )=> ','
             	            {
-            	            match(input,65,FOLLOW_65_in_lhs_forall3890); if (failed) return d;
+            	            match(input,66,FOLLOW_66_in_lhs_forall3966); if (failed) return d;
 
             	            }
             	            break;
 
             	    }
 
-            	    pushFollow(FOLLOW_lhs_column_in_lhs_forall3896);
+            	    pushFollow(FOLLOW_lhs_column_in_lhs_forall3972);
             	    column=lhs_column();
             	    _fsp--;
             	    if (failed) return d;
@@ -4938,17 +5054,17 @@
             	    break;
 
             	default :
-            	    if ( cnt50 >= 1 ) break loop50;
+            	    if ( cnt51 >= 1 ) break loop51;
             	    if (backtracking>0) {failed=true; return d;}
                         EarlyExitException eee =
-                            new EarlyExitException(50, input);
+                            new EarlyExitException(51, input);
                         throw eee;
                 }
-                cnt50++;
+                cnt51++;
             } while (true);
 
             end=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall3911); if (failed) return d;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall3987); if (failed) return d;
             if ( backtracking==0 ) {
               
               		        if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() );
@@ -4970,7 +5086,7 @@
 
 
     // $ANTLR start dotted_name
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1299:1: dotted_name[BaseDescr descr] returns [String name] : id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1329:1: dotted_name[BaseDescr descr] returns [String name] : id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* ;
     public String dotted_name(BaseDescr descr) throws RecognitionException {
         String name = null;
 
@@ -4983,11 +5099,11 @@
         		name = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1304:3: (id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1304:3: id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1334:3: (id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1334:3: id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )*
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_dotted_name3942); if (failed) return name;
+            match(input,ID,FOLLOW_ID_in_dotted_name4018); if (failed) return name;
             if ( backtracking==0 ) {
                
               		    name=id.getText(); 
@@ -4997,22 +5113,22 @@
               		    }
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1312:3: ( ( '.' identifier )=> '.' ident= identifier )*
-            loop51:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1342:3: ( ( '.' identifier )=> '.' ident= identifier )*
+            loop52:
             do {
-                int alt51=2;
-                int LA51_0 = input.LA(1);
-                if ( (LA51_0==63) ) {
-                    alt51=1;
+                int alt52=2;
+                int LA52_0 = input.LA(1);
+                if ( (LA52_0==64) ) {
+                    alt52=1;
                 }
 
 
-                switch (alt51) {
+                switch (alt52) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1312:5: ( '.' identifier )=> '.' ident= identifier
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1342:5: ( '.' identifier )=> '.' ident= identifier
             	    {
-            	    match(input,63,FOLLOW_63_in_dotted_name3954); if (failed) return name;
-            	    pushFollow(FOLLOW_identifier_in_dotted_name3958);
+            	    match(input,64,FOLLOW_64_in_dotted_name4030); if (failed) return name;
+            	    pushFollow(FOLLOW_identifier_in_dotted_name4034);
             	    ident=identifier();
             	    _fsp--;
             	    if (failed) return name;
@@ -5029,27 +5145,27 @@
             	    break;
 
             	default :
-            	    break loop51;
+            	    break loop52;
                 }
             } while (true);
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1320:3: ( ( '[' ']' )=> '[' loc= ']' )*
-            loop52:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1350:3: ( ( '[' ']' )=> '[' loc= ']' )*
+            loop53:
             do {
-                int alt52=2;
-                int LA52_0 = input.LA(1);
-                if ( (LA52_0==LEFT_SQUARE) ) {
-                    alt52=1;
+                int alt53=2;
+                int LA53_0 = input.LA(1);
+                if ( (LA53_0==LEFT_SQUARE) ) {
+                    alt53=1;
                 }
 
 
-                switch (alt52) {
+                switch (alt53) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1320:5: ( '[' ']' )=> '[' loc= ']'
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1350:5: ( '[' ']' )=> '[' loc= ']'
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name3980); if (failed) return name;
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name4056); if (failed) return name;
             	    loc=(Token)input.LT(1);
-            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name3984); if (failed) return name;
+            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name4060); if (failed) return name;
             	    if ( backtracking==0 ) {
             	       
             	      		        name = name + "[]";
@@ -5063,7 +5179,7 @@
             	    break;
 
             	default :
-            	    break loop52;
+            	    break loop53;
                 }
             } while (true);
 
@@ -5083,7 +5199,7 @@
 
 
     // $ANTLR start argument
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1330:1: argument returns [String name] : id= identifier ( ( '[' ']' )=> '[' ']' )* ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1360:1: argument returns [String name] : id= identifier ( ( '[' ']' )=> '[' ']' )* ;
     public String argument() throws RecognitionException {
         String name = null;
 
@@ -5094,32 +5210,32 @@
         		name = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1335:3: (id= identifier ( ( '[' ']' )=> '[' ']' )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1335:3: id= identifier ( ( '[' ']' )=> '[' ']' )*
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1365:3: (id= identifier ( ( '[' ']' )=> '[' ']' )* )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1365:3: id= identifier ( ( '[' ']' )=> '[' ']' )*
             {
-            pushFollow(FOLLOW_identifier_in_argument4023);
+            pushFollow(FOLLOW_identifier_in_argument4099);
             id=identifier();
             _fsp--;
             if (failed) return name;
             if ( backtracking==0 ) {
                name=id.getText(); 
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1335:40: ( ( '[' ']' )=> '[' ']' )*
-            loop53:
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1365:40: ( ( '[' ']' )=> '[' ']' )*
+            loop54:
             do {
-                int alt53=2;
-                int LA53_0 = input.LA(1);
-                if ( (LA53_0==LEFT_SQUARE) ) {
-                    alt53=1;
+                int alt54=2;
+                int LA54_0 = input.LA(1);
+                if ( (LA54_0==LEFT_SQUARE) ) {
+                    alt54=1;
                 }
 
 
-                switch (alt53) {
+                switch (alt54) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1335:42: ( '[' ']' )=> '[' ']'
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1365:42: ( '[' ']' )=> '[' ']'
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument4029); if (failed) return name;
-            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument4031); if (failed) return name;
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument4105); if (failed) return name;
+            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument4107); if (failed) return name;
             	    if ( backtracking==0 ) {
             	       name = name + "[]";
             	    }
@@ -5128,7 +5244,7 @@
             	    break;
 
             	default :
-            	    break loop53;
+            	    break loop54;
                 }
             } while (true);
 
@@ -5148,7 +5264,7 @@
 
 
     // $ANTLR start rhs_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1338:1: rhs_chunk[RuleDescr rule] : start= THEN ( (~ END )=>~ END )* loc= END ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1368:1: rhs_chunk[RuleDescr rule] : start= THEN ( (~ END )=>~ END )* loc= END ;
     public void rhs_chunk(RuleDescr rule) throws RecognitionException {
         Token start=null;
         Token loc=null;
@@ -5158,8 +5274,8 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1344:10: (start= THEN ( (~ END )=>~ END )* loc= END )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1344:10: start= THEN ( (~ END )=>~ END )* loc= END
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1374:10: (start= THEN ( (~ END )=>~ END )* loc= END )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1374:10: start= THEN ( (~ END )=>~ END )* loc= END
             {
             if ( backtracking==0 ) {
               
@@ -5169,22 +5285,22 @@
               	        
             }
             start=(Token)input.LT(1);
-            match(input,THEN,FOLLOW_THEN_in_rhs_chunk4075); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1350:3: ( (~ END )=>~ END )*
-            loop54:
+            match(input,THEN,FOLLOW_THEN_in_rhs_chunk4151); if (failed) return ;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1380:3: ( (~ END )=>~ END )*
+            loop55:
             do {
-                int alt54=2;
-                int LA54_0 = input.LA(1);
-                if ( ((LA54_0>=PACKAGE && LA54_0<=QUERY)||(LA54_0>=TEMPLATE && LA54_0<=77)) ) {
-                    alt54=1;
+                int alt55=2;
+                int LA55_0 = input.LA(1);
+                if ( ((LA55_0>=PACKAGE && LA55_0<=QUERY)||(LA55_0>=TEMPLATE && LA55_0<=78)) ) {
+                    alt55=1;
                 }
 
 
-                switch (alt54) {
+                switch (alt55) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1351:6: (~ END )=>~ END
+            	    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1381:6: (~ END )=>~ END
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=QUERY)||(input.LA(1)>=TEMPLATE && input.LA(1)<=77) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=QUERY)||(input.LA(1)>=TEMPLATE && input.LA(1)<=78) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -5192,7 +5308,7 @@
             	        if (backtracking>0) {failed=true; return ;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk4087);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk4163);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -5205,7 +5321,7 @@
             	    break;
 
             	default :
-            	    break loop54;
+            	    break loop55;
                 }
             } while (true);
 
@@ -5219,7 +5335,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,END,FOLLOW_END_in_rhs_chunk4124); if (failed) return ;
+            match(input,END,FOLLOW_END_in_rhs_chunk4200); if (failed) return ;
             if ( backtracking==0 ) {
               
                                   // ignoring first line in the consequence
@@ -5253,7 +5369,7 @@
 
 
     // $ANTLR start name
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1381:1: name returns [String s] : ( ( ID )=>tok= ID | str= STRING ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1411:1: name returns [String s] : ( ( ID )=>tok= ID | str= STRING ) ;
     public String name() throws RecognitionException {
         String s = null;
 
@@ -5261,31 +5377,31 @@
         Token str=null;
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1383:2: ( ( ( ID )=>tok= ID | str= STRING ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1383:2: ( ( ID )=>tok= ID | str= STRING )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:2: ( ( ( ID )=>tok= ID | str= STRING ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:2: ( ( ID )=>tok= ID | str= STRING )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1383:2: ( ( ID )=>tok= ID | str= STRING )
-            int alt55=2;
-            int LA55_0 = input.LA(1);
-            if ( (LA55_0==ID) ) {
-                alt55=1;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:2: ( ( ID )=>tok= ID | str= STRING )
+            int alt56=2;
+            int LA56_0 = input.LA(1);
+            if ( (LA56_0==ID) ) {
+                alt56=1;
             }
-            else if ( (LA55_0==STRING) ) {
-                alt55=2;
+            else if ( (LA56_0==STRING) ) {
+                alt56=2;
             }
             else {
                 if (backtracking>0) {failed=true; return s;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1383:2: ( ( ID )=>tok= ID | str= STRING )", 55, 0, input);
+                    new NoViableAltException("1413:2: ( ( ID )=>tok= ID | str= STRING )", 56, 0, input);
 
                 throw nvae;
             }
-            switch (alt55) {
+            switch (alt56) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1384:6: ( ID )=>tok= ID
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1414:6: ( ID )=>tok= ID
                     {
                     tok=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_name4168); if (failed) return s;
+                    match(input,ID,FOLLOW_ID_in_name4244); if (failed) return s;
                     if ( backtracking==0 ) {
                       
                       	        s = tok.getText();
@@ -5295,10 +5411,10 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1389:6: str= STRING
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1419:6: str= STRING
                     {
                     str=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_name4187); if (failed) return s;
+                    match(input,STRING,FOLLOW_STRING_in_name4263); if (failed) return s;
                     if ( backtracking==0 ) {
                       
                       	       s = getString( str );
@@ -5326,366 +5442,366 @@
 
 
     // $ANTLR start identifier
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1396:1: identifier returns [Token tok] : ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) ;
+    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1426:1: identifier returns [Token tok] : ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) ;
     public Token identifier() throws RecognitionException {
         Token tok = null;
 
         Token t=null;
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1398:2: ( ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1398:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1428:2: ( ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) )
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1428:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1398:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
-            int alt56=31;
+            // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1428:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
+            int alt57=31;
             switch ( input.LA(1) ) {
             case ID:
-                alt56=1;
+                alt57=1;
                 break;
             case PACKAGE:
-                alt56=2;
+                alt57=2;
                 break;
             case FUNCTION:
-                alt56=3;
+                alt57=3;
                 break;
             case GLOBAL:
-                alt56=4;
+                alt57=4;
                 break;
             case IMPORT:
-                alt56=5;
+                alt57=5;
                 break;
             case RULE:
-                alt56=6;
+                alt57=6;
                 break;
             case QUERY:
-                alt56=7;
+                alt57=7;
                 break;
             case TEMPLATE:
-                alt56=8;
+                alt57=8;
                 break;
             case ATTRIBUTES:
-                alt56=9;
+                alt57=9;
                 break;
             case ENABLED:
-                alt56=10;
+                alt57=10;
                 break;
             case SALIENCE:
-                alt56=11;
+                alt57=11;
                 break;
             case DURATION:
-                alt56=12;
+                alt57=12;
                 break;
             case FROM:
-                alt56=13;
+                alt57=13;
                 break;
             case ACCUMULATE:
-                alt56=14;
+                alt57=14;
                 break;
             case INIT:
-                alt56=15;
+                alt57=15;
                 break;
             case ACTION:
-                alt56=16;
+                alt57=16;
                 break;
             case RESULT:
-                alt56=17;
+                alt57=17;
                 break;
             case COLLECT:
-                alt56=18;
+                alt57=18;
                 break;
             case OR:
-                alt56=19;
+                alt57=19;
                 break;
             case AND:
-                alt56=20;
+                alt57=20;
                 break;
             case CONTAINS:
-                alt56=21;
+                alt57=21;
                 break;
             case EXCLUDES:
-                alt56=22;
+                alt57=22;
                 break;
             case MATCHES:
-                alt56=23;
+                alt57=23;
                 break;
             case NULL:
-                alt56=24;
+                alt57=24;
                 break;
             case EXISTS:
-                alt56=25;
+                alt57=25;
                 break;
             case NOT:
-                alt56=26;
+                alt57=26;
                 break;
             case EVAL:
-                alt56=27;
+                alt57=27;
                 break;
             case FORALL:
-                alt56=28;
+                alt57=28;
                 break;
             case WHEN:
-                alt56=29;
+                alt57=29;
                 break;
             case THEN:
-                alt56=30;
+                alt57=30;
                 break;
             case END:
-                alt56=31;
+                alt57=31;
                 break;
             default:
                 if (backtracking>0) {failed=true; return tok;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1398:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )", 56, 0, input);
+                    new NoViableAltException("1428:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )", 57, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt56) {
+            switch (alt57) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1398:10: ( ID )=>t= ID
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1428:10: ( ID )=>t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_identifier4225); if (failed) return tok;
+                    match(input,ID,FOLLOW_ID_in_identifier4301); if (failed) return tok;
 
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1399:4: ( PACKAGE )=>t= PACKAGE
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1429:4: ( PACKAGE )=>t= PACKAGE
                     {
                     t=(Token)input.LT(1);
-                    match(input,PACKAGE,FOLLOW_PACKAGE_in_identifier4238); if (failed) return tok;
+                    match(input,PACKAGE,FOLLOW_PACKAGE_in_identifier4314); if (failed) return tok;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1400:4: ( FUNCTION )=>t= FUNCTION
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1430:4: ( FUNCTION )=>t= FUNCTION
                     {
                     t=(Token)input.LT(1);
-                    match(input,FUNCTION,FOLLOW_FUNCTION_in_identifier4245); if (failed) return tok;
+                    match(input,FUNCTION,FOLLOW_FUNCTION_in_identifier4321); if (failed) return tok;
 
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1401:4: ( GLOBAL )=>t= GLOBAL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1431:4: ( GLOBAL )=>t= GLOBAL
                     {
                     t=(Token)input.LT(1);
-                    match(input,GLOBAL,FOLLOW_GLOBAL_in_identifier4252); if (failed) return tok;
+                    match(input,GLOBAL,FOLLOW_GLOBAL_in_identifier4328); if (failed) return tok;
 
                     }
                     break;
                 case 5 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1402:4: ( IMPORT )=>t= IMPORT
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1432:4: ( IMPORT )=>t= IMPORT
                     {
                     t=(Token)input.LT(1);
-                    match(input,IMPORT,FOLLOW_IMPORT_in_identifier4259); if (failed) return tok;
+                    match(input,IMPORT,FOLLOW_IMPORT_in_identifier4335); if (failed) return tok;
 
                     }
                     break;
                 case 6 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1403:4: ( RULE )=>t= RULE
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1433:4: ( RULE )=>t= RULE
                     {
                     t=(Token)input.LT(1);
-                    match(input,RULE,FOLLOW_RULE_in_identifier4268); if (failed) return tok;
+                    match(input,RULE,FOLLOW_RULE_in_identifier4344); if (failed) return tok;
 
                     }
                     break;
                 case 7 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1404:4: ( QUERY )=>t= QUERY
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1434:4: ( QUERY )=>t= QUERY
                     {
                     t=(Token)input.LT(1);
-                    match(input,QUERY,FOLLOW_QUERY_in_identifier4275); if (failed) return tok;
+                    match(input,QUERY,FOLLOW_QUERY_in_identifier4351); if (failed) return tok;
 
                     }
                     break;
                 case 8 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1405:17: ( TEMPLATE )=>t= TEMPLATE
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1435:17: ( TEMPLATE )=>t= TEMPLATE
                     {
                     t=(Token)input.LT(1);
-                    match(input,TEMPLATE,FOLLOW_TEMPLATE_in_identifier4296); if (failed) return tok;
+                    match(input,TEMPLATE,FOLLOW_TEMPLATE_in_identifier4372); if (failed) return tok;
 
                     }
                     break;
                 case 9 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1406:17: ( ATTRIBUTES )=>t= ATTRIBUTES
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1436:17: ( ATTRIBUTES )=>t= ATTRIBUTES
                     {
                     t=(Token)input.LT(1);
-                    match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_identifier4324); if (failed) return tok;
+                    match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_identifier4400); if (failed) return tok;
 
                     }
                     break;
                 case 10 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1407:17: ( ENABLED )=>t= ENABLED
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:17: ( ENABLED )=>t= ENABLED
                     {
                     t=(Token)input.LT(1);
-                    match(input,ENABLED,FOLLOW_ENABLED_in_identifier4350); if (failed) return tok;
+                    match(input,ENABLED,FOLLOW_ENABLED_in_identifier4426); if (failed) return tok;
 
                     }
                     break;
                 case 11 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1408:17: ( SALIENCE )=>t= SALIENCE
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:17: ( SALIENCE )=>t= SALIENCE
                     {
                     t=(Token)input.LT(1);
-                    match(input,SALIENCE,FOLLOW_SALIENCE_in_identifier4379); if (failed) return tok;
+                    match(input,SALIENCE,FOLLOW_SALIENCE_in_identifier4455); if (failed) return tok;
 
                     }
                     break;
                 case 12 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1409:17: ( DURATION )=>t= DURATION
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1439:17: ( DURATION )=>t= DURATION
                     {
                     t=(Token)input.LT(1);
-                    match(input,DURATION,FOLLOW_DURATION_in_identifier4401); if (failed) return tok;
+                    match(input,DURATION,FOLLOW_DURATION_in_identifier4477); if (failed) return tok;
 
                     }
                     break;
                 case 13 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1410:17: ( FROM )=>t= FROM
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1440:17: ( FROM )=>t= FROM
                     {
                     t=(Token)input.LT(1);
-                    match(input,FROM,FOLLOW_FROM_in_identifier4423); if (failed) return tok;
+                    match(input,FROM,FOLLOW_FROM_in_identifier4499); if (failed) return tok;
 
                     }
                     break;
                 case 14 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1411:17: ( ACCUMULATE )=>t= ACCUMULATE
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1441:17: ( ACCUMULATE )=>t= ACCUMULATE
                     {
                     t=(Token)input.LT(1);
-                    match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_identifier4452); if (failed) return tok;
+                    match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_identifier4528); if (failed) return tok;
 
                     }
                     break;
                 case 15 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1412:17: ( INIT )=>t= INIT
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1442:17: ( INIT )=>t= INIT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INIT,FOLLOW_INIT_in_identifier4474); if (failed) return tok;
+                    match(input,INIT,FOLLOW_INIT_in_identifier4550); if (failed) return tok;
 
                     }
                     break;
                 case 16 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:17: ( ACTION )=>t= ACTION
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1443:17: ( ACTION )=>t= ACTION
                     {
                     t=(Token)input.LT(1);
-                    match(input,ACTION,FOLLOW_ACTION_in_identifier4503); if (failed) return tok;
+                    match(input,ACTION,FOLLOW_ACTION_in_identifier4579); if (failed) return tok;
 
                     }
                     break;
                 case 17 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1414:17: ( RESULT )=>t= RESULT
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1444:17: ( RESULT )=>t= RESULT
                     {
                     t=(Token)input.LT(1);
-                    match(input,RESULT,FOLLOW_RESULT_in_identifier4532); if (failed) return tok;
+                    match(input,RESULT,FOLLOW_RESULT_in_identifier4608); if (failed) return tok;
 
                     }
                     break;
                 case 18 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1415:17: ( COLLECT )=>t= COLLECT
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1445:17: ( COLLECT )=>t= COLLECT
                     {
                     t=(Token)input.LT(1);
-                    match(input,COLLECT,FOLLOW_COLLECT_in_identifier4561); if (failed) return tok;
+                    match(input,COLLECT,FOLLOW_COLLECT_in_identifier4637); if (failed) return tok;
 
                     }
                     break;
                 case 19 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1416:17: ( OR )=>t= OR
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1446:17: ( OR )=>t= OR
                     {
                     t=(Token)input.LT(1);
-                    match(input,OR,FOLLOW_OR_in_identifier4590); if (failed) return tok;
+                    match(input,OR,FOLLOW_OR_in_identifier4666); if (failed) return tok;
 
                     }
                     break;
                 case 20 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:17: ( AND )=>t= AND
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1447:17: ( AND )=>t= AND
                     {
                     t=(Token)input.LT(1);
-                    match(input,AND,FOLLOW_AND_in_identifier4619); if (failed) return tok;
+                    match(input,AND,FOLLOW_AND_in_identifier4695); if (failed) return tok;
 
                     }
                     break;
                 case 21 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1418:17: ( CONTAINS )=>t= CONTAINS
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1448:17: ( CONTAINS )=>t= CONTAINS
                     {
                     t=(Token)input.LT(1);
-                    match(input,CONTAINS,FOLLOW_CONTAINS_in_identifier4648); if (failed) return tok;
+                    match(input,CONTAINS,FOLLOW_CONTAINS_in_identifier4724); if (failed) return tok;
 
                     }
                     break;
                 case 22 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1419:17: ( EXCLUDES )=>t= EXCLUDES
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1449:17: ( EXCLUDES )=>t= EXCLUDES
                     {
                     t=(Token)input.LT(1);
-                    match(input,EXCLUDES,FOLLOW_EXCLUDES_in_identifier4670); if (failed) return tok;
+                    match(input,EXCLUDES,FOLLOW_EXCLUDES_in_identifier4746); if (failed) return tok;
 
                     }
                     break;
                 case 23 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1420:17: ( MATCHES )=>t= MATCHES
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1450:17: ( MATCHES )=>t= MATCHES
                     {
                     t=(Token)input.LT(1);
-                    match(input,MATCHES,FOLLOW_MATCHES_in_identifier4692); if (failed) return tok;
+                    match(input,MATCHES,FOLLOW_MATCHES_in_identifier4768); if (failed) return tok;
 
                     }
                     break;
                 case 24 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:17: ( NULL )=>t= NULL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1451:17: ( NULL )=>t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_identifier4721); if (failed) return tok;
+                    match(input,NULL,FOLLOW_NULL_in_identifier4797); if (failed) return tok;
 
                     }
                     break;
                 case 25 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:17: ( EXISTS )=>t= EXISTS
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1452:17: ( EXISTS )=>t= EXISTS
                     {
                     t=(Token)input.LT(1);
-                    match(input,EXISTS,FOLLOW_EXISTS_in_identifier4750); if (failed) return tok;
+                    match(input,EXISTS,FOLLOW_EXISTS_in_identifier4826); if (failed) return tok;
 
                     }
                     break;
                 case 26 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1423:17: ( NOT )=>t= NOT
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1453:17: ( NOT )=>t= NOT
                     {
                     t=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_identifier4779); if (failed) return tok;
+                    match(input,NOT,FOLLOW_NOT_in_identifier4855); if (failed) return tok;
 
                     }
                     break;
                 case 27 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1424:17: ( EVAL )=>t= EVAL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1454:17: ( EVAL )=>t= EVAL
                     {
                     t=(Token)input.LT(1);
-                    match(input,EVAL,FOLLOW_EVAL_in_identifier4808); if (failed) return tok;
+                    match(input,EVAL,FOLLOW_EVAL_in_identifier4884); if (failed) return tok;
 
                     }
                     break;
                 case 28 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1425:17: ( FORALL )=>t= FORALL
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1455:17: ( FORALL )=>t= FORALL
                     {
                     t=(Token)input.LT(1);
-                    match(input,FORALL,FOLLOW_FORALL_in_identifier4837); if (failed) return tok;
+                    match(input,FORALL,FOLLOW_FORALL_in_identifier4913); if (failed) return tok;
 
                     }
                     break;
                 case 29 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1426:17: ( WHEN )=>t= WHEN
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1456:17: ( WHEN )=>t= WHEN
                     {
                     t=(Token)input.LT(1);
-                    match(input,WHEN,FOLLOW_WHEN_in_identifier4875); if (failed) return tok;
+                    match(input,WHEN,FOLLOW_WHEN_in_identifier4951); if (failed) return tok;
 
                     }
                     break;
                 case 30 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1427:17: ( THEN )=>t= THEN
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1457:17: ( THEN )=>t= THEN
                     {
                     t=(Token)input.LT(1);
-                    match(input,THEN,FOLLOW_THEN_in_identifier4907); if (failed) return tok;
+                    match(input,THEN,FOLLOW_THEN_in_identifier4983); if (failed) return tok;
 
                     }
                     break;
                 case 31 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1428:17: t= END
+                    // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:17: t= END
                     {
                     t=(Token)input.LT(1);
-                    match(input,END,FOLLOW_END_in_identifier4936); if (failed) return tok;
+                    match(input,END,FOLLOW_END_in_identifier5012); if (failed) return tok;
 
                     }
                     break;
@@ -5713,8 +5829,8 @@
 
     // $ANTLR start synpred4
     public void synpred4_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:4: ( function_import_statement )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:4: function_import_statement
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:4: ( function_import_statement )
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:189:4: function_import_statement
         {
         pushFollow(FOLLOW_function_import_statement_in_synpred4114);
         function_import_statement();
@@ -5727,8 +5843,8 @@
 
     // $ANTLR start synpred5
     public void synpred5_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:190:4: ( import_statement )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:190:4: import_statement
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:190:4: ( import_statement )
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:190:4: import_statement
         {
         pushFollow(FOLLOW_import_statement_in_synpred5120);
         import_statement();
@@ -5739,37 +5855,37 @@
     }
     // $ANTLR end synpred5
 
-    // $ANTLR start synpred36
-    public void synpred36_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:688:4: ( paren_chunk[from] )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:688:4: paren_chunk[from]
+    // $ANTLR start synpred38
+    public void synpred38_fragment() throws RecognitionException {   
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:718:4: ( paren_chunk[from] )
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:718:4: paren_chunk[from]
         {
-        pushFollow(FOLLOW_paren_chunk_in_synpred361712);
+        pushFollow(FOLLOW_paren_chunk_in_synpred381788);
         paren_chunk(from);
         _fsp--;
         if (failed) return ;
 
         }
     }
-    // $ANTLR end synpred36
+    // $ANTLR end synpred38
 
-    // $ANTLR start synpred39
-    public void synpred39_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:723:6: ( LEFT_PAREN )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:723:8: LEFT_PAREN
+    // $ANTLR start synpred41
+    public void synpred41_fragment() throws RecognitionException {   
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:753:6: ( LEFT_PAREN )
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:753:8: LEFT_PAREN
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred391812); if (failed) return ;
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred411888); if (failed) return ;
 
         }
     }
-    // $ANTLR end synpred39
+    // $ANTLR end synpred41
 
-    // $ANTLR start synpred42
-    public void synpred42_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:820:6: ( (OR|'||') fact )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:820:6: (OR|'||') fact
+    // $ANTLR start synpred44
+    public void synpred44_fragment() throws RecognitionException {   
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:850:6: ( (OR|'||') fact )
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:850:6: (OR|'||') fact
         {
-        if ( input.LA(1)==OR||input.LA(1)==67 ) {
+        if ( input.LA(1)==OR||input.LA(1)==68 ) {
             input.consume();
             errorRecovery=false;failed=false;
         }
@@ -5777,46 +5893,46 @@
             if (backtracking>0) {failed=true; return ;}
             MismatchedSetException mse =
                 new MismatchedSetException(null,input);
-            recoverFromMismatchedSet(input,mse,FOLLOW_set_in_synpred422121);    throw mse;
+            recoverFromMismatchedSet(input,mse,FOLLOW_set_in_synpred442197);    throw mse;
         }
 
-        pushFollow(FOLLOW_fact_in_synpred422138);
+        pushFollow(FOLLOW_fact_in_synpred442214);
         fact();
         _fsp--;
         if (failed) return ;
 
         }
     }
-    // $ANTLR end synpred42
+    // $ANTLR end synpred44
 
-    // $ANTLR start synpred70
-    public void synpred70_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:14: ( ACCUMULATE )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:16: ACCUMULATE
+    // $ANTLR start synpred72
+    public void synpred72_fragment() throws RecognitionException {   
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1228:14: ( ACCUMULATE )
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1228:16: ACCUMULATE
         {
-        match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_synpred703382); if (failed) return ;
+        match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_synpred723458); if (failed) return ;
 
         }
     }
-    // $ANTLR end synpred70
+    // $ANTLR end synpred72
 
-    // $ANTLR start synpred71
-    public void synpred71_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1199:14: ( COLLECT )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1199:16: COLLECT
+    // $ANTLR start synpred73
+    public void synpred73_fragment() throws RecognitionException {   
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1229:14: ( COLLECT )
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1229:16: COLLECT
         {
-        match(input,COLLECT,FOLLOW_COLLECT_in_synpred713411); if (failed) return ;
+        match(input,COLLECT,FOLLOW_COLLECT_in_synpred733487); if (failed) return ;
 
         }
     }
-    // $ANTLR end synpred71
+    // $ANTLR end synpred73
 
-    // $ANTLR start synpred72
-    public void synpred72_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:14: (~ (ACCUMULATE|COLLECT))
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:16: ~ (ACCUMULATE|COLLECT)
+    // $ANTLR start synpred74
+    public void synpred74_fragment() throws RecognitionException {   
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1230:14: (~ (ACCUMULATE|COLLECT))
+        // C:\\dev\\jbossrules\\trunk3\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1230:16: ~ (ACCUMULATE|COLLECT)
         {
-        if ( (input.LA(1)>=PACKAGE && input.LA(1)<=DURATION)||(input.LA(1)>=INIT && input.LA(1)<=RESULT)||(input.LA(1)>=ID && input.LA(1)<=77) ) {
+        if ( (input.LA(1)>=PACKAGE && input.LA(1)<=LOCK_ON_ACTIVE)||(input.LA(1)>=INIT && input.LA(1)<=RESULT)||(input.LA(1)>=ID && input.LA(1)<=78) ) {
             input.consume();
             errorRecovery=false;failed=false;
         }
@@ -5824,19 +5940,19 @@
             if (backtracking>0) {failed=true; return ;}
             MismatchedSetException mse =
                 new MismatchedSetException(null,input);
-            recoverFromMismatchedSet(input,mse,FOLLOW_set_in_synpred723441);    throw mse;
+            recoverFromMismatchedSet(input,mse,FOLLOW_set_in_synpred743517);    throw mse;
         }
 
 
         }
     }
-    // $ANTLR end synpred72
+    // $ANTLR end synpred74
 
-    public boolean synpred4() {
+    public boolean synpred44() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred4_fragment(); // can never throw exception
+            synpred44_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5846,11 +5962,11 @@
         failed=false;
         return success;
     }
-    public boolean synpred72() {
+    public boolean synpred74() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred72_fragment(); // can never throw exception
+            synpred74_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5860,11 +5976,11 @@
         failed=false;
         return success;
     }
-    public boolean synpred39() {
+    public boolean synpred38() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred39_fragment(); // can never throw exception
+            synpred38_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5874,11 +5990,11 @@
         failed=false;
         return success;
     }
-    public boolean synpred70() {
+    public boolean synpred72() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred70_fragment(); // can never throw exception
+            synpred72_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5888,11 +6004,11 @@
         failed=false;
         return success;
     }
-    public boolean synpred5() {
+    public boolean synpred73() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred5_fragment(); // can never throw exception
+            synpred73_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5902,11 +6018,11 @@
         failed=false;
         return success;
     }
-    public boolean synpred36() {
+    public boolean synpred5() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred36_fragment(); // can never throw exception
+            synpred5_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5916,11 +6032,11 @@
         failed=false;
         return success;
     }
-    public boolean synpred71() {
+    public boolean synpred41() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred71_fragment(); // can never throw exception
+            synpred41_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5930,11 +6046,11 @@
         failed=false;
         return success;
     }
-    public boolean synpred42() {
+    public boolean synpred4() {
         backtracking++;
         int start = input.mark();
         try {
-            synpred42_fragment(); // can never throw exception
+            synpred4_fragment(); // can never throw exception
         } catch (RecognitionException re) {
             System.err.println("impossible: "+re);
         }
@@ -5953,23 +6069,24 @@
     public static final String DFA8_eofS =
         "\6\uffff";
     public static final String DFA8_minS =
-        "\2\4\2\uffff\1\54\1\4";
+        "\2\4\2\uffff\1\55\1\4";
     public static final String DFA8_maxS =
-        "\1\63\1\101\2\uffff\1\54\1\101";
+        "\1\64\1\102\2\uffff\1\55\1\102";
     public static final String DFA8_acceptS =
         "\2\uffff\1\2\1\1\2\uffff";
     public static final String DFA8_specialS =
         "\6\uffff}>";
     public static final String[] DFA8_transition = {
-        "\12\2\3\uffff\1\2\1\uffff\1\2\6\uffff\6\2\1\1\1\2\2\uffff\3\2\1"+
-        "\uffff\1\2\4\uffff\7\2",
-        "\12\3\3\uffff\1\3\1\uffff\1\3\6\uffff\10\3\1\uffff\1\2\3\3\1\uffff"+
-        "\1\3\2\uffff\1\4\1\uffff\7\3\13\uffff\1\3\1\uffff\1\2",
+        "\12\2\3\uffff\1\2\1\uffff\1\2\6\uffff\1\2\1\uffff\5\2\1\1\1\2\2"+
+        "\uffff\3\2\1\uffff\1\2\4\uffff\7\2",
+        "\12\3\3\uffff\1\3\1\uffff\1\3\6\uffff\1\3\1\uffff\7\3\1\uffff\1"+
+        "\2\3\3\1\uffff\1\3\2\uffff\1\4\1\uffff\7\3\13\uffff\1\3\1\uffff"+
+        "\1\2",
         "",
         "",
         "\1\5",
-        "\12\3\3\uffff\1\3\1\uffff\1\3\6\uffff\10\3\1\uffff\1\2\3\3\1\uffff"+
-        "\1\3\2\uffff\1\4\1\uffff\7\3\15\uffff\1\2"
+        "\12\3\3\uffff\1\3\1\uffff\1\3\6\uffff\1\3\1\uffff\7\3\1\uffff\1"+
+        "\2\3\3\1\uffff\1\3\2\uffff\1\4\1\uffff\7\3\15\uffff\1\2"
     };
 
     class DFA8 extends DFA {
@@ -5997,23 +6114,24 @@
     public static final String DFA9_eofS =
         "\6\uffff";
     public static final String DFA9_minS =
-        "\2\4\1\uffff\1\54\1\uffff\1\4";
+        "\2\4\2\uffff\1\55\1\4";
     public static final String DFA9_maxS =
-        "\1\63\1\101\1\uffff\1\54\1\uffff\1\101";
+        "\1\64\1\102\2\uffff\1\55\1\102";
     public static final String DFA9_acceptS =
-        "\2\uffff\1\2\1\uffff\1\1\1\uffff";
+        "\2\uffff\1\2\1\1\2\uffff";
     public static final String DFA9_specialS =
         "\6\uffff}>";
     public static final String[] DFA9_transition = {
-        "\12\2\3\uffff\1\2\1\uffff\1\2\6\uffff\6\2\1\1\1\2\2\uffff\3\2\1"+
-        "\uffff\1\2\4\uffff\7\2",
-        "\12\4\3\uffff\1\4\1\uffff\1\4\6\uffff\10\4\1\uffff\1\2\3\4\1\uffff"+
-        "\1\4\2\uffff\1\3\1\uffff\7\4\13\uffff\1\4\1\uffff\1\2",
+        "\12\2\3\uffff\1\2\1\uffff\1\2\6\uffff\1\2\1\uffff\5\2\1\1\1\2\2"+
+        "\uffff\3\2\1\uffff\1\2\4\uffff\7\2",
+        "\12\3\3\uffff\1\3\1\uffff\1\3\6\uffff\1\3\1\uffff\7\3\1\uffff\1"+
+        "\2\3\3\1\uffff\1\3\2\uffff\1\4\1\uffff\7\3\13\uffff\1\3\1\uffff"+
+        "\1\2",
         "",
+        "",
         "\1\5",
-        "",
-        "\12\4\3\uffff\1\4\1\uffff\1\4\6\uffff\10\4\1\uffff\1\2\3\4\1\uffff"+
-        "\1\4\2\uffff\1\3\1\uffff\7\4\15\uffff\1\2"
+        "\12\3\3\uffff\1\3\1\uffff\1\3\6\uffff\1\3\1\uffff\7\3\1\uffff\1"+
+        "\2\3\3\1\uffff\1\3\2\uffff\1\4\1\uffff\7\3\15\uffff\1\2"
     };
 
     class DFA9 extends DFA {
@@ -6038,7 +6156,7 @@
     }
  
 
-    public static final BitSet FOLLOW_62_in_opt_semicolon46 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_63_in_opt_semicolon46 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_prolog_in_compilation_unit58 = new BitSet(new long[]{0x0000000000000DE0L});
     public static final BitSet FOLLOW_statement_in_compilation_unit65 = new BitSet(new long[]{0x0000000000000DE2L});
     public static final BitSet FOLLOW_package_statement_in_prolog90 = new BitSet(new long[]{0x0000000000000002L});
@@ -6049,263 +6167,267 @@
     public static final BitSet FOLLOW_template_in_statement146 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_rule_in_statement155 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_query_in_statement167 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_PACKAGE_in_package_statement196 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_dotted_name_in_package_statement200 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_PACKAGE_in_package_statement196 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_dotted_name_in_package_statement200 = new BitSet(new long[]{0x8000000000000002L});
     public static final BitSet FOLLOW_opt_semicolon_in_package_statement203 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IMPORT_in_import_statement235 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_import_name_in_import_statement258 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_IMPORT_in_import_statement235 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_import_name_in_import_statement258 = new BitSet(new long[]{0x8000000000000002L});
     public static final BitSet FOLLOW_opt_semicolon_in_import_statement261 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_IMPORT_in_function_import_statement287 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_FUNCTION_in_function_import_statement289 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_import_name_in_function_import_statement312 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_function_import_statement289 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_import_name_in_function_import_statement312 = new BitSet(new long[]{0x8000000000000002L});
     public static final BitSet FOLLOW_opt_semicolon_in_function_import_statement315 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_import_name343 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000001L});
-    public static final BitSet FOLLOW_63_in_import_name355 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_import_name359 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000001L});
-    public static final BitSet FOLLOW_64_in_import_name383 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GLOBAL_in_global419 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_dotted_name_in_global430 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_global442 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_import_name343 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000003L});
+    public static final BitSet FOLLOW_64_in_import_name355 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_import_name359 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000003L});
+    public static final BitSet FOLLOW_65_in_import_name383 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GLOBAL_in_global419 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_dotted_name_in_global430 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_global442 = new BitSet(new long[]{0x8000000000000002L});
     public static final BitSet FOLLOW_opt_semicolon_in_global444 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_function471 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_dotted_name_in_function476 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_function483 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_function492 = new BitSet(new long[]{0x000FE17BFC0A3FF0L});
-    public static final BitSet FOLLOW_dotted_name_in_function502 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_argument_in_function509 = new BitSet(new long[]{0x0000000800000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_function523 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_dotted_name_in_function528 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_argument_in_function535 = new BitSet(new long[]{0x0000000800000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_function559 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_FUNCTION_in_function471 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_dotted_name_in_function476 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_function483 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_function492 = new BitSet(new long[]{0x001FC2F7F40A3FF0L});
+    public static final BitSet FOLLOW_dotted_name_in_function502 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_argument_in_function509 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_function523 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_dotted_name_in_function528 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_argument_in_function535 = new BitSet(new long[]{0x0000001000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_function559 = new BitSet(new long[]{0x0000040000000000L});
     public static final BitSet FOLLOW_curly_chunk_in_function565 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_QUERY_in_query597 = new BitSet(new long[]{0x0000000100008000L});
-    public static final BitSet FOLLOW_name_in_query601 = new BitSet(new long[]{0x0007800500000200L});
+    public static final BitSet FOLLOW_QUERY_in_query597 = new BitSet(new long[]{0x0000000200008000L});
+    public static final BitSet FOLLOW_name_in_query601 = new BitSet(new long[]{0x000F000A00000200L});
     public static final BitSet FOLLOW_normal_lhs_block_in_query614 = new BitSet(new long[]{0x0000000000000200L});
     public static final BitSet FOLLOW_END_in_query631 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TEMPLATE_in_template661 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_template665 = new BitSet(new long[]{0x4000000100000000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_template667 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_template_slot_in_template682 = new BitSet(new long[]{0x0000000100000200L});
-    public static final BitSet FOLLOW_END_in_template699 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_TEMPLATE_in_template661 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_template665 = new BitSet(new long[]{0x8000000200000000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_template667 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_template_slot_in_template682 = new BitSet(new long[]{0x0000000200000200L});
+    public static final BitSet FOLLOW_END_in_template699 = new BitSet(new long[]{0x8000000000000002L});
     public static final BitSet FOLLOW_opt_semicolon_in_template701 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_template_slot747 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_template_slot765 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_dotted_name_in_template_slot747 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_template_slot765 = new BitSet(new long[]{0x8000000000000002L});
     public static final BitSet FOLLOW_opt_semicolon_in_template_slot767 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_in_rule800 = new BitSet(new long[]{0x0000000100008000L});
-    public static final BitSet FOLLOW_name_in_rule804 = new BitSet(new long[]{0x0008000007EB7000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule_attributes_in_rule813 = new BitSet(new long[]{0x0008000000001000L});
-    public static final BitSet FOLLOW_WHEN_in_rule822 = new BitSet(new long[]{0x000F800500000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_66_in_rule824 = new BitSet(new long[]{0x000F800500000000L});
-    public static final BitSet FOLLOW_normal_lhs_block_in_rule842 = new BitSet(new long[]{0x0008000000000000L});
+    public static final BitSet FOLLOW_RULE_in_rule800 = new BitSet(new long[]{0x0000000200008000L});
+    public static final BitSet FOLLOW_name_in_rule804 = new BitSet(new long[]{0x001000000FEB7000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_rule_attributes_in_rule813 = new BitSet(new long[]{0x0010000000001000L});
+    public static final BitSet FOLLOW_WHEN_in_rule822 = new BitSet(new long[]{0x001F000A00000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_67_in_rule824 = new BitSet(new long[]{0x001F000A00000000L});
+    public static final BitSet FOLLOW_normal_lhs_block_in_rule842 = new BitSet(new long[]{0x0010000000000000L});
     public static final BitSet FOLLOW_rhs_chunk_in_rule863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ATTRIBUTES_in_rule_attributes884 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_66_in_rule_attributes886 = new BitSet(new long[]{0x0000000007EB4002L,0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_rule_attributes895 = new BitSet(new long[]{0x0000000007EB4000L});
-    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes900 = new BitSet(new long[]{0x0000000007EB4002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_ATTRIBUTES_in_rule_attributes884 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_67_in_rule_attributes886 = new BitSet(new long[]{0x000000000FEB4002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_rule_attributes895 = new BitSet(new long[]{0x000000000FEB4000L});
+    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes900 = new BitSet(new long[]{0x000000000FEB4002L,0x0000000000000004L});
     public static final BitSet FOLLOW_salience_in_rule_attribute941 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_no_loop_in_rule_attribute951 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_agenda_group_in_rule_attribute962 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_duration_in_rule_attribute975 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_activation_group_in_rule_attribute989 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_auto_focus_in_rule_attribute1000 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_effective_in_rule_attribute1017 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_expires_in_rule_attribute1027 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_enabled_in_rule_attribute1043 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1059 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DATE_EFFECTIVE_in_date_effective1091 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_STRING_in_date_effective1095 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DATE_EXPIRES_in_date_expires1128 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_STRING_in_date_expires1132 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ENABLED_in_enabled1167 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_BOOL_in_enabled1171 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SALIENCE_in_salience1216 = new BitSet(new long[]{0x0000000000100000L});
-    public static final BitSet FOLLOW_INT_in_salience1220 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NO_LOOP_in_no_loop1258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NO_LOOP_in_no_loop1286 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_BOOL_in_no_loop1290 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1339 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1367 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_BOOL_in_auto_focus1371 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACTIVATION_GROUP_in_activation_group1416 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_STRING_in_activation_group1420 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1452 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_STRING_in_ruleflow_group1456 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AGENDA_GROUP_in_agenda_group1488 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_STRING_in_agenda_group1492 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DURATION_in_duration1527 = new BitSet(new long[]{0x0000000000100000L});
-    public static final BitSet FOLLOW_INT_in_duration1531 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_in_normal_lhs_block1558 = new BitSet(new long[]{0x0007800500000002L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs1595 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_binding_in_lhs_column1623 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_lhs_column1632 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_from_source_in_from_statement1659 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_from_source1701 = new BitSet(new long[]{0x8000000400000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_from_source1712 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_expression_chain_in_from_source1726 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_63_in_expression_chain1751 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_expression_chain1755 = new BitSet(new long[]{0x8000080400000002L});
-    public static final BitSet FOLLOW_square_chunk_in_expression_chain1786 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_chain1820 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_expression_chain_in_expression_chain1841 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement1882 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement1892 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_lhs_column_in_accumulate_statement1896 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_accumulate_statement1898 = new BitSet(new long[]{0x0000000010000000L});
-    public static final BitSet FOLLOW_INIT_in_accumulate_statement1907 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement1911 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_accumulate_statement1914 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_ACTION_in_accumulate_statement1923 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement1927 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_accumulate_statement1930 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_RESULT_in_accumulate_statement1939 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement1943 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement1948 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_collect_statement1991 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement2001 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_lhs_column_in_collect_statement2005 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement2009 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_fact_binding2043 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_66_in_fact_binding2045 = new BitSet(new long[]{0x0000000500000000L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_binding2058 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_expression2090 = new BitSet(new long[]{0x0000000500000000L});
-    public static final BitSet FOLLOW_fact_expression_in_fact_expression2094 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_expression2097 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_fact_expression2108 = new BitSet(new long[]{0x0000000200000002L,0x0000000000000008L});
-    public static final BitSet FOLLOW_set_in_fact_expression2121 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_fact_in_fact_expression2138 = new BitSet(new long[]{0x0000000200000002L,0x0000000000000008L});
-    public static final BitSet FOLLOW_dotted_name_in_fact2199 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact2213 = new BitSet(new long[]{0x000FE17FFC0A3FF0L});
-    public static final BitSet FOLLOW_constraints_in_fact2223 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact2236 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_constraint_in_constraints2257 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
-    public static final BitSet FOLLOW_predicate_in_constraints2260 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_constraints2268 = new BitSet(new long[]{0x000FE177FC0A3FF0L});
-    public static final BitSet FOLLOW_constraint_in_constraints2271 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
-    public static final BitSet FOLLOW_predicate_in_constraints2274 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_constraint2303 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_66_in_constraint2305 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_constraint2326 = new BitSet(new long[]{0x0000007000000002L,0x0000000000001FC0L});
-    public static final BitSet FOLLOW_constraint_expression_in_constraint2344 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000030L});
-    public static final BitSet FOLLOW_set_in_constraint2366 = new BitSet(new long[]{0x0000007000000000L,0x0000000000001F80L});
-    public static final BitSet FOLLOW_constraint_expression_in_constraint2385 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000030L});
-    public static final BitSet FOLLOW_70_in_constraint2413 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_predicate_in_constraint2415 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_constraint_expression2452 = new BitSet(new long[]{0x0000018500148000L});
-    public static final BitSet FOLLOW_ID_in_constraint_expression2519 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_enum_constraint_in_constraint_expression2535 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_constraint_in_constraint_expression2558 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_retval_constraint_in_constraint_expression2572 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_literal_constraint2611 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_literal_constraint2622 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_literal_constraint2635 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_literal_constraint2646 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_literal_constraint2658 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_enum_constraint2693 = new BitSet(new long[]{0x8000000000000000L});
-    public static final BitSet FOLLOW_63_in_enum_constraint2699 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_enum_constraint2703 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_predicate2745 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk2794 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_set_in_paren_chunk2810 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk2834 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk2871 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk2922 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_set_in_curly_chunk2938 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk2962 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk2999 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk3062 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_set_in_square_chunk3078 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_square_chunk_in_square_chunk3102 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk3139 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_retval_constraint3184 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or3212 = new BitSet(new long[]{0x0000000200000002L,0x0000000000000008L});
-    public static final BitSet FOLLOW_set_in_lhs_or3221 = new BitSet(new long[]{0x0007800500000000L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or3231 = new BitSet(new long[]{0x0000000200000002L,0x0000000000000008L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3267 = new BitSet(new long[]{0x0000200000000002L,0x0000000000002000L});
-    public static final BitSet FOLLOW_set_in_lhs_and3276 = new BitSet(new long[]{0x0007800500000000L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3286 = new BitSet(new long[]{0x0000200000000002L,0x0000000000002000L});
-    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3323 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3331 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3339 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3347 = new BitSet(new long[]{0x4000400000000002L});
-    public static final BitSet FOLLOW_FROM_in_lhs_unary3363 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_accumulate_statement_in_lhs_unary3391 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_collect_statement_in_lhs_unary3420 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_from_statement_in_lhs_unary3455 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary3494 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary3502 = new BitSet(new long[]{0x0007800500000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_unary3506 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary3508 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary3518 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXISTS_in_lhs_exist3542 = new BitSet(new long[]{0x0000000500000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist3562 = new BitSet(new long[]{0x0007800500000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3566 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist3598 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3648 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_lhs_not3702 = new BitSet(new long[]{0x0000000500000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not3715 = new BitSet(new long[]{0x0007800500000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_not3719 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not3752 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_not3789 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EVAL_in_lhs_eval3837 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval3841 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FORALL_in_lhs_forall3870 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall3872 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3876 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_lhs_forall3890 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3896 = new BitSet(new long[]{0x0000000900000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall3911 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_dotted_name3942 = new BitSet(new long[]{0x8000080000000002L});
-    public static final BitSet FOLLOW_63_in_dotted_name3954 = new BitSet(new long[]{0x000FE173FC0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_dotted_name3958 = new BitSet(new long[]{0x8000080000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name3980 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name3984 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_identifier_in_argument4023 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument4029 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument4031 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_THEN_in_rhs_chunk4075 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_set_in_rhs_chunk4087 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000003FFFL});
-    public static final BitSet FOLLOW_END_in_rhs_chunk4124 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_name4168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_name4187 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_identifier4225 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_PACKAGE_in_identifier4238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_identifier4245 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GLOBAL_in_identifier4252 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IMPORT_in_identifier4259 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_in_identifier4268 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_QUERY_in_identifier4275 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TEMPLATE_in_identifier4296 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ATTRIBUTES_in_identifier4324 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ENABLED_in_identifier4350 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SALIENCE_in_identifier4379 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DURATION_in_identifier4401 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FROM_in_identifier4423 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_identifier4452 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INIT_in_identifier4474 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACTION_in_identifier4503 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RESULT_in_identifier4532 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_identifier4561 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_OR_in_identifier4590 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AND_in_identifier4619 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CONTAINS_in_identifier4648 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXCLUDES_in_identifier4670 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MATCHES_in_identifier4692 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_identifier4721 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXISTS_in_identifier4750 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_identifier4779 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EVAL_in_identifier4808 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FORALL_in_identifier4837 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_WHEN_in_identifier4875 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_THEN_in_identifier4907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_END_in_identifier4936 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_effective_in_rule_attribute1011 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_expires_in_rule_attribute1021 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enabled_in_rule_attribute1031 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1041 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1051 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DATE_EFFECTIVE_in_date_effective1082 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_STRING_in_date_effective1086 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DATE_EXPIRES_in_date_expires1119 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_STRING_in_date_expires1123 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ENABLED_in_enabled1158 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_BOOL_in_enabled1162 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_salience1207 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_INT_in_salience1211 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NO_LOOP_in_no_loop1249 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NO_LOOP_in_no_loop1277 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_BOOL_in_no_loop1281 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1330 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1358 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_BOOL_in_auto_focus1362 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACTIVATION_GROUP_in_activation_group1407 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_STRING_in_activation_group1411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1443 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_STRING_in_ruleflow_group1447 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AGENDA_GROUP_in_agenda_group1479 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_STRING_in_agenda_group1483 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DURATION_in_duration1518 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_INT_in_duration1522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1564 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1592 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_BOOL_in_lock_on_active1596 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_in_normal_lhs_block1634 = new BitSet(new long[]{0x000F000A00000002L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs1671 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_binding_in_lhs_column1699 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_lhs_column1708 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_from_source_in_from_statement1735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_from_source1777 = new BitSet(new long[]{0x0000000800000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_paren_chunk_in_from_source1788 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_expression_chain_in_from_source1802 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_expression_chain1827 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_expression_chain1831 = new BitSet(new long[]{0x0000100800000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_square_chunk_in_expression_chain1862 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_chain1896 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_expression_chain_in_expression_chain1917 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement1958 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement1968 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_lhs_column_in_accumulate_statement1972 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_accumulate_statement1974 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_INIT_in_accumulate_statement1983 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement1987 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_accumulate_statement1990 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_ACTION_in_accumulate_statement1999 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2003 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_accumulate_statement2006 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_RESULT_in_accumulate_statement2015 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2019 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement2024 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_collect_statement2067 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement2077 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_lhs_column_in_collect_statement2081 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement2085 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_fact_binding2119 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_67_in_fact_binding2121 = new BitSet(new long[]{0x0000000A00000000L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_binding2134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_expression2166 = new BitSet(new long[]{0x0000000A00000000L});
+    public static final BitSet FOLLOW_fact_expression_in_fact_expression2170 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_expression2173 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_fact_expression2184 = new BitSet(new long[]{0x0000000400000002L,0x0000000000000010L});
+    public static final BitSet FOLLOW_set_in_fact_expression2197 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_fact_in_fact_expression2214 = new BitSet(new long[]{0x0000000400000002L,0x0000000000000010L});
+    public static final BitSet FOLLOW_dotted_name_in_fact2275 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact2289 = new BitSet(new long[]{0x001FC2FFF40A3FF0L});
+    public static final BitSet FOLLOW_constraints_in_fact2299 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact2312 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constraint_in_constraints2333 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_predicate_in_constraints2336 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_constraints2344 = new BitSet(new long[]{0x001FC2EFF40A3FF0L});
+    public static final BitSet FOLLOW_constraint_in_constraints2347 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_predicate_in_constraints2350 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_ID_in_constraint2379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_67_in_constraint2381 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_constraint2402 = new BitSet(new long[]{0x000000E000000002L,0x0000000000003F80L});
+    public static final BitSet FOLLOW_constraint_expression_in_constraint2420 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000060L});
+    public static final BitSet FOLLOW_set_in_constraint2442 = new BitSet(new long[]{0x000000E000000000L,0x0000000000003F00L});
+    public static final BitSet FOLLOW_constraint_expression_in_constraint2461 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000060L});
+    public static final BitSet FOLLOW_71_in_constraint2489 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_predicate_in_constraint2491 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_set_in_constraint_expression2528 = new BitSet(new long[]{0x0000030A00148000L});
+    public static final BitSet FOLLOW_ID_in_constraint_expression2595 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enum_constraint_in_constraint_expression2611 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_constraint_in_constraint_expression2634 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_retval_constraint_in_constraint_expression2648 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal_constraint2687 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal_constraint2698 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal_constraint2711 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal_constraint2722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_literal_constraint2734 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_enum_constraint2769 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_64_in_enum_constraint2775 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_enum_constraint2779 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_paren_chunk_in_predicate2821 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk2870 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_set_in_paren_chunk2886 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk2910 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk2947 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk2998 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_set_in_curly_chunk3014 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk3038 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk3075 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk3138 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_set_in_square_chunk3154 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_square_chunk_in_square_chunk3178 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk3215 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_retval_constraint3260 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or3288 = new BitSet(new long[]{0x0000000400000002L,0x0000000000000010L});
+    public static final BitSet FOLLOW_set_in_lhs_or3297 = new BitSet(new long[]{0x000F000A00000000L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or3307 = new BitSet(new long[]{0x0000000400000002L,0x0000000000000010L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3343 = new BitSet(new long[]{0x0000400000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_set_in_lhs_and3352 = new BitSet(new long[]{0x000F000A00000000L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3362 = new BitSet(new long[]{0x0000400000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3399 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3407 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3415 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3423 = new BitSet(new long[]{0x8000800000000002L});
+    public static final BitSet FOLLOW_FROM_in_lhs_unary3439 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_accumulate_statement_in_lhs_unary3467 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_collect_statement_in_lhs_unary3496 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_from_statement_in_lhs_unary3531 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary3570 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary3578 = new BitSet(new long[]{0x000F000A00000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_unary3582 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary3584 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary3594 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXISTS_in_lhs_exist3618 = new BitSet(new long[]{0x0000000A00000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist3638 = new BitSet(new long[]{0x000F000A00000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3642 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist3674 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3724 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_lhs_not3778 = new BitSet(new long[]{0x0000000A00000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not3791 = new BitSet(new long[]{0x000F000A00000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_not3795 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not3828 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_not3865 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EVAL_in_lhs_eval3913 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval3917 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FORALL_in_lhs_forall3946 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall3948 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3952 = new BitSet(new long[]{0x0000000200000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_66_in_lhs_forall3966 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3972 = new BitSet(new long[]{0x0000001200000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall3987 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_dotted_name4018 = new BitSet(new long[]{0x0000100000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_64_in_dotted_name4030 = new BitSet(new long[]{0x001FC2E7F40A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_dotted_name4034 = new BitSet(new long[]{0x0000100000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name4056 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name4060 = new BitSet(new long[]{0x0000100000000002L});
+    public static final BitSet FOLLOW_identifier_in_argument4099 = new BitSet(new long[]{0x0000100000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument4105 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument4107 = new BitSet(new long[]{0x0000100000000002L});
+    public static final BitSet FOLLOW_THEN_in_rhs_chunk4151 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_set_in_rhs_chunk4163 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000007FFFL});
+    public static final BitSet FOLLOW_END_in_rhs_chunk4200 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_name4244 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_name4263 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_identifier4301 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_PACKAGE_in_identifier4314 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_identifier4321 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GLOBAL_in_identifier4328 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IMPORT_in_identifier4335 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_in_identifier4344 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_QUERY_in_identifier4351 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TEMPLATE_in_identifier4372 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ATTRIBUTES_in_identifier4400 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ENABLED_in_identifier4426 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_identifier4455 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DURATION_in_identifier4477 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FROM_in_identifier4499 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_identifier4528 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INIT_in_identifier4550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACTION_in_identifier4579 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RESULT_in_identifier4608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_identifier4637 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_OR_in_identifier4666 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AND_in_identifier4695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CONTAINS_in_identifier4724 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXCLUDES_in_identifier4746 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MATCHES_in_identifier4768 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_identifier4797 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXISTS_in_identifier4826 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_identifier4855 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EVAL_in_identifier4884 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FORALL_in_identifier4913 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_WHEN_in_identifier4951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_THEN_in_identifier4983 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_END_in_identifier5012 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_function_import_statement_in_synpred4114 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_import_statement_in_synpred5120 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_synpred361712 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred391812 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_synpred422121 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_fact_in_synpred422138 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_synpred703382 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_synpred713411 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_synpred723441 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_synpred381788 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred411888 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_set_in_synpred442197 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_fact_in_synpred442214 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_synpred723458 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_synpred733487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_set_in_synpred743517 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java	2007-04-11 16:58:30 UTC (rev 10893)
@@ -236,6 +236,12 @@
                 rule.setActivationGroup( attributeDescr.getValue() );
             } else if ( name.equals( "ruleflow-group" ) ) {
                 rule.setRuleFlowGroup( attributeDescr.getValue() );
+            } else if ( name.equals( "lock-on-active" ) ) {
+                if ( attributeDescr.getValue() == null ) {
+                    rule.setLockOnActivate(true );
+                } else {
+                    rule.setLockOnActivate( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
+                }
             } else if ( name.equals( "duration" ) ) {
                 rule.setDuration( Long.parseLong( attributeDescr.getValue() ) );
                 rule.setAgendaGroup( "" );

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2007-04-11 16:58:30 UTC (rev 10893)
@@ -448,10 +448,11 @@
 		|	a=duration  { d = a; }			
 		|	a=activation_group { d = a; }	
 		|	a=auto_focus { d = a; }	
-		|       a=date_effective {d = a; }
+		|	a=date_effective {d = a; }
 		|	a=date_expires {d = a; }
-		|       a=enabled {d=a;}
-		|       a=ruleflow_group { d = a; }
+		|	a=enabled {d=a;}
+		|	a=ruleflow_group { d = a; }
+		|	a=lock_on_active{ d = a; }
 		
 	;
 	
@@ -631,6 +632,35 @@
 		}
 	;		
 	
+	
+	
+lock_on_active returns [AttributeDescr d]
+	@init {
+		d = null;
+	}
+	:
+		(
+			loc=LOCK_ON_ACTIVE   
+			{
+				d = new AttributeDescr( "lock-on-active", "true" );
+				d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+				d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+				d.setEndCharacter( ((CommonToken)loc).getStopIndex() );
+			}
+		) 
+		|
+		(
+			loc=LOCK_ON_ACTIVE t=BOOL   
+			{
+				d = new AttributeDescr( "lock-on-active", t.getText() );
+				d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+				d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+				d.setEndCharacter( ((CommonToken)t).getStopIndex() );
+			}
+		
+		)
+		
+	;		
 
 normal_lhs_block[AndDescr descr]
 	:
@@ -1531,6 +1561,9 @@
 DURATION 
 	:	'duration';
 	
+LOCK_ON_ACTIVE
+	:	'lock-on-active';	
+	
 FROM	:	'from';
 
 ACCUMULATE 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2007-04-11 16:58:30 UTC (rev 10893)
@@ -70,6 +70,7 @@
 import org.drools.common.InternalWorkingMemory;
 import org.drools.common.InternalWorkingMemoryActions;
 import org.drools.common.PropagationContextImpl;
+import org.drools.common.RuleFlowGroupImpl;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsError;
 import org.drools.compiler.DroolsParserException;
@@ -1695,6 +1696,48 @@
                       list.get( 7 ) );
     }
 
+    public void testLockOnActive() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LockOnActive.drl" ) ) );
+        final Package pkg = builder.getPackage();
+
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+              
+        final List list = new ArrayList();
+        workingMemory.setGlobal( "list",
+                                 list );
+        
+        // AgendaGroup "group1" is not active, so should receive activation
+        final Cheese brie12 = new Cheese( "brie",
+                                        12 );
+        workingMemory.assertObject( brie12 );        
+        AgendaGroup group1 = workingMemory.getAgenda().getAgendaGroup( "group1" );  
+        assertEquals( 1, group1.size() );          
+        
+        workingMemory.setFocus( "group1" );        
+        // AgendaqGroup "group1" is now active, so should not receive activations
+        final Cheese brie10 = new Cheese( "brie",
+                                        10 );
+        workingMemory.assertObject( brie10 );                
+        assertEquals( 1, group1.size() );    
+        
+        final Cheese cheddar20 = new Cheese( "cheddar",
+                                          20 );
+        workingMemory.assertObject( cheddar20 ); 
+        AgendaGroup group2 = workingMemory.getAgenda().getAgendaGroup( "group1" );
+        assertEquals( 1, group2.size() );        
+        
+        RuleFlowGroupImpl rfg = ( RuleFlowGroupImpl )workingMemory.getAgenda().getRuleFlowGroup( "ruleflow2" );
+        rfg.setActive( true );
+        final Cheese cheddar17 = new Cheese( "cheddar",
+                                             17 );        
+        workingMemory.assertObject( cheddar17 );         
+        assertEquals( 1, group2.size() );
+        
+    }    
+    
     public void testDumpers() throws Exception {
         final DrlParser parser = new DrlParser();
         final PackageDescr pkg = parser.parse( new InputStreamReader( getClass().getResourceAsStream( "test_Dumpers.drl" ) ) );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2007-04-11 16:58:30 UTC (rev 10893)
@@ -2006,7 +2006,7 @@
                                       ( String ) rule.getConsequence() );
 
         final List attrs = rule.getAttributes();
-        assertEquals( 5,
+        assertEquals( 6,
                       attrs.size() );
 
         AttributeDescr at = (AttributeDescr) attrs.get( 0 );
@@ -2039,6 +2039,12 @@
         assertEquals( "my_activation_group",
                       at.getValue() );
 
+        at = (AttributeDescr) attrs.get( 5 );
+        assertEquals( "lock-on-active",
+                      at.getName() );
+        assertEquals( "true",
+                      at.getValue() );        
+        
         assertFalse( this.parser.hasErrors() );
     }
 
@@ -2050,7 +2056,7 @@
                                       ( String ) rule.getConsequence() );
 
         final List attrs = rule.getAttributes();
-        assertEquals( 5,
+        assertEquals( 6,
                       attrs.size() );
 
         AttributeDescr at = (AttributeDescr) attrs.get( 0 );
@@ -2072,12 +2078,18 @@
                       at.getValue() );
 
         at = (AttributeDescr) attrs.get( 3 );
+        assertEquals( "lock-on-active",
+                      at.getName() );
+        assertEquals( "true",
+                      at.getValue() );        
+        
+        at = (AttributeDescr) attrs.get( 4 );
         assertEquals( "duration",
                       at.getName() );
         assertEquals( "42",
                       at.getValue() );
 
-        at = (AttributeDescr) attrs.get( 4 );
+        at = (AttributeDescr) attrs.get( 5 );
         assertEquals( "activation-group",
                       at.getName() );
         assertEquals( "my_activation_group",

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LockOnActive.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LockOnActive.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LockOnActive.drl	2007-04-11 16:58:30 UTC (rev 10893)
@@ -0,0 +1,24 @@
+package org.drools.test;
+
+import org.drools.Cheese;
+
+global java.util.List list;
+
+rule "test group1 1"
+	agenda-group "group1"
+	lock-on-active true
+    when
+    	Cheese( type == "brie" )
+    then
+		list.add( "group1" );
+end  
+
+rule "test group2 ruleflow2"
+	agenda-group "group2"
+	ruleflow-group "ruleflow2"
+	lock-on-active true
+    when
+    	Cheese(  type == "cheddar" )
+    then
+		list.add( "group1" );
+end  
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes.drl	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes.drl	2007-04-11 16:58:30 UTC (rev 10893)
@@ -8,6 +8,7 @@
 		no-loop 
 		duration 42
 		activation-group "my_activation_group"
+		lock-on-active true
 	when
 		Foo()
 	then

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes_alt.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes_alt.drl	2007-04-11 16:56:45 UTC (rev 10892)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/rule_attributes_alt.drl	2007-04-11 16:58:30 UTC (rev 10893)
@@ -3,7 +3,7 @@
 
 rule simple_rule 
 	attributes: 
-		salience 42, agenda-group "my_group", no-loop,  duration 42, activation-group "my_activation_group"
+		salience 42, agenda-group "my_group", no-loop,  lock-on-active, duration 42, activation-group "my_activation_group"
 	when
 		Foo()
 	then




More information about the jboss-svn-commits mailing list