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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jan 27 16:08:00 EST 2008


Author: tirelli
Date: 2008-01-27 16:07:59 -0500 (Sun, 27 Jan 2008)
New Revision: 18163

Modified:
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/TypeDeclarationDescr.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/lang/DRL.g
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/StockTick.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl
   labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/WorkingMemory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/Package.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java
   labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
Log:
JBRULES-1390: adding support to metadata

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -44,7 +44,6 @@
 import org.drools.lang.descr.RuleDescr;
 import org.drools.lang.descr.TypeDeclarationDescr;
 import org.drools.process.core.Process;
-import org.drools.rule.Declaration;
 import org.drools.rule.ImportDeclaration;
 import org.drools.rule.Package;
 import org.drools.rule.Rule;
@@ -366,24 +365,23 @@
         final List imports = packageDescr.getImports();
         for ( final Iterator it = imports.iterator(); it.hasNext(); ) {
             ImportDescr importEntry = (ImportDescr) it.next();
-            ImportDeclaration importDecl = new ImportDeclaration( importEntry.getTarget(),
-                                                                  importEntry.isEvent() );
+            ImportDeclaration importDecl = new ImportDeclaration( importEntry.getTarget() );
             pkg.addImport( importDecl );
             this.typeResolver.addImport( importDecl.getTarget() );
             this.dialectRegistry.addImport( importDecl.getTarget() );
         }
 
-        for ( TypeDeclarationDescr typeDescr : packageDescr.getDeclarations() ) {
-            TypeDeclaration type = new TypeDeclaration( typeDescr.getIdentifier() );
+        for ( TypeDeclarationDescr typeDescr : packageDescr.getTypeDeclarations() ) {
+            TypeDeclaration type = new TypeDeclaration( typeDescr.getTypeName() );
 
             // is it a regular fact or an event?
             String role = typeDescr.getAttribute( TypeDeclarationDescr.ATTR_ROLE );
             if ( role != null ) {
-                type.setRole( role );
+                type.setRole( TypeDeclaration.Role.parseRole( role ) );
             }
 
             // is it a POJO or a template?
-            String templateName = typeDescr.getAttribute( TypeDeclarationDescr.ATTR_CLASS );
+            String templateName = typeDescr.getAttribute( TypeDeclarationDescr.ATTR_TEMPLATE );
             if( templateName != null ) {
                 type.setFormat( TypeDeclaration.Format.TEMPLATE );
                 FactTemplate template = this.pkg.getFactTemplate( templateName );
@@ -411,7 +409,7 @@
 
             String clockStrategy = typeDescr.getAttribute( TypeDeclarationDescr.ATTR_CLOCK_STRATEGY );
             if ( clockStrategy != null ) {
-                type.setClockStrategy( clockStrategy );
+                type.setClockStrategy( TypeDeclaration.ClockStrategy.parseClockStrategy( clockStrategy ) );
             }
             String timestamp = typeDescr.getAttribute( TypeDeclarationDescr.ATTR_TIMESTAMP );
             if ( timestamp != null ) {
@@ -421,6 +419,8 @@
             if ( duration != null ) {
                 type.setDurationAttribute( duration );
             }
+            
+            this.pkg.addTypeDeclaration( type );
         }
 
         for ( final Iterator it = packageDescr.getFunctionImports().iterator(); it.hasNext(); ) {

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-01-22 16:27:19
+// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-01-27 17:57:33
 
 	package org.drools.lang;
 
@@ -10,95 +10,94 @@
 import java.util.Map;
 import java.util.HashMap;
 public class DRLLexer extends Lexer {
-    public static final int COMMA=12;
-    public static final int EXISTS=43;
+    public static final int COMMA=11;
+    public static final int EXISTS=42;
     public static final int T79=79;
-    public static final int AUTO_FOCUS=31;
-    public static final int END=19;
+    public static final int AUTO_FOCUS=30;
+    public static final int END=18;
     public static final int HexDigit=69;
-    public static final int FORALL=46;
-    public static final int TEMPLATE=20;
+    public static final int FORALL=45;
+    public static final int TEMPLATE=19;
     public static final int MISC=75;
-    public static final int FLOAT=61;
-    public static final int QUERY=18;
-    public static final int THEN=65;
-    public static final int RULE=21;
+    public static final int FLOAT=60;
+    public static final int QUERY=17;
+    public static final int THEN=64;
+    public static final int RULE=20;
     public static final int T85=85;
-    public static final int INIT=48;
+    public static final int INIT=47;
     public static final int T83=83;
-    public static final int TILDE=59;
+    public static final int TILDE=58;
     public static final int IMPORT=5;
     public static final int PACKAGE=4;
-    public static final int DATE_EFFECTIVE=24;
-    public static final int OR=38;
-    public static final int DOT=9;
-    public static final int DOUBLE_PIPE=39;
-    public static final int AND=40;
-    public static final int T86=86;
+    public static final int DATE_EFFECTIVE=23;
+    public static final int OR=37;
+    public static final int DOT=8;
+    public static final int DOUBLE_PIPE=38;
+    public static final int AND=39;
     public static final int FUNCTION=6;
-    public static final int GLOBAL=10;
+    public static final int GLOBAL=9;
     public static final int EscapeSequence=68;
-    public static final int DIALECT=36;
-    public static final int INT=29;
-    public static final int LOCK_ON_ACTIVE=37;
-    public static final int DATE_EXPIRES=25;
+    public static final int DIALECT=35;
+    public static final int INT=28;
+    public static final int LOCK_ON_ACTIVE=36;
+    public static final int DATE_EXPIRES=24;
     public static final int T81=81;
-    public static final int LEFT_SQUARE=63;
-    public static final int CONTAINS=54;
+    public static final int LEFT_SQUARE=62;
+    public static final int CONTAINS=53;
     public static final int SH_STYLE_SINGLE_LINE_COMMENT=72;
     public static final int T77=77;
-    public static final int ATTRIBUTES=23;
-    public static final int EVENT=7;
-    public static final int DECLARE=14;
-    public static final int RESULT=51;
-    public static final int LEFT_CURLY=15;
-    public static final int ID=8;
-    public static final int FROM=42;
-    public static final int DOUBLE_AMPER=41;
-    public static final int LEFT_PAREN=11;
-    public static final int ACTIVATION_GROUP=32;
-    public static final int RIGHT_CURLY=16;
-    public static final int BOOL=27;
-    public static final int EXCLUDES=55;
-    public static final int SOUNDSLIKE=57;
+    public static final int ATTRIBUTES=22;
+    public static final int EVENT=65;
+    public static final int DECLARE=13;
+    public static final int RESULT=50;
+    public static final int LEFT_CURLY=14;
+    public static final int ID=7;
+    public static final int FROM=41;
+    public static final int DOUBLE_AMPER=40;
+    public static final int LEFT_PAREN=10;
+    public static final int ACTIVATION_GROUP=31;
+    public static final int RIGHT_CURLY=15;
+    public static final int BOOL=26;
+    public static final int EXCLUDES=54;
+    public static final int SOUNDSLIKE=56;
     public static final int T84=84;
-    public static final int MEMBEROF=58;
-    public static final int WHEN=22;
+    public static final int MEMBEROF=57;
+    public static final int WHEN=21;
     public static final int T78=78;
-    public static final int RULEFLOW_GROUP=33;
+    public static final int RULEFLOW_GROUP=32;
     public static final int WS=67;
-    public static final int STRING=17;
-    public static final int ACTION=49;
-    public static final int COLLECT=52;
+    public static final int STRING=16;
+    public static final int ACTION=48;
+    public static final int COLLECT=51;
     public static final int T76=76;
-    public static final int REVERSE=50;
-    public static final int IN=60;
+    public static final int REVERSE=49;
+    public static final int IN=59;
     public static final int T80=80;
-    public static final int NO_LOOP=30;
-    public static final int ACCUMULATE=47;
+    public static final int NO_LOOP=29;
+    public static final int ACCUMULATE=46;
     public static final int UnicodeEscape=70;
-    public static final int DURATION=35;
-    public static final int EVAL=45;
-    public static final int MATCHES=56;
+    public static final int DURATION=34;
+    public static final int EVAL=44;
+    public static final int MATCHES=55;
     public static final int EOF=-1;
-    public static final int AGENDA_GROUP=34;
-    public static final int NULL=62;
+    public static final int AGENDA_GROUP=33;
+    public static final int NULL=61;
     public static final int EOL=66;
-    public static final int Tokens=87;
+    public static final int Tokens=86;
     public static final int T82=82;
-    public static final int SALIENCE=28;
+    public static final int SALIENCE=27;
     public static final int OctalEscape=71;
     public static final int MULTI_LINE_COMMENT=74;
-    public static final int RIGHT_PAREN=13;
-    public static final int NOT=44;
-    public static final int ENABLED=26;
-    public static final int RIGHT_SQUARE=64;
-    public static final int ENTRY_POINT=53;
+    public static final int NOT=43;
+    public static final int RIGHT_PAREN=12;
+    public static final int ENABLED=25;
+    public static final int RIGHT_SQUARE=63;
+    public static final int ENTRY_POINT=52;
     public static final int C_STYLE_SINGLE_LINE_COMMENT=73;
     public DRLLexer() {;} 
     public DRLLexer(CharStream input) {
         super(input);
-        ruleMemo = new HashMap[85+1];
+        ruleMemo = new HashMap[84+1];
      }
     public String getGrammarFileName() { return "/home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g"; }
 
@@ -288,32 +287,14 @@
     }
     // $ANTLR end T85
 
-    // $ANTLR start T86
-    public final void mT86() throws RecognitionException {
-        try {
-            int _type = T86;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:16:5: ( '-' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:16:7: '-'
-            {
-            match('-'); if (failed) return ;
-
-            }
-
-            this.type = _type;
-        }
-        finally {
-        }
-    }
-    // $ANTLR end T86
-
     // $ANTLR start WS
     public final void mWS() throws RecognitionException {
         try {
             int _type = WS;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:17: ( ' ' | '\\t' | '\\f' | EOL )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1740:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1740:17: ( ' ' | '\\t' | '\\f' | EOL )+
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:17: ( ' ' | '\\t' | '\\f' | EOL )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1740:17: ( ' ' | '\\t' | '\\f' | EOL )+
             int cnt1=0;
             loop1:
             do {
@@ -345,28 +326,28 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:19: ' '
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1740:19: ' '
             	    {
             	    match(' '); if (failed) return ;
 
             	    }
             	    break;
             	case 2 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1762:19: '\\t'
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1741:19: '\\t'
             	    {
             	    match('\t'); if (failed) return ;
 
             	    }
             	    break;
             	case 3 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1763:19: '\\f'
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1742:19: '\\f'
             	    {
             	    match('\f'); if (failed) return ;
 
             	    }
             	    break;
             	case 4 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:19: EOL
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:19: EOL
             	    {
             	    mEOL(); if (failed) return ;
 
@@ -399,10 +380,10 @@
     // $ANTLR start EOL
     public final void mEOL() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1770:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1749:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
 
@@ -421,13 +402,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1771:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+                    new NoViableAltException("1750:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
 
                 throw nvae;
             }
             switch (alt2) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:14: ( '\\r\\n' )=> '\\r\\n'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (failed) return ;
 
@@ -435,14 +416,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1772:25: '\\r'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1751:25: '\\r'
                     {
                     match('\r'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1773:25: '\\n'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1752:25: '\\n'
                     {
                     match('\n'); if (failed) return ;
 
@@ -464,10 +445,10 @@
     public final void mINT() throws RecognitionException {
         try {
             int _type = INT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:2: ( ( '-' )? ( '0' .. '9' )+ )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:4: ( '-' )? ( '0' .. '9' )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:2: ( ( '-' )? ( '0' .. '9' )+ )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:4: ( '-' )? ( '0' .. '9' )+
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:4: ( '-' )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:4: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -476,7 +457,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:5: '-'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -485,7 +466,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:10: ( '0' .. '9' )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:10: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -499,7 +480,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:11: '0' .. '9'
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1757:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -530,10 +511,10 @@
     public final void mFLOAT() throws RecognitionException {
         try {
             int _type = FLOAT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:4: ( '-' )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:4: ( '-' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -542,7 +523,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:5: '-'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -551,7 +532,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:10: ( '0' .. '9' )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:10: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -565,7 +546,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:11: '0' .. '9'
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -583,7 +564,7 @@
             } while (true);
 
             match('.'); if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:26: ( '0' .. '9' )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:26: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -597,7 +578,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1782:27: '0' .. '9'
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1761:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -628,7 +609,7 @@
     public final void mSTRING() throws RecognitionException {
         try {
             int _type = STRING;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1765:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -641,19 +622,19 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1785:1: STRING : ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) );", 10, 0, input);
+                    new NoViableAltException("1764:1: STRING : ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) );", 10, 0, input);
 
                 throw nvae;
             }
             switch (alt10) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1765:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1765:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1765:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
                     {
                     match('\"'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1765:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
                     loop8:
                     do {
                         int alt8=3;
@@ -669,14 +650,14 @@
 
                         switch (alt8) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:15: EscapeSequence
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1765:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:32: ~ ( '\\\\' | '\"' )
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1765:32: ~ ( '\\\\' | '\"' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -706,13 +687,13 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1766:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1766:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1766:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
                     {
                     match('\''); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1766:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
                     loop9:
                     do {
                         int alt9=3;
@@ -728,14 +709,14 @@
 
                         switch (alt9) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:16: EscapeSequence
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1766:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1787:33: ~ ( '\\\\' | '\\'' )
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1766:33: ~ ( '\\\\' | '\\'' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -776,8 +757,8 @@
     // $ANTLR start HexDigit
     public final void mHexDigit() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1791:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1791:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1770:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1770: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();
@@ -802,7 +783,7 @@
     // $ANTLR start EscapeSequence
     public final void mEscapeSequence() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1774:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
             int alt11=3;
             int LA11_0 = input.LA(1);
 
@@ -874,7 +855,7 @@
                 default:
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1793:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 1, input);
+                        new NoViableAltException("1772:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 1, input);
 
                     throw nvae;
                 }
@@ -883,13 +864,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1793:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 0, input);
+                    new NoViableAltException("1772:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 0, input);
 
                 throw nvae;
             }
             switch (alt11) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1774:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
                     {
                     match('\\'); if (failed) return ;
                     if ( input.LA(1)=='\"'||input.LA(1)=='$'||(input.LA(1)>='&' && input.LA(1)<='+')||(input.LA(1)>='-' && input.LA(1)<='.')||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='B')||(input.LA(1)>='D' && input.LA(1)<='E')||input.LA(1)=='G'||input.LA(1)=='Q'||input.LA(1)=='S'||input.LA(1)=='W'||(input.LA(1)>='Z' && input.LA(1)<='^')||(input.LA(1)>='a' && input.LA(1)<='f')||(input.LA(1)>='n' && input.LA(1)<='p')||(input.LA(1)>='r' && input.LA(1)<='t')||(input.LA(1)>='w' && input.LA(1)<='x')||(input.LA(1)>='z' && input.LA(1)<='}') ) {
@@ -907,14 +888,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1799:9: UnicodeEscape
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1778:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:9: OctalEscape
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1779:9: OctalEscape
                     {
                     mOctalEscape(); if (failed) return ;
 
@@ -931,7 +912,7 @@
     // $ANTLR start OctalEscape
     public final void mOctalEscape() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
             int alt12=3;
             int LA12_0 = input.LA(1);
 
@@ -965,7 +946,7 @@
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1803:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+                        new NoViableAltException("1782:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
 
                     throw nvae;
                 }
@@ -973,31 +954,31 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1803:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
+                    new NoViableAltException("1782:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
 
                 throw nvae;
             }
             switch (alt12) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:14: ( '0' .. '3' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:15: '0' .. '3'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:14: ( '0' .. '3' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (failed) return ;
 
                     }
 
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:25: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:26: '0' .. '7'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:25: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:36: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:37: '0' .. '7'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:36: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1784:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1007,18 +988,18 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1785:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:14: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:15: '0' .. '7'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1785:14: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1785:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:25: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:26: '0' .. '7'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1785:25: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1785:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1028,11 +1009,11 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1807:9: '\\\\' ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1807:14: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1807:15: '0' .. '7'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:14: ( '0' .. '7' )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1052,8 +1033,8 @@
     // $ANTLR start UnicodeEscape
     public final void mUnicodeEscape() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1812:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1812:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1791:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1791:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (failed) return ;
             match('u'); if (failed) return ;
@@ -1074,10 +1055,10 @@
     public final void mBOOL() throws RecognitionException {
         try {
             int _type = BOOL;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1816:2: ( ( 'true' | 'false' ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1816:4: ( 'true' | 'false' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:2: ( ( 'true' | 'false' ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:4: ( 'true' | 'false' )
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1816:4: ( 'true' | 'false' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:4: ( 'true' | 'false' )
             int alt13=2;
             int LA13_0 = input.LA(1);
 
@@ -1090,13 +1071,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1816:4: ( 'true' | 'false' )", 13, 0, input);
+                    new NoViableAltException("1795:4: ( 'true' | 'false' )", 13, 0, input);
 
                 throw nvae;
             }
             switch (alt13) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1816:5: 'true'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:5: 'true'
                     {
                     match("true"); if (failed) return ;
 
@@ -1104,7 +1085,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1816:12: 'false'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:12: 'false'
                     {
                     match("false"); if (failed) return ;
 
@@ -1128,8 +1109,8 @@
     public final void mPACKAGE() throws RecognitionException {
         try {
             int _type = PACKAGE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1819:9: ( 'package' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1819:11: 'package'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:9: ( 'package' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:11: 'package'
             {
             match("package"); if (failed) return ;
 
@@ -1147,8 +1128,8 @@
     public final void mIMPORT() throws RecognitionException {
         try {
             int _type = IMPORT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1821:8: ( 'import' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1821:10: 'import'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:8: ( 'import' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:10: 'import'
             {
             match("import"); if (failed) return ;
 
@@ -1166,8 +1147,8 @@
     public final void mFUNCTION() throws RecognitionException {
         try {
             int _type = FUNCTION;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1823:10: ( 'function' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1823:12: 'function'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:10: ( 'function' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:12: 'function'
             {
             match("function"); if (failed) return ;
 
@@ -1185,8 +1166,8 @@
     public final void mEVENT() throws RecognitionException {
         try {
             int _type = EVENT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1825:7: ( 'event' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1825:10: 'event'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1804:7: ( 'event' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1804:10: 'event'
             {
             match("event"); if (failed) return ;
 
@@ -1204,8 +1185,8 @@
     public final void mGLOBAL() throws RecognitionException {
         try {
             int _type = GLOBAL;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1827:8: ( 'global' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1827:10: 'global'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:8: ( 'global' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1806:10: 'global'
             {
             match("global"); if (failed) return ;
 
@@ -1223,8 +1204,8 @@
     public final void mDECLARE() throws RecognitionException {
         try {
             int _type = DECLARE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1829:9: ( 'declare' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1829:11: 'declare'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1808:9: ( 'declare' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1808:11: 'declare'
             {
             match("declare"); if (failed) return ;
 
@@ -1242,8 +1223,8 @@
     public final void mRULE() throws RecognitionException {
         try {
             int _type = RULE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1831:9: ( 'rule' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1831:11: 'rule'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1810:9: ( 'rule' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1810:11: 'rule'
             {
             match("rule"); if (failed) return ;
 
@@ -1261,8 +1242,8 @@
     public final void mQUERY() throws RecognitionException {
         try {
             int _type = QUERY;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1833:7: ( 'query' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1833:9: 'query'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1812:7: ( 'query' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1812:9: 'query'
             {
             match("query"); if (failed) return ;
 
@@ -1280,8 +1261,8 @@
     public final void mTEMPLATE() throws RecognitionException {
         try {
             int _type = TEMPLATE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1835:10: ( 'template' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1835:12: 'template'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1814:10: ( 'template' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1814:12: 'template'
             {
             match("template"); if (failed) return ;
 
@@ -1299,8 +1280,8 @@
     public final void mATTRIBUTES() throws RecognitionException {
         try {
             int _type = ATTRIBUTES;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1837:12: ( 'attributes' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1837:14: 'attributes'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1816:12: ( 'attributes' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1816:14: 'attributes'
             {
             match("attributes"); if (failed) return ;
 
@@ -1318,8 +1299,8 @@
     public final void mDATE_EFFECTIVE() throws RecognitionException {
         try {
             int _type = DATE_EFFECTIVE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1840:2: ( 'date-effective' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1840:4: 'date-effective'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1819:2: ( 'date-effective' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1819:4: 'date-effective'
             {
             match("date-effective"); if (failed) return ;
 
@@ -1337,8 +1318,8 @@
     public final void mDATE_EXPIRES() throws RecognitionException {
         try {
             int _type = DATE_EXPIRES;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1843:2: ( 'date-expires' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1843:4: 'date-expires'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822:2: ( 'date-expires' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822:4: 'date-expires'
             {
             match("date-expires"); if (failed) return ;
 
@@ -1356,8 +1337,8 @@
     public final void mENABLED() throws RecognitionException {
         try {
             int _type = ENABLED;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:9: ( 'enabled' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:11: 'enabled'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1824:9: ( 'enabled' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1824:11: 'enabled'
             {
             match("enabled"); if (failed) return ;
 
@@ -1375,8 +1356,8 @@
     public final void mSALIENCE() throws RecognitionException {
         try {
             int _type = SALIENCE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1848:2: ( 'salience' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1848:4: 'salience'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1827:2: ( 'salience' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1827:4: 'salience'
             {
             match("salience"); if (failed) return ;
 
@@ -1394,8 +1375,8 @@
     public final void mNO_LOOP() throws RecognitionException {
         try {
             int _type = NO_LOOP;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1850:9: ( 'no-loop' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1850:11: 'no-loop'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1829:9: ( 'no-loop' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1829:11: 'no-loop'
             {
             match("no-loop"); if (failed) return ;
 
@@ -1413,8 +1394,8 @@
     public final void mAUTO_FOCUS() throws RecognitionException {
         try {
             int _type = AUTO_FOCUS;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1853:2: ( 'auto-focus' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1853:4: 'auto-focus'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:2: ( 'auto-focus' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:4: 'auto-focus'
             {
             match("auto-focus"); if (failed) return ;
 
@@ -1432,8 +1413,8 @@
     public final void mACTIVATION_GROUP() throws RecognitionException {
         try {
             int _type = ACTIVATION_GROUP;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1856:2: ( 'activation-group' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1856:4: 'activation-group'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1835:2: ( 'activation-group' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1835:4: 'activation-group'
             {
             match("activation-group"); if (failed) return ;
 
@@ -1451,8 +1432,8 @@
     public final void mAGENDA_GROUP() throws RecognitionException {
         try {
             int _type = AGENDA_GROUP;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:2: ( 'agenda-group' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:4: 'agenda-group'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1838:2: ( 'agenda-group' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1838:4: 'agenda-group'
             {
             match("agenda-group"); if (failed) return ;
 
@@ -1470,8 +1451,8 @@
     public final void mDIALECT() throws RecognitionException {
         try {
             int _type = DIALECT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1862:2: ( 'dialect' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1862:4: 'dialect'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1841:2: ( 'dialect' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1841:4: 'dialect'
             {
             match("dialect"); if (failed) return ;
 
@@ -1489,8 +1470,8 @@
     public final void mRULEFLOW_GROUP() throws RecognitionException {
         try {
             int _type = RULEFLOW_GROUP;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:2: ( 'ruleflow-group' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:4: 'ruleflow-group'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:2: ( 'ruleflow-group' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:4: 'ruleflow-group'
             {
             match("ruleflow-group"); if (failed) return ;
 
@@ -1508,8 +1489,8 @@
     public final void mDURATION() throws RecognitionException {
         try {
             int _type = DURATION;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1868:2: ( 'duration' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1868:4: 'duration'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1847:2: ( 'duration' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1847:4: 'duration'
             {
             match("duration"); if (failed) return ;
 
@@ -1527,8 +1508,8 @@
     public final void mLOCK_ON_ACTIVE() throws RecognitionException {
         try {
             int _type = LOCK_ON_ACTIVE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:2: ( 'lock-on-active' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:4: 'lock-on-active'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1850:2: ( 'lock-on-active' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1850:4: 'lock-on-active'
             {
             match("lock-on-active"); if (failed) return ;
 
@@ -1546,8 +1527,8 @@
     public final void mFROM() throws RecognitionException {
         try {
             int _type = FROM;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1873:6: ( 'from' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1873:8: 'from'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1852:6: ( 'from' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1852:8: 'from'
             {
             match("from"); if (failed) return ;
 
@@ -1565,8 +1546,8 @@
     public final void mACCUMULATE() throws RecognitionException {
         try {
             int _type = ACCUMULATE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1876:2: ( 'accumulate' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1876:4: 'accumulate'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:2: ( 'accumulate' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:4: 'accumulate'
             {
             match("accumulate"); if (failed) return ;
 
@@ -1584,8 +1565,8 @@
     public final void mINIT() throws RecognitionException {
         try {
             int _type = INIT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1878:6: ( 'init' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1878:8: 'init'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1857:6: ( 'init' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1857:8: 'init'
             {
             match("init"); if (failed) return ;
 
@@ -1603,8 +1584,8 @@
     public final void mACTION() throws RecognitionException {
         try {
             int _type = ACTION;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1880:8: ( 'action' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1880:10: 'action'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:8: ( 'action' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:10: 'action'
             {
             match("action"); if (failed) return ;
 
@@ -1622,8 +1603,8 @@
     public final void mREVERSE() throws RecognitionException {
         try {
             int _type = REVERSE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1882:9: ( 'reverse' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1882:11: 'reverse'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1861:9: ( 'reverse' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1861:11: 'reverse'
             {
             match("reverse"); if (failed) return ;
 
@@ -1641,8 +1622,8 @@
     public final void mRESULT() throws RecognitionException {
         try {
             int _type = RESULT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1884:8: ( 'result' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1884:10: 'result'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:8: ( 'result' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:10: 'result'
             {
             match("result"); if (failed) return ;
 
@@ -1660,8 +1641,8 @@
     public final void mCOLLECT() throws RecognitionException {
         try {
             int _type = COLLECT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:9: ( 'collect' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:11: 'collect'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:9: ( 'collect' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:11: 'collect'
             {
             match("collect"); if (failed) return ;
 
@@ -1679,8 +1660,8 @@
     public final void mENTRY_POINT() throws RecognitionException {
         try {
             int _type = ENTRY_POINT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1888:13: ( 'entry-point' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1888:15: 'entry-point'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:13: ( 'entry-point' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:15: 'entry-point'
             {
             match("entry-point"); if (failed) return ;
 
@@ -1698,8 +1679,8 @@
     public final void mOR() throws RecognitionException {
         try {
             int _type = OR;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1890:4: ( 'or' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1890:6: 'or'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1869:4: ( 'or' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1869:6: 'or'
             {
             match("or"); if (failed) return ;
 
@@ -1717,8 +1698,8 @@
     public final void mAND() throws RecognitionException {
         try {
             int _type = AND;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1892:5: ( 'and' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1892:7: 'and'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:5: ( 'and' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:7: 'and'
             {
             match("and"); if (failed) return ;
 
@@ -1736,8 +1717,8 @@
     public final void mCONTAINS() throws RecognitionException {
         try {
             int _type = CONTAINS;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1895:8: ( 'contains' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1895:16: 'contains'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1874:8: ( 'contains' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1874:16: 'contains'
             {
             match("contains"); if (failed) return ;
 
@@ -1755,8 +1736,8 @@
     public final void mEXCLUDES() throws RecognitionException {
         try {
             int _type = EXCLUDES;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1898:8: ( 'excludes' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1898:16: 'excludes'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1877:8: ( 'excludes' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1877:16: 'excludes'
             {
             match("excludes"); if (failed) return ;
 
@@ -1774,8 +1755,8 @@
     public final void mMEMBEROF() throws RecognitionException {
         try {
             int _type = MEMBEROF;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1901:8: ( 'memberOf' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1901:16: 'memberOf'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1880:8: ( 'memberOf' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1880:16: 'memberOf'
             {
             match("memberOf"); if (failed) return ;
 
@@ -1793,8 +1774,8 @@
     public final void mMATCHES() throws RecognitionException {
         try {
             int _type = MATCHES;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1903:9: ( 'matches' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1903:16: 'matches'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1882:9: ( 'matches' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1882:16: 'matches'
             {
             match("matches"); if (failed) return ;
 
@@ -1812,8 +1793,8 @@
     public final void mSOUNDSLIKE() throws RecognitionException {
         try {
             int _type = SOUNDSLIKE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1905:12: ( 'soundslike' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1905:16: 'soundslike'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1884:12: ( 'soundslike' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1884:16: 'soundslike'
             {
             match("soundslike"); if (failed) return ;
 
@@ -1831,8 +1812,8 @@
     public final void mIN() throws RecognitionException {
         try {
             int _type = IN;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1907:4: ( 'in' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1907:6: 'in'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:4: ( 'in' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:6: 'in'
             {
             match("in"); if (failed) return ;
 
@@ -1850,8 +1831,8 @@
     public final void mNULL() throws RecognitionException {
         try {
             int _type = NULL;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1909:6: ( 'null' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1909:8: 'null'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1888:6: ( 'null' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1888:8: 'null'
             {
             match("null"); if (failed) return ;
 
@@ -1869,8 +1850,8 @@
     public final void mEXISTS() throws RecognitionException {
         try {
             int _type = EXISTS;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1911:8: ( 'exists' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1911:10: 'exists'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1890:8: ( 'exists' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1890:10: 'exists'
             {
             match("exists"); if (failed) return ;
 
@@ -1888,8 +1869,8 @@
     public final void mNOT() throws RecognitionException {
         try {
             int _type = NOT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1913:5: ( 'not' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1913:7: 'not'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1892:5: ( 'not' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1892:7: 'not'
             {
             match("not"); if (failed) return ;
 
@@ -1907,8 +1888,8 @@
     public final void mEVAL() throws RecognitionException {
         try {
             int _type = EVAL;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1915:6: ( 'eval' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1915:8: 'eval'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1894:6: ( 'eval' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1894:8: 'eval'
             {
             match("eval"); if (failed) return ;
 
@@ -1926,8 +1907,8 @@
     public final void mFORALL() throws RecognitionException {
         try {
             int _type = FORALL;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1917:8: ( 'forall' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1917:10: 'forall'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1896:8: ( 'forall' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1896:10: 'forall'
             {
             match("forall"); if (failed) return ;
 
@@ -1945,8 +1926,8 @@
     public final void mWHEN() throws RecognitionException {
         try {
             int _type = WHEN;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1919:9: ( 'when' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1919:11: 'when'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1898:9: ( 'when' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1898:11: 'when'
             {
             match("when"); if (failed) return ;
 
@@ -1964,8 +1945,8 @@
     public final void mTHEN() throws RecognitionException {
         try {
             int _type = THEN;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1921:6: ( 'then' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1921:12: 'then'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1900:6: ( 'then' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1900:12: 'then'
             {
             match("then"); if (failed) return ;
 
@@ -1983,8 +1964,8 @@
     public final void mEND() throws RecognitionException {
         try {
             int _type = END;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1923:9: ( 'end' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1923:11: 'end'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1902:9: ( 'end' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1902:11: 'end'
             {
             match("end"); if (failed) return ;
 
@@ -2002,8 +1983,8 @@
     public final void mID() throws RecognitionException {
         try {
             int _type = ID;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1926:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1926:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1905:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1905: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();
@@ -2016,7 +1997,7 @@
                 recover(mse);    throw mse;
             }
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1926:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1905:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
             loop14:
             do {
                 int alt14=2;
@@ -2065,8 +2046,8 @@
     public final void mLEFT_PAREN() throws RecognitionException {
         try {
             int _type = LEFT_PAREN;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1930:9: ( '(' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1930:11: '('
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1909:9: ( '(' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1909:11: '('
             {
             match('('); if (failed) return ;
 
@@ -2083,8 +2064,8 @@
     public final void mRIGHT_PAREN() throws RecognitionException {
         try {
             int _type = RIGHT_PAREN;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1934:9: ( ')' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1934:11: ')'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1913:9: ( ')' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1913:11: ')'
             {
             match(')'); if (failed) return ;
 
@@ -2101,8 +2082,8 @@
     public final void mLEFT_SQUARE() throws RecognitionException {
         try {
             int _type = LEFT_SQUARE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1938:9: ( '[' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1938:11: '['
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1917:9: ( '[' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1917:11: '['
             {
             match('['); if (failed) return ;
 
@@ -2119,8 +2100,8 @@
     public final void mRIGHT_SQUARE() throws RecognitionException {
         try {
             int _type = RIGHT_SQUARE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1942:9: ( ']' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1942:11: ']'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1921:9: ( ']' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1921:11: ']'
             {
             match(']'); if (failed) return ;
 
@@ -2137,8 +2118,8 @@
     public final void mLEFT_CURLY() throws RecognitionException {
         try {
             int _type = LEFT_CURLY;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1946:9: ( '{' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1946:11: '{'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1925:9: ( '{' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1925:11: '{'
             {
             match('{'); if (failed) return ;
 
@@ -2155,8 +2136,8 @@
     public final void mRIGHT_CURLY() throws RecognitionException {
         try {
             int _type = RIGHT_CURLY;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1950:9: ( '}' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1950:11: '}'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1929:9: ( '}' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1929:11: '}'
             {
             match('}'); if (failed) return ;
 
@@ -2173,8 +2154,8 @@
     public final void mCOMMA() throws RecognitionException {
         try {
             int _type = COMMA;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1953:7: ( ',' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1953:9: ','
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1932:7: ( ',' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1932:9: ','
             {
             match(','); if (failed) return ;
 
@@ -2191,8 +2172,8 @@
     public final void mDOT() throws RecognitionException {
         try {
             int _type = DOT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1956:5: ( '.' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1956:7: '.'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1935:5: ( '.' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1935:7: '.'
             {
             match('.'); if (failed) return ;
 
@@ -2209,8 +2190,8 @@
     public final void mDOUBLE_AMPER() throws RecognitionException {
         try {
             int _type = DOUBLE_AMPER;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1960:2: ( '&&' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1960:4: '&&'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1939:2: ( '&&' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1939:4: '&&'
             {
             match("&&"); if (failed) return ;
 
@@ -2228,8 +2209,8 @@
     public final void mDOUBLE_PIPE() throws RecognitionException {
         try {
             int _type = DOUBLE_PIPE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1964:2: ( '||' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1964:4: '||'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1943:2: ( '||' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1943:4: '||'
             {
             match("||"); if (failed) return ;
 
@@ -2247,8 +2228,8 @@
     public final void mTILDE() throws RecognitionException {
         try {
             int _type = TILDE;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1967:7: ( '~' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1967:9: '~'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1946:7: ( '~' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1946:9: '~'
             {
             match('~'); if (failed) return ;
 
@@ -2265,11 +2246,11 @@
     public final void mSH_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
         try {
             int _type = SH_STYLE_SINGLE_LINE_COMMENT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1970:2: ( '#' ( options {greedy=false; } : . )* EOL )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1970:4: '#' ( options {greedy=false; } : . )* EOL
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1949:2: ( '#' ( options {greedy=false; } : . )* EOL )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1949:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1970:8: ( options {greedy=false; } : . )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1949:8: ( options {greedy=false; } : . )*
             loop15:
             do {
                 int alt15=2;
@@ -2288,7 +2269,7 @@
 
                 switch (alt15) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1970:35: .
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1949:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2318,12 +2299,12 @@
     public final void mC_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
         try {
             int _type = C_STYLE_SINGLE_LINE_COMMENT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1976:2: ( '//' ( options {greedy=false; } : . )* EOL )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1976:4: '//' ( options {greedy=false; } : . )* EOL
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1955:2: ( '//' ( options {greedy=false; } : . )* EOL )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1955:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (failed) return ;
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1976:9: ( options {greedy=false; } : . )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1955:9: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -2342,7 +2323,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1976:36: .
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1955:36: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2372,12 +2353,12 @@
     public final void mMULTI_LINE_COMMENT() throws RecognitionException {
         try {
             int _type = MULTI_LINE_COMMENT;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1981:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1981:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1960:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1960:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (failed) return ;
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1981:9: ( options {greedy=false; } : . )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1960:9: ( options {greedy=false; } : . )*
             loop17:
             do {
                 int alt17=2;
@@ -2402,7 +2383,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1981:35: .
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1960:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2433,7 +2414,7 @@
     public final void mMISC() throws RecognitionException {
         try {
             int _type = MISC;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1985:7: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '=' | '/' | '\\'' | '\\\\' | '|' | '&' )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1964:7: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '=' | '/' | '\\'' | '\\\\' | '|' | '&' )
             // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:
             {
             if ( input.LA(1)=='!'||(input.LA(1)>='$' && input.LA(1)<='\'')||(input.LA(1)>='*' && input.LA(1)<='+')||input.LA(1)=='-'||input.LA(1)=='/'||input.LA(1)=='='||(input.LA(1)>='?' && input.LA(1)<='@')||input.LA(1)=='\\'||(input.LA(1)>='^' && input.LA(1)<='_')||input.LA(1)=='|' ) {
@@ -2458,8 +2439,8 @@
     // $ANTLR end MISC
 
     public void mTokens() throws RecognitionException {
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:8: ( T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | EVENT | GLOBAL | DECLARE | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | ENTRY_POINT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC )
-        int alt18=78;
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:8: ( T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | EVENT | GLOBAL | DECLARE | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | ENTRY_POINT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC )
+        int alt18=77;
         alt18 = dfa18.predict(input);
         switch (alt18) {
             case 1 :
@@ -2533,477 +2514,470 @@
                 }
                 break;
             case 11 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:50: T86
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:50: WS
                 {
-                mT86(); if (failed) return ;
+                mWS(); if (failed) return ;
 
                 }
                 break;
             case 12 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:54: WS
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:53: INT
                 {
-                mWS(); if (failed) return ;
+                mINT(); if (failed) return ;
 
                 }
                 break;
             case 13 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:57: INT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:57: FLOAT
                 {
-                mINT(); if (failed) return ;
+                mFLOAT(); if (failed) return ;
 
                 }
                 break;
             case 14 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:61: FLOAT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:63: STRING
                 {
-                mFLOAT(); if (failed) return ;
+                mSTRING(); if (failed) return ;
 
                 }
                 break;
             case 15 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:67: STRING
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:70: BOOL
                 {
-                mSTRING(); if (failed) return ;
+                mBOOL(); if (failed) return ;
 
                 }
                 break;
             case 16 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:74: BOOL
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:75: PACKAGE
                 {
-                mBOOL(); if (failed) return ;
+                mPACKAGE(); if (failed) return ;
 
                 }
                 break;
             case 17 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:79: PACKAGE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:83: IMPORT
                 {
-                mPACKAGE(); if (failed) return ;
+                mIMPORT(); if (failed) return ;
 
                 }
                 break;
             case 18 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:87: IMPORT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:90: FUNCTION
                 {
-                mIMPORT(); if (failed) return ;
+                mFUNCTION(); if (failed) return ;
 
                 }
                 break;
             case 19 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:94: FUNCTION
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:99: EVENT
                 {
-                mFUNCTION(); if (failed) return ;
+                mEVENT(); if (failed) return ;
 
                 }
                 break;
             case 20 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:103: EVENT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:105: GLOBAL
                 {
-                mEVENT(); if (failed) return ;
+                mGLOBAL(); if (failed) return ;
 
                 }
                 break;
             case 21 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:109: GLOBAL
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:112: DECLARE
                 {
-                mGLOBAL(); if (failed) return ;
+                mDECLARE(); if (failed) return ;
 
                 }
                 break;
             case 22 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:116: DECLARE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:120: RULE
                 {
-                mDECLARE(); if (failed) return ;
+                mRULE(); if (failed) return ;
 
                 }
                 break;
             case 23 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:124: RULE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:125: QUERY
                 {
-                mRULE(); if (failed) return ;
+                mQUERY(); if (failed) return ;
 
                 }
                 break;
             case 24 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:129: QUERY
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:131: TEMPLATE
                 {
-                mQUERY(); if (failed) return ;
+                mTEMPLATE(); if (failed) return ;
 
                 }
                 break;
             case 25 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:135: TEMPLATE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:140: ATTRIBUTES
                 {
-                mTEMPLATE(); if (failed) return ;
+                mATTRIBUTES(); if (failed) return ;
 
                 }
                 break;
             case 26 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:144: ATTRIBUTES
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:151: DATE_EFFECTIVE
                 {
-                mATTRIBUTES(); if (failed) return ;
+                mDATE_EFFECTIVE(); if (failed) return ;
 
                 }
                 break;
             case 27 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:155: DATE_EFFECTIVE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:166: DATE_EXPIRES
                 {
-                mDATE_EFFECTIVE(); if (failed) return ;
+                mDATE_EXPIRES(); if (failed) return ;
 
                 }
                 break;
             case 28 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:170: DATE_EXPIRES
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:179: ENABLED
                 {
-                mDATE_EXPIRES(); if (failed) return ;
+                mENABLED(); if (failed) return ;
 
                 }
                 break;
             case 29 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:183: ENABLED
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:187: SALIENCE
                 {
-                mENABLED(); if (failed) return ;
+                mSALIENCE(); if (failed) return ;
 
                 }
                 break;
             case 30 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:191: SALIENCE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:196: NO_LOOP
                 {
-                mSALIENCE(); if (failed) return ;
+                mNO_LOOP(); if (failed) return ;
 
                 }
                 break;
             case 31 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:200: NO_LOOP
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:204: AUTO_FOCUS
                 {
-                mNO_LOOP(); if (failed) return ;
+                mAUTO_FOCUS(); if (failed) return ;
 
                 }
                 break;
             case 32 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:208: AUTO_FOCUS
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:215: ACTIVATION_GROUP
                 {
-                mAUTO_FOCUS(); if (failed) return ;
+                mACTIVATION_GROUP(); if (failed) return ;
 
                 }
                 break;
             case 33 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:219: ACTIVATION_GROUP
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:232: AGENDA_GROUP
                 {
-                mACTIVATION_GROUP(); if (failed) return ;
+                mAGENDA_GROUP(); if (failed) return ;
 
                 }
                 break;
             case 34 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:236: AGENDA_GROUP
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:245: DIALECT
                 {
-                mAGENDA_GROUP(); if (failed) return ;
+                mDIALECT(); if (failed) return ;
 
                 }
                 break;
             case 35 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:249: DIALECT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:253: RULEFLOW_GROUP
                 {
-                mDIALECT(); if (failed) return ;
+                mRULEFLOW_GROUP(); if (failed) return ;
 
                 }
                 break;
             case 36 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:257: RULEFLOW_GROUP
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:268: DURATION
                 {
-                mRULEFLOW_GROUP(); if (failed) return ;
+                mDURATION(); if (failed) return ;
 
                 }
                 break;
             case 37 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:272: DURATION
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:277: LOCK_ON_ACTIVE
                 {
-                mDURATION(); if (failed) return ;
+                mLOCK_ON_ACTIVE(); if (failed) return ;
 
                 }
                 break;
             case 38 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:281: LOCK_ON_ACTIVE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:292: FROM
                 {
-                mLOCK_ON_ACTIVE(); if (failed) return ;
+                mFROM(); if (failed) return ;
 
                 }
                 break;
             case 39 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:296: FROM
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:297: ACCUMULATE
                 {
-                mFROM(); if (failed) return ;
+                mACCUMULATE(); if (failed) return ;
 
                 }
                 break;
             case 40 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:301: ACCUMULATE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:308: INIT
                 {
-                mACCUMULATE(); if (failed) return ;
+                mINIT(); if (failed) return ;
 
                 }
                 break;
             case 41 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:312: INIT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:313: ACTION
                 {
-                mINIT(); if (failed) return ;
+                mACTION(); if (failed) return ;
 
                 }
                 break;
             case 42 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:317: ACTION
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:320: REVERSE
                 {
-                mACTION(); if (failed) return ;
+                mREVERSE(); if (failed) return ;
 
                 }
                 break;
             case 43 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:324: REVERSE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:328: RESULT
                 {
-                mREVERSE(); if (failed) return ;
+                mRESULT(); if (failed) return ;
 
                 }
                 break;
             case 44 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:332: RESULT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:335: COLLECT
                 {
-                mRESULT(); if (failed) return ;
+                mCOLLECT(); if (failed) return ;
 
                 }
                 break;
             case 45 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:339: COLLECT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:343: ENTRY_POINT
                 {
-                mCOLLECT(); if (failed) return ;
+                mENTRY_POINT(); if (failed) return ;
 
                 }
                 break;
             case 46 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:347: ENTRY_POINT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:355: OR
                 {
-                mENTRY_POINT(); if (failed) return ;
+                mOR(); if (failed) return ;
 
                 }
                 break;
             case 47 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:359: OR
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:358: AND
                 {
-                mOR(); if (failed) return ;
+                mAND(); if (failed) return ;
 
                 }
                 break;
             case 48 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:362: AND
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:362: CONTAINS
                 {
-                mAND(); if (failed) return ;
+                mCONTAINS(); if (failed) return ;
 
                 }
                 break;
             case 49 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:366: CONTAINS
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:371: EXCLUDES
                 {
-                mCONTAINS(); if (failed) return ;
+                mEXCLUDES(); if (failed) return ;
 
                 }
                 break;
             case 50 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:375: EXCLUDES
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:380: MEMBEROF
                 {
-                mEXCLUDES(); if (failed) return ;
+                mMEMBEROF(); if (failed) return ;
 
                 }
                 break;
             case 51 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:384: MEMBEROF
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:389: MATCHES
                 {
-                mMEMBEROF(); if (failed) return ;
+                mMATCHES(); if (failed) return ;
 
                 }
                 break;
             case 52 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:393: MATCHES
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:397: SOUNDSLIKE
                 {
-                mMATCHES(); if (failed) return ;
+                mSOUNDSLIKE(); if (failed) return ;
 
                 }
                 break;
             case 53 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:401: SOUNDSLIKE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:408: IN
                 {
-                mSOUNDSLIKE(); if (failed) return ;
+                mIN(); if (failed) return ;
 
                 }
                 break;
             case 54 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:412: IN
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:411: NULL
                 {
-                mIN(); if (failed) return ;
+                mNULL(); if (failed) return ;
 
                 }
                 break;
             case 55 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:415: NULL
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:416: EXISTS
                 {
-                mNULL(); if (failed) return ;
+                mEXISTS(); if (failed) return ;
 
                 }
                 break;
             case 56 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:420: EXISTS
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:423: NOT
                 {
-                mEXISTS(); if (failed) return ;
+                mNOT(); if (failed) return ;
 
                 }
                 break;
             case 57 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:427: NOT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:427: EVAL
                 {
-                mNOT(); if (failed) return ;
+                mEVAL(); if (failed) return ;
 
                 }
                 break;
             case 58 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:431: EVAL
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:432: FORALL
                 {
-                mEVAL(); if (failed) return ;
+                mFORALL(); if (failed) return ;
 
                 }
                 break;
             case 59 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:436: FORALL
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:439: WHEN
                 {
-                mFORALL(); if (failed) return ;
+                mWHEN(); if (failed) return ;
 
                 }
                 break;
             case 60 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:443: WHEN
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:444: THEN
                 {
-                mWHEN(); if (failed) return ;
+                mTHEN(); if (failed) return ;
 
                 }
                 break;
             case 61 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:448: THEN
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:449: END
                 {
-                mTHEN(); if (failed) return ;
+                mEND(); if (failed) return ;
 
                 }
                 break;
             case 62 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:453: END
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:453: ID
                 {
-                mEND(); if (failed) return ;
+                mID(); if (failed) return ;
 
                 }
                 break;
             case 63 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:457: ID
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:456: LEFT_PAREN
                 {
-                mID(); if (failed) return ;
+                mLEFT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 64 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:460: LEFT_PAREN
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:467: RIGHT_PAREN
                 {
-                mLEFT_PAREN(); if (failed) return ;
+                mRIGHT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 65 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:471: RIGHT_PAREN
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:479: LEFT_SQUARE
                 {
-                mRIGHT_PAREN(); if (failed) return ;
+                mLEFT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 66 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:483: LEFT_SQUARE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:491: RIGHT_SQUARE
                 {
-                mLEFT_SQUARE(); if (failed) return ;
+                mRIGHT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 67 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:495: RIGHT_SQUARE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:504: LEFT_CURLY
                 {
-                mRIGHT_SQUARE(); if (failed) return ;
+                mLEFT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 68 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:508: LEFT_CURLY
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:515: RIGHT_CURLY
                 {
-                mLEFT_CURLY(); if (failed) return ;
+                mRIGHT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 69 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:519: RIGHT_CURLY
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:527: COMMA
                 {
-                mRIGHT_CURLY(); if (failed) return ;
+                mCOMMA(); if (failed) return ;
 
                 }
                 break;
             case 70 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:531: COMMA
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:533: DOT
                 {
-                mCOMMA(); if (failed) return ;
+                mDOT(); if (failed) return ;
 
                 }
                 break;
             case 71 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:537: DOT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:537: DOUBLE_AMPER
                 {
-                mDOT(); if (failed) return ;
+                mDOUBLE_AMPER(); if (failed) return ;
 
                 }
                 break;
             case 72 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:541: DOUBLE_AMPER
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:550: DOUBLE_PIPE
                 {
-                mDOUBLE_AMPER(); if (failed) return ;
+                mDOUBLE_PIPE(); if (failed) return ;
 
                 }
                 break;
             case 73 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:554: DOUBLE_PIPE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:562: TILDE
                 {
-                mDOUBLE_PIPE(); if (failed) return ;
+                mTILDE(); if (failed) return ;
 
                 }
                 break;
             case 74 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:566: TILDE
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:568: SH_STYLE_SINGLE_LINE_COMMENT
                 {
-                mTILDE(); if (failed) return ;
+                mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 75 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:572: SH_STYLE_SINGLE_LINE_COMMENT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:597: C_STYLE_SINGLE_LINE_COMMENT
                 {
-                mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+                mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 76 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:601: C_STYLE_SINGLE_LINE_COMMENT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:625: MULTI_LINE_COMMENT
                 {
-                mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+                mMULTI_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 77 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:629: MULTI_LINE_COMMENT
+                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:644: MISC
                 {
-                mMULTI_LINE_COMMENT(); if (failed) return ;
-
-                }
-                break;
-            case 78 :
-                // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:648: MISC
-                {
                 mMISC(); if (failed) return ;
 
                 }
@@ -3015,8 +2989,8 @@
 
     // $ANTLR start synpred1
     public final void synpred1_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:14: ( '\\r\\n' )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:16: '\\r\\n'
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:14: ( '\\r\\n' )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:16: '\\r\\n'
         {
         match("\r\n"); if (failed) return ;
 
@@ -3043,96 +3017,93 @@
 
     protected DFA18 dfa18 = new DFA18(this);
     static final String DFA18_eotS =
-        "\2\uffff\1\56\1\uffff\1\60\1\54\1\63\1\65\1\54\1\uffff\1\67\1\uffff"+
-        "\1\54\21\53\10\uffff\2\54\2\uffff\1\54\16\uffff\10\53\1\152\27\53"+
-        "\1\u008a\3\53\4\uffff\11\53\1\uffff\5\53\1\u009c\15\53\1\u00aa\5"+
-        "\53\1\u00b0\1\uffff\4\53\1\uffff\3\53\1\u00b8\1\u00b9\1\53\1\u00bb"+
-        "\4\53\1\u00c0\5\53\1\uffff\1\u00c6\6\53\1\u00ce\5\53\1\uffff\5\53"+
-        "\1\uffff\1\u00da\5\53\1\u00e0\2\uffff\1\53\1\uffff\1\u00b8\3\53"+
-        "\1\uffff\5\53\1\uffff\1\u00ea\2\53\1\uffff\3\53\1\uffff\2\53\1\u00f3"+
-        "\5\53\1\uffff\2\53\2\uffff\4\53\1\uffff\1\53\1\u0100\2\53\1\u0103"+
-        "\1\53\1\u0105\1\uffff\1\53\1\uffff\1\u0107\1\53\1\uffff\3\53\1\u010e"+
-        "\1\53\1\uffff\1\53\1\u0111\12\53\1\uffff\1\53\1\u011d\1\uffff\1"+
-        "\53\1\uffff\1\u011f\1\uffff\1\u0120\2\uffff\1\53\1\u0122\1\53\1"+
-        "\uffff\1\u0124\1\53\1\uffff\1\53\1\uffff\3\53\1\u012a\1\53\1\u012c"+
-        "\1\53\1\u012e\1\u012f\1\uffff\1\u0130\2\uffff\1\u0131\1\uffff\1"+
-        "\53\1\uffff\3\53\1\u0136\1\53\1\uffff\1\u0138\1\uffff\1\u0139\5"+
-        "\uffff\3\53\1\uffff\1\53\2\uffff\1\53\1\u013f\1\u0140\1\u0141\4"+
-        "\uffff";
+        "\2\uffff\1\56\1\uffff\2\54\1\62\1\64\1\54\1\uffff\1\66\1\uffff\1"+
+        "\54\21\53\10\uffff\2\54\2\uffff\1\54\15\uffff\10\53\1\151\27\53"+
+        "\1\u0089\3\53\4\uffff\11\53\1\uffff\3\53\1\u0099\21\53\1\u00ab\3"+
+        "\53\1\uffff\1\u00af\4\53\1\uffff\4\53\1\u00b8\1\u00b9\2\53\1\u00bc"+
+        "\2\53\1\u00bf\3\53\1\uffff\1\u00c3\10\53\1\u00cd\7\53\1\uffff\3"+
+        "\53\1\uffff\1\u00d9\5\53\1\u00df\1\53\2\uffff\1\53\1\u00b9\1\uffff"+
+        "\2\53\1\uffff\3\53\1\uffff\1\u00e7\4\53\1\uffff\3\53\1\uffff\2\53"+
+        "\1\u00f2\1\uffff\7\53\2\uffff\4\53\1\uffff\1\53\1\u00ff\2\53\1\u0102"+
+        "\1\53\2\uffff\1\53\1\u0105\1\u0106\1\53\1\uffff\3\53\1\u010d\1\53"+
+        "\1\uffff\1\53\1\u0110\12\53\1\uffff\1\53\1\u011c\1\uffff\1\u011d"+
+        "\1\53\2\uffff\1\u011f\2\uffff\1\u0120\2\53\1\uffff\1\u0123\1\53"+
+        "\1\uffff\1\53\1\uffff\3\53\1\u0129\2\53\1\u012c\1\u012d\1\u012e"+
+        "\2\uffff\1\u012f\2\uffff\1\u0130\1\53\1\uffff\3\53\1\u0135\1\53"+
+        "\1\uffff\1\u0137\1\u0138\6\uffff\3\53\1\uffff\1\53\2\uffff\1\53"+
+        "\1\u013e\1\u013f\1\u0140\4\uffff";
     static final String DFA18_eofS =
-        "\u0142\uffff";
+        "\u0141\uffff";
     static final String DFA18_minS =
         "\1\11\1\uffff\1\52\1\uffff\1\60\4\75\1\uffff\1\56\1\uffff\1\0\1"+
         "\145\2\141\1\155\1\156\1\154\1\141\1\145\1\165\1\143\1\141\3\157"+
-        "\1\162\1\141\1\150\10\uffff\1\46\1\174\2\uffff\1\52\16\uffff\1\165"+
-        "\1\145\1\155\1\157\1\154\1\162\1\156\1\143\1\60\1\160\1\143\2\141"+
-        "\1\157\1\141\1\164\1\162\1\143\1\154\1\163\1\145\1\143\1\144\1\145"+
-        "\2\164\1\154\1\165\1\55\1\154\1\143\1\154\1\60\1\164\1\155\1\145"+
-        "\4\uffff\1\145\1\156\1\160\1\155\1\163\1\141\1\143\1\153\1\164\1"+
-        "\uffff\1\157\1\154\1\163\1\162\1\142\1\60\1\154\1\156\1\142\1\154"+
-        "\1\145\1\141\1\154\1\145\1\165\1\145\1\162\1\151\1\165\1\60\1\156"+
-        "\1\162\1\157\1\151\1\156\1\60\1\uffff\1\154\1\153\1\154\1\164\1"+
-        "\uffff\1\143\1\142\1\156\2\60\1\154\1\60\1\145\1\154\1\164\1\141"+
-        "\1\60\1\162\1\165\1\164\1\171\1\154\1\uffff\1\60\1\164\1\141\1\145"+
-        "\1\55\1\164\1\141\1\60\1\154\1\162\1\171\1\157\1\155\1\uffff\1\144"+
-        "\1\151\1\55\1\145\1\144\1\uffff\1\60\1\55\1\145\1\141\1\150\1\145"+
-        "\1\60\2\uffff\1\141\1\uffff\1\60\1\154\1\151\1\147\1\uffff\1\164"+
-        "\1\144\1\163\1\55\1\145\1\uffff\1\60\1\154\1\143\1\145\1\151\1\162"+
-        "\1\154\1\uffff\1\164\1\163\1\60\1\141\1\156\1\165\1\141\1\142\1"+
-        "\uffff\1\156\1\163\2\uffff\1\143\1\151\1\145\1\162\1\uffff\1\164"+
-        "\1\60\1\157\1\145\1\60\1\145\1\60\1\uffff\1\144\1\uffff\1\60\1\164"+
-        "\1\146\1\157\1\145\1\157\1\60\1\145\1\uffff\1\164\1\60\1\154\1\55"+
-        "\1\165\1\143\1\154\1\164\1\156\1\163\1\117\1\145\1\uffff\1\156\1"+
-        "\60\1\uffff\1\163\1\uffff\1\60\1\uffff\1\60\2\uffff\1\156\1\60\1"+
-        "\167\1\uffff\1\60\1\151\1\uffff\1\141\1\uffff\1\164\1\145\1\151"+
-        "\1\60\1\163\1\60\1\146\2\60\1\uffff\1\60\2\uffff\1\60\1\uffff\1"+
-        "\55\1\uffff\1\157\1\164\1\145\1\60\1\153\1\uffff\1\60\1\uffff\1"+
-        "\60\5\uffff\1\156\1\145\1\163\1\uffff\1\145\2\uffff\1\55\3\60\4"+
-        "\uffff";
+        "\1\162\1\141\1\150\10\uffff\1\46\1\174\2\uffff\1\52\15\uffff\1\155"+
+        "\1\145\1\165\1\162\1\154\1\157\1\156\1\143\1\60\1\160\2\141\1\143"+
+        "\1\157\1\141\1\164\1\143\1\162\1\154\1\163\1\145\1\164\1\143\1\145"+
+        "\1\144\1\164\1\154\1\165\1\55\1\154\1\143\1\154\1\60\1\155\1\164"+
+        "\1\145\4\uffff\1\160\1\156\1\145\1\141\1\163\1\155\1\143\1\153\1"+
+        "\164\1\uffff\1\157\1\142\1\162\1\60\1\154\1\156\1\154\1\163\1\142"+
+        "\1\154\1\145\1\154\1\141\1\145\1\165\1\145\1\162\1\157\1\151\1\165"+
+        "\1\156\1\60\1\162\1\151\1\156\1\uffff\1\60\1\154\1\153\1\154\1\164"+
+        "\1\uffff\1\142\1\143\1\156\1\154\2\60\1\154\1\145\1\60\1\164\1\141"+
+        "\1\60\1\162\1\154\1\171\1\uffff\1\60\1\164\1\165\1\164\1\141\1\145"+
+        "\1\55\1\141\1\164\1\60\1\154\1\162\1\171\1\55\1\157\1\155\1\144"+
+        "\1\uffff\1\151\1\145\1\144\1\uffff\1\60\1\55\1\145\1\141\1\145\1"+
+        "\150\1\60\1\141\2\uffff\1\154\1\60\1\uffff\1\151\1\147\1\uffff\1"+
+        "\164\1\145\1\55\1\uffff\1\60\1\144\1\163\1\154\1\143\1\145\1\162"+
+        "\1\151\1\154\1\uffff\1\164\1\163\1\60\1\uffff\1\141\1\156\1\165"+
+        "\1\141\1\142\1\156\1\163\2\uffff\1\143\1\151\1\162\1\145\1\uffff"+
+        "\1\164\1\60\1\157\1\145\1\60\1\144\2\uffff\1\145\2\60\1\164\1\146"+
+        "\1\145\2\157\1\60\1\145\1\uffff\1\164\1\60\1\154\1\55\1\165\1\143"+
+        "\1\154\1\164\1\156\1\117\1\163\1\145\1\uffff\1\156\1\60\1\uffff"+
+        "\1\60\1\163\2\uffff\1\60\2\uffff\1\60\1\156\1\167\1\uffff\1\60\1"+
+        "\151\1\uffff\1\141\1\uffff\1\164\1\145\1\151\1\60\1\163\1\146\3"+
+        "\60\2\uffff\1\60\2\uffff\1\60\1\55\1\uffff\1\157\1\164\1\145\1\60"+
+        "\1\153\1\uffff\2\60\6\uffff\1\156\1\145\1\163\1\uffff\1\145\2\uffff"+
+        "\1\55\3\60\4\uffff";
     static final String DFA18_maxS =
         "\1\u00ff\1\uffff\1\52\1\uffff\1\76\4\75\1\uffff\1\71\1\uffff\1\ufffe"+
         "\1\162\1\165\1\141\1\156\1\170\1\154\4\165\1\157\1\165\2\157\1\162"+
-        "\1\145\1\150\10\uffff\1\46\1\174\2\uffff\1\57\16\uffff\1\165\1\145"+
-        "\1\155\1\157\1\154\1\162\1\156\1\143\1\u00ff\1\160\1\151\1\164\1"+
-        "\145\1\157\1\141\1\164\1\162\1\143\1\154\1\166\1\145\1\164\1\144"+
-        "\1\145\2\164\1\154\1\165\1\164\1\154\1\143\1\156\1\u00ff\1\164\1"+
-        "\155\1\145\4\uffff\1\145\1\156\1\160\1\155\1\163\1\141\1\143\1\153"+
-        "\1\164\1\uffff\1\157\1\154\1\163\1\162\1\142\1\u00ff\1\154\1\156"+
-        "\1\142\1\154\1\145\1\141\1\154\1\145\1\165\1\145\1\162\1\151\1\165"+
-        "\1\u00ff\1\156\1\162\1\157\1\151\1\156\1\u00ff\1\uffff\1\154\1\153"+
-        "\1\154\1\164\1\uffff\1\143\1\142\1\156\2\u00ff\1\154\1\u00ff\1\145"+
-        "\1\154\1\164\1\141\1\u00ff\1\162\1\165\1\164\1\171\1\154\1\uffff"+
-        "\1\u00ff\1\164\1\141\1\145\1\55\1\164\1\141\1\u00ff\1\154\1\162"+
-        "\1\171\1\166\1\155\1\uffff\1\144\1\151\1\55\1\145\1\144\1\uffff"+
-        "\1\u00ff\1\55\1\145\1\141\1\150\1\145\1\u00ff\2\uffff\1\141\1\uffff"+
-        "\1\u00ff\1\154\1\151\1\147\1\uffff\1\164\1\144\1\163\1\55\1\145"+
-        "\1\uffff\1\u00ff\1\154\1\143\1\145\1\151\1\162\1\154\1\uffff\1\164"+
-        "\1\163\1\u00ff\1\141\1\156\1\165\1\141\1\142\1\uffff\1\156\1\163"+
-        "\2\uffff\1\143\1\151\1\145\1\162\1\uffff\1\164\1\u00ff\1\157\1\145"+
-        "\1\u00ff\1\145\1\u00ff\1\uffff\1\144\1\uffff\1\u00ff\1\164\1\170"+
-        "\1\157\1\145\1\157\1\u00ff\1\145\1\uffff\1\164\1\u00ff\1\154\1\55"+
-        "\1\165\1\143\1\154\1\164\1\156\1\163\1\117\1\145\1\uffff\1\156\1"+
-        "\u00ff\1\uffff\1\163\1\uffff\1\u00ff\1\uffff\1\u00ff\2\uffff\1\156"+
-        "\1\u00ff\1\167\1\uffff\1\u00ff\1\151\1\uffff\1\141\1\uffff\1\164"+
-        "\1\145\1\151\1\u00ff\1\163\1\u00ff\1\146\2\u00ff\1\uffff\1\u00ff"+
-        "\2\uffff\1\u00ff\1\uffff\1\55\1\uffff\1\157\1\164\1\145\1\u00ff"+
-        "\1\153\1\uffff\1\u00ff\1\uffff\1\u00ff\5\uffff\1\156\1\145\1\163"+
-        "\1\uffff\1\145\2\uffff\1\55\3\u00ff\4\uffff";
+        "\1\145\1\150\10\uffff\1\46\1\174\2\uffff\1\57\15\uffff\1\155\1\145"+
+        "\1\165\1\162\1\154\1\157\1\156\1\143\1\u00ff\1\160\1\164\1\145\1"+
+        "\151\1\157\1\141\1\164\1\143\1\162\1\154\1\166\1\145\2\164\1\145"+
+        "\1\144\1\164\1\154\1\165\1\164\1\154\1\143\1\156\1\u00ff\1\155\1"+
+        "\164\1\145\4\uffff\1\160\1\156\1\145\1\141\1\163\1\155\1\143\1\153"+
+        "\1\164\1\uffff\1\157\1\142\1\162\1\u00ff\1\154\1\156\1\154\1\163"+
+        "\1\142\1\154\1\145\1\154\1\141\1\145\1\165\1\145\1\162\1\157\1\151"+
+        "\1\165\1\156\1\u00ff\1\162\1\151\1\156\1\uffff\1\u00ff\1\154\1\153"+
+        "\1\154\1\164\1\uffff\1\142\1\143\1\156\1\154\2\u00ff\1\154\1\145"+
+        "\1\u00ff\1\164\1\141\1\u00ff\1\162\1\154\1\171\1\uffff\1\u00ff\1"+
+        "\164\1\165\1\164\1\141\1\145\1\55\1\141\1\164\1\u00ff\1\154\1\162"+
+        "\1\171\1\55\1\166\1\155\1\144\1\uffff\1\151\1\145\1\144\1\uffff"+
+        "\1\u00ff\1\55\1\145\1\141\1\145\1\150\1\u00ff\1\141\2\uffff\1\154"+
+        "\1\u00ff\1\uffff\1\151\1\147\1\uffff\1\164\1\145\1\55\1\uffff\1"+
+        "\u00ff\1\144\1\163\1\154\1\143\1\145\1\162\1\151\1\154\1\uffff\1"+
+        "\164\1\163\1\u00ff\1\uffff\1\141\1\156\1\165\1\141\1\142\1\156\1"+
+        "\163\2\uffff\1\143\1\151\1\162\1\145\1\uffff\1\164\1\u00ff\1\157"+
+        "\1\145\1\u00ff\1\144\2\uffff\1\145\2\u00ff\1\164\1\170\1\145\2\157"+
+        "\1\u00ff\1\145\1\uffff\1\164\1\u00ff\1\154\1\55\1\165\1\143\1\154"+
+        "\1\164\1\156\1\117\1\163\1\145\1\uffff\1\156\1\u00ff\1\uffff\1\u00ff"+
+        "\1\163\2\uffff\1\u00ff\2\uffff\1\u00ff\1\156\1\167\1\uffff\1\u00ff"+
+        "\1\151\1\uffff\1\141\1\uffff\1\164\1\145\1\151\1\u00ff\1\163\1\146"+
+        "\3\u00ff\2\uffff\1\u00ff\2\uffff\1\u00ff\1\55\1\uffff\1\157\1\164"+
+        "\1\145\1\u00ff\1\153\1\uffff\2\u00ff\6\uffff\1\156\1\145\1\163\1"+
+        "\uffff\1\145\2\uffff\1\55\3\u00ff\4\uffff";
     static final String DFA18_acceptS =
-        "\1\uffff\1\1\1\uffff\1\3\5\uffff\1\14\1\uffff\1\17\22\uffff\1\77"+
-        "\1\100\1\101\1\102\1\103\1\104\1\105\1\106\2\uffff\1\112\1\113\1"+
-        "\uffff\1\77\1\116\1\2\1\107\1\4\1\13\1\5\1\7\1\6\1\11\1\10\1\12"+
-        "\1\15\1\16\44\uffff\1\110\1\111\1\115\1\114\11\uffff\1\66\32\uffff"+
-        "\1\37\4\uffff\1\57\21\uffff\1\76\15\uffff\1\60\5\uffff\1\71\7\uffff"+
-        "\1\20\1\75\1\uffff\1\47\4\uffff\1\51\5\uffff\1\72\7\uffff\1\27\10"+
-        "\uffff\1\40\2\uffff\1\67\1\46\4\uffff\1\74\7\uffff\1\56\1\uffff"+
-        "\1\24\10\uffff\1\30\14\uffff\1\73\2\uffff\1\22\1\uffff\1\70\1\uffff"+
-        "\1\25\1\uffff\1\33\1\34\3\uffff\1\54\2\uffff\1\52\1\uffff\1\42\11"+
-        "\uffff\1\21\1\uffff\1\35\1\43\1\uffff\1\26\1\uffff\1\53\5\uffff"+
-        "\1\55\1\uffff\1\64\1\uffff\1\31\1\23\1\62\1\45\1\44\3\uffff\1\36"+
-        "\1\uffff\1\61\1\63\4\uffff\1\41\1\50\1\32\1\65";
+        "\1\uffff\1\1\1\uffff\1\3\5\uffff\1\13\1\uffff\1\16\22\uffff\1\76"+
+        "\1\77\1\100\1\101\1\102\1\103\1\104\1\105\2\uffff\1\111\1\112\1"+
+        "\uffff\1\76\1\115\1\2\1\106\1\4\1\5\1\7\1\6\1\11\1\10\1\12\1\14"+
+        "\1\15\44\uffff\1\107\1\110\1\113\1\114\11\uffff\1\65\31\uffff\1"+
+        "\36\5\uffff\1\56\17\uffff\1\75\21\uffff\1\57\3\uffff\1\70\10\uffff"+
+        "\1\74\1\17\2\uffff\1\46\2\uffff\1\50\3\uffff\1\71\11\uffff\1\26"+
+        "\3\uffff\1\37\7\uffff\1\66\1\45\4\uffff\1\73\6\uffff\1\55\1\23\12"+
+        "\uffff\1\27\14\uffff\1\72\2\uffff\1\21\2\uffff\1\67\1\24\1\uffff"+
+        "\1\32\1\33\3\uffff\1\53\2\uffff\1\51\1\uffff\1\41\11\uffff\1\20"+
+        "\1\34\1\uffff\1\42\1\25\2\uffff\1\52\5\uffff\1\54\2\uffff\1\63\1"+
+        "\30\1\22\1\61\1\44\1\43\3\uffff\1\35\1\uffff\1\60\1\62\4\uffff\1"+
+        "\40\1\47\1\31\1\64";
     static final String DFA18_specialS =
-        "\u0142\uffff}>";
+        "\u0141\uffff}>";
     static final String[] DFA18_transitionS = {
             "\2\11\1\uffff\2\11\22\uffff\1\11\1\10\1\13\1\51\1\36\1\54\1"+
             "\46\1\14\1\37\1\40\2\54\1\45\1\4\1\2\1\52\12\12\1\3\1\1\1\7"+
@@ -3144,31 +3115,31 @@
             "\1\55",
             "",
             "\12\12\4\uffff\1\57",
+            "\1\60",
             "\1\61",
-            "\1\62",
-            "\1\64",
-            "\1\66",
+            "\1\63",
+            "\1\65",
             "",
-            "\1\70\1\uffff\12\12",
+            "\1\67\1\uffff\12\12",
             "",
             "\uffff\13",
-            "\1\73\2\uffff\1\72\11\uffff\1\71",
-            "\1\75\15\uffff\1\76\2\uffff\1\74\2\uffff\1\77",
-            "\1\100",
-            "\1\102\1\101",
-            "\1\104\7\uffff\1\105\1\uffff\1\103",
-            "\1\106",
-            "\1\110\3\uffff\1\112\3\uffff\1\107\13\uffff\1\111",
-            "\1\114\17\uffff\1\113",
-            "\1\115",
-            "\1\116\3\uffff\1\120\6\uffff\1\117\5\uffff\1\121\1\122",
-            "\1\123\15\uffff\1\124",
-            "\1\125\5\uffff\1\126",
+            "\1\70\2\uffff\1\71\11\uffff\1\72",
+            "\1\74\15\uffff\1\73\2\uffff\1\75\2\uffff\1\76",
+            "\1\77",
+            "\1\101\1\100",
+            "\1\102\7\uffff\1\103\1\uffff\1\104",
+            "\1\105",
+            "\1\107\3\uffff\1\110\3\uffff\1\106\13\uffff\1\111",
+            "\1\113\17\uffff\1\112",
+            "\1\114",
+            "\1\116\3\uffff\1\117\6\uffff\1\120\5\uffff\1\121\1\115",
+            "\1\122\15\uffff\1\123",
+            "\1\124\5\uffff\1\125",
+            "\1\126",
             "\1\127",
             "\1\130",
-            "\1\131",
-            "\1\132\3\uffff\1\133",
-            "\1\134",
+            "\1\132\3\uffff\1\131",
+            "\1\133",
             "",
             "",
             "",
@@ -3177,11 +3148,11 @@
             "",
             "",
             "",
+            "\1\134",
             "\1\135",
-            "\1\136",
             "",
             "",
-            "\1\137\4\uffff\1\140",
+            "\1\137\4\uffff\1\136",
             "",
             "",
             "",
@@ -3195,7 +3166,7 @@
             "",
             "",
             "",
-            "",
+            "\1\140",
             "\1\141",
             "\1\142",
             "\1\143",
@@ -3203,20 +3174,20 @@
             "\1\145",
             "\1\146",
             "\1\147",
-            "\1\150",
-            "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\10\53\1\151\21\53"+
+            "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\10\53\1\150\21\53"+
             "\105\uffff\100\53",
-            "\1\153",
-            "\1\154\5\uffff\1\155",
-            "\1\157\2\uffff\1\160\17\uffff\1\156",
-            "\1\161\3\uffff\1\162",
+            "\1\152",
+            "\1\153\2\uffff\1\155\17\uffff\1\154",
+            "\1\156\3\uffff\1\157",
+            "\1\160\5\uffff\1\161",
+            "\1\162",
             "\1\163",
             "\1\164",
             "\1\165",
             "\1\166",
             "\1\167",
-            "\1\170",
-            "\1\171\2\uffff\1\172",
+            "\1\170\2\uffff\1\171",
+            "\1\172",
             "\1\173",
             "\1\175\20\uffff\1\174",
             "\1\176",
@@ -3224,20 +3195,20 @@
             "\1\u0080",
             "\1\u0081",
             "\1\u0082",
-            "\1\u0083",
-            "\1\u0085\106\uffff\1\u0084",
+            "\1\u0083\106\uffff\1\u0084",
+            "\1\u0085",
             "\1\u0086",
-            "\1\u0087",
-            "\1\u0088\1\uffff\1\u0089",
+            "\1\u0087\1\uffff\1\u0088",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u008a",
             "\1\u008b",
             "\1\u008c",
-            "\1\u008d",
             "",
             "",
             "",
             "",
+            "\1\u008d",
             "\1\u008e",
             "\1\u008f",
             "\1\u0090",
@@ -3246,15 +3217,15 @@
             "\1\u0093",
             "\1\u0094",
             "\1\u0095",
-            "\1\u0096",
             "",
+            "\1\u0096",
             "\1\u0097",
             "\1\u0098",
-            "\1\u0099",
-            "\1\u009a",
-            "\1\u009b",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u009a",
+            "\1\u009b",
+            "\1\u009c",
             "\1\u009d",
             "\1\u009e",
             "\1\u009f",
@@ -3268,21 +3239,21 @@
             "\1\u00a7",
             "\1\u00a8",
             "\1\u00a9",
+            "\1\u00aa",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "\1\u00ab",
             "\1\u00ac",
             "\1\u00ad",
             "\1\u00ae",
-            "\1\u00af",
+            "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "",
+            "\1\u00b0",
             "\1\u00b1",
             "\1\u00b2",
             "\1\u00b3",
-            "\1\u00b4",
             "",
+            "\1\u00b4",
             "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
@@ -3291,122 +3262,122 @@
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "\1\u00ba",
+            "\1\u00bb",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "\1\u00bc",
             "\1\u00bd",
             "\1\u00be",
-            "\1\u00bf",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u00c0",
             "\1\u00c1",
             "\1\u00c2",
-            "\1\u00c3",
-            "\1\u00c4",
-            "\1\u00c5",
             "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6",
             "\1\u00c7",
             "\1\u00c8",
             "\1\u00c9",
             "\1\u00ca",
             "\1\u00cb",
-            "\1\u00cc",
-            "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\5\53\1\u00cd\24\53"+
+            "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\5\53\1\u00cc\24\53"+
             "\105\uffff\100\53",
+            "\1\u00ce",
             "\1\u00cf",
             "\1\u00d0",
             "\1\u00d1",
             "\1\u00d3\6\uffff\1\u00d2",
             "\1\u00d4",
-            "",
             "\1\u00d5",
+            "",
             "\1\u00d6",
             "\1\u00d7",
             "\1\u00d8",
-            "\1\u00d9",
             "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u00da",
             "\1\u00db",
             "\1\u00dc",
             "\1\u00dd",
             "\1\u00de",
-            "\1\u00df",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u00e0",
             "",
             "",
             "\1\u00e1",
-            "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "",
             "\1\u00e2",
             "\1\u00e3",
-            "\1\u00e4",
             "",
+            "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
-            "\1\u00e7",
-            "\1\u00e8",
-            "\1\u00e9",
             "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
             "\1\u00eb",
             "\1\u00ec",
             "\1\u00ed",
             "\1\u00ee",
             "\1\u00ef",
-            "\1\u00f0",
             "",
+            "\1\u00f0",
             "\1\u00f1",
-            "\1\u00f2",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "",
+            "\1\u00f3",
             "\1\u00f4",
             "\1\u00f5",
             "\1\u00f6",
             "\1\u00f7",
             "\1\u00f8",
-            "",
             "\1\u00f9",
-            "\1\u00fa",
             "",
             "",
+            "\1\u00fa",
             "\1\u00fb",
             "\1\u00fc",
             "\1\u00fd",
-            "\1\u00fe",
             "",
-            "\1\u00ff",
+            "\1\u00fe",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u0100",
             "\1\u0101",
-            "\1\u0102",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u0103",
+            "",
+            "",
             "\1\u0104",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "",
-            "\1\u0106",
-            "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "\1\u0108",
-            "\1\u0109\21\uffff\1\u010a",
+            "\1\u0107",
+            "\1\u0108\21\uffff\1\u0109",
+            "\1\u010a",
             "\1\u010b",
             "\1\u010c",
-            "\1\u010d",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "\1\u010f",
+            "\1\u010e",
             "",
-            "\1\u0110",
+            "\1\u010f",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u0111",
             "\1\u0112",
             "\1\u0113",
             "\1\u0114",
@@ -3416,65 +3387,63 @@
             "\1\u0118",
             "\1\u0119",
             "\1\u011a",
-            "\1\u011b",
             "",
-            "\1\u011c",
+            "\1\u011b",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "",
-            "\1\u011e",
-            "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u011e",
             "",
+            "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "",
             "",
-            "\1\u0121",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "\1\u0123",
+            "\1\u0121",
+            "\1\u0122",
             "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u0124",
+            "",
             "\1\u0125",
             "",
             "\1\u0126",
-            "",
             "\1\u0127",
             "\1\u0128",
-            "\1\u0129",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u012a",
             "\1\u012b",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "\1\u012d",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "",
+            "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "",
             "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
+            "\1\u0131",
             "",
             "\1\u0132",
-            "",
             "\1\u0133",
             "\1\u0134",
-            "\1\u0135",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "\1\u0137",
+            "\1\u0136",
             "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
-            "",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "",
@@ -3482,14 +3451,15 @@
             "",
             "",
             "",
+            "",
+            "\1\u0139",
             "\1\u013a",
             "\1\u013b",
+            "",
             "\1\u013c",
             "",
-            "\1\u013d",
             "",
-            "",
-            "\1\u013e",
+            "\1\u013d",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
             "\53",
             "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
@@ -3532,7 +3502,7 @@
             this.transition = DFA18_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | T86 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | EVENT | GLOBAL | DECLARE | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | ENTRY_POINT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC );";
+            return "1:1: Tokens : ( T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | T84 | T85 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | EVENT | GLOBAL | DECLARE | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | ENTRY_POINT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC );";
         }
     }
  

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-01-22 16:27:19
+// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2008-01-27 17:57:33
 
 	package org.drools.lang;
 	import java.util.List;
@@ -17,85 +17,85 @@
 import java.util.HashMap;
 public class DRLParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PACKAGE", "IMPORT", "FUNCTION", "EVENT", "ID", "DOT", "GLOBAL", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "DECLARE", "LEFT_CURLY", "RIGHT_CURLY", "STRING", "QUERY", "END", "TEMPLATE", "RULE", "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT", "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP", "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "DIALECT", "LOCK_ON_ACTIVE", "OR", "DOUBLE_PIPE", "AND", "DOUBLE_AMPER", "FROM", "EXISTS", "NOT", "EVAL", "FORALL", "ACCUMULATE", "INIT", "ACTION", "REVERSE", "RESULT", "COLLECT", "ENTRY_POINT", "CONTAINS", "EXCLUDES", "MATCHES", "SOUNDSLIKE", "MEMBEROF", "TILDE", "IN", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "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", "ID", "DOT", "GLOBAL", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "DECLARE", "LEFT_CURLY", "RIGHT_CURLY", "STRING", "QUERY", "END", "TEMPLATE", "RULE", "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT", "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP", "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "DIALECT", "LOCK_ON_ACTIVE", "OR", "DOUBLE_PIPE", "AND", "DOUBLE_AMPER", "FROM", "EXISTS", "NOT", "EVAL", "FORALL", "ACCUMULATE", "INIT", "ACTION", "REVERSE", "RESULT", "COLLECT", "ENTRY_POINT", "CONTAINS", "EXCLUDES", "MATCHES", "SOUNDSLIKE", "MEMBEROF", "TILDE", "IN", "FLOAT", "NULL", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "EVENT", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "MISC", "';'", "'.*'", "':'", "'->'", "'=='", "'>'", "'>='", "'<'", "'<='", "'!!
 ='"
     };
-    public static final int COMMA=12;
-    public static final int EXISTS=43;
-    public static final int AUTO_FOCUS=31;
-    public static final int END=19;
+    public static final int COMMA=11;
+    public static final int EXISTS=42;
+    public static final int AUTO_FOCUS=30;
+    public static final int END=18;
     public static final int HexDigit=69;
-    public static final int FORALL=46;
-    public static final int TEMPLATE=20;
+    public static final int FORALL=45;
+    public static final int TEMPLATE=19;
     public static final int MISC=75;
-    public static final int FLOAT=61;
-    public static final int QUERY=18;
-    public static final int THEN=65;
-    public static final int RULE=21;
-    public static final int INIT=48;
-    public static final int TILDE=59;
+    public static final int FLOAT=60;
+    public static final int QUERY=17;
+    public static final int THEN=64;
+    public static final int RULE=20;
+    public static final int INIT=47;
+    public static final int TILDE=58;
     public static final int IMPORT=5;
     public static final int PACKAGE=4;
-    public static final int DATE_EFFECTIVE=24;
-    public static final int OR=38;
-    public static final int DOT=9;
-    public static final int DOUBLE_PIPE=39;
-    public static final int AND=40;
+    public static final int DATE_EFFECTIVE=23;
+    public static final int OR=37;
+    public static final int DOT=8;
+    public static final int DOUBLE_PIPE=38;
+    public static final int AND=39;
     public static final int FUNCTION=6;
-    public static final int GLOBAL=10;
+    public static final int GLOBAL=9;
     public static final int EscapeSequence=68;
-    public static final int DIALECT=36;
-    public static final int INT=29;
-    public static final int LOCK_ON_ACTIVE=37;
-    public static final int DATE_EXPIRES=25;
-    public static final int LEFT_SQUARE=63;
-    public static final int CONTAINS=54;
+    public static final int DIALECT=35;
+    public static final int INT=28;
+    public static final int LOCK_ON_ACTIVE=36;
+    public static final int DATE_EXPIRES=24;
+    public static final int LEFT_SQUARE=62;
+    public static final int CONTAINS=53;
     public static final int SH_STYLE_SINGLE_LINE_COMMENT=72;
-    public static final int ATTRIBUTES=23;
-    public static final int EVENT=7;
-    public static final int DECLARE=14;
-    public static final int RESULT=51;
-    public static final int LEFT_CURLY=15;
-    public static final int ID=8;
-    public static final int FROM=42;
-    public static final int LEFT_PAREN=11;
-    public static final int ACTIVATION_GROUP=32;
-    public static final int DOUBLE_AMPER=41;
-    public static final int RIGHT_CURLY=16;
-    public static final int SOUNDSLIKE=57;
-    public static final int EXCLUDES=55;
-    public static final int BOOL=27;
-    public static final int MEMBEROF=58;
-    public static final int WHEN=22;
-    public static final int RULEFLOW_GROUP=33;
+    public static final int ATTRIBUTES=22;
+    public static final int EVENT=65;
+    public static final int DECLARE=13;
+    public static final int RESULT=50;
+    public static final int LEFT_CURLY=14;
+    public static final int ID=7;
+    public static final int FROM=41;
+    public static final int LEFT_PAREN=10;
+    public static final int ACTIVATION_GROUP=31;
+    public static final int DOUBLE_AMPER=40;
+    public static final int RIGHT_CURLY=15;
+    public static final int SOUNDSLIKE=56;
+    public static final int EXCLUDES=54;
+    public static final int BOOL=26;
+    public static final int MEMBEROF=57;
+    public static final int WHEN=21;
+    public static final int RULEFLOW_GROUP=32;
     public static final int WS=67;
-    public static final int STRING=17;
-    public static final int ACTION=49;
-    public static final int COLLECT=52;
-    public static final int IN=60;
-    public static final int REVERSE=50;
-    public static final int ACCUMULATE=47;
-    public static final int NO_LOOP=30;
+    public static final int STRING=16;
+    public static final int ACTION=48;
+    public static final int COLLECT=51;
+    public static final int IN=59;
+    public static final int REVERSE=49;
+    public static final int ACCUMULATE=46;
+    public static final int NO_LOOP=29;
     public static final int UnicodeEscape=70;
-    public static final int DURATION=35;
-    public static final int EVAL=45;
-    public static final int MATCHES=56;
+    public static final int DURATION=34;
+    public static final int EVAL=44;
+    public static final int MATCHES=55;
     public static final int EOF=-1;
     public static final int EOL=66;
-    public static final int NULL=62;
-    public static final int AGENDA_GROUP=34;
+    public static final int NULL=61;
+    public static final int AGENDA_GROUP=33;
     public static final int OctalEscape=71;
-    public static final int SALIENCE=28;
+    public static final int SALIENCE=27;
     public static final int MULTI_LINE_COMMENT=74;
-    public static final int NOT=44;
-    public static final int RIGHT_PAREN=13;
-    public static final int ENABLED=26;
-    public static final int RIGHT_SQUARE=64;
+    public static final int RIGHT_PAREN=12;
+    public static final int NOT=43;
+    public static final int ENABLED=25;
+    public static final int RIGHT_SQUARE=63;
     public static final int C_STYLE_SINGLE_LINE_COMMENT=73;
-    public static final int ENTRY_POINT=53;
+    public static final int ENTRY_POINT=52;
 
         public DRLParser(TokenStream input) {
             super(input);
-            ruleMemo = new HashMap[88+1];
+            ruleMemo = new HashMap[86+1];
          }
         
 
@@ -439,7 +439,7 @@
 
 
     // $ANTLR start statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:223:1: statement : (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= declaration );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:223:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= type_declaration );
     public final void statement() throws RecognitionException {
         AttributeDescr a = null;
 
@@ -453,8 +453,8 @@
 
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:224:2: (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= declaration )
-            int alt4=10;
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:224:2: (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= type_declaration )
+            int alt4=9;
             switch ( input.LA(1) ) {
             case DATE_EFFECTIVE:
             case DATE_EXPIRES:
@@ -474,66 +474,57 @@
                 break;
             case IMPORT:
                 {
-                switch ( input.LA(2) ) {
-                case FUNCTION:
-                    {
+                int LA4_2 = input.LA(2);
+
+                if ( (LA4_2==FUNCTION) ) {
                     alt4=2;
-                    }
-                    break;
-                case EVENT:
-                    {
+                }
+                else if ( (LA4_2==ID) ) {
                     alt4=3;
-                    }
-                    break;
-                case ID:
-                    {
-                    alt4=4;
-                    }
-                    break;
-                default:
+                }
+                else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= declaration );", 4, 2, input);
+                        new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= type_declaration );", 4, 2, input);
 
                     throw nvae;
                 }
-
                 }
                 break;
             case GLOBAL:
                 {
-                alt4=5;
+                alt4=4;
                 }
                 break;
             case FUNCTION:
                 {
-                alt4=6;
+                alt4=5;
                 }
                 break;
             case TEMPLATE:
                 {
-                alt4=7;
+                alt4=6;
                 }
                 break;
             case RULE:
                 {
-                alt4=8;
+                alt4=7;
                 }
                 break;
             case QUERY:
                 {
-                alt4=9;
+                alt4=8;
                 }
                 break;
             case DECLARE:
                 {
-                alt4=10;
+                alt4=9;
                 }
                 break;
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= declaration );", 4, 0, input);
+                    new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query | d= type_declaration );", 4, 0, input);
 
                 throw nvae;
             }
@@ -563,49 +554,39 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:226:4: event_import_statement
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:226:4: import_statement
                     {
-                    pushFollow(FOLLOW_event_import_statement_in_statement134);
-                    event_import_statement();
+                    pushFollow(FOLLOW_import_statement_in_statement134);
+                    import_statement();
                     _fsp--;
                     if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:227:4: import_statement
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:227:4: global
                     {
-                    pushFollow(FOLLOW_import_statement_in_statement139);
-                    import_statement();
+                    pushFollow(FOLLOW_global_in_statement140);
+                    global();
                     _fsp--;
                     if (failed) return ;
 
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:228:4: global
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:228:4: function
                     {
-                    pushFollow(FOLLOW_global_in_statement145);
-                    global();
+                    pushFollow(FOLLOW_function_in_statement146);
+                    function();
                     _fsp--;
                     if (failed) return ;
 
                     }
                     break;
                 case 6 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:229:4: function
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:229:10: t= template
                     {
-                    pushFollow(FOLLOW_function_in_statement151);
-                    function();
-                    _fsp--;
-                    if (failed) return ;
-
-                    }
-                    break;
-                case 7 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:230:10: t= template
-                    {
-                    pushFollow(FOLLOW_template_in_statement165);
+                    pushFollow(FOLLOW_template_in_statement160);
                     t=template();
                     _fsp--;
                     if (failed) return ;
@@ -615,10 +596,10 @@
 
                     }
                     break;
-                case 8 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:231:4: r= rule
+                case 7 :
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:230:4: r= rule
                     {
-                    pushFollow(FOLLOW_rule_in_statement174);
+                    pushFollow(FOLLOW_rule_in_statement169);
                     r=rule();
                     _fsp--;
                     if (failed) return ;
@@ -628,10 +609,10 @@
 
                     }
                     break;
-                case 9 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:232:4: q= query
+                case 8 :
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:231:4: q= query
                     {
-                    pushFollow(FOLLOW_query_in_statement186);
+                    pushFollow(FOLLOW_query_in_statement181);
                     q=query();
                     _fsp--;
                     if (failed) return ;
@@ -641,15 +622,15 @@
 
                     }
                     break;
-                case 10 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:233:10: d= declaration
+                case 9 :
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:232:10: d= type_declaration
                     {
-                    pushFollow(FOLLOW_declaration_in_statement201);
-                    d=declaration();
+                    pushFollow(FOLLOW_type_declaration_in_statement196);
+                    d=type_declaration();
                     _fsp--;
                     if (failed) return ;
                     if ( backtracking==0 ) {
-                       this.packageDescr.addDeclaration( d ); 
+                       this.packageDescr.addTypeDeclaration( d ); 
                     }
 
                     }
@@ -669,7 +650,7 @@
 
 
     // $ANTLR start package_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:236:1: package_statement returns [String packageName] : PACKAGE n= dotted_name opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:235:1: package_statement returns [String packageName] : PACKAGE n= dotted_name opt_semicolon ;
     public final String package_statement() throws RecognitionException {
         String packageName = null;
 
@@ -680,15 +661,15 @@
         		packageName = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:240:2: ( PACKAGE n= dotted_name opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:241:3: PACKAGE n= dotted_name opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:239:2: ( PACKAGE n= dotted_name opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:240:3: PACKAGE n= dotted_name opt_semicolon
             {
-            match(input,PACKAGE,FOLLOW_PACKAGE_in_package_statement227); if (failed) return packageName;
-            pushFollow(FOLLOW_dotted_name_in_package_statement231);
+            match(input,PACKAGE,FOLLOW_PACKAGE_in_package_statement222); if (failed) return packageName;
+            pushFollow(FOLLOW_dotted_name_in_package_statement226);
             n=dotted_name();
             _fsp--;
             if (failed) return packageName;
-            pushFollow(FOLLOW_opt_semicolon_in_package_statement233);
+            pushFollow(FOLLOW_opt_semicolon_in_package_statement228);
             opt_semicolon();
             _fsp--;
             if (failed) return packageName;
@@ -713,7 +694,7 @@
 
 
     // $ANTLR start import_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:249:1: import_statement : IMPORT import_name[importDecl] opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:248:1: import_statement : IMPORT import_name[importDecl] opt_semicolon ;
     public final void import_statement() throws RecognitionException {
         Token IMPORT1=null;
 
@@ -721,11 +702,11 @@
                 	ImportDescr importDecl = null;
                 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:253:2: ( IMPORT import_name[importDecl] opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:253:4: IMPORT import_name[importDecl] opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:252:2: ( IMPORT import_name[importDecl] opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:252:4: IMPORT import_name[importDecl] opt_semicolon
             {
             IMPORT1=(Token)input.LT(1);
-            match(input,IMPORT,FOLLOW_IMPORT_in_import_statement264); if (failed) return ;
+            match(input,IMPORT,FOLLOW_IMPORT_in_import_statement259); if (failed) return ;
             if ( backtracking==0 ) {
 
               	            importDecl = factory.createImport( );
@@ -735,11 +716,11 @@
               		    }
               	        
             }
-            pushFollow(FOLLOW_import_name_in_import_statement287);
+            pushFollow(FOLLOW_import_name_in_import_statement282);
             import_name(importDecl);
             _fsp--;
             if (failed) return ;
-            pushFollow(FOLLOW_opt_semicolon_in_import_statement290);
+            pushFollow(FOLLOW_opt_semicolon_in_import_statement285);
             opt_semicolon();
             _fsp--;
             if (failed) return ;
@@ -759,7 +740,7 @@
 
 
     // $ANTLR start function_import_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:264:1: function_import_statement : IMPORT FUNCTION import_name[importDecl] opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:263:1: function_import_statement : IMPORT FUNCTION import_name[importDecl] opt_semicolon ;
     public final void function_import_statement() throws RecognitionException {
         Token IMPORT2=null;
 
@@ -767,12 +748,12 @@
                 	FunctionImportDescr importDecl = null;
                 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:268:2: ( IMPORT FUNCTION import_name[importDecl] opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:268:4: IMPORT FUNCTION import_name[importDecl] opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:267:2: ( IMPORT FUNCTION import_name[importDecl] opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:267:4: IMPORT FUNCTION import_name[importDecl] opt_semicolon
             {
             IMPORT2=(Token)input.LT(1);
-            match(input,IMPORT,FOLLOW_IMPORT_in_function_import_statement314); if (failed) return ;
-            match(input,FUNCTION,FOLLOW_FUNCTION_in_function_import_statement316); if (failed) return ;
+            match(input,IMPORT,FOLLOW_IMPORT_in_function_import_statement309); if (failed) return ;
+            match(input,FUNCTION,FOLLOW_FUNCTION_in_function_import_statement311); if (failed) return ;
             if ( backtracking==0 ) {
 
               	            importDecl = factory.createFunctionImport();
@@ -782,11 +763,11 @@
               		    }
               	        
             }
-            pushFollow(FOLLOW_import_name_in_function_import_statement339);
+            pushFollow(FOLLOW_import_name_in_function_import_statement334);
             import_name(importDecl);
             _fsp--;
             if (failed) return ;
-            pushFollow(FOLLOW_opt_semicolon_in_function_import_statement342);
+            pushFollow(FOLLOW_opt_semicolon_in_function_import_statement337);
             opt_semicolon();
             _fsp--;
             if (failed) return ;
@@ -805,61 +786,14 @@
     // $ANTLR end function_import_statement
 
 
-    // $ANTLR start event_import_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:279:1: event_import_statement : IMPORT EVENT import_name[importDecl] opt_semicolon ;
-    public final void event_import_statement() throws RecognitionException {
-        Token IMPORT3=null;
-
-
-                	ImportDescr importDecl = null;
-                
-        try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:283:2: ( IMPORT EVENT import_name[importDecl] opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:283:4: IMPORT EVENT import_name[importDecl] opt_semicolon
-            {
-            IMPORT3=(Token)input.LT(1);
-            match(input,IMPORT,FOLLOW_IMPORT_in_event_import_statement366); if (failed) return ;
-            match(input,EVENT,FOLLOW_EVENT_in_event_import_statement368); if (failed) return ;
-            if ( backtracking==0 ) {
-
-              	            importDecl = factory.createEventImport( );
-              	            importDecl.setStartCharacter( ((CommonToken)IMPORT3).getStartIndex() );
-              		    if (packageDescr != null) {
-              			packageDescr.addImport( importDecl );
-              		    }
-              	        
-            }
-            pushFollow(FOLLOW_import_name_in_event_import_statement391);
-            import_name(importDecl);
-            _fsp--;
-            if (failed) return ;
-            pushFollow(FOLLOW_opt_semicolon_in_event_import_statement394);
-            opt_semicolon();
-            _fsp--;
-            if (failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end event_import_statement
-
-
     // $ANTLR start import_name
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:295:1: import_name[ImportDescr importDecl] returns [String name] : ID ( DOT id= identifier )* (star= '.*' )? ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:278:1: import_name[ImportDescr importDecl] returns [String name] : ID ( DOT id= identifier )* (star= '.*' )? ;
     public final String import_name(ImportDescr importDecl) throws RecognitionException {
         String name = null;
 
         Token star=null;
-        Token ID4=null;
-        Token DOT5=null;
+        Token ID3=null;
+        Token DOT4=null;
         identifier_return id = null;
 
 
@@ -867,19 +801,19 @@
         		name = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:299:2: ( ID ( DOT id= identifier )* (star= '.*' )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:300:3: ID ( DOT id= identifier )* (star= '.*' )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:282:2: ( ID ( DOT id= identifier )* (star= '.*' )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:283:3: ID ( DOT id= identifier )* (star= '.*' )?
             {
-            ID4=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_import_name420); if (failed) return name;
+            ID3=(Token)input.LT(1);
+            match(input,ID,FOLLOW_ID_in_import_name362); if (failed) return name;
             if ( backtracking==0 ) {
                
-              		    name =ID4.getText(); 
+              		    name =ID3.getText(); 
               		    importDecl.setTarget( name );
-              		    importDecl.setEndCharacter( ((CommonToken)ID4).getStopIndex() );
+              		    importDecl.setEndCharacter( ((CommonToken)ID3).getStopIndex() );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:306:3: ( DOT id= identifier )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:289:3: ( DOT id= identifier )*
             loop5:
             do {
                 int alt5=2;
@@ -892,17 +826,17 @@
 
                 switch (alt5) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:306:5: DOT id= identifier
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:289:5: DOT id= identifier
             	    {
-            	    DOT5=(Token)input.LT(1);
-            	    match(input,DOT,FOLLOW_DOT_in_import_name432); if (failed) return name;
-            	    pushFollow(FOLLOW_identifier_in_import_name436);
+            	    DOT4=(Token)input.LT(1);
+            	    match(input,DOT,FOLLOW_DOT_in_import_name374); if (failed) return name;
+            	    pushFollow(FOLLOW_identifier_in_import_name378);
             	    id=identifier();
             	    _fsp--;
             	    if (failed) return name;
             	    if ( backtracking==0 ) {
             	       
-            	      		        name = name + DOT5.getText() + input.toString(id.start,id.stop); 
+            	      		        name = name + DOT4.getText() + input.toString(id.start,id.stop); 
             	      			importDecl.setTarget( name );
             	      		        importDecl.setEndCharacter( ((CommonToken)((Token)id.start)).getStopIndex() );
             	      		    
@@ -916,7 +850,7 @@
                 }
             } while (true);
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:313:3: (star= '.*' )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:296:3: (star= '.*' )?
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -925,10 +859,10 @@
             }
             switch (alt6) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:313:5: star= '.*'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:296:5: star= '.*'
                     {
                     star=(Token)input.LT(1);
-                    match(input,77,FOLLOW_77_in_import_name460); if (failed) return name;
+                    match(input,77,FOLLOW_77_in_import_name402); if (failed) return name;
                     if ( backtracking==0 ) {
                        
                       		        name = name + star.getText(); 
@@ -958,9 +892,9 @@
 
 
     // $ANTLR start global
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:323:1: global : GLOBAL type= dotted_name id= identifier opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:306:1: global : GLOBAL type= dotted_name id= identifier opt_semicolon ;
     public final void global() throws RecognitionException {
-        Token GLOBAL6=null;
+        Token GLOBAL5=null;
         String type = null;
 
         identifier_return id = null;
@@ -970,19 +904,19 @@
         	    GlobalDescr global = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:327:2: ( GLOBAL type= dotted_name id= identifier opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:328:3: GLOBAL type= dotted_name id= identifier opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:310:2: ( GLOBAL type= dotted_name id= identifier opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:311:3: GLOBAL type= dotted_name id= identifier opt_semicolon
             {
-            GLOBAL6=(Token)input.LT(1);
-            match(input,GLOBAL,FOLLOW_GLOBAL_in_global494); if (failed) return ;
+            GLOBAL5=(Token)input.LT(1);
+            match(input,GLOBAL,FOLLOW_GLOBAL_in_global436); if (failed) return ;
             if ( backtracking==0 ) {
 
               		    global = factory.createGlobal();
-              	            global.setStartCharacter( ((CommonToken)GLOBAL6).getStartIndex() );
+              	            global.setStartCharacter( ((CommonToken)GLOBAL5).getStartIndex() );
               		    packageDescr.addGlobal( global );
               		
             }
-            pushFollow(FOLLOW_dotted_name_in_global505);
+            pushFollow(FOLLOW_dotted_name_in_global447);
             type=dotted_name();
             _fsp--;
             if (failed) return ;
@@ -991,11 +925,11 @@
               		    global.setType( type );
               		
             }
-            pushFollow(FOLLOW_identifier_in_global516);
+            pushFollow(FOLLOW_identifier_in_global458);
             id=identifier();
             _fsp--;
             if (failed) return ;
-            pushFollow(FOLLOW_opt_semicolon_in_global518);
+            pushFollow(FOLLOW_opt_semicolon_in_global460);
             opt_semicolon();
             _fsp--;
             if (failed) return ;
@@ -1021,9 +955,9 @@
 
 
     // $ANTLR start function
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:346:1: function : FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:329:1: function : FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk ;
     public final void function() throws RecognitionException {
-        Token FUNCTION7=null;
+        Token FUNCTION6=null;
         String retType = null;
 
         identifier_return id = null;
@@ -1040,27 +974,27 @@
         		String type = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:351:2: ( FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:352:3: FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:334:2: ( FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:335:3: FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk
             {
-            FUNCTION7=(Token)input.LT(1);
-            match(input,FUNCTION,FOLLOW_FUNCTION_in_function543); if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:352:19: (retType= dotted_name )?
+            FUNCTION6=(Token)input.LT(1);
+            match(input,FUNCTION,FOLLOW_FUNCTION_in_function485); if (failed) return ;
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:335:19: (retType= dotted_name )?
             int alt7=2;
             int LA7_0 = input.LA(1);
 
-            if ( ((LA7_0>=PACKAGE && LA7_0<=ID)||LA7_0==GLOBAL||(LA7_0>=QUERY && LA7_0<=ATTRIBUTES)||LA7_0==ENABLED||LA7_0==SALIENCE||(LA7_0>=DURATION && LA7_0<=DIALECT)||LA7_0==FROM||(LA7_0>=INIT && LA7_0<=RESULT)||(LA7_0>=CONTAINS && LA7_0<=MEMBEROF)||LA7_0==IN||LA7_0==THEN) ) {
+            if ( ((LA7_0>=PACKAGE && LA7_0<=ID)||LA7_0==GLOBAL||(LA7_0>=QUERY && LA7_0<=ATTRIBUTES)||LA7_0==ENABLED||LA7_0==SALIENCE||(LA7_0>=DURATION && LA7_0<=DIALECT)||LA7_0==FROM||(LA7_0>=INIT && LA7_0<=RESULT)||(LA7_0>=CONTAINS && LA7_0<=MEMBEROF)||LA7_0==IN||(LA7_0>=THEN && LA7_0<=EVENT)) ) {
                 int LA7_1 = input.LA(2);
 
-                if ( ((LA7_1>=PACKAGE && LA7_1<=GLOBAL)||(LA7_1>=QUERY && LA7_1<=ATTRIBUTES)||LA7_1==ENABLED||LA7_1==SALIENCE||(LA7_1>=DURATION && LA7_1<=DIALECT)||LA7_1==FROM||(LA7_1>=INIT && LA7_1<=RESULT)||(LA7_1>=CONTAINS && LA7_1<=MEMBEROF)||LA7_1==IN||LA7_1==LEFT_SQUARE||LA7_1==THEN) ) {
+                if ( ((LA7_1>=PACKAGE && LA7_1<=GLOBAL)||(LA7_1>=QUERY && LA7_1<=ATTRIBUTES)||LA7_1==ENABLED||LA7_1==SALIENCE||(LA7_1>=DURATION && LA7_1<=DIALECT)||LA7_1==FROM||(LA7_1>=INIT && LA7_1<=RESULT)||(LA7_1>=CONTAINS && LA7_1<=MEMBEROF)||LA7_1==IN||LA7_1==LEFT_SQUARE||(LA7_1>=THEN && LA7_1<=EVENT)) ) {
                     alt7=1;
                 }
             }
             switch (alt7) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:352:19: retType= dotted_name
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:335:19: retType= dotted_name
                     {
-                    pushFollow(FOLLOW_dotted_name_in_function547);
+                    pushFollow(FOLLOW_dotted_name_in_function489);
                     retType=dotted_name();
                     _fsp--;
                     if (failed) return ;
@@ -1070,7 +1004,7 @@
 
             }
 
-            pushFollow(FOLLOW_identifier_in_function552);
+            pushFollow(FOLLOW_identifier_in_function494);
             id=identifier();
             _fsp--;
             if (failed) return ;
@@ -1079,31 +1013,31 @@
               			//System.err.println( "function :: " + n.getText() );
               			type = retType != null ? retType : null;
               			f = factory.createFunction( input.toString(id.start,id.stop), type );
-              			f.setLocation(offset(FUNCTION7.getLine()), FUNCTION7.getCharPositionInLine());
-              	        	f.setStartCharacter( ((CommonToken)FUNCTION7).getStartIndex() );
+              			f.setLocation(offset(FUNCTION6.getLine()), FUNCTION6.getCharPositionInLine());
+              	        	f.setStartCharacter( ((CommonToken)FUNCTION6).getStartIndex() );
               			packageDescr.addFunction( f );
               		
             }
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function561); if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:362:4: ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )?
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function503); if (failed) return ;
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:4: ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )?
             int alt11=2;
             int LA11_0 = input.LA(1);
 
-            if ( ((LA11_0>=PACKAGE && LA11_0<=ID)||LA11_0==GLOBAL||(LA11_0>=QUERY && LA11_0<=ATTRIBUTES)||LA11_0==ENABLED||LA11_0==SALIENCE||(LA11_0>=DURATION && LA11_0<=DIALECT)||LA11_0==FROM||(LA11_0>=INIT && LA11_0<=RESULT)||(LA11_0>=CONTAINS && LA11_0<=MEMBEROF)||LA11_0==IN||LA11_0==THEN) ) {
+            if ( ((LA11_0>=PACKAGE && LA11_0<=ID)||LA11_0==GLOBAL||(LA11_0>=QUERY && LA11_0<=ATTRIBUTES)||LA11_0==ENABLED||LA11_0==SALIENCE||(LA11_0>=DURATION && LA11_0<=DIALECT)||LA11_0==FROM||(LA11_0>=INIT && LA11_0<=RESULT)||(LA11_0>=CONTAINS && LA11_0<=MEMBEROF)||LA11_0==IN||(LA11_0>=THEN && LA11_0<=EVENT)) ) {
                 alt11=1;
             }
             switch (alt11) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:362:6: (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:6: (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )*
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:362:15: (paramType= dotted_name )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:15: (paramType= dotted_name )?
                     int alt8=2;
                     alt8 = dfa8.predict(input);
                     switch (alt8) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:362:15: paramType= dotted_name
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:15: paramType= dotted_name
                             {
-                            pushFollow(FOLLOW_dotted_name_in_function570);
+                            pushFollow(FOLLOW_dotted_name_in_function512);
                             paramType=dotted_name();
                             _fsp--;
                             if (failed) return ;
@@ -1113,7 +1047,7 @@
 
                     }
 
-                    pushFollow(FOLLOW_argument_in_function575);
+                    pushFollow(FOLLOW_argument_in_function517);
                     paramName=argument();
                     _fsp--;
                     if (failed) return ;
@@ -1123,7 +1057,7 @@
                       					f.addParameter( type, paramName );
                       				
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:367:5: ( COMMA (paramType= dotted_name )? paramName= argument )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:350:5: ( COMMA (paramType= dotted_name )? paramName= argument )*
                     loop10:
                     do {
                         int alt10=2;
@@ -1136,17 +1070,17 @@
 
                         switch (alt10) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:367:7: COMMA (paramType= dotted_name )? paramName= argument
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:350:7: COMMA (paramType= dotted_name )? paramName= argument
                     	    {
-                    	    match(input,COMMA,FOLLOW_COMMA_in_function589); if (failed) return ;
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:367:22: (paramType= dotted_name )?
+                    	    match(input,COMMA,FOLLOW_COMMA_in_function531); if (failed) return ;
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:350:22: (paramType= dotted_name )?
                     	    int alt9=2;
                     	    alt9 = dfa9.predict(input);
                     	    switch (alt9) {
                     	        case 1 :
-                    	            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:367:22: paramType= dotted_name
+                    	            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:350:22: paramType= dotted_name
                     	            {
-                    	            pushFollow(FOLLOW_dotted_name_in_function593);
+                    	            pushFollow(FOLLOW_dotted_name_in_function535);
                     	            paramType=dotted_name();
                     	            _fsp--;
                     	            if (failed) return ;
@@ -1156,7 +1090,7 @@
 
                     	    }
 
-                    	    pushFollow(FOLLOW_argument_in_function598);
+                    	    pushFollow(FOLLOW_argument_in_function540);
                     	    paramName=argument();
                     	    _fsp--;
                     	    if (failed) return ;
@@ -1181,8 +1115,8 @@
 
             }
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function622); if (failed) return ;
-            pushFollow(FOLLOW_curly_chunk_in_function628);
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function564); if (failed) return ;
+            pushFollow(FOLLOW_curly_chunk_in_function570);
             body=curly_chunk();
             _fsp--;
             if (failed) return ;
@@ -1210,7 +1144,7 @@
 
 
     // $ANTLR start argument
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:384:1: argument returns [String name] : id= identifier ( '[' ']' )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:367:1: argument returns [String name] : id= identifier ( '[' ']' )* ;
     public final String argument() throws RecognitionException {
         String name = null;
 
@@ -1221,17 +1155,17 @@
         		name = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:388:2: (id= identifier ( '[' ']' )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:388:4: id= identifier ( '[' ']' )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:2: (id= identifier ( '[' ']' )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:4: id= identifier ( '[' ']' )*
             {
-            pushFollow(FOLLOW_identifier_in_argument655);
+            pushFollow(FOLLOW_identifier_in_argument597);
             id=identifier();
             _fsp--;
             if (failed) return name;
             if ( backtracking==0 ) {
                name =input.toString(id.start,id.stop); 
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:388:38: ( '[' ']' )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:38: ( '[' ']' )*
             loop12:
             do {
                 int alt12=2;
@@ -1244,10 +1178,10 @@
 
                 switch (alt12) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:388:40: '[' ']'
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:371:40: '[' ']'
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument661); if (failed) return name;
-            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument663); if (failed) return name;
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument603); if (failed) return name;
+            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument605); if (failed) return name;
             	    if ( backtracking==0 ) {
             	       name += "[]";
             	    }
@@ -1275,9 +1209,9 @@
     // $ANTLR end argument
 
 
-    // $ANTLR start declaration
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:391:1: declaration returns [TypeDeclarationDescr declaration] : DECLARE id= identifier LEFT_CURLY decl_attribute[$declaration] ( COMMA decl_attribute[$declaration] )* RIGHT_CURLY ;
-    public final TypeDeclarationDescr declaration() throws RecognitionException {
+    // $ANTLR start type_declaration
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:374:1: type_declaration returns [TypeDeclarationDescr declaration] : DECLARE id= identifier LEFT_CURLY type_decl_attribute[$declaration] ( COMMA type_decl_attribute[$declaration] )* RIGHT_CURLY ;
+    public final TypeDeclarationDescr type_declaration() throws RecognitionException {
         TypeDeclarationDescr declaration = null;
 
         identifier_return id = null;
@@ -1287,25 +1221,25 @@
                         declaration = new TypeDeclarationDescr();
                 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:395:9: ( DECLARE id= identifier LEFT_CURLY decl_attribute[$declaration] ( COMMA decl_attribute[$declaration] )* RIGHT_CURLY )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:395:11: DECLARE id= identifier LEFT_CURLY decl_attribute[$declaration] ( COMMA decl_attribute[$declaration] )* RIGHT_CURLY
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:378:9: ( DECLARE id= identifier LEFT_CURLY type_decl_attribute[$declaration] ( COMMA type_decl_attribute[$declaration] )* RIGHT_CURLY )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:378:11: DECLARE id= identifier LEFT_CURLY type_decl_attribute[$declaration] ( COMMA type_decl_attribute[$declaration] )* RIGHT_CURLY
             {
-            match(input,DECLARE,FOLLOW_DECLARE_in_declaration703); if (failed) return declaration;
-            pushFollow(FOLLOW_identifier_in_declaration707);
+            match(input,DECLARE,FOLLOW_DECLARE_in_type_declaration645); if (failed) return declaration;
+            pushFollow(FOLLOW_identifier_in_type_declaration649);
             id=identifier();
             _fsp--;
             if (failed) return declaration;
             if ( backtracking==0 ) {
 
-                                          declaration.setIdentifier( input.toString(id.start,id.stop) );
+                                          declaration.setTypeName( input.toString(id.start,id.stop) );
                                       
             }
-            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_declaration752); if (failed) return declaration;
-            pushFollow(FOLLOW_decl_attribute_in_declaration778);
-            decl_attribute(declaration);
+            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_type_declaration694); if (failed) return declaration;
+            pushFollow(FOLLOW_type_decl_attribute_in_type_declaration720);
+            type_decl_attribute(declaration);
             _fsp--;
             if (failed) return declaration;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:400:54: ( COMMA decl_attribute[$declaration] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:383:59: ( COMMA type_decl_attribute[$declaration] )*
             loop13:
             do {
                 int alt13=2;
@@ -1318,11 +1252,11 @@
 
                 switch (alt13) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:400:56: COMMA decl_attribute[$declaration]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:383:61: COMMA type_decl_attribute[$declaration]
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_declaration783); if (failed) return declaration;
-            	    pushFollow(FOLLOW_decl_attribute_in_declaration785);
-            	    decl_attribute(declaration);
+            	    match(input,COMMA,FOLLOW_COMMA_in_type_declaration725); if (failed) return declaration;
+            	    pushFollow(FOLLOW_type_decl_attribute_in_type_declaration727);
+            	    type_decl_attribute(declaration);
             	    _fsp--;
             	    if (failed) return declaration;
 
@@ -1334,7 +1268,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_declaration807); if (failed) return declaration;
+            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_type_declaration749); if (failed) return declaration;
 
             }
 
@@ -1347,12 +1281,12 @@
         }
         return declaration;
     }
-    // $ANTLR end declaration
+    // $ANTLR end type_declaration
 
 
-    // $ANTLR start decl_attribute
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:404:1: decl_attribute[TypeDeclarationDescr declaration] : att= identifier (val= STRING | cl= dotted_name ) ;
-    public final void decl_attribute(TypeDeclarationDescr declaration) throws RecognitionException {
+    // $ANTLR start type_decl_attribute
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:387:1: type_decl_attribute[TypeDeclarationDescr declaration] : att= identifier (val= STRING | cl= dotted_name ) ;
+    public final void type_decl_attribute(TypeDeclarationDescr declaration) throws RecognitionException {
         Token val=null;
         identifier_return att = null;
 
@@ -1360,36 +1294,36 @@
 
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:405:9: (att= identifier (val= STRING | cl= dotted_name ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:405:11: att= identifier (val= STRING | cl= dotted_name )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:388:9: (att= identifier (val= STRING | cl= dotted_name ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:388:11: att= identifier (val= STRING | cl= dotted_name )
             {
-            pushFollow(FOLLOW_identifier_in_decl_attribute843);
+            pushFollow(FOLLOW_identifier_in_type_decl_attribute785);
             att=identifier();
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:406:17: (val= STRING | cl= dotted_name )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:389:17: (val= STRING | cl= dotted_name )
             int alt14=2;
             int LA14_0 = input.LA(1);
 
             if ( (LA14_0==STRING) ) {
                 alt14=1;
             }
-            else if ( ((LA14_0>=PACKAGE && LA14_0<=ID)||LA14_0==GLOBAL||(LA14_0>=QUERY && LA14_0<=ATTRIBUTES)||LA14_0==ENABLED||LA14_0==SALIENCE||(LA14_0>=DURATION && LA14_0<=DIALECT)||LA14_0==FROM||(LA14_0>=INIT && LA14_0<=RESULT)||(LA14_0>=CONTAINS && LA14_0<=MEMBEROF)||LA14_0==IN||LA14_0==THEN) ) {
+            else if ( ((LA14_0>=PACKAGE && LA14_0<=ID)||LA14_0==GLOBAL||(LA14_0>=QUERY && LA14_0<=ATTRIBUTES)||LA14_0==ENABLED||LA14_0==SALIENCE||(LA14_0>=DURATION && LA14_0<=DIALECT)||LA14_0==FROM||(LA14_0>=INIT && LA14_0<=RESULT)||(LA14_0>=CONTAINS && LA14_0<=MEMBEROF)||LA14_0==IN||(LA14_0>=THEN && LA14_0<=EVENT)) ) {
                 alt14=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("406:17: (val= STRING | cl= dotted_name )", 14, 0, input);
+                    new NoViableAltException("389:17: (val= STRING | cl= dotted_name )", 14, 0, input);
 
                 throw nvae;
             }
             switch (alt14) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:406:19: val= STRING
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:389:19: val= STRING
                     {
                     val=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_decl_attribute866); if (failed) return ;
+                    match(input,STRING,FOLLOW_STRING_in_type_decl_attribute808); if (failed) return ;
                     if ( backtracking==0 ) {
 
                                           declaration.addAttribute( input.toString(att.start,att.stop), getString( val.getText() ) );
@@ -1399,9 +1333,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:410:19: cl= dotted_name
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:19: cl= dotted_name
                     {
-                    pushFollow(FOLLOW_dotted_name_in_decl_attribute907);
+                    pushFollow(FOLLOW_dotted_name_in_type_decl_attribute849);
                     cl=dotted_name();
                     _fsp--;
                     if (failed) return ;
@@ -1428,17 +1362,17 @@
         }
         return ;
     }
-    // $ANTLR end decl_attribute
+    // $ANTLR end type_decl_attribute
 
 
     // $ANTLR start query
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:417:1: query returns [QueryDescr query] : QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:400:1: query returns [QueryDescr query] : QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon ;
     public final QueryDescr query() throws RecognitionException {
         QueryDescr query = null;
 
         Token paramName=null;
-        Token QUERY8=null;
-        Token END9=null;
+        Token QUERY7=null;
+        Token END8=null;
         name_return queryName = null;
 
         qualified_id_return paramType = null;
@@ -1452,34 +1386,34 @@
          
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:425:2: ( QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:426:3: QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:408:2: ( QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:409:3: QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon
             {
-            QUERY8=(Token)input.LT(1);
-            match(input,QUERY,FOLLOW_QUERY_in_query980); if (failed) return query;
-            pushFollow(FOLLOW_name_in_query984);
+            QUERY7=(Token)input.LT(1);
+            match(input,QUERY,FOLLOW_QUERY_in_query922); if (failed) return query;
+            pushFollow(FOLLOW_name_in_query926);
             queryName=name();
             _fsp--;
             if (failed) return query;
             if ( backtracking==0 ) {
                
               			query = factory.createQuery( queryName.name ); 
-              			query.setLocation( offset(QUERY8.getLine()), QUERY8.getCharPositionInLine() );
-              			query.setStartCharacter( ((CommonToken)QUERY8).getStartIndex() );
+              			query.setLocation( offset(QUERY7.getLine()), QUERY7.getCharPositionInLine() );
+              			query.setStartCharacter( ((CommonToken)QUERY7).getStartIndex() );
               			lhs = new AndDescr(); query.setLhs( lhs ); 
-              			lhs.setLocation( offset(QUERY8.getLine()), QUERY8.getCharPositionInLine() );
+              			lhs.setLocation( offset(QUERY7.getLine()), QUERY7.getCharPositionInLine() );
                                       location.setType( Location.LOCATION_RULE_HEADER );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:435:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:418:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?
             int alt19=2;
             alt19 = dfa19.predict(input);
             switch (alt19) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:435:5: LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:418:5: LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_query994); if (failed) return query;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:436:11: ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )?
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_query936); if (failed) return query;
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:419:11: ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )?
                     int alt18=2;
                     int LA18_0 = input.LA(1);
 
@@ -1488,15 +1422,15 @@
                     }
                     switch (alt18) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:436:13: ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )*
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:419:13: ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )*
                             {
                             if ( backtracking==0 ) {
                                params = new ArrayList(); types = new ArrayList();
                             }
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:438:15: ( (paramType= qualified_id )? paramName= ID )
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:438:16: (paramType= qualified_id )? paramName= ID
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:421:15: ( (paramType= qualified_id )? paramName= ID )
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:421:16: (paramType= qualified_id )? paramName= ID
                             {
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:438:25: (paramType= qualified_id )?
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:421:25: (paramType= qualified_id )?
                             int alt15=2;
                             int LA15_0 = input.LA(1);
 
@@ -1509,9 +1443,9 @@
                             }
                             switch (alt15) {
                                 case 1 :
-                                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:438:25: paramType= qualified_id
+                                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:421:25: paramType= qualified_id
                                     {
-                                    pushFollow(FOLLOW_qualified_id_in_query1029);
+                                    pushFollow(FOLLOW_qualified_id_in_query971);
                                     paramType=qualified_id();
                                     _fsp--;
                                     if (failed) return query;
@@ -1522,14 +1456,14 @@
                             }
 
                             paramName=(Token)input.LT(1);
-                            match(input,ID,FOLLOW_ID_in_query1034); if (failed) return query;
+                            match(input,ID,FOLLOW_ID_in_query976); if (failed) return query;
                             if ( backtracking==0 ) {
                                params.add( paramName.getText() ); String type = (paramType != null) ? paramType.text : "Object"; types.add( type ); 
                             }
 
                             }
 
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:439:15: ( COMMA (paramType= qualified_id )? paramName= ID )*
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:422:15: ( COMMA (paramType= qualified_id )? paramName= ID )*
                             loop17:
                             do {
                                 int alt17=2;
@@ -1542,10 +1476,10 @@
 
                                 switch (alt17) {
                             	case 1 :
-                            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:439:16: COMMA (paramType= qualified_id )? paramName= ID
+                            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:422:16: COMMA (paramType= qualified_id )? paramName= ID
                             	    {
-                            	    match(input,COMMA,FOLLOW_COMMA_in_query1055); if (failed) return query;
-                            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:439:31: (paramType= qualified_id )?
+                            	    match(input,COMMA,FOLLOW_COMMA_in_query997); if (failed) return query;
+                            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:422:31: (paramType= qualified_id )?
                             	    int alt16=2;
                             	    int LA16_0 = input.LA(1);
 
@@ -1558,9 +1492,9 @@
                             	    }
                             	    switch (alt16) {
                             	        case 1 :
-                            	            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:439:31: paramType= qualified_id
+                            	            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:422:31: paramType= qualified_id
                             	            {
-                            	            pushFollow(FOLLOW_qualified_id_in_query1059);
+                            	            pushFollow(FOLLOW_qualified_id_in_query1001);
                             	            paramType=qualified_id();
                             	            _fsp--;
                             	            if (failed) return query;
@@ -1571,7 +1505,7 @@
                             	    }
 
                             	    paramName=(Token)input.LT(1);
-                            	    match(input,ID,FOLLOW_ID_in_query1064); if (failed) return query;
+                            	    match(input,ID,FOLLOW_ID_in_query1006); if (failed) return query;
                             	    if ( backtracking==0 ) {
                             	       params.add( paramName.getText() );  String type = (paramType != null) ? paramType.text : "Object"; types.add( type );  
                             	    }
@@ -1595,7 +1529,7 @@
 
                     }
 
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_query1114); if (failed) return query;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_query1056); if (failed) return query;
 
                     }
                     break;
@@ -1607,19 +1541,19 @@
                                       location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
               	        
             }
-            pushFollow(FOLLOW_normal_lhs_block_in_query1143);
+            pushFollow(FOLLOW_normal_lhs_block_in_query1085);
             normal_lhs_block(lhs);
             _fsp--;
             if (failed) return query;
-            END9=(Token)input.LT(1);
-            match(input,END,FOLLOW_END_in_query1148); if (failed) return query;
-            pushFollow(FOLLOW_opt_semicolon_in_query1150);
+            END8=(Token)input.LT(1);
+            match(input,END,FOLLOW_END_in_query1090); if (failed) return query;
+            pushFollow(FOLLOW_opt_semicolon_in_query1092);
             opt_semicolon();
             _fsp--;
             if (failed) return query;
             if ( backtracking==0 ) {
 
-              			query.setEndCharacter( ((CommonToken)END9).getStopIndex() );
+              			query.setEndCharacter( ((CommonToken)END8).getStopIndex() );
               		
             }
 
@@ -1638,12 +1572,12 @@
 
 
     // $ANTLR start template
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:457:1: template returns [FactTemplateDescr template] : TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:440:1: template returns [FactTemplateDescr template] : TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon ;
     public final FactTemplateDescr template() throws RecognitionException {
         FactTemplateDescr template = null;
 
-        Token TEMPLATE10=null;
-        Token END11=null;
+        Token TEMPLATE9=null;
+        Token END10=null;
         name_return templateName = null;
 
         FieldTemplateDescr slot = null;
@@ -1653,27 +1587,27 @@
         		template = null;		
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:461:2: ( TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:462:3: TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:444:2: ( TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:445:3: TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon
             {
-            TEMPLATE10=(Token)input.LT(1);
-            match(input,TEMPLATE,FOLLOW_TEMPLATE_in_template1178); if (failed) return template;
-            pushFollow(FOLLOW_name_in_template1182);
+            TEMPLATE9=(Token)input.LT(1);
+            match(input,TEMPLATE,FOLLOW_TEMPLATE_in_template1120); if (failed) return template;
+            pushFollow(FOLLOW_name_in_template1124);
             templateName=name();
             _fsp--;
             if (failed) return template;
-            pushFollow(FOLLOW_opt_semicolon_in_template1184);
+            pushFollow(FOLLOW_opt_semicolon_in_template1126);
             opt_semicolon();
             _fsp--;
             if (failed) return template;
             if ( backtracking==0 ) {
 
               			template = new FactTemplateDescr(templateName.name);
-              			template.setLocation( offset(TEMPLATE10.getLine()), TEMPLATE10.getCharPositionInLine() );			
-              			template.setStartCharacter( ((CommonToken)TEMPLATE10).getStartIndex() );
+              			template.setLocation( offset(TEMPLATE9.getLine()), TEMPLATE9.getCharPositionInLine() );			
+              			template.setStartCharacter( ((CommonToken)TEMPLATE9).getStartIndex() );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:468:3: (slot= template_slot )+
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:451:3: (slot= template_slot )+
             int cnt20=0;
             loop20:
             do {
@@ -1687,9 +1621,9 @@
 
                 switch (alt20) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:469:4: slot= template_slot
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:452:4: slot= template_slot
             	    {
-            	    pushFollow(FOLLOW_template_slot_in_template1199);
+            	    pushFollow(FOLLOW_template_slot_in_template1141);
             	    slot=template_slot();
             	    _fsp--;
             	    if (failed) return template;
@@ -1712,15 +1646,15 @@
                 cnt20++;
             } while (true);
 
-            END11=(Token)input.LT(1);
-            match(input,END,FOLLOW_END_in_template1214); if (failed) return template;
-            pushFollow(FOLLOW_opt_semicolon_in_template1216);
+            END10=(Token)input.LT(1);
+            match(input,END,FOLLOW_END_in_template1156); if (failed) return template;
+            pushFollow(FOLLOW_opt_semicolon_in_template1158);
             opt_semicolon();
             _fsp--;
             if (failed) return template;
             if ( backtracking==0 ) {
 
-              			template.setEndCharacter( ((CommonToken)END11).getStopIndex() );
+              			template.setEndCharacter( ((CommonToken)END10).getStopIndex() );
               		
             }
 
@@ -1739,7 +1673,7 @@
 
 
     // $ANTLR start template_slot
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:480:1: template_slot returns [FieldTemplateDescr field] : fieldType= qualified_id id= identifier opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:463:1: template_slot returns [FieldTemplateDescr field] : fieldType= qualified_id id= identifier opt_semicolon ;
     public final FieldTemplateDescr template_slot() throws RecognitionException {
         FieldTemplateDescr field = null;
 
@@ -1752,15 +1686,15 @@
         		field = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:484:2: (fieldType= qualified_id id= identifier opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:485:11: fieldType= qualified_id id= identifier opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:467:2: (fieldType= qualified_id id= identifier opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:468:11: fieldType= qualified_id id= identifier opt_semicolon
             {
             if ( backtracking==0 ) {
 
               			field = factory.createFieldTemplate();
               	         
             }
-            pushFollow(FOLLOW_qualified_id_in_template_slot1262);
+            pushFollow(FOLLOW_qualified_id_in_template_slot1204);
             fieldType=qualified_id();
             _fsp--;
             if (failed) return field;
@@ -1771,11 +1705,11 @@
               			field.setEndCharacter( ((CommonToken)((Token)fieldType.stop)).getStopIndex() );
               		 
             }
-            pushFollow(FOLLOW_identifier_in_template_slot1278);
+            pushFollow(FOLLOW_identifier_in_template_slot1220);
             id=identifier();
             _fsp--;
             if (failed) return field;
-            pushFollow(FOLLOW_opt_semicolon_in_template_slot1280);
+            pushFollow(FOLLOW_opt_semicolon_in_template_slot1222);
             opt_semicolon();
             _fsp--;
             if (failed) return field;
@@ -1802,12 +1736,12 @@
 
 
     // $ANTLR start rule
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:503:1: rule returns [RuleDescr rule] : RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:486:1: rule returns [RuleDescr rule] : RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] ;
     public final RuleDescr rule() throws RecognitionException {
         RuleDescr rule = null;
 
-        Token RULE12=null;
-        Token WHEN13=null;
+        Token RULE11=null;
+        Token WHEN12=null;
         name_return ruleName = null;
 
 
@@ -1816,12 +1750,12 @@
         		AndDescr lhs = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:508:2: ( RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:509:3: RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule]
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:491:2: ( RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:492:3: RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule]
             {
-            RULE12=(Token)input.LT(1);
-            match(input,RULE,FOLLOW_RULE_in_rule1311); if (failed) return rule;
-            pushFollow(FOLLOW_name_in_rule1315);
+            RULE11=(Token)input.LT(1);
+            match(input,RULE,FOLLOW_RULE_in_rule1253); if (failed) return rule;
+            pushFollow(FOLLOW_name_in_rule1257);
             ruleName=name();
             _fsp--;
             if (failed) return rule;
@@ -1830,13 +1764,13 @@
               			location.setType( Location.LOCATION_RULE_HEADER );
               			debug( "start rule: " + ruleName.name );
               			rule = new RuleDescr( ruleName.name, null ); 
-              			rule.setLocation( offset(RULE12.getLine()), RULE12.getCharPositionInLine() );
-              			rule.setStartCharacter( ((CommonToken)RULE12).getStartIndex() );
+              			rule.setLocation( offset(RULE11.getLine()), RULE11.getCharPositionInLine() );
+              			rule.setStartCharacter( ((CommonToken)RULE11).getStartIndex() );
               			lhs = new AndDescr(); 
               			rule.setLhs( lhs ); 
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:519:3: ( rule_attributes[$rule] )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:502:3: ( rule_attributes[$rule] )?
             int alt21=2;
             int LA21_0 = input.LA(1);
 
@@ -1845,9 +1779,9 @@
             }
             switch (alt21) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:519:3: rule_attributes[$rule]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:502:3: rule_attributes[$rule]
                     {
-                    pushFollow(FOLLOW_rule_attributes_in_rule1324);
+                    pushFollow(FOLLOW_rule_attributes_in_rule1266);
                     rule_attributes(rule);
                     _fsp--;
                     if (failed) return rule;
@@ -1857,7 +1791,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:520:3: ( WHEN ( ':' )? normal_lhs_block[lhs] )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:503:3: ( WHEN ( ':' )? normal_lhs_block[lhs] )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
@@ -1866,11 +1800,11 @@
             }
             switch (alt23) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:4: WHEN ( ':' )? normal_lhs_block[lhs]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:504:4: WHEN ( ':' )? normal_lhs_block[lhs]
                     {
-                    WHEN13=(Token)input.LT(1);
-                    match(input,WHEN,FOLLOW_WHEN_in_rule1336); if (failed) return rule;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:9: ( ':' )?
+                    WHEN12=(Token)input.LT(1);
+                    match(input,WHEN,FOLLOW_WHEN_in_rule1278); if (failed) return rule;
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:504:9: ( ':' )?
                     int alt22=2;
                     int LA22_0 = input.LA(1);
 
@@ -1879,9 +1813,9 @@
                     }
                     switch (alt22) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:9: ':'
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:504:9: ':'
                             {
-                            match(input,78,FOLLOW_78_in_rule1338); if (failed) return rule;
+                            match(input,78,FOLLOW_78_in_rule1280); if (failed) return rule;
 
                             }
                             break;
@@ -1891,11 +1825,11 @@
                     if ( backtracking==0 ) {
                        
                       				this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-                      				lhs.setLocation( offset(WHEN13.getLine()), WHEN13.getCharPositionInLine() );
-                      				lhs.setStartCharacter( ((CommonToken)WHEN13).getStartIndex() );
+                      				lhs.setLocation( offset(WHEN12.getLine()), WHEN12.getCharPositionInLine() );
+                      				lhs.setStartCharacter( ((CommonToken)WHEN12).getStartIndex() );
                       			
                     }
-                    pushFollow(FOLLOW_normal_lhs_block_in_rule1349);
+                    pushFollow(FOLLOW_normal_lhs_block_in_rule1291);
                     normal_lhs_block(lhs);
                     _fsp--;
                     if (failed) return rule;
@@ -1905,7 +1839,7 @@
 
             }
 
-            pushFollow(FOLLOW_rhs_chunk_in_rule1359);
+            pushFollow(FOLLOW_rhs_chunk_in_rule1301);
             rhs_chunk(rule);
             _fsp--;
             if (failed) return rule;
@@ -1925,16 +1859,16 @@
 
 
     // $ANTLR start rule_attributes
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:534:1: rule_attributes[RuleDescr rule] : ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:517:1: rule_attributes[RuleDescr rule] : ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* ;
     public final void rule_attributes(RuleDescr rule) throws RecognitionException {
         AttributeDescr attr = null;
 
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:535:2: ( ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:2: ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:518:2: ( ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:519:2: ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )*
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:2: ( ATTRIBUTES ':' )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:519:2: ( ATTRIBUTES ':' )?
             int alt24=2;
             int LA24_0 = input.LA(1);
 
@@ -1943,24 +1877,24 @@
             }
             switch (alt24) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:4: ATTRIBUTES ':'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:519:4: ATTRIBUTES ':'
                     {
-                    match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_rule_attributes1379); if (failed) return ;
-                    match(input,78,FOLLOW_78_in_rule_attributes1381); if (failed) return ;
+                    match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_rule_attributes1321); if (failed) return ;
+                    match(input,78,FOLLOW_78_in_rule_attributes1323); if (failed) return ;
 
                     }
                     break;
 
             }
 
-            pushFollow(FOLLOW_rule_attribute_in_rule_attributes1389);
+            pushFollow(FOLLOW_rule_attribute_in_rule_attributes1331);
             attr=rule_attribute();
             _fsp--;
             if (failed) return ;
             if ( backtracking==0 ) {
                rule.addAttribute( attr ); 
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:538:2: ( ( ',' )? attr= rule_attribute )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:2: ( ( ',' )? attr= rule_attribute )*
             loop26:
             do {
                 int alt26=2;
@@ -1973,9 +1907,9 @@
 
                 switch (alt26) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:538:4: ( ',' )? attr= rule_attribute
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:4: ( ',' )? attr= rule_attribute
             	    {
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:538:4: ( ',' )?
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:4: ( ',' )?
             	    int alt25=2;
             	    int LA25_0 = input.LA(1);
 
@@ -1984,16 +1918,16 @@
             	    }
             	    switch (alt25) {
             	        case 1 :
-            	            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:538:4: ','
+            	            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:521:4: ','
             	            {
-            	            match(input,COMMA,FOLLOW_COMMA_in_rule_attributes1396); if (failed) return ;
+            	            match(input,COMMA,FOLLOW_COMMA_in_rule_attributes1338); if (failed) return ;
 
             	            }
             	            break;
 
             	    }
 
-            	    pushFollow(FOLLOW_rule_attribute_in_rule_attributes1401);
+            	    pushFollow(FOLLOW_rule_attribute_in_rule_attributes1343);
             	    attr=rule_attribute();
             	    _fsp--;
             	    if (failed) return ;
@@ -2025,7 +1959,7 @@
 
 
     // $ANTLR start rule_attribute
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:543:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:526:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );
     public final AttributeDescr rule_attribute() throws RecognitionException {
         AttributeDescr attr = null;
 
@@ -2036,7 +1970,7 @@
         		attr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:550:2: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:533:2: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect )
             int alt27=12;
             switch ( input.LA(1) ) {
             case SALIENCE:
@@ -2102,16 +2036,16 @@
             default:
                 if (backtracking>0) {failed=true; return attr;}
                 NoViableAltException nvae =
-                    new NoViableAltException("543:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );", 27, 0, input);
+                    new NoViableAltException("526:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );", 27, 0, input);
 
                 throw nvae;
             }
 
             switch (alt27) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:550:4: a= salience
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:533:4: a= salience
                     {
-                    pushFollow(FOLLOW_salience_in_rule_attribute1438);
+                    pushFollow(FOLLOW_salience_in_rule_attribute1380);
                     a=salience();
                     _fsp--;
                     if (failed) return attr;
@@ -2119,9 +2053,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:551:4: a= no_loop
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:534:4: a= no_loop
                     {
-                    pushFollow(FOLLOW_no_loop_in_rule_attribute1446);
+                    pushFollow(FOLLOW_no_loop_in_rule_attribute1388);
                     a=no_loop();
                     _fsp--;
                     if (failed) return attr;
@@ -2129,9 +2063,9 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:552:4: a= agenda_group
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:535:4: a= agenda_group
                     {
-                    pushFollow(FOLLOW_agenda_group_in_rule_attribute1455);
+                    pushFollow(FOLLOW_agenda_group_in_rule_attribute1397);
                     a=agenda_group();
                     _fsp--;
                     if (failed) return attr;
@@ -2139,9 +2073,9 @@
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:553:4: a= duration
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:4: a= duration
                     {
-                    pushFollow(FOLLOW_duration_in_rule_attribute1464);
+                    pushFollow(FOLLOW_duration_in_rule_attribute1406);
                     a=duration();
                     _fsp--;
                     if (failed) return attr;
@@ -2149,9 +2083,9 @@
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:4: a= activation_group
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:537:4: a= activation_group
                     {
-                    pushFollow(FOLLOW_activation_group_in_rule_attribute1473);
+                    pushFollow(FOLLOW_activation_group_in_rule_attribute1415);
                     a=activation_group();
                     _fsp--;
                     if (failed) return attr;
@@ -2159,9 +2093,9 @@
                     }
                     break;
                 case 6 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:555:4: a= auto_focus
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:538:4: a= auto_focus
                     {
-                    pushFollow(FOLLOW_auto_focus_in_rule_attribute1481);
+                    pushFollow(FOLLOW_auto_focus_in_rule_attribute1423);
                     a=auto_focus();
                     _fsp--;
                     if (failed) return attr;
@@ -2169,9 +2103,9 @@
                     }
                     break;
                 case 7 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:556:4: a= date_effective
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:539:4: a= date_effective
                     {
-                    pushFollow(FOLLOW_date_effective_in_rule_attribute1489);
+                    pushFollow(FOLLOW_date_effective_in_rule_attribute1431);
                     a=date_effective();
                     _fsp--;
                     if (failed) return attr;
@@ -2179,9 +2113,9 @@
                     }
                     break;
                 case 8 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:557:4: a= date_expires
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:540:4: a= date_expires
                     {
-                    pushFollow(FOLLOW_date_expires_in_rule_attribute1497);
+                    pushFollow(FOLLOW_date_expires_in_rule_attribute1439);
                     a=date_expires();
                     _fsp--;
                     if (failed) return attr;
@@ -2189,9 +2123,9 @@
                     }
                     break;
                 case 9 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:558:4: a= enabled
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:541:4: a= enabled
                     {
-                    pushFollow(FOLLOW_enabled_in_rule_attribute1505);
+                    pushFollow(FOLLOW_enabled_in_rule_attribute1447);
                     a=enabled();
                     _fsp--;
                     if (failed) return attr;
@@ -2199,9 +2133,9 @@
                     }
                     break;
                 case 10 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:559:4: a= ruleflow_group
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:542:4: a= ruleflow_group
                     {
-                    pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1513);
+                    pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1455);
                     a=ruleflow_group();
                     _fsp--;
                     if (failed) return attr;
@@ -2209,9 +2143,9 @@
                     }
                     break;
                 case 11 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:560:4: a= lock_on_active
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:543:4: a= lock_on_active
                     {
-                    pushFollow(FOLLOW_lock_on_active_in_rule_attribute1521);
+                    pushFollow(FOLLOW_lock_on_active_in_rule_attribute1463);
                     a=lock_on_active();
                     _fsp--;
                     if (failed) return attr;
@@ -2219,9 +2153,9 @@
                     }
                     break;
                 case 12 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:561:4: a= dialect
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:544:4: a= dialect
                     {
-                    pushFollow(FOLLOW_dialect_in_rule_attribute1528);
+                    pushFollow(FOLLOW_dialect_in_rule_attribute1470);
                     a=dialect();
                     _fsp--;
                     if (failed) return attr;
@@ -2248,30 +2182,30 @@
 
 
     // $ANTLR start date_effective
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:564:1: date_effective returns [AttributeDescr descr] : DATE_EFFECTIVE STRING ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:547:1: date_effective returns [AttributeDescr descr] : DATE_EFFECTIVE STRING ;
     public final AttributeDescr date_effective() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token STRING14=null;
-        Token DATE_EFFECTIVE15=null;
+        Token STRING13=null;
+        Token DATE_EFFECTIVE14=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:568:2: ( DATE_EFFECTIVE STRING )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:569:3: DATE_EFFECTIVE STRING
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:551:2: ( DATE_EFFECTIVE STRING )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:552:3: DATE_EFFECTIVE STRING
             {
-            DATE_EFFECTIVE15=(Token)input.LT(1);
-            match(input,DATE_EFFECTIVE,FOLLOW_DATE_EFFECTIVE_in_date_effective1554); if (failed) return descr;
-            STRING14=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_date_effective1556); if (failed) return descr;
+            DATE_EFFECTIVE14=(Token)input.LT(1);
+            match(input,DATE_EFFECTIVE,FOLLOW_DATE_EFFECTIVE_in_date_effective1496); if (failed) return descr;
+            STRING13=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_date_effective1498); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              			descr = new AttributeDescr( "date-effective", getString( STRING14.getText() ) );
-              			descr.setLocation( offset( DATE_EFFECTIVE15.getLine() ), DATE_EFFECTIVE15.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)DATE_EFFECTIVE15).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)STRING14).getStopIndex() );
+              			descr = new AttributeDescr( "date-effective", getString( STRING13.getText() ) );
+              			descr.setLocation( offset( DATE_EFFECTIVE14.getLine() ), DATE_EFFECTIVE14.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)DATE_EFFECTIVE14).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)STRING13).getStopIndex() );
               		
             }
 
@@ -2290,30 +2224,30 @@
 
 
     // $ANTLR start date_expires
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:579:1: date_expires returns [AttributeDescr descr] : DATE_EXPIRES STRING ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:562:1: date_expires returns [AttributeDescr descr] : DATE_EXPIRES STRING ;
     public final AttributeDescr date_expires() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token STRING16=null;
-        Token DATE_EXPIRES17=null;
+        Token STRING15=null;
+        Token DATE_EXPIRES16=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:583:2: ( DATE_EXPIRES STRING )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:583:4: DATE_EXPIRES STRING
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:566:2: ( DATE_EXPIRES STRING )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:566:4: DATE_EXPIRES STRING
             {
-            DATE_EXPIRES17=(Token)input.LT(1);
-            match(input,DATE_EXPIRES,FOLLOW_DATE_EXPIRES_in_date_expires1585); if (failed) return descr;
-            STRING16=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_date_expires1587); if (failed) return descr;
+            DATE_EXPIRES16=(Token)input.LT(1);
+            match(input,DATE_EXPIRES,FOLLOW_DATE_EXPIRES_in_date_expires1527); if (failed) return descr;
+            STRING15=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_date_expires1529); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              			descr = new AttributeDescr( "date-expires", getString( STRING16.getText() ) );
-              			descr.setLocation( offset(DATE_EXPIRES17.getLine()), DATE_EXPIRES17.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)DATE_EXPIRES17).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)STRING16).getStopIndex() );
+              			descr = new AttributeDescr( "date-expires", getString( STRING15.getText() ) );
+              			descr.setLocation( offset(DATE_EXPIRES16.getLine()), DATE_EXPIRES16.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)DATE_EXPIRES16).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)STRING15).getStopIndex() );
               		
             }
 
@@ -2332,30 +2266,30 @@
 
 
     // $ANTLR start enabled
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:592:1: enabled returns [AttributeDescr descr] : ENABLED BOOL ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:575:1: enabled returns [AttributeDescr descr] : ENABLED BOOL ;
     public final AttributeDescr enabled() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token BOOL18=null;
-        Token ENABLED19=null;
+        Token BOOL17=null;
+        Token ENABLED18=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:596:2: ( ENABLED BOOL )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:596:5: ENABLED BOOL
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:579:2: ( ENABLED BOOL )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:579:5: ENABLED BOOL
             {
-            ENABLED19=(Token)input.LT(1);
-            match(input,ENABLED,FOLLOW_ENABLED_in_enabled1616); if (failed) return descr;
-            BOOL18=(Token)input.LT(1);
-            match(input,BOOL,FOLLOW_BOOL_in_enabled1618); if (failed) return descr;
+            ENABLED18=(Token)input.LT(1);
+            match(input,ENABLED,FOLLOW_ENABLED_in_enabled1558); if (failed) return descr;
+            BOOL17=(Token)input.LT(1);
+            match(input,BOOL,FOLLOW_BOOL_in_enabled1560); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              				descr = new AttributeDescr( "enabled", BOOL18.getText() );
-              				descr.setLocation( offset(ENABLED19.getLine()), ENABLED19.getCharPositionInLine() );
-              				descr.setStartCharacter( ((CommonToken)ENABLED19).getStartIndex() );
-              				descr.setEndCharacter( ((CommonToken)BOOL18).getStopIndex() );
+              				descr = new AttributeDescr( "enabled", BOOL17.getText() );
+              				descr.setLocation( offset(ENABLED18.getLine()), ENABLED18.getCharPositionInLine() );
+              				descr.setStartCharacter( ((CommonToken)ENABLED18).getStartIndex() );
+              				descr.setEndCharacter( ((CommonToken)BOOL17).getStopIndex() );
               			
             }
 
@@ -2374,12 +2308,12 @@
 
 
     // $ANTLR start salience
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:605:1: salience returns [AttributeDescr descr] : SALIENCE ( INT | txt= paren_chunk ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:588:1: salience returns [AttributeDescr descr] : SALIENCE ( INT | txt= paren_chunk ) ;
     public final AttributeDescr salience() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token SALIENCE20=null;
-        Token INT21=null;
+        Token SALIENCE19=null;
+        Token INT20=null;
         paren_chunk_return txt = null;
 
 
@@ -2387,19 +2321,19 @@
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:609:2: ( SALIENCE ( INT | txt= paren_chunk ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:610:3: SALIENCE ( INT | txt= paren_chunk )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:592:2: ( SALIENCE ( INT | txt= paren_chunk ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:593:3: SALIENCE ( INT | txt= paren_chunk )
             {
-            SALIENCE20=(Token)input.LT(1);
-            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience1651); if (failed) return descr;
+            SALIENCE19=(Token)input.LT(1);
+            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience1593); if (failed) return descr;
             if ( backtracking==0 ) {
 
               			descr = new AttributeDescr( "salience" );
-              			descr.setLocation( offset(SALIENCE20.getLine()), SALIENCE20.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)SALIENCE20).getStartIndex() );
+              			descr.setLocation( offset(SALIENCE19.getLine()), SALIENCE19.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)SALIENCE19).getStartIndex() );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:616:3: ( INT | txt= paren_chunk )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:599:3: ( INT | txt= paren_chunk )
             int alt28=2;
             int LA28_0 = input.LA(1);
 
@@ -2412,29 +2346,29 @@
             else {
                 if (backtracking>0) {failed=true; return descr;}
                 NoViableAltException nvae =
-                    new NoViableAltException("616:3: ( INT | txt= paren_chunk )", 28, 0, input);
+                    new NoViableAltException("599:3: ( INT | txt= paren_chunk )", 28, 0, input);
 
                 throw nvae;
             }
             switch (alt28) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:616:5: INT
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:599:5: INT
                     {
-                    INT21=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_salience1662); if (failed) return descr;
+                    INT20=(Token)input.LT(1);
+                    match(input,INT,FOLLOW_INT_in_salience1604); if (failed) return descr;
                     if ( backtracking==0 ) {
 
-                      			descr.setValue( INT21.getText() );
-                      			descr.setEndCharacter( ((CommonToken)INT21).getStopIndex() );
+                      			descr.setValue( INT20.getText() );
+                      			descr.setEndCharacter( ((CommonToken)INT20).getStopIndex() );
                       		
                     }
 
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:621:5: txt= paren_chunk
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:604:5: txt= paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_salience1677);
+                    pushFollow(FOLLOW_paren_chunk_in_salience1619);
                     txt=paren_chunk();
                     _fsp--;
                     if (failed) return descr;
@@ -2466,31 +2400,31 @@
 
 
     // $ANTLR start no_loop
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:629:1: no_loop returns [AttributeDescr descr] : NO_LOOP ( BOOL )? ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:612:1: no_loop returns [AttributeDescr descr] : NO_LOOP ( BOOL )? ;
     public final AttributeDescr no_loop() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token NO_LOOP22=null;
-        Token BOOL23=null;
+        Token NO_LOOP21=null;
+        Token BOOL22=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:633:2: ( NO_LOOP ( BOOL )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:633:4: NO_LOOP ( BOOL )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:616:2: ( NO_LOOP ( BOOL )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:616:4: NO_LOOP ( BOOL )?
             {
-            NO_LOOP22=(Token)input.LT(1);
-            match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1707); if (failed) return descr;
+            NO_LOOP21=(Token)input.LT(1);
+            match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1649); if (failed) return descr;
             if ( backtracking==0 ) {
 
               			descr = new AttributeDescr( "no-loop", "true" );
-              			descr.setLocation( offset(NO_LOOP22.getLine()), NO_LOOP22.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)NO_LOOP22).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)NO_LOOP22).getStopIndex() );
+              			descr.setLocation( offset(NO_LOOP21.getLine()), NO_LOOP21.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)NO_LOOP21).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)NO_LOOP21).getStopIndex() );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:640:3: ( BOOL )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:3: ( BOOL )?
             int alt29=2;
             int LA29_0 = input.LA(1);
 
@@ -2499,14 +2433,14 @@
             }
             switch (alt29) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:640:5: BOOL
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:5: BOOL
                     {
-                    BOOL23=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_no_loop1720); if (failed) return descr;
+                    BOOL22=(Token)input.LT(1);
+                    match(input,BOOL,FOLLOW_BOOL_in_no_loop1662); if (failed) return descr;
                     if ( backtracking==0 ) {
 
-                      				descr.setValue( BOOL23.getText() );
-                      				descr.setEndCharacter( ((CommonToken)BOOL23).getStopIndex() );
+                      				descr.setValue( BOOL22.getText() );
+                      				descr.setEndCharacter( ((CommonToken)BOOL22).getStopIndex() );
                       			
                     }
 
@@ -2531,31 +2465,31 @@
 
 
     // $ANTLR start auto_focus
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:648:1: auto_focus returns [AttributeDescr descr] : AUTO_FOCUS ( BOOL )? ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:631:1: auto_focus returns [AttributeDescr descr] : AUTO_FOCUS ( BOOL )? ;
     public final AttributeDescr auto_focus() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token AUTO_FOCUS24=null;
-        Token BOOL25=null;
+        Token AUTO_FOCUS23=null;
+        Token BOOL24=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:652:2: ( AUTO_FOCUS ( BOOL )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:652:4: AUTO_FOCUS ( BOOL )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:635:2: ( AUTO_FOCUS ( BOOL )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:635:4: AUTO_FOCUS ( BOOL )?
             {
-            AUTO_FOCUS24=(Token)input.LT(1);
-            match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1755); if (failed) return descr;
+            AUTO_FOCUS23=(Token)input.LT(1);
+            match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1697); if (failed) return descr;
             if ( backtracking==0 ) {
 
               			descr = new AttributeDescr( "auto-focus", "true" );
-              			descr.setLocation( offset(AUTO_FOCUS24.getLine()), AUTO_FOCUS24.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)AUTO_FOCUS24).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)AUTO_FOCUS24).getStopIndex() );
+              			descr.setLocation( offset(AUTO_FOCUS23.getLine()), AUTO_FOCUS23.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)AUTO_FOCUS23).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)AUTO_FOCUS23).getStopIndex() );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:659:3: ( BOOL )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:3: ( BOOL )?
             int alt30=2;
             int LA30_0 = input.LA(1);
 
@@ -2564,14 +2498,14 @@
             }
             switch (alt30) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:659:5: BOOL
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:5: BOOL
                     {
-                    BOOL25=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_auto_focus1768); if (failed) return descr;
+                    BOOL24=(Token)input.LT(1);
+                    match(input,BOOL,FOLLOW_BOOL_in_auto_focus1710); if (failed) return descr;
                     if ( backtracking==0 ) {
 
-                      				descr.setValue( BOOL25.getText() );
-                      				descr.setEndCharacter( ((CommonToken)BOOL25).getStopIndex() );
+                      				descr.setValue( BOOL24.getText() );
+                      				descr.setEndCharacter( ((CommonToken)BOOL24).getStopIndex() );
                       			
                     }
 
@@ -2596,30 +2530,30 @@
 
 
     // $ANTLR start activation_group
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:667:1: activation_group returns [AttributeDescr descr] : ACTIVATION_GROUP STRING ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:650:1: activation_group returns [AttributeDescr descr] : ACTIVATION_GROUP STRING ;
     public final AttributeDescr activation_group() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token STRING26=null;
-        Token ACTIVATION_GROUP27=null;
+        Token STRING25=null;
+        Token ACTIVATION_GROUP26=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:671:2: ( ACTIVATION_GROUP STRING )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:671:4: ACTIVATION_GROUP STRING
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:654:2: ( ACTIVATION_GROUP STRING )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:654:4: ACTIVATION_GROUP STRING
             {
-            ACTIVATION_GROUP27=(Token)input.LT(1);
-            match(input,ACTIVATION_GROUP,FOLLOW_ACTIVATION_GROUP_in_activation_group1804); if (failed) return descr;
-            STRING26=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_activation_group1806); if (failed) return descr;
+            ACTIVATION_GROUP26=(Token)input.LT(1);
+            match(input,ACTIVATION_GROUP,FOLLOW_ACTIVATION_GROUP_in_activation_group1746); if (failed) return descr;
+            STRING25=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_activation_group1748); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              			descr = new AttributeDescr( "activation-group", getString( STRING26.getText() ) );
-              			descr.setLocation( offset(ACTIVATION_GROUP27.getLine()), ACTIVATION_GROUP27.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)ACTIVATION_GROUP27).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)STRING26).getStopIndex() );
+              			descr = new AttributeDescr( "activation-group", getString( STRING25.getText() ) );
+              			descr.setLocation( offset(ACTIVATION_GROUP26.getLine()), ACTIVATION_GROUP26.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)ACTIVATION_GROUP26).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)STRING25).getStopIndex() );
               		
             }
 
@@ -2638,30 +2572,30 @@
 
 
     // $ANTLR start ruleflow_group
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:680:1: ruleflow_group returns [AttributeDescr descr] : RULEFLOW_GROUP STRING ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:663:1: ruleflow_group returns [AttributeDescr descr] : RULEFLOW_GROUP STRING ;
     public final AttributeDescr ruleflow_group() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token STRING28=null;
-        Token RULEFLOW_GROUP29=null;
+        Token STRING27=null;
+        Token RULEFLOW_GROUP28=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:684:2: ( RULEFLOW_GROUP STRING )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:684:4: RULEFLOW_GROUP STRING
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:667:2: ( RULEFLOW_GROUP STRING )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:667:4: RULEFLOW_GROUP STRING
             {
-            RULEFLOW_GROUP29=(Token)input.LT(1);
-            match(input,RULEFLOW_GROUP,FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1834); if (failed) return descr;
-            STRING28=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_ruleflow_group1836); if (failed) return descr;
+            RULEFLOW_GROUP28=(Token)input.LT(1);
+            match(input,RULEFLOW_GROUP,FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1776); if (failed) return descr;
+            STRING27=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_ruleflow_group1778); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              			descr = new AttributeDescr( "ruleflow-group", getString( STRING28.getText() ) );
-              			descr.setLocation( offset(RULEFLOW_GROUP29.getLine()), RULEFLOW_GROUP29.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)RULEFLOW_GROUP29).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)STRING28).getStopIndex() );
+              			descr = new AttributeDescr( "ruleflow-group", getString( STRING27.getText() ) );
+              			descr.setLocation( offset(RULEFLOW_GROUP28.getLine()), RULEFLOW_GROUP28.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)RULEFLOW_GROUP28).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)STRING27).getStopIndex() );
               		
             }
 
@@ -2680,30 +2614,30 @@
 
 
     // $ANTLR start agenda_group
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:1: agenda_group returns [AttributeDescr descr] : AGENDA_GROUP STRING ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:676:1: agenda_group returns [AttributeDescr descr] : AGENDA_GROUP STRING ;
     public final AttributeDescr agenda_group() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token STRING30=null;
-        Token AGENDA_GROUP31=null;
+        Token STRING29=null;
+        Token AGENDA_GROUP30=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:697:2: ( AGENDA_GROUP STRING )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:697:4: AGENDA_GROUP STRING
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:680:2: ( AGENDA_GROUP STRING )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:680:4: AGENDA_GROUP STRING
             {
-            AGENDA_GROUP31=(Token)input.LT(1);
-            match(input,AGENDA_GROUP,FOLLOW_AGENDA_GROUP_in_agenda_group1864); if (failed) return descr;
-            STRING30=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_agenda_group1866); if (failed) return descr;
+            AGENDA_GROUP30=(Token)input.LT(1);
+            match(input,AGENDA_GROUP,FOLLOW_AGENDA_GROUP_in_agenda_group1806); if (failed) return descr;
+            STRING29=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_agenda_group1808); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              			descr = new AttributeDescr( "agenda-group", getString( STRING30.getText() ) );
-              			descr.setLocation( offset(AGENDA_GROUP31.getLine()), AGENDA_GROUP31.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)AGENDA_GROUP31).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)STRING30).getStopIndex() );
+              			descr = new AttributeDescr( "agenda-group", getString( STRING29.getText() ) );
+              			descr.setLocation( offset(AGENDA_GROUP30.getLine()), AGENDA_GROUP30.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)AGENDA_GROUP30).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)STRING29).getStopIndex() );
               		
             }
 
@@ -2722,30 +2656,30 @@
 
 
     // $ANTLR start duration
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:1: duration returns [AttributeDescr descr] : DURATION INT ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:689:1: duration returns [AttributeDescr descr] : DURATION INT ;
     public final AttributeDescr duration() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token INT32=null;
-        Token DURATION33=null;
+        Token INT31=null;
+        Token DURATION32=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:710:2: ( DURATION INT )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:710:4: DURATION INT
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:2: ( DURATION INT )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:693:4: DURATION INT
             {
-            DURATION33=(Token)input.LT(1);
-            match(input,DURATION,FOLLOW_DURATION_in_duration1894); if (failed) return descr;
-            INT32=(Token)input.LT(1);
-            match(input,INT,FOLLOW_INT_in_duration1896); if (failed) return descr;
+            DURATION32=(Token)input.LT(1);
+            match(input,DURATION,FOLLOW_DURATION_in_duration1836); if (failed) return descr;
+            INT31=(Token)input.LT(1);
+            match(input,INT,FOLLOW_INT_in_duration1838); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              			descr = new AttributeDescr( "duration", INT32.getText() );
-              			descr.setLocation( offset(DURATION33.getLine()), DURATION33.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)DURATION33).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)INT32).getStopIndex() );
+              			descr = new AttributeDescr( "duration", INT31.getText() );
+              			descr.setLocation( offset(DURATION32.getLine()), DURATION32.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)DURATION32).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)INT31).getStopIndex() );
               		
             }
 
@@ -2764,30 +2698,30 @@
 
 
     // $ANTLR start dialect
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:1: dialect returns [AttributeDescr descr] : DIALECT STRING ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:702:1: dialect returns [AttributeDescr descr] : DIALECT STRING ;
     public final AttributeDescr dialect() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token STRING34=null;
-        Token DIALECT35=null;
+        Token STRING33=null;
+        Token DIALECT34=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:723:2: ( DIALECT STRING )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:723:4: DIALECT STRING
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:2: ( DIALECT STRING )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:706:4: DIALECT STRING
             {
-            DIALECT35=(Token)input.LT(1);
-            match(input,DIALECT,FOLLOW_DIALECT_in_dialect1924); if (failed) return descr;
-            STRING34=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_dialect1926); if (failed) return descr;
+            DIALECT34=(Token)input.LT(1);
+            match(input,DIALECT,FOLLOW_DIALECT_in_dialect1866); if (failed) return descr;
+            STRING33=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_dialect1868); if (failed) return descr;
             if ( backtracking==0 ) {
 
-              			descr = new AttributeDescr( "dialect", getString( STRING34.getText() ) );
-              			descr.setLocation( offset(DIALECT35.getLine()), DIALECT35.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)DIALECT35).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)STRING34).getStopIndex() );
+              			descr = new AttributeDescr( "dialect", getString( STRING33.getText() ) );
+              			descr.setLocation( offset(DIALECT34.getLine()), DIALECT34.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)DIALECT34).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)STRING33).getStopIndex() );
               		
             }
 
@@ -2806,31 +2740,31 @@
 
 
     // $ANTLR start lock_on_active
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:732:1: lock_on_active returns [AttributeDescr descr] : LOCK_ON_ACTIVE ( BOOL )? ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:715:1: lock_on_active returns [AttributeDescr descr] : LOCK_ON_ACTIVE ( BOOL )? ;
     public final AttributeDescr lock_on_active() throws RecognitionException {
         AttributeDescr descr = null;
 
-        Token LOCK_ON_ACTIVE36=null;
-        Token BOOL37=null;
+        Token LOCK_ON_ACTIVE35=null;
+        Token BOOL36=null;
 
 
         		descr = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:736:2: ( LOCK_ON_ACTIVE ( BOOL )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:736:4: LOCK_ON_ACTIVE ( BOOL )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:2: ( LOCK_ON_ACTIVE ( BOOL )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:719:4: LOCK_ON_ACTIVE ( BOOL )?
             {
-            LOCK_ON_ACTIVE36=(Token)input.LT(1);
-            match(input,LOCK_ON_ACTIVE,FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1958); if (failed) return descr;
+            LOCK_ON_ACTIVE35=(Token)input.LT(1);
+            match(input,LOCK_ON_ACTIVE,FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1900); if (failed) return descr;
             if ( backtracking==0 ) {
 
               			descr = new AttributeDescr( "lock-on-active", "true" );
-              			descr.setLocation( offset(LOCK_ON_ACTIVE36.getLine()), LOCK_ON_ACTIVE36.getCharPositionInLine() );
-              			descr.setStartCharacter( ((CommonToken)LOCK_ON_ACTIVE36).getStartIndex() );
-              			descr.setEndCharacter( ((CommonToken)LOCK_ON_ACTIVE36).getStopIndex() );
+              			descr.setLocation( offset(LOCK_ON_ACTIVE35.getLine()), LOCK_ON_ACTIVE35.getCharPositionInLine() );
+              			descr.setStartCharacter( ((CommonToken)LOCK_ON_ACTIVE35).getStartIndex() );
+              			descr.setEndCharacter( ((CommonToken)LOCK_ON_ACTIVE35).getStopIndex() );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:743:3: ( BOOL )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:3: ( BOOL )?
             int alt31=2;
             int LA31_0 = input.LA(1);
 
@@ -2839,14 +2773,14 @@
             }
             switch (alt31) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:743:5: BOOL
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:5: BOOL
                     {
-                    BOOL37=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_lock_on_active1971); if (failed) return descr;
+                    BOOL36=(Token)input.LT(1);
+                    match(input,BOOL,FOLLOW_BOOL_in_lock_on_active1913); if (failed) return descr;
                     if ( backtracking==0 ) {
 
-                      				descr.setValue( BOOL37.getText() );
-                      				descr.setEndCharacter( ((CommonToken)BOOL37).getStopIndex() );
+                      				descr.setValue( BOOL36.getText() );
+                      				descr.setEndCharacter( ((CommonToken)BOOL36).getStopIndex() );
                       			
                     }
 
@@ -2871,7 +2805,7 @@
 
 
     // $ANTLR start normal_lhs_block
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:751:1: normal_lhs_block[AndDescr descr] : (d= lhs[$descr] )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:734:1: normal_lhs_block[AndDescr descr] : (d= lhs[$descr] )* ;
     public final void normal_lhs_block(AndDescr descr) throws RecognitionException {
         BaseDescr d = null;
 
@@ -2880,10 +2814,10 @@
         		location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:755:2: ( (d= lhs[$descr] )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:756:3: (d= lhs[$descr] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:738:2: ( (d= lhs[$descr] )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:3: (d= lhs[$descr] )*
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:756:3: (d= lhs[$descr] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:3: (d= lhs[$descr] )*
             loop32:
             do {
                 int alt32=2;
@@ -2896,9 +2830,9 @@
 
                 switch (alt32) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:756:5: d= lhs[$descr]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:5: d= lhs[$descr]
             	    {
-            	    pushFollow(FOLLOW_lhs_in_normal_lhs_block2010);
+            	    pushFollow(FOLLOW_lhs_in_normal_lhs_block1952);
             	    d=lhs(descr);
             	    _fsp--;
             	    if (failed) return ;
@@ -2930,7 +2864,7 @@
 
 
     // $ANTLR start lhs
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:1: lhs[ConditionalElementDescr ce] returns [BaseDescr d] : l= lhs_or ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:1: lhs[ConditionalElementDescr ce] returns [BaseDescr d] : l= lhs_or ;
     public final BaseDescr lhs(ConditionalElementDescr ce) throws RecognitionException {
         BaseDescr d = null;
 
@@ -2941,10 +2875,10 @@
         		d =null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:766:2: (l= lhs_or )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:766:4: l= lhs_or
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:749:2: (l= lhs_or )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:749:4: l= lhs_or
             {
-            pushFollow(FOLLOW_lhs_or_in_lhs2047);
+            pushFollow(FOLLOW_lhs_or_in_lhs1989);
             l=lhs_or();
             _fsp--;
             if (failed) return d;
@@ -2967,7 +2901,7 @@
 
 
     // $ANTLR start lhs_or
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:770:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:753:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );
     public final BaseDescr lhs_or() throws RecognitionException {
         BaseDescr d = null;
 
@@ -2983,23 +2917,23 @@
         		OrDescr or = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:775:2: ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:758:2: ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* )
             int alt35=2;
             int LA35_0 = input.LA(1);
 
             if ( (LA35_0==LEFT_PAREN) ) {
                 int LA35_1 = input.LA(2);
 
-                if ( (LA35_1==ID||LA35_1==LEFT_PAREN||LA35_1==AND||(LA35_1>=EXISTS && LA35_1<=FORALL)) ) {
-                    alt35=2;
-                }
-                else if ( (LA35_1==OR) ) {
+                if ( (LA35_1==OR) ) {
                     alt35=1;
                 }
+                else if ( (LA35_1==ID||LA35_1==LEFT_PAREN||LA35_1==AND||(LA35_1>=EXISTS && LA35_1<=FORALL)) ) {
+                    alt35=2;
+                }
                 else {
                     if (backtracking>0) {failed=true; return d;}
                     NoViableAltException nvae =
-                        new NoViableAltException("770:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 35, 1, input);
+                        new NoViableAltException("753:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 35, 1, input);
 
                     throw nvae;
                 }
@@ -3010,16 +2944,16 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("770:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 35, 0, input);
+                    new NoViableAltException("753:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 35, 0, input);
 
                 throw nvae;
             }
             switch (alt35) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:775:4: LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:758:4: LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_or2072); if (failed) return d;
-                    match(input,OR,FOLLOW_OR_in_lhs_or2074); if (failed) return d;
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_or2014); if (failed) return d;
+                    match(input,OR,FOLLOW_OR_in_lhs_or2016); if (failed) return d;
                     if ( backtracking==0 ) {
 
                       			or = new OrDescr();
@@ -3027,7 +2961,7 @@
                       			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
                       		
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:781:3: (lhsand= lhs_and )+
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:764:3: (lhsand= lhs_and )+
                     int cnt33=0;
                     loop33:
                     do {
@@ -3041,9 +2975,9 @@
 
                         switch (alt33) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:781:5: lhsand= lhs_and
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:764:5: lhsand= lhs_and
                     	    {
-                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2087);
+                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2029);
                     	    lhsand=lhs_and();
                     	    _fsp--;
                     	    if (failed) return d;
@@ -3066,21 +3000,21 @@
                         cnt33++;
                     } while (true);
 
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_or2098); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_or2040); if (failed) return d;
 
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:787:10: left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:770:10: left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
                     {
-                    pushFollow(FOLLOW_lhs_and_in_lhs_or2116);
+                    pushFollow(FOLLOW_lhs_and_in_lhs_or2058);
                     left=lhs_and();
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
                        d = left; 
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:788:3: ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:771:3: ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
                     loop34:
                     do {
                         int alt34=2;
@@ -3093,7 +3027,7 @@
 
                         switch (alt34) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:788:5: ( OR | DOUBLE_PIPE ) right= lhs_and
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:771:5: ( OR | DOUBLE_PIPE ) right= lhs_and
                     	    {
                     	    if ( (input.LA(1)>=OR && input.LA(1)<=DOUBLE_PIPE) ) {
                     	        input.consume();
@@ -3103,7 +3037,7 @@
                     	        if (backtracking>0) {failed=true; return d;}
                     	        MismatchedSetException mse =
                     	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or2124);    throw mse;
+                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or2066);    throw mse;
                     	    }
 
                     	    if ( backtracking==0 ) {
@@ -3111,7 +3045,7 @@
                     	      				location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
                     	      			
                     	    }
-                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2140);
+                    	    pushFollow(FOLLOW_lhs_and_in_lhs_or2082);
                     	    right=lhs_and();
                     	    _fsp--;
                     	    if (failed) return d;
@@ -3153,7 +3087,7 @@
 
 
     // $ANTLR start lhs_and
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:805:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:788:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );
     public final BaseDescr lhs_and() throws RecognitionException {
         BaseDescr d = null;
 
@@ -3169,7 +3103,7 @@
         		AndDescr and = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:2: ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:793:2: ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* )
             int alt38=2;
             int LA38_0 = input.LA(1);
 
@@ -3185,7 +3119,7 @@
                 else {
                     if (backtracking>0) {failed=true; return d;}
                     NoViableAltException nvae =
-                        new NoViableAltException("805:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 38, 1, input);
+                        new NoViableAltException("788:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 38, 1, input);
 
                     throw nvae;
                 }
@@ -3196,16 +3130,16 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("805:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 38, 0, input);
+                    new NoViableAltException("788:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 38, 0, input);
 
                 throw nvae;
             }
             switch (alt38) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:810:4: LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:793:4: LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and2171); if (failed) return d;
-                    match(input,AND,FOLLOW_AND_in_lhs_and2173); if (failed) return d;
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and2113); if (failed) return d;
+                    match(input,AND,FOLLOW_AND_in_lhs_and2115); if (failed) return d;
                     if ( backtracking==0 ) {
 
                       			and = new AndDescr();
@@ -3213,7 +3147,7 @@
                       			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
                       		
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:816:3: (lhsunary= lhs_unary )+
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:799:3: (lhsunary= lhs_unary )+
                     int cnt36=0;
                     loop36:
                     do {
@@ -3227,9 +3161,9 @@
 
                         switch (alt36) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:816:4: lhsunary= lhs_unary
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:799:4: lhsunary= lhs_unary
                     	    {
-                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2185);
+                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2127);
                     	    lhsunary=lhs_unary();
                     	    _fsp--;
                     	    if (failed) return d;
@@ -3252,21 +3186,21 @@
                         cnt36++;
                     } while (true);
 
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and2195); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and2137); if (failed) return d;
 
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:822:10: left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:805:10: left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
                     {
-                    pushFollow(FOLLOW_lhs_unary_in_lhs_and2213);
+                    pushFollow(FOLLOW_lhs_unary_in_lhs_and2155);
                     left=lhs_unary();
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
                        d = left; 
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:3: ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:3: ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
                     loop37:
                     do {
                         int alt37=2;
@@ -3279,7 +3213,7 @@
 
                         switch (alt37) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:5: ( AND | DOUBLE_AMPER ) right= lhs_unary
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:5: ( AND | DOUBLE_AMPER ) right= lhs_unary
                     	    {
                     	    if ( (input.LA(1)>=AND && input.LA(1)<=DOUBLE_AMPER) ) {
                     	        input.consume();
@@ -3289,7 +3223,7 @@
                     	        if (backtracking>0) {failed=true; return d;}
                     	        MismatchedSetException mse =
                     	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and2221);    throw mse;
+                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and2163);    throw mse;
                     	    }
 
                     	    if ( backtracking==0 ) {
@@ -3297,7 +3231,7 @@
                     	      				location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
                     	      			
                     	    }
-                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2237);
+                    	    pushFollow(FOLLOW_lhs_unary_in_lhs_and2179);
                     	    right=lhs_unary();
                     	    _fsp--;
                     	    if (failed) return d;
@@ -3339,7 +3273,7 @@
 
 
     // $ANTLR start lhs_unary
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:840:1: lhs_unary returns [BaseDescr d] : ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:1: lhs_unary returns [BaseDescr d] : ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon ;
     public final BaseDescr lhs_unary() throws RecognitionException {
         BaseDescr d = null;
 
@@ -3352,10 +3286,10 @@
         		d = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:2: ( ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:2: ( ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )
             int alt39=6;
             int LA39_0 = input.LA(1);
 
@@ -3380,15 +3314,15 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("844:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )", 39, 0, input);
+                    new NoViableAltException("827:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )", 39, 0, input);
 
                 throw nvae;
             }
             switch (alt39) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:6: ( EXISTS )=>u= lhs_exist
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:6: ( EXISTS )=>u= lhs_exist
                     {
-                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary2282);
+                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary2224);
                     u=lhs_exist();
                     _fsp--;
                     if (failed) return d;
@@ -3399,9 +3333,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:845:5: ( NOT )=>u= lhs_not
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:828:5: ( NOT )=>u= lhs_not
                     {
-                    pushFollow(FOLLOW_lhs_not_in_lhs_unary2300);
+                    pushFollow(FOLLOW_lhs_not_in_lhs_unary2242);
                     u=lhs_not();
                     _fsp--;
                     if (failed) return d;
@@ -3412,9 +3346,9 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:5: ( EVAL )=>u= lhs_eval
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:829:5: ( EVAL )=>u= lhs_eval
                     {
-                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary2319);
+                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary2261);
                     u=lhs_eval();
                     _fsp--;
                     if (failed) return d;
@@ -3425,9 +3359,9 @@
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:847:5: ( FORALL )=>u= lhs_forall
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:830:5: ( FORALL )=>u= lhs_forall
                     {
-                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary2338);
+                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary2280);
                     u=lhs_forall();
                     _fsp--;
                     if (failed) return d;
@@ -3438,14 +3372,14 @@
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:848:5: ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:5: ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary2355); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_unary2359);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary2297); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_unary2301);
                     u=lhs_or();
                     _fsp--;
                     if (failed) return d;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary2361); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary2303); if (failed) return d;
                     if ( backtracking==0 ) {
                        d = u; 
                     }
@@ -3453,9 +3387,9 @@
                     }
                     break;
                 case 6 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:849:5: ps= pattern_source
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:5: ps= pattern_source
                     {
-                    pushFollow(FOLLOW_pattern_source_in_lhs_unary2372);
+                    pushFollow(FOLLOW_pattern_source_in_lhs_unary2314);
                     ps=pattern_source();
                     _fsp--;
                     if (failed) return d;
@@ -3468,7 +3402,7 @@
 
             }
 
-            pushFollow(FOLLOW_opt_semicolon_in_lhs_unary2384);
+            pushFollow(FOLLOW_opt_semicolon_in_lhs_unary2326);
             opt_semicolon();
             _fsp--;
             if (failed) return d;
@@ -3488,7 +3422,7 @@
 
 
     // $ANTLR start pattern_source
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:854:1: pattern_source returns [BaseDescr d] : u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:837:1: pattern_source returns [BaseDescr d] : u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? ;
     public final BaseDescr pattern_source() throws RecognitionException {
         BaseDescr d = null;
 
@@ -3507,17 +3441,17 @@
         		d = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:858:2: (u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:859:3: u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:841:2: (u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:842:3: u= lhs_pattern ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
             {
-            pushFollow(FOLLOW_lhs_pattern_in_pattern_source2411);
+            pushFollow(FOLLOW_lhs_pattern_in_pattern_source2353);
             u=lhs_pattern();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
                d = u; 
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:860:3: ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:3: ( ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement ) | FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
             int alt41=3;
             int LA41_0 = input.LA(1);
 
@@ -3527,19 +3461,19 @@
                 if ( (LA41_1==ENTRY_POINT) && (synpred6())) {
                     alt41=1;
                 }
-                else if ( ((LA41_1>=PACKAGE && LA41_1<=ID)||LA41_1==GLOBAL||(LA41_1>=QUERY && LA41_1<=ATTRIBUTES)||LA41_1==ENABLED||LA41_1==SALIENCE||(LA41_1>=DURATION && LA41_1<=DIALECT)||LA41_1==FROM||(LA41_1>=ACCUMULATE && LA41_1<=COLLECT)||(LA41_1>=CONTAINS && LA41_1<=MEMBEROF)||LA41_1==IN||LA41_1==THEN) ) {
+                else if ( ((LA41_1>=PACKAGE && LA41_1<=ID)||LA41_1==GLOBAL||(LA41_1>=QUERY && LA41_1<=ATTRIBUTES)||LA41_1==ENABLED||LA41_1==SALIENCE||(LA41_1>=DURATION && LA41_1<=DIALECT)||LA41_1==FROM||(LA41_1>=ACCUMULATE && LA41_1<=COLLECT)||(LA41_1>=CONTAINS && LA41_1<=MEMBEROF)||LA41_1==IN||(LA41_1>=THEN && LA41_1<=EVENT)) ) {
                     alt41=2;
                 }
             }
             switch (alt41) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:863:11: ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:11: ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:863:11: ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:863:13: ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:11: ( ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:13: ( FROM ENTRY_POINT )=> FROM ep= entrypoint_statement
                     {
-                    match(input,FROM,FOLLOW_FROM_in_pattern_source2462); if (failed) return d;
-                    pushFollow(FOLLOW_entrypoint_statement_in_pattern_source2466);
+                    match(input,FROM,FOLLOW_FROM_in_pattern_source2404); if (failed) return d;
+                    pushFollow(FOLLOW_entrypoint_statement_in_pattern_source2408);
                     ep=entrypoint_statement();
                     _fsp--;
                     if (failed) return d;
@@ -3553,16 +3487,16 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:865:4: FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:848:4: FROM ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
                     {
-                    match(input,FROM,FOLLOW_FROM_in_pattern_source2486); if (failed) return d;
+                    match(input,FROM,FOLLOW_FROM_in_pattern_source2428); if (failed) return d;
                     if ( backtracking==0 ) {
 
                       				location.setType(Location.LOCATION_LHS_FROM);
                       				location.setProperty(Location.LOCATION_FROM_CONTENT, "");
                       		        
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:870:11: ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:853:11: ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
                     int alt40=3;
                     switch ( input.LA(1) ) {
                     case ACCUMULATE:
@@ -3578,7 +3512,6 @@
                     case PACKAGE:
                     case IMPORT:
                     case FUNCTION:
-                    case EVENT:
                     case ID:
                     case GLOBAL:
                     case QUERY:
@@ -3603,6 +3536,7 @@
                     case MEMBEROF:
                     case IN:
                     case THEN:
+                    case EVENT:
                         {
                         alt40=3;
                         }
@@ -3610,19 +3544,19 @@
                     default:
                         if (backtracking>0) {failed=true; return d;}
                         NoViableAltException nvae =
-                            new NoViableAltException("870:11: ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )", 40, 0, input);
+                            new NoViableAltException("853:11: ( options {k=1; backtrack=true; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )", 40, 0, input);
 
                         throw nvae;
                     }
 
                     switch (alt40) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:13: (ac= accumulate_statement )
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:854:13: (ac= accumulate_statement )
                             {
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:13: (ac= accumulate_statement )
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:871:15: ac= accumulate_statement
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:854:13: (ac= accumulate_statement )
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:854:15: ac= accumulate_statement
                             {
-                            pushFollow(FOLLOW_accumulate_statement_in_pattern_source2544);
+                            pushFollow(FOLLOW_accumulate_statement_in_pattern_source2486);
                             ac=accumulate_statement();
                             _fsp--;
                             if (failed) return d;
@@ -3636,12 +3570,12 @@
                             }
                             break;
                         case 2 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:872:15: (cs= collect_statement )
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:15: (cs= collect_statement )
                             {
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:872:15: (cs= collect_statement )
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:872:17: cs= collect_statement
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:15: (cs= collect_statement )
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:855:17: cs= collect_statement
                             {
-                            pushFollow(FOLLOW_collect_statement_in_pattern_source2567);
+                            pushFollow(FOLLOW_collect_statement_in_pattern_source2509);
                             cs=collect_statement();
                             _fsp--;
                             if (failed) return d;
@@ -3655,12 +3589,12 @@
                             }
                             break;
                         case 3 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:874:15: (fm= from_statement )
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:857:15: (fm= from_statement )
                             {
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:874:15: (fm= from_statement )
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:874:17: fm= from_statement
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:857:15: (fm= from_statement )
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:857:17: fm= from_statement
                             {
-                            pushFollow(FOLLOW_from_statement_in_pattern_source2604);
+                            pushFollow(FOLLOW_from_statement_in_pattern_source2546);
                             fm=from_statement();
                             _fsp--;
                             if (failed) return d;
@@ -3698,12 +3632,12 @@
 
 
     // $ANTLR start lhs_exist
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:879:1: lhs_exist returns [BaseDescr d] : EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:862:1: lhs_exist returns [BaseDescr d] : EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
     public final BaseDescr lhs_exist() throws RecognitionException {
         BaseDescr d = null;
 
-        Token EXISTS38=null;
-        Token RIGHT_PAREN39=null;
+        Token EXISTS37=null;
+        Token RIGHT_PAREN38=null;
         BaseDescr or = null;
 
         BaseDescr pattern = null;
@@ -3713,20 +3647,20 @@
         		d = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:883:2: ( EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:883:4: EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:2: ( EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:866:4: EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
             {
-            EXISTS38=(Token)input.LT(1);
-            match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist2647); if (failed) return d;
+            EXISTS37=(Token)input.LT(1);
+            match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist2589); if (failed) return d;
             if ( backtracking==0 ) {
 
               			d = new ExistsDescr( ); 
-              			d.setLocation( offset(EXISTS38.getLine()), EXISTS38.getCharPositionInLine() );
-              			d.setStartCharacter( ((CommonToken)EXISTS38).getStartIndex() );
+              			d.setLocation( offset(EXISTS37.getLine()), EXISTS37.getCharPositionInLine() );
+              			d.setStartCharacter( ((CommonToken)EXISTS37).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:890:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:873:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
             int alt42=2;
             int LA42_0 = input.LA(1);
 
@@ -3739,29 +3673,29 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("890:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 42, 0, input);
+                    new NoViableAltException("873:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 42, 0, input);
 
                 throw nvae;
             }
             switch (alt42) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:890:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:873:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:890:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:890:14: LEFT_PAREN or= lhs_or RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:873:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:873:14: LEFT_PAREN or= lhs_or RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist2667); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_exist2671);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist2609); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_exist2613);
                     or=lhs_or();
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
                        if ( or != null ) ((ExistsDescr)d).addDescr( or ); 
                     }
-                    RIGHT_PAREN39=(Token)input.LT(1);
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist2701); if (failed) return d;
+                    RIGHT_PAREN38=(Token)input.LT(1);
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist2643); if (failed) return d;
                     if ( backtracking==0 ) {
-                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN39).getStopIndex() ); 
+                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN38).getStopIndex() ); 
                     }
 
                     }
@@ -3770,9 +3704,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:895:12: pattern= lhs_pattern
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:878:12: pattern= lhs_pattern
                     {
-                    pushFollow(FOLLOW_lhs_pattern_in_lhs_exist2751);
+                    pushFollow(FOLLOW_lhs_pattern_in_lhs_exist2693);
                     pattern=lhs_pattern();
                     _fsp--;
                     if (failed) return d;
@@ -3806,12 +3740,12 @@
 
 
     // $ANTLR start lhs_not
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:905:1: lhs_not returns [NotDescr d] : NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:888:1: lhs_not returns [NotDescr d] : NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
     public final NotDescr lhs_not() throws RecognitionException {
         NotDescr d = null;
 
-        Token NOT40=null;
-        Token RIGHT_PAREN41=null;
+        Token NOT39=null;
+        Token RIGHT_PAREN40=null;
         BaseDescr or = null;
 
         BaseDescr pattern = null;
@@ -3821,20 +3755,20 @@
         		d = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:909:2: ( NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:909:4: NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:892:2: ( NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:892:4: NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
             {
-            NOT40=(Token)input.LT(1);
-            match(input,NOT,FOLLOW_NOT_in_lhs_not2803); if (failed) return d;
+            NOT39=(Token)input.LT(1);
+            match(input,NOT,FOLLOW_NOT_in_lhs_not2745); if (failed) return d;
             if ( backtracking==0 ) {
 
               			d = new NotDescr( ); 
-              			d.setLocation( offset(NOT40.getLine()), NOT40.getCharPositionInLine() );
-              			d.setStartCharacter( ((CommonToken)NOT40).getStartIndex() );
+              			d.setLocation( offset(NOT39.getLine()), NOT39.getCharPositionInLine() );
+              			d.setStartCharacter( ((CommonToken)NOT39).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:916:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
             int alt43=2;
             int LA43_0 = input.LA(1);
 
@@ -3847,29 +3781,29 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("916:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 43, 0, input);
+                    new NoViableAltException("899:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 43, 0, input);
 
                 throw nvae;
             }
             switch (alt43) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:916:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:916:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:916:7: LEFT_PAREN or= lhs_or RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:899:7: LEFT_PAREN or= lhs_or RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not2816); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_not2820);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not2758); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_not2762);
                     or=lhs_or();
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
                        if ( or != null ) d.addDescr( or ); 
                     }
-                    RIGHT_PAREN41=(Token)input.LT(1);
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not2851); if (failed) return d;
+                    RIGHT_PAREN40=(Token)input.LT(1);
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not2793); if (failed) return d;
                     if ( backtracking==0 ) {
-                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN41).getStopIndex() ); 
+                       d.setEndCharacter( ((CommonToken)RIGHT_PAREN40).getStopIndex() ); 
                     }
 
                     }
@@ -3878,9 +3812,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:922:3: pattern= lhs_pattern
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:905:3: pattern= lhs_pattern
                     {
-                    pushFollow(FOLLOW_lhs_pattern_in_lhs_not2888);
+                    pushFollow(FOLLOW_lhs_pattern_in_lhs_not2830);
                     pattern=lhs_pattern();
                     _fsp--;
                     if (failed) return d;
@@ -3914,11 +3848,11 @@
 
 
     // $ANTLR start lhs_eval
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:932:1: lhs_eval returns [BaseDescr d] : EVAL c= paren_chunk ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:915:1: lhs_eval returns [BaseDescr d] : EVAL c= paren_chunk ;
     public final BaseDescr lhs_eval() throws RecognitionException {
         BaseDescr d = null;
 
-        Token EVAL42=null;
+        Token EVAL41=null;
         paren_chunk_return c = null;
 
 
@@ -3926,27 +3860,27 @@
         		d = new EvalDescr( );
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:936:2: ( EVAL c= paren_chunk )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:937:3: EVAL c= paren_chunk
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:919:2: ( EVAL c= paren_chunk )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:920:3: EVAL c= paren_chunk
             {
-            EVAL42=(Token)input.LT(1);
-            match(input,EVAL,FOLLOW_EVAL_in_lhs_eval2934); if (failed) return d;
+            EVAL41=(Token)input.LT(1);
+            match(input,EVAL,FOLLOW_EVAL_in_lhs_eval2876); if (failed) return d;
             if ( backtracking==0 ) {
 
               			location.setType( Location.LOCATION_LHS_INSIDE_EVAL );
               		
             }
-            pushFollow(FOLLOW_paren_chunk_in_lhs_eval2945);
+            pushFollow(FOLLOW_paren_chunk_in_lhs_eval2887);
             c=paren_chunk();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
                
-              			d.setStartCharacter( ((CommonToken)EVAL42).getStartIndex() );
+              			d.setStartCharacter( ((CommonToken)EVAL41).getStartIndex() );
               		        if( input.toString(c.start,c.stop) != null ) {
               	  		    this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
               		            String body = safeSubstring( input.toString(c.start,c.stop), 1, input.toString(c.start,c.stop).length()-1 );
-              			    checkTrailingSemicolon( body, offset(EVAL42.getLine()) );
+              			    checkTrailingSemicolon( body, offset(EVAL41.getLine()) );
               			    ((EvalDescr) d).setContent( body );
               			    location.setProperty(Location.LOCATION_EVAL_CONTENT, body);
               			}
@@ -3971,12 +3905,12 @@
 
 
     // $ANTLR start lhs_forall
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:957:1: lhs_forall returns [ForallDescr d] : FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:940:1: lhs_forall returns [ForallDescr d] : FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN ;
     public final ForallDescr lhs_forall() throws RecognitionException {
         ForallDescr d = null;
 
-        Token FORALL43=null;
-        Token RIGHT_PAREN44=null;
+        Token FORALL42=null;
+        Token RIGHT_PAREN43=null;
         BaseDescr base = null;
 
         BaseDescr pattern = null;
@@ -3986,25 +3920,25 @@
         		d = factory.createForall();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:2: ( FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:4: FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:2: ( FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:4: FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN
             {
-            FORALL43=(Token)input.LT(1);
-            match(input,FORALL,FOLLOW_FORALL_in_lhs_forall2971); if (failed) return d;
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall2973); if (failed) return d;
-            pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2977);
+            FORALL42=(Token)input.LT(1);
+            match(input,FORALL,FOLLOW_FORALL_in_lhs_forall2913); if (failed) return d;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall2915); if (failed) return d;
+            pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2919);
             base=lhs_pattern();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
 
-              			d.setStartCharacter( ((CommonToken)FORALL43).getStartIndex() );
+              			d.setStartCharacter( ((CommonToken)FORALL42).getStartIndex() );
               		        // adding the base pattern
               		        d.addDescr( base );
-              			d.setLocation( offset(FORALL43.getLine()), FORALL43.getCharPositionInLine() );
+              			d.setLocation( offset(FORALL42.getLine()), FORALL42.getCharPositionInLine() );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:968:3: (pattern= lhs_pattern )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:951:3: (pattern= lhs_pattern )*
             loop44:
             do {
                 int alt44=2;
@@ -4017,9 +3951,9 @@
 
                 switch (alt44) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:968:5: pattern= lhs_pattern
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:951:5: pattern= lhs_pattern
             	    {
-            	    pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2992);
+            	    pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2934);
             	    pattern=lhs_pattern();
             	    _fsp--;
             	    if (failed) return d;
@@ -4038,11 +3972,11 @@
                 }
             } while (true);
 
-            RIGHT_PAREN44=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall3008); if (failed) return d;
+            RIGHT_PAREN43=(Token)input.LT(1);
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall2950); if (failed) return d;
             if ( backtracking==0 ) {
 
-              		        d.setEndCharacter( ((CommonToken)RIGHT_PAREN44).getStopIndex() );
+              		        d.setEndCharacter( ((CommonToken)RIGHT_PAREN43).getStopIndex() );
               		
             }
 
@@ -4061,7 +3995,7 @@
 
 
     // $ANTLR start lhs_pattern
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:980:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:963:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );
     public final BaseDescr lhs_pattern() throws RecognitionException {
         BaseDescr d = null;
 
@@ -4072,7 +4006,7 @@
         		d =null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:987:2: (f= fact_binding | f= fact[null] )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:2: (f= fact_binding | f= fact[null] )
             int alt45=2;
             int LA45_0 = input.LA(1);
 
@@ -4088,7 +4022,7 @@
                 else {
                     if (backtracking>0) {failed=true; return d;}
                     NoViableAltException nvae =
-                        new NoViableAltException("980:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 45, 1, input);
+                        new NoViableAltException("963:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 45, 1, input);
 
                     throw nvae;
                 }
@@ -4096,15 +4030,15 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("980:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 45, 0, input);
+                    new NoViableAltException("963:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 45, 0, input);
 
                 throw nvae;
             }
             switch (alt45) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:987:4: f= fact_binding
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:970:4: f= fact_binding
                     {
-                    pushFollow(FOLLOW_fact_binding_in_lhs_pattern3041);
+                    pushFollow(FOLLOW_fact_binding_in_lhs_pattern2983);
                     f=fact_binding();
                     _fsp--;
                     if (failed) return d;
@@ -4112,9 +4046,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:988:4: f= fact[null]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:4: f= fact[null]
                     {
-                    pushFollow(FOLLOW_fact_in_lhs_pattern3049);
+                    pushFollow(FOLLOW_fact_in_lhs_pattern2991);
                     f=fact(null);
                     _fsp--;
                     if (failed) return d;
@@ -4141,7 +4075,7 @@
 
 
     // $ANTLR start from_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:1: from_statement returns [FromDescr d] : ds= from_source[$d] ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:974:1: from_statement returns [FromDescr d] : ds= from_source[$d] ;
     public final FromDescr from_statement() throws RecognitionException {
         FromDescr d = null;
 
@@ -4152,10 +4086,10 @@
         		d =factory.createFrom();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:995:2: (ds= from_source[$d] )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:996:2: ds= from_source[$d]
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:978:2: (ds= from_source[$d] )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:979:2: ds= from_source[$d]
             {
-            pushFollow(FOLLOW_from_source_in_from_statement3076);
+            pushFollow(FOLLOW_from_source_in_from_statement3018);
             ds=from_source(d);
             _fsp--;
             if (failed) return d;
@@ -4180,13 +4114,13 @@
 
 
     // $ANTLR start accumulate_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1003:1: accumulate_statement returns [AccumulateDescr d] : ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:986:1: accumulate_statement returns [AccumulateDescr d] : ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN ;
     public final AccumulateDescr accumulate_statement() throws RecognitionException {
         AccumulateDescr d = null;
 
         Token id=null;
-        Token ACCUMULATE45=null;
-        Token RIGHT_PAREN46=null;
+        Token ACCUMULATE44=null;
+        Token RIGHT_PAREN45=null;
         BaseDescr inputCE = null;
 
         paren_chunk_return text = null;
@@ -4196,24 +4130,24 @@
         		d = factory.createAccumulate();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1007:2: ( ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1008:10: ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:990:2: ( ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:991:10: ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN
             {
-            ACCUMULATE45=(Token)input.LT(1);
-            match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement3113); if (failed) return d;
+            ACCUMULATE44=(Token)input.LT(1);
+            match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement3055); if (failed) return d;
             if ( backtracking==0 ) {
                
-              			d.setLocation( offset(ACCUMULATE45.getLine()), ACCUMULATE45.getCharPositionInLine() );
-              			d.setStartCharacter( ((CommonToken)ACCUMULATE45).getStartIndex() );
+              			d.setLocation( offset(ACCUMULATE44.getLine()), ACCUMULATE44.getCharPositionInLine() );
+              			d.setStartCharacter( ((CommonToken)ACCUMULATE44).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE );
               		
             }
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement3123); if (failed) return d;
-            pushFollow(FOLLOW_lhs_or_in_accumulate_statement3127);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement3065); if (failed) return d;
+            pushFollow(FOLLOW_lhs_or_in_accumulate_statement3069);
             inputCE=lhs_or();
             _fsp--;
             if (failed) return d;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1014:29: ( COMMA )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:29: ( COMMA )?
             int alt46=2;
             int LA46_0 = input.LA(1);
 
@@ -4222,9 +4156,9 @@
             }
             switch (alt46) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1014:29: COMMA
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:997:29: COMMA
                     {
-                    match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3129); if (failed) return d;
+                    match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3071); if (failed) return d;
 
                     }
                     break;
@@ -4236,7 +4170,7 @@
               		        d.setInput( inputCE );
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1018:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )
             int alt51=2;
             int LA51_0 = input.LA(1);
 
@@ -4249,28 +4183,28 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1018:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )", 51, 0, input);
+                    new NoViableAltException("1001:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )", 51, 0, input);
 
                 throw nvae;
             }
             switch (alt51) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1018:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1018:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1019:4: INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1002:4: INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk
                     {
-                    match(input,INIT,FOLLOW_INIT_in_accumulate_statement3147); if (failed) return d;
+                    match(input,INIT,FOLLOW_INIT_in_accumulate_statement3089); if (failed) return d;
                     if ( backtracking==0 ) {
 
                       				location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE_INIT );
                       			
                     }
-                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3160);
+                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3102);
                     text=paren_chunk();
                     _fsp--;
                     if (failed) return d;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1023:21: ( COMMA )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1006:21: ( COMMA )?
                     int alt47=2;
                     int LA47_0 = input.LA(1);
 
@@ -4279,9 +4213,9 @@
                     }
                     switch (alt47) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1023:21: COMMA
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1006:21: COMMA
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3162); if (failed) return d;
+                            match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3104); if (failed) return d;
 
                             }
                             break;
@@ -4297,12 +4231,12 @@
                       				}
                       			
                     }
-                    match(input,ACTION,FOLLOW_ACTION_in_accumulate_statement3173); if (failed) return d;
-                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3177);
+                    match(input,ACTION,FOLLOW_ACTION_in_accumulate_statement3115); if (failed) return d;
+                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3119);
                     text=paren_chunk();
                     _fsp--;
                     if (failed) return d;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1031:28: ( COMMA )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1014:28: ( COMMA )?
                     int alt48=2;
                     int LA48_0 = input.LA(1);
 
@@ -4311,9 +4245,9 @@
                     }
                     switch (alt48) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1031:28: COMMA
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1014:28: COMMA
                             {
-                            match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3179); if (failed) return d;
+                            match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3121); if (failed) return d;
 
                             }
                             break;
@@ -4329,7 +4263,7 @@
                       				}
                       			
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1039:4: ( REVERSE text= paren_chunk ( COMMA )? )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:4: ( REVERSE text= paren_chunk ( COMMA )? )?
                     int alt50=2;
                     int LA50_0 = input.LA(1);
 
@@ -4338,14 +4272,14 @@
                     }
                     switch (alt50) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1039:6: REVERSE text= paren_chunk ( COMMA )?
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:6: REVERSE text= paren_chunk ( COMMA )?
                             {
-                            match(input,REVERSE,FOLLOW_REVERSE_in_accumulate_statement3192); if (failed) return d;
-                            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3196);
+                            match(input,REVERSE,FOLLOW_REVERSE_in_accumulate_statement3134); if (failed) return d;
+                            pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3138);
                             text=paren_chunk();
                             _fsp--;
                             if (failed) return d;
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1039:31: ( COMMA )?
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:31: ( COMMA )?
                             int alt49=2;
                             int LA49_0 = input.LA(1);
 
@@ -4354,9 +4288,9 @@
                             }
                             switch (alt49) {
                                 case 1 :
-                                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1039:31: COMMA
+                                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1022:31: COMMA
                                     {
-                                    match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3198); if (failed) return d;
+                                    match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement3140); if (failed) return d;
 
                                     }
                                     break;
@@ -4378,8 +4312,8 @@
 
                     }
 
-                    match(input,RESULT,FOLLOW_RESULT_in_accumulate_statement3215); if (failed) return d;
-                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3219);
+                    match(input,RESULT,FOLLOW_RESULT_in_accumulate_statement3157); if (failed) return d;
+                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3161);
                     text=paren_chunk();
                     _fsp--;
                     if (failed) return d;
@@ -4398,14 +4332,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1057:3: (id= ID text= paren_chunk )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1040:3: (id= ID text= paren_chunk )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1057:3: (id= ID text= paren_chunk )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1058:4: id= ID text= paren_chunk
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1040:3: (id= ID text= paren_chunk )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1041:4: id= ID text= paren_chunk
                     {
                     id=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_accumulate_statement3245); if (failed) return d;
-                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3249);
+                    match(input,ID,FOLLOW_ID_in_accumulate_statement3187); if (failed) return d;
+                    pushFollow(FOLLOW_paren_chunk_in_accumulate_statement3191);
                     text=paren_chunk();
                     _fsp--;
                     if (failed) return d;
@@ -4430,12 +4364,12 @@
 
             }
 
-            RIGHT_PAREN46=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement3266); if (failed) return d;
+            RIGHT_PAREN45=(Token)input.LT(1);
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement3208); if (failed) return d;
             if ( backtracking==0 ) {
 
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-              			d.setEndCharacter( ((CommonToken)RIGHT_PAREN46).getStopIndex() );
+              			d.setEndCharacter( ((CommonToken)RIGHT_PAREN45).getStopIndex() );
               		
             }
 
@@ -4454,7 +4388,7 @@
 
 
     // $ANTLR start from_source
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1078:1: from_source[FromDescr from] returns [DeclarativeInvokerDescr ds] : ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1061:1: from_source[FromDescr from] returns [DeclarativeInvokerDescr ds] : ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? ;
     public final DeclarativeInvokerDescr from_source(FromDescr from) throws RecognitionException {
         DeclarativeInvokerDescr ds = null;
 
@@ -4469,10 +4403,10 @@
         		FunctionCallDescr fc = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:2: (ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:4: ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:2: (ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1067:4: ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )?
             {
-            pushFollow(FOLLOW_identifier_in_from_source3297);
+            pushFollow(FOLLOW_identifier_in_from_source3239);
             ident=identifier();
             _fsp--;
             if (failed) return ds;
@@ -4486,7 +4420,7 @@
               			location.setProperty(Location.LOCATION_FROM_CONTENT, ident.start.getText());
               		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:3: ( options {k=1; } : args= paren_chunk )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1076:3: ( options {k=1; } : args= paren_chunk )?
             int alt52=2;
             int LA52_0 = input.LA(1);
 
@@ -4495,9 +4429,9 @@
             }
             switch (alt52) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1100:5: args= paren_chunk
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1083:5: args= paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_from_source3325);
+                    pushFollow(FOLLOW_paren_chunk_in_from_source3267);
                     args=paren_chunk();
                     _fsp--;
                     if (failed) return ds;
@@ -4521,7 +4455,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1114:3: ( expression_chain[$from, ad] )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1097:3: ( expression_chain[$from, ad] )?
             int alt53=2;
             int LA53_0 = input.LA(1);
 
@@ -4530,9 +4464,9 @@
             }
             switch (alt53) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1114:3: expression_chain[$from, ad]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1097:3: expression_chain[$from, ad]
                     {
-                    pushFollow(FOLLOW_expression_chain_in_from_source3338);
+                    pushFollow(FOLLOW_expression_chain_in_from_source3280);
                     expression_chain(from,  ad);
                     _fsp--;
                     if (failed) return ds;
@@ -4566,7 +4500,7 @@
 
 
     // $ANTLR start expression_chain
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1125:1: expression_chain[FromDescr from, AccessorDescr as] : ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1108:1: expression_chain[FromDescr from, AccessorDescr as] : ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) ;
     public final void expression_chain(FromDescr from, AccessorDescr as) throws RecognitionException {
         identifier_return field = null;
 
@@ -4580,14 +4514,14 @@
         	    	MethodAccessDescr ma = null;	
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1130:2: ( ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1131:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1113:2: ( ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1114:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1131:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1131:4: DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1114:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1114:4: DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )?
             {
-            match(input,DOT,FOLLOW_DOT_in_expression_chain3369); if (failed) return ;
-            pushFollow(FOLLOW_identifier_in_expression_chain3373);
+            match(input,DOT,FOLLOW_DOT_in_expression_chain3311); if (failed) return ;
+            pushFollow(FOLLOW_identifier_in_expression_chain3315);
             field=identifier();
             _fsp--;
             if (failed) return ;
@@ -4599,14 +4533,14 @@
               		fa.setEndCharacter( ((CommonToken)((Token)field.start)).getStopIndex() );
               	    
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1138:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?
             int alt54=3;
             alt54 = dfa54.predict(input);
             switch (alt54) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1139:6: ( LEFT_SQUARE )=>sqarg= square_chunk
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1122:6: ( LEFT_SQUARE )=>sqarg= square_chunk
                     {
-                    pushFollow(FOLLOW_square_chunk_in_expression_chain3404);
+                    pushFollow(FOLLOW_square_chunk_in_expression_chain3346);
                     sqarg=square_chunk();
                     _fsp--;
                     if (failed) return ;
@@ -4620,9 +4554,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1145:6: ( LEFT_PAREN )=>paarg= paren_chunk
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1128:6: ( LEFT_PAREN )=>paarg= paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_expression_chain3437);
+                    pushFollow(FOLLOW_paren_chunk_in_expression_chain3379);
                     paarg=paren_chunk();
                     _fsp--;
                     if (failed) return ;
@@ -4640,7 +4574,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1153:4: ( expression_chain[from, as] )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1136:4: ( expression_chain[from, as] )?
             int alt55=2;
             int LA55_0 = input.LA(1);
 
@@ -4649,9 +4583,9 @@
             }
             switch (alt55) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1153:4: expression_chain[from, as]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1136:4: expression_chain[from, as]
                     {
-                    pushFollow(FOLLOW_expression_chain_in_expression_chain3452);
+                    pushFollow(FOLLOW_expression_chain_in_expression_chain3394);
                     expression_chain(from,  as);
                     _fsp--;
                     if (failed) return ;
@@ -4688,12 +4622,12 @@
 
 
     // $ANTLR start collect_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1167:1: collect_statement returns [CollectDescr d] : COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1150:1: collect_statement returns [CollectDescr d] : COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN ;
     public final CollectDescr collect_statement() throws RecognitionException {
         CollectDescr d = null;
 
-        Token COLLECT47=null;
-        Token RIGHT_PAREN48=null;
+        Token COLLECT46=null;
+        Token RIGHT_PAREN47=null;
         BaseDescr pattern = null;
 
 
@@ -4701,29 +4635,29 @@
         		d = factory.createCollect();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1171:2: ( COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1172:10: COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1154:2: ( COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1155:10: COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN
             {
-            COLLECT47=(Token)input.LT(1);
-            match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement3503); if (failed) return d;
+            COLLECT46=(Token)input.LT(1);
+            match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement3445); if (failed) return d;
             if ( backtracking==0 ) {
                
-              			d.setLocation( offset(COLLECT47.getLine()), COLLECT47.getCharPositionInLine() );
-              			d.setStartCharacter( ((CommonToken)COLLECT47).getStartIndex() );
+              			d.setLocation( offset(COLLECT46.getLine()), COLLECT46.getCharPositionInLine() );
+              			d.setStartCharacter( ((CommonToken)COLLECT46).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_FROM_COLLECT );
               		
             }
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement3513); if (failed) return d;
-            pushFollow(FOLLOW_pattern_source_in_collect_statement3517);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement3455); if (failed) return d;
+            pushFollow(FOLLOW_pattern_source_in_collect_statement3459);
             pattern=pattern_source();
             _fsp--;
             if (failed) return d;
-            RIGHT_PAREN48=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement3519); if (failed) return d;
+            RIGHT_PAREN47=(Token)input.LT(1);
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement3461); if (failed) return d;
             if ( backtracking==0 ) {
 
               		        d.setInputPattern( (PatternDescr) pattern );
-              			d.setEndCharacter( ((CommonToken)RIGHT_PAREN48).getStopIndex() );
+              			d.setEndCharacter( ((CommonToken)RIGHT_PAREN47).getStopIndex() );
               			location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
               		
             }
@@ -4743,11 +4677,11 @@
 
 
     // $ANTLR start entrypoint_statement
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:1: entrypoint_statement returns [EntryPointDescr d] : ENTRY_POINT id= name ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1169:1: entrypoint_statement returns [EntryPointDescr d] : ENTRY_POINT id= name ;
     public final EntryPointDescr entrypoint_statement() throws RecognitionException {
         EntryPointDescr d = null;
 
-        Token ENTRY_POINT49=null;
+        Token ENTRY_POINT48=null;
         name_return id = null;
 
 
@@ -4755,19 +4689,19 @@
         		d = factory.createEntryPoint();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1190:2: ( ENTRY_POINT id= name )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1191:10: ENTRY_POINT id= name
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1173:2: ( ENTRY_POINT id= name )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1174:10: ENTRY_POINT id= name
             {
-            ENTRY_POINT49=(Token)input.LT(1);
-            match(input,ENTRY_POINT,FOLLOW_ENTRY_POINT_in_entrypoint_statement3556); if (failed) return d;
+            ENTRY_POINT48=(Token)input.LT(1);
+            match(input,ENTRY_POINT,FOLLOW_ENTRY_POINT_in_entrypoint_statement3498); if (failed) return d;
             if ( backtracking==0 ) {
                
-              			d.setLocation( offset(ENTRY_POINT49.getLine()), ENTRY_POINT49.getCharPositionInLine() );
-              			d.setStartCharacter( ((CommonToken)ENTRY_POINT49).getStartIndex() );
+              			d.setLocation( offset(ENTRY_POINT48.getLine()), ENTRY_POINT48.getCharPositionInLine() );
+              			d.setStartCharacter( ((CommonToken)ENTRY_POINT48).getStartIndex() );
               			location.setType( Location.LOCATION_LHS_FROM_ENTRY_POINT );
               		
             }
-            pushFollow(FOLLOW_name_in_entrypoint_statement3568);
+            pushFollow(FOLLOW_name_in_entrypoint_statement3510);
             id=name();
             _fsp--;
             if (failed) return d;
@@ -4794,11 +4728,11 @@
 
 
     // $ANTLR start fact_binding
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1205:1: fact_binding returns [BaseDescr d] : ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1188:1: fact_binding returns [BaseDescr d] : ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) ;
     public final BaseDescr fact_binding() throws RecognitionException {
         BaseDescr d = null;
 
-        Token ID50=null;
+        Token ID49=null;
         BaseDescr fe = null;
 
         BaseDescr left = null;
@@ -4811,20 +4745,20 @@
         		OrDescr or = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1210:3: ( ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1211:4: ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1193:3: ( ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1194:4: ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
             {
-            ID50=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_fact_binding3600); if (failed) return d;
-            match(input,78,FOLLOW_78_in_fact_binding3602); if (failed) return d;
+            ID49=(Token)input.LT(1);
+            match(input,ID,FOLLOW_ID_in_fact_binding3542); if (failed) return d;
+            match(input,78,FOLLOW_78_in_fact_binding3544); if (failed) return d;
             if ( backtracking==0 ) {
 
                		        // handling incomplete parsing
                		        d = new PatternDescr( );
-               		        ((PatternDescr) d).setIdentifier( ID50.getText() );
+               		        ((PatternDescr) d).setIdentifier( ID49.getText() );
                		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1200:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
             int alt57=2;
             int LA57_0 = input.LA(1);
 
@@ -4837,16 +4771,16 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1217:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )", 57, 0, input);
+                    new NoViableAltException("1200:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )", 57, 0, input);
 
                 throw nvae;
             }
             switch (alt57) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:5: fe= fact[$ID.text]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1200:5: fe= fact[$ID.text]
                     {
-                    pushFollow(FOLLOW_fact_in_fact_binding3616);
-                    fe=fact(ID50.getText());
+                    pushFollow(FOLLOW_fact_in_fact_binding3558);
+                    fe=fact(ID49.getText());
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
@@ -4854,7 +4788,7 @@
                        		        // override previously instantiated pattern
                        			d =fe;
                        			if( d != null ) {
-                         			    d.setStartCharacter( ((CommonToken)ID50).getStartIndex() );
+                         			    d.setStartCharacter( ((CommonToken)ID49).getStartIndex() );
                          			}
                        		
                     }
@@ -4862,11 +4796,11 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1226:4: LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1209:4: LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding3632); if (failed) return d;
-                    pushFollow(FOLLOW_fact_in_fact_binding3636);
-                    left=fact(ID50.getText());
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding3574); if (failed) return d;
+                    pushFollow(FOLLOW_fact_in_fact_binding3578);
+                    left=fact(ID49.getText());
                     _fsp--;
                     if (failed) return d;
                     if ( backtracking==0 ) {
@@ -4874,11 +4808,11 @@
                        		        // override previously instantiated pattern
                        			d =left;
                        			if( d != null ) {
-                         			    d.setStartCharacter( ((CommonToken)ID50).getStartIndex() );
+                         			    d.setStartCharacter( ((CommonToken)ID49).getStartIndex() );
                          			}
                        		
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1234:4: ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )*
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:4: ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )*
                     loop56:
                     do {
                         int alt56=2;
@@ -4891,7 +4825,7 @@
 
                         switch (alt56) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1234:6: ( OR | DOUBLE_PIPE ) right= fact[$ID.text]
+                    	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1217:6: ( OR | DOUBLE_PIPE ) right= fact[$ID.text]
                     	    {
                     	    if ( (input.LA(1)>=OR && input.LA(1)<=DOUBLE_PIPE) ) {
                     	        input.consume();
@@ -4901,11 +4835,11 @@
                     	        if (backtracking>0) {failed=true; return d;}
                     	        MismatchedSetException mse =
                     	            new MismatchedSetException(null,input);
-                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_binding3649);    throw mse;
+                    	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_binding3591);    throw mse;
                     	    }
 
-                    	    pushFollow(FOLLOW_fact_in_fact_binding3661);
-                    	    right=fact(ID50.getText());
+                    	    pushFollow(FOLLOW_fact_in_fact_binding3603);
+                    	    right=fact(ID49.getText());
                     	    _fsp--;
                     	    if (failed) return d;
                     	    if ( backtracking==0 ) {
@@ -4927,7 +4861,7 @@
                         }
                     } while (true);
 
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding3679); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding3621); if (failed) return d;
 
                     }
                     break;
@@ -4950,12 +4884,12 @@
 
 
     // $ANTLR start fact
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1249:1: fact[String ident] returns [BaseDescr d] : id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1232:1: fact[String ident] returns [BaseDescr d] : id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? ;
     public final BaseDescr fact(String ident) throws RecognitionException {
         BaseDescr d = null;
 
-        Token LEFT_PAREN51=null;
-        Token RIGHT_PAREN52=null;
+        Token LEFT_PAREN50=null;
+        Token RIGHT_PAREN51=null;
         qualified_id_return id = null;
 
 
@@ -4964,8 +4898,8 @@
         		PatternDescr pattern = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1254:3: (id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1255:11: id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1237:3: (id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1238:11: id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )?
             {
             if ( backtracking==0 ) {
 
@@ -4976,7 +4910,7 @@
                			d = pattern; 
                	        
             }
-            pushFollow(FOLLOW_qualified_id_in_fact3734);
+            pushFollow(FOLLOW_qualified_id_in_fact3676);
             id=qualified_id();
             _fsp--;
             if (failed) return d;
@@ -4989,29 +4923,29 @@
                			}
                		
             }
-            LEFT_PAREN51=(Token)input.LT(1);
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact3744); if (failed) return d;
+            LEFT_PAREN50=(Token)input.LT(1);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact3686); if (failed) return d;
             if ( backtracking==0 ) {
 
               		        location.setType( Location.LOCATION_LHS_INSIDE_CONDITION_START );
                           		location.setProperty( Location.LOCATION_PROPERTY_CLASS_NAME, id.text );
                				
-               			pattern.setLocation( offset(LEFT_PAREN51.getLine()), LEFT_PAREN51.getCharPositionInLine() );
-               			pattern.setLeftParentCharacter( ((CommonToken)LEFT_PAREN51).getStartIndex() );
+               			pattern.setLocation( offset(LEFT_PAREN50.getLine()), LEFT_PAREN50.getCharPositionInLine() );
+               			pattern.setLeftParentCharacter( ((CommonToken)LEFT_PAREN50).getStartIndex() );
                		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1278:4: ( constraints[pattern] )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1261:4: ( constraints[pattern] )?
             int alt58=2;
             int LA58_0 = input.LA(1);
 
-            if ( ((LA58_0>=PACKAGE && LA58_0<=ID)||(LA58_0>=GLOBAL && LA58_0<=LEFT_PAREN)||(LA58_0>=QUERY && LA58_0<=ATTRIBUTES)||LA58_0==ENABLED||LA58_0==SALIENCE||(LA58_0>=DURATION && LA58_0<=DIALECT)||LA58_0==FROM||LA58_0==EVAL||(LA58_0>=INIT && LA58_0<=RESULT)||(LA58_0>=CONTAINS && LA58_0<=MEMBEROF)||LA58_0==IN||LA58_0==THEN) ) {
+            if ( ((LA58_0>=PACKAGE && LA58_0<=ID)||(LA58_0>=GLOBAL && LA58_0<=LEFT_PAREN)||(LA58_0>=QUERY && LA58_0<=ATTRIBUTES)||LA58_0==ENABLED||LA58_0==SALIENCE||(LA58_0>=DURATION && LA58_0<=DIALECT)||LA58_0==FROM||LA58_0==EVAL||(LA58_0>=INIT && LA58_0<=RESULT)||(LA58_0>=CONTAINS && LA58_0<=MEMBEROF)||LA58_0==IN||(LA58_0>=THEN && LA58_0<=EVENT)) ) {
                 alt58=1;
             }
             switch (alt58) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1278:4: constraints[pattern]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1261:4: constraints[pattern]
                     {
-                    pushFollow(FOLLOW_constraints_in_fact3756);
+                    pushFollow(FOLLOW_constraints_in_fact3698);
                     constraints(pattern);
                     _fsp--;
                     if (failed) return d;
@@ -5021,19 +4955,19 @@
 
             }
 
-            RIGHT_PAREN52=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact3763); if (failed) return d;
+            RIGHT_PAREN51=(Token)input.LT(1);
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact3705); if (failed) return d;
             if ( backtracking==0 ) {
 
-              		        if( ")".equals( RIGHT_PAREN52.getText() ) ) {
+              		        if( ")".equals( RIGHT_PAREN51.getText() ) ) {
               				this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
-              				pattern.setEndLocation( offset(RIGHT_PAREN52.getLine()), RIGHT_PAREN52.getCharPositionInLine() );	
-              				pattern.setEndCharacter( ((CommonToken)RIGHT_PAREN52).getStopIndex() );
-              		        	pattern.setRightParentCharacter( ((CommonToken)RIGHT_PAREN52).getStartIndex() );
+              				pattern.setEndLocation( offset(RIGHT_PAREN51.getLine()), RIGHT_PAREN51.getCharPositionInLine() );	
+              				pattern.setEndCharacter( ((CommonToken)RIGHT_PAREN51).getStopIndex() );
+              		        	pattern.setRightParentCharacter( ((CommonToken)RIGHT_PAREN51).getStartIndex() );
               		        }
                		
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1288:4: ( EOF )?
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:4: ( EOF )?
             int alt59=2;
             int LA59_0 = input.LA(1);
 
@@ -5042,9 +4976,9 @@
             }
             switch (alt59) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1288:4: EOF
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1271:4: EOF
                     {
-                    match(input,EOF,FOLLOW_EOF_in_fact3772); if (failed) return d;
+                    match(input,EOF,FOLLOW_EOF_in_fact3714); if (failed) return d;
 
                     }
                     break;
@@ -5067,17 +5001,17 @@
 
 
     // $ANTLR start constraints
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1292:1: constraints[PatternDescr pattern] : constraint[$pattern] ( COMMA constraint[$pattern] )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1275:1: constraints[PatternDescr pattern] : constraint[$pattern] ( COMMA constraint[$pattern] )* ;
     public final void constraints(PatternDescr pattern) throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:2: ( constraint[$pattern] ( COMMA constraint[$pattern] )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:4: constraint[$pattern] ( COMMA constraint[$pattern] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1276:2: ( constraint[$pattern] ( COMMA constraint[$pattern] )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1276:4: constraint[$pattern] ( COMMA constraint[$pattern] )*
             {
-            pushFollow(FOLLOW_constraint_in_constraints3790);
+            pushFollow(FOLLOW_constraint_in_constraints3732);
             constraint(pattern);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1294:3: ( COMMA constraint[$pattern] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1277:3: ( COMMA constraint[$pattern] )*
             loop60:
             do {
                 int alt60=2;
@@ -5090,13 +5024,13 @@
 
                 switch (alt60) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1294:5: COMMA constraint[$pattern]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1277:5: COMMA constraint[$pattern]
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_constraints3797); if (failed) return ;
+            	    match(input,COMMA,FOLLOW_COMMA_in_constraints3739); if (failed) return ;
             	    if ( backtracking==0 ) {
             	       location.setType( Location.LOCATION_LHS_INSIDE_CONDITION_START ); 
             	    }
-            	    pushFollow(FOLLOW_constraint_in_constraints3806);
+            	    pushFollow(FOLLOW_constraint_in_constraints3748);
             	    constraint(pattern);
             	    _fsp--;
             	    if (failed) return ;
@@ -5125,7 +5059,7 @@
 
 
     // $ANTLR start constraint
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1299:1: constraint[PatternDescr pattern] : or_constr[top] ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1282:1: constraint[PatternDescr pattern] : or_constr[top] ;
     public final void constraint(PatternDescr pattern) throws RecognitionException {
 
         		ConditionalElementDescr top = null;
@@ -5133,15 +5067,15 @@
         		location.setProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME, input.LT(1).getText() );
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1305:2: ( or_constr[top] )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1306:3: or_constr[top]
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1288:2: ( or_constr[top] )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1289:3: or_constr[top]
             {
             if ( backtracking==0 ) {
 
               			top = pattern.getConstraint();
               		
             }
-            pushFollow(FOLLOW_or_constr_in_constraint3839);
+            pushFollow(FOLLOW_or_constr_in_constraint3781);
             or_constr(top);
             _fsp--;
             if (failed) return ;
@@ -5161,20 +5095,20 @@
 
 
     // $ANTLR start or_constr
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1312:1: or_constr[ConditionalElementDescr base] : and_constr[or] ( DOUBLE_PIPE and_constr[or] )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1295:1: or_constr[ConditionalElementDescr base] : and_constr[or] ( DOUBLE_PIPE and_constr[or] )* ;
     public final void or_constr(ConditionalElementDescr base) throws RecognitionException {
 
         		OrDescr or = new OrDescr();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1316:2: ( and_constr[or] ( DOUBLE_PIPE and_constr[or] )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1317:3: and_constr[or] ( DOUBLE_PIPE and_constr[or] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1299:2: ( and_constr[or] ( DOUBLE_PIPE and_constr[or] )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1300:3: and_constr[or] ( DOUBLE_PIPE and_constr[or] )*
             {
-            pushFollow(FOLLOW_and_constr_in_or_constr3862);
+            pushFollow(FOLLOW_and_constr_in_or_constr3804);
             and_constr(or);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1318:3: ( DOUBLE_PIPE and_constr[or] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1301:3: ( DOUBLE_PIPE and_constr[or] )*
             loop61:
             do {
                 int alt61=2;
@@ -5187,15 +5121,15 @@
 
                 switch (alt61) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1318:5: DOUBLE_PIPE and_constr[or]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1301:5: DOUBLE_PIPE and_constr[or]
             	    {
-            	    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr3870); if (failed) return ;
+            	    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr3812); if (failed) return ;
             	    if ( backtracking==0 ) {
 
             	      			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
             	      		
             	    }
-            	    pushFollow(FOLLOW_and_constr_in_or_constr3879);
+            	    pushFollow(FOLLOW_and_constr_in_or_constr3821);
             	    and_constr(or);
             	    _fsp--;
             	    if (failed) return ;
@@ -5233,20 +5167,20 @@
 
 
     // $ANTLR start and_constr
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1333:1: and_constr[ConditionalElementDescr base] : unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1316:1: and_constr[ConditionalElementDescr base] : unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* ;
     public final void and_constr(ConditionalElementDescr base) throws RecognitionException {
 
         		AndDescr and = new AndDescr();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:2: ( unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1338:3: unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1320:2: ( unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1321:3: unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )*
             {
-            pushFollow(FOLLOW_unary_constr_in_and_constr3911);
+            pushFollow(FOLLOW_unary_constr_in_and_constr3853);
             unary_constr(and);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1339:3: ( DOUBLE_AMPER unary_constr[and] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1322:3: ( DOUBLE_AMPER unary_constr[and] )*
             loop62:
             do {
                 int alt62=2;
@@ -5259,15 +5193,15 @@
 
                 switch (alt62) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1339:5: DOUBLE_AMPER unary_constr[and]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1322:5: DOUBLE_AMPER unary_constr[and]
             	    {
-            	    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr3919); if (failed) return ;
+            	    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr3861); if (failed) return ;
             	    if ( backtracking==0 ) {
 
             	      			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
             	      		
             	    }
-            	    pushFollow(FOLLOW_unary_constr_in_and_constr3928);
+            	    pushFollow(FOLLOW_unary_constr_in_and_constr3870);
             	    unary_constr(and);
             	    _fsp--;
             	    if (failed) return ;
@@ -5305,19 +5239,18 @@
 
 
     // $ANTLR start unary_constr
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1354:1: unary_constr[ConditionalElementDescr base] : ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1337:1: unary_constr[ConditionalElementDescr base] : ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) ;
     public final void unary_constr(ConditionalElementDescr base) throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1355:2: ( ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1356:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1338:2: ( ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1339:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1356:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1339:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
             int alt63=3;
             switch ( input.LA(1) ) {
             case PACKAGE:
             case IMPORT:
             case FUNCTION:
-            case EVENT:
             case ID:
             case GLOBAL:
             case QUERY:
@@ -5342,6 +5275,7 @@
             case MEMBEROF:
             case IN:
             case THEN:
+            case EVENT:
                 {
                 alt63=1;
                 }
@@ -5359,16 +5293,16 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1356:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )", 63, 0, input);
+                    new NoViableAltException("1339:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )", 63, 0, input);
 
                 throw nvae;
             }
 
             switch (alt63) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1356:5: field_constraint[$base]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1339:5: field_constraint[$base]
                     {
-                    pushFollow(FOLLOW_field_constraint_in_unary_constr3956);
+                    pushFollow(FOLLOW_field_constraint_in_unary_constr3898);
                     field_constraint(base);
                     _fsp--;
                     if (failed) return ;
@@ -5376,22 +5310,22 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1357:5: LEFT_PAREN or_constr[$base] RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1340:5: LEFT_PAREN or_constr[$base] RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr3964); if (failed) return ;
-                    pushFollow(FOLLOW_or_constr_in_unary_constr3966);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr3906); if (failed) return ;
+                    pushFollow(FOLLOW_or_constr_in_unary_constr3908);
                     or_constr(base);
                     _fsp--;
                     if (failed) return ;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr3969); if (failed) return ;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr3911); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1358:5: EVAL predicate[$base]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1341:5: EVAL predicate[$base]
                     {
-                    match(input,EVAL,FOLLOW_EVAL_in_unary_constr3975); if (failed) return ;
-                    pushFollow(FOLLOW_predicate_in_unary_constr3977);
+                    match(input,EVAL,FOLLOW_EVAL_in_unary_constr3917); if (failed) return ;
+                    pushFollow(FOLLOW_predicate_in_unary_constr3919);
                     predicate(base);
                     _fsp--;
                     if (failed) return ;
@@ -5417,9 +5351,9 @@
 
 
     // $ANTLR start field_constraint
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1362:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1345:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );
     public final void field_constraint(ConditionalElementDescr base) throws RecognitionException {
-        Token ID53=null;
+        Token ID52=null;
         accessor_path_return f = null;
 
 
@@ -5429,7 +5363,7 @@
         		RestrictionConnectiveDescr top = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1368:2: ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1351:2: ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) )
             int alt65=2;
             int LA65_0 = input.LA(1);
 
@@ -5445,42 +5379,42 @@
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1362:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );", 65, 1, input);
+                        new NoViableAltException("1345:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );", 65, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( ((LA65_0>=PACKAGE && LA65_0<=EVENT)||LA65_0==GLOBAL||(LA65_0>=QUERY && LA65_0<=ATTRIBUTES)||LA65_0==ENABLED||LA65_0==SALIENCE||(LA65_0>=DURATION && LA65_0<=DIALECT)||LA65_0==FROM||(LA65_0>=INIT && LA65_0<=RESULT)||(LA65_0>=CONTAINS && LA65_0<=MEMBEROF)||LA65_0==IN||LA65_0==THEN) ) {
+            else if ( ((LA65_0>=PACKAGE && LA65_0<=FUNCTION)||LA65_0==GLOBAL||(LA65_0>=QUERY && LA65_0<=ATTRIBUTES)||LA65_0==ENABLED||LA65_0==SALIENCE||(LA65_0>=DURATION && LA65_0<=DIALECT)||LA65_0==FROM||(LA65_0>=INIT && LA65_0<=RESULT)||(LA65_0>=CONTAINS && LA65_0<=MEMBEROF)||LA65_0==IN||(LA65_0>=THEN && LA65_0<=EVENT)) ) {
                 alt65=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1362:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );", 65, 0, input);
+                    new NoViableAltException("1345:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );", 65, 0, input);
 
                 throw nvae;
             }
             switch (alt65) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1369:10: ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1352:10: ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1369:10: ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1370:3: ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1352:10: ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1353:3: ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )?
                     {
-                    ID53=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_field_constraint4016); if (failed) return ;
-                    match(input,78,FOLLOW_78_in_field_constraint4018); if (failed) return ;
+                    ID52=(Token)input.LT(1);
+                    match(input,ID,FOLLOW_ID_in_field_constraint3958); if (failed) return ;
+                    match(input,78,FOLLOW_78_in_field_constraint3960); if (failed) return ;
                     if ( backtracking==0 ) {
                        
                       			fbd = new FieldBindingDescr();
-                      			fbd.setIdentifier( ID53.getText() );
-                      			fbd.setLocation( offset(ID53.getLine()), ID53.getCharPositionInLine() );
-                      			fbd.setStartCharacter( ((CommonToken)ID53).getStartIndex() );
+                      			fbd.setIdentifier( ID52.getText() );
+                      			fbd.setLocation( offset(ID52.getLine()), ID52.getCharPositionInLine() );
+                      			fbd.setStartCharacter( ((CommonToken)ID52).getStartIndex() );
                       			base.addDescr( fbd );
 
                       		    
                     }
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint4037);
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint3979);
                     f=accessor_path();
                     _fsp--;
                     if (failed) return ;
@@ -5495,7 +5429,7 @@
                       			if ( fbd != null ) {
                       			    fbd.setFieldName( f.text );
                       			    // may have been overwritten
-                      			    fbd.setStartCharacter( ((CommonToken)ID53).getStartIndex() );
+                      			    fbd.setStartCharacter( ((CommonToken)ID52).getStartIndex() );
                       			} 
                       			fc = new FieldConstraintDescr(f.text);
                       			fc.setLocation( offset(((Token)f.start).getLine()), ((Token)f.start).getCharPositionInLine() );
@@ -5503,13 +5437,13 @@
                       			top = fc.getRestriction();
                       			
                       			// it must be a field constraint, as it is not a binding
-                      			if( ID53 == null ) {
+                      			if( ID52 == null ) {
                       			    base.addDescr( fc );
                       			}
                       		    }
                       		
                     }
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1404:3: ( or_restr_connective[top] | '->' predicate[$base] )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1387:3: ( or_restr_connective[top] | '->' predicate[$base] )?
                     int alt64=3;
                     int LA64_0 = input.LA(1);
 
@@ -5521,16 +5455,16 @@
                     }
                     switch (alt64) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1405:4: or_restr_connective[top]
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1388:4: or_restr_connective[top]
                             {
-                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint4051);
+                            pushFollow(FOLLOW_or_restr_connective_in_field_constraint3993);
                             or_restr_connective(top);
                             _fsp--;
                             if (failed) return ;
                             if ( backtracking==0 ) {
 
                               				// we must add now as we didn't before
-                              				if( ID53 != null) {
+                              				if( ID52 != null) {
                               				    base.addDescr( fc );
                               				}
                               			
@@ -5539,10 +5473,10 @@
                             }
                             break;
                         case 2 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:4: '->' predicate[$base]
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1396:4: '->' predicate[$base]
                             {
-                            match(input,79,FOLLOW_79_in_field_constraint4066); if (failed) return ;
-                            pushFollow(FOLLOW_predicate_in_field_constraint4068);
+                            match(input,79,FOLLOW_79_in_field_constraint4008); if (failed) return ;
+                            pushFollow(FOLLOW_predicate_in_field_constraint4010);
                             predicate(base);
                             _fsp--;
                             if (failed) return ;
@@ -5559,12 +5493,12 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1417:3: (f= accessor_path or_restr_connective[top] )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1400:3: (f= accessor_path or_restr_connective[top] )
                     {
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1417:3: (f= accessor_path or_restr_connective[top] )
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1418:3: f= accessor_path or_restr_connective[top]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1400:3: (f= accessor_path or_restr_connective[top] )
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1401:3: f= accessor_path or_restr_connective[top]
                     {
-                    pushFollow(FOLLOW_accessor_path_in_field_constraint4094);
+                    pushFollow(FOLLOW_accessor_path_in_field_constraint4036);
                     f=accessor_path();
                     _fsp--;
                     if (failed) return ;
@@ -5585,7 +5519,7 @@
                       		    }
                       		
                     }
-                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint4103);
+                    pushFollow(FOLLOW_or_restr_connective_in_field_constraint4045);
                     or_restr_connective(top);
                     _fsp--;
                     if (failed) return ;
@@ -5619,35 +5553,35 @@
 
 
     // $ANTLR start or_restr_connective
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1450:1: or_restr_connective[ RestrictionConnectiveDescr base ] options {backtrack=true; } : and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1433:1: or_restr_connective[ RestrictionConnectiveDescr base ] options {backtrack=true; } : and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* ;
     public final void or_restr_connective(RestrictionConnectiveDescr base) throws RecognitionException {
 
         		RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR);
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:2: ( and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:3: and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1440:2: ( and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1441:3: and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
             {
-            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective4150);
+            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective4092);
             and_restr_connective(or);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1442:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
             loop66:
             do {
                 int alt66=2;
                 alt66 = dfa66.predict(input);
                 switch (alt66) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1461:4: DOUBLE_PIPE and_restr_connective[or]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1444:4: DOUBLE_PIPE and_restr_connective[or]
             	    {
-            	    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective4174); if (failed) return ;
+            	    match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective4116); if (failed) return ;
             	    if ( backtracking==0 ) {
 
             	      				location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
             	      			
             	    }
-            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective4185);
+            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective4127);
             	    and_restr_connective(or);
             	    _fsp--;
             	    if (failed) return ;
@@ -5683,7 +5617,7 @@
 
 
     // $ANTLR start and_restr_connective
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1476:1: and_restr_connective[ RestrictionConnectiveDescr base ] : constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:1: and_restr_connective[ RestrictionConnectiveDescr base ] : constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* ;
     public final void and_restr_connective(RestrictionConnectiveDescr base) throws RecognitionException {
         Token t=null;
 
@@ -5691,30 +5625,30 @@
         		RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND);
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1480:2: ( constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1481:3: constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1463:2: ( constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1464:3: constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
             {
-            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4217);
+            pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4159);
             constraint_expression(and);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1482:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1465:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
             loop67:
             do {
                 int alt67=2;
                 alt67 = dfa67.predict(input);
                 switch (alt67) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1483:5: t= DOUBLE_AMPER constraint_expression[and]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1466:5: t= DOUBLE_AMPER constraint_expression[and]
             	    {
             	    t=(Token)input.LT(1);
-            	    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective4237); if (failed) return ;
+            	    match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective4179); if (failed) return ;
             	    if ( backtracking==0 ) {
 
             	      				location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
             	      			
             	    }
-            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4248);
+            	    pushFollow(FOLLOW_constraint_expression_in_and_restr_connective4190);
             	    constraint_expression(and);
             	    _fsp--;
             	    if (failed) return ;
@@ -5750,13 +5684,13 @@
 
 
     // $ANTLR start constraint_expression
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1498:1: constraint_expression[RestrictionConnectiveDescr base] : ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1481:1: constraint_expression[RestrictionConnectiveDescr base] : ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) ;
     public final void constraint_expression(RestrictionConnectiveDescr base) throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1499:9: ( ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1500:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1482:9: ( ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1483:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1500:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1483:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
             int alt68=3;
             switch ( input.LA(1) ) {
             case IN:
@@ -5777,7 +5711,7 @@
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1500:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 68, 2, input);
+                        new NoViableAltException("1483:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 68, 2, input);
 
                     throw nvae;
                 }
@@ -5807,16 +5741,16 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1500:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 68, 0, input);
+                    new NoViableAltException("1483:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 68, 0, input);
 
                 throw nvae;
             }
 
             switch (alt68) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1500:5: compound_operator[$base]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1483:5: compound_operator[$base]
                     {
-                    pushFollow(FOLLOW_compound_operator_in_constraint_expression4285);
+                    pushFollow(FOLLOW_compound_operator_in_constraint_expression4227);
                     compound_operator(base);
                     _fsp--;
                     if (failed) return ;
@@ -5824,9 +5758,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1501:5: simple_operator[$base]
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1484:5: simple_operator[$base]
                     {
-                    pushFollow(FOLLOW_simple_operator_in_constraint_expression4292);
+                    pushFollow(FOLLOW_simple_operator_in_constraint_expression4234);
                     simple_operator(base);
                     _fsp--;
                     if (failed) return ;
@@ -5834,19 +5768,19 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1502:5: LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1485:5: LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression4300); if (failed) return ;
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression4242); if (failed) return ;
                     if ( backtracking==0 ) {
 
                       			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
                       		
                     }
-                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression4309);
+                    pushFollow(FOLLOW_or_restr_connective_in_constraint_expression4251);
                     or_restr_connective(base);
                     _fsp--;
                     if (failed) return ;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression4314); if (failed) return ;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression4256); if (failed) return ;
 
                     }
                     break;
@@ -5869,7 +5803,7 @@
 
 
     // $ANTLR start simple_operator
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:1: simple_operator[RestrictionConnectiveDescr base] : (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText] ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1494:1: simple_operator[RestrictionConnectiveDescr base] : (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText] ;
     public final void simple_operator(RestrictionConnectiveDescr base) throws RecognitionException {
         Token t=null;
         Token n=null;
@@ -5884,10 +5818,10 @@
         		boolean isNegated = false;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1517:2: ( (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText] )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1518:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText]
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1500:2: ( (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText] )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1501:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText]
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1518:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1501:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )
             int alt71=16;
             switch ( input.LA(1) ) {
             case 80:
@@ -5928,9 +5862,9 @@
             case NOT:
                 {
                 switch ( input.LA(2) ) {
-                case CONTAINS:
+                case MATCHES:
                     {
-                    alt71=8;
+                    alt71=12;
                     }
                     break;
                 case TILDE:
@@ -5938,20 +5872,20 @@
                     alt71=16;
                     }
                     break;
-                case MEMBEROF:
+                case CONTAINS:
                     {
-                    alt71=14;
+                    alt71=8;
                     }
                     break;
-                case MATCHES:
+                case MEMBEROF:
                     {
-                    alt71=12;
+                    alt71=14;
                     }
                     break;
                 default:
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1518:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )", 71, 8, input);
+                        new NoViableAltException("1501:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )", 71, 8, input);
 
                     throw nvae;
                 }
@@ -5986,137 +5920,137 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1518:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )", 71, 0, input);
+                    new NoViableAltException("1501:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )", 71, 0, input);
 
                 throw nvae;
             }
 
             switch (alt71) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1518:5: t= '=='
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1501:5: t= '=='
                     {
                     t=(Token)input.LT(1);
-                    match(input,80,FOLLOW_80_in_simple_operator4345); if (failed) return ;
+                    match(input,80,FOLLOW_80_in_simple_operator4287); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1519:5: t= '>'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1502:5: t= '>'
                     {
                     t=(Token)input.LT(1);
-                    match(input,81,FOLLOW_81_in_simple_operator4353); if (failed) return ;
+                    match(input,81,FOLLOW_81_in_simple_operator4295); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1520:5: t= '>='
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1503:5: t= '>='
                     {
                     t=(Token)input.LT(1);
-                    match(input,82,FOLLOW_82_in_simple_operator4361); if (failed) return ;
+                    match(input,82,FOLLOW_82_in_simple_operator4303); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1521:5: t= '<'
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1504:5: t= '<'
                     {
                     t=(Token)input.LT(1);
-                    match(input,83,FOLLOW_83_in_simple_operator4369); if (failed) return ;
+                    match(input,83,FOLLOW_83_in_simple_operator4311); if (failed) return ;
 
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1522:5: t= '<='
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1505:5: t= '<='
                     {
                     t=(Token)input.LT(1);
-                    match(input,84,FOLLOW_84_in_simple_operator4377); if (failed) return ;
+                    match(input,84,FOLLOW_84_in_simple_operator4319); if (failed) return ;
 
                     }
                     break;
                 case 6 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1523:5: t= '!='
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1506:5: t= '!='
                     {
                     t=(Token)input.LT(1);
-                    match(input,85,FOLLOW_85_in_simple_operator4385); if (failed) return ;
+                    match(input,85,FOLLOW_85_in_simple_operator4327); if (failed) return ;
 
                     }
                     break;
                 case 7 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1524:25: t= CONTAINS
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1507:25: t= CONTAINS
                     {
                     t=(Token)input.LT(1);
-                    match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator4413); if (failed) return ;
+                    match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator4355); if (failed) return ;
 
                     }
                     break;
                 case 8 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1525:25: n= NOT t= CONTAINS
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1508:25: n= NOT t= CONTAINS
                     {
                     n=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_simple_operator4441); if (failed) return ;
+                    match(input,NOT,FOLLOW_NOT_in_simple_operator4383); if (failed) return ;
                     t=(Token)input.LT(1);
-                    match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator4445); if (failed) return ;
+                    match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator4387); if (failed) return ;
 
                     }
                     break;
                 case 9 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1526:25: t= EXCLUDES
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1509:25: t= EXCLUDES
                     {
                     t=(Token)input.LT(1);
-                    match(input,EXCLUDES,FOLLOW_EXCLUDES_in_simple_operator4473); if (failed) return ;
+                    match(input,EXCLUDES,FOLLOW_EXCLUDES_in_simple_operator4415); if (failed) return ;
 
                     }
                     break;
                 case 10 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1527:25: t= MATCHES
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:25: t= MATCHES
                     {
                     t=(Token)input.LT(1);
-                    match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator4501); if (failed) return ;
+                    match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator4443); if (failed) return ;
 
                     }
                     break;
                 case 11 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1528:25: t= SOUNDSLIKE
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:25: t= SOUNDSLIKE
                     {
                     t=(Token)input.LT(1);
-                    match(input,SOUNDSLIKE,FOLLOW_SOUNDSLIKE_in_simple_operator4529); if (failed) return ;
+                    match(input,SOUNDSLIKE,FOLLOW_SOUNDSLIKE_in_simple_operator4471); if (failed) return ;
 
                     }
                     break;
                 case 12 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1529:25: n= NOT t= MATCHES
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1512:25: n= NOT t= MATCHES
                     {
                     n=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_simple_operator4557); if (failed) return ;
+                    match(input,NOT,FOLLOW_NOT_in_simple_operator4499); if (failed) return ;
                     t=(Token)input.LT(1);
-                    match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator4561); if (failed) return ;
+                    match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator4503); if (failed) return ;
 
                     }
                     break;
                 case 13 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1530:25: t= MEMBEROF
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1513:25: t= MEMBEROF
                     {
                     t=(Token)input.LT(1);
-                    match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator4589); if (failed) return ;
+                    match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator4531); if (failed) return ;
 
                     }
                     break;
                 case 14 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1531:25: n= NOT t= MEMBEROF
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1514:25: n= NOT t= MEMBEROF
                     {
                     n=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_simple_operator4617); if (failed) return ;
+                    match(input,NOT,FOLLOW_NOT_in_simple_operator4559); if (failed) return ;
                     t=(Token)input.LT(1);
-                    match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator4621); if (failed) return ;
+                    match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator4563); if (failed) return ;
 
                     }
                     break;
                 case 15 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1532:5: TILDE t= ID (param= square_chunk )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1515:5: TILDE t= ID (param= square_chunk )?
                     {
-                    match(input,TILDE,FOLLOW_TILDE_in_simple_operator4627); if (failed) return ;
+                    match(input,TILDE,FOLLOW_TILDE_in_simple_operator4569); if (failed) return ;
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_simple_operator4631); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1532:21: (param= square_chunk )?
+                    match(input,ID,FOLLOW_ID_in_simple_operator4573); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1515:21: (param= square_chunk )?
                     int alt69=2;
                     int LA69_0 = input.LA(1);
 
@@ -6125,9 +6059,9 @@
                     }
                     switch (alt69) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1532:21: param= square_chunk
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1515:21: param= square_chunk
                             {
-                            pushFollow(FOLLOW_square_chunk_in_simple_operator4635);
+                            pushFollow(FOLLOW_square_chunk_in_simple_operator4577);
                             param=square_chunk();
                             _fsp--;
                             if (failed) return ;
@@ -6141,14 +6075,14 @@
                     }
                     break;
                 case 16 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1533:5: n= NOT TILDE t= ID (param= square_chunk )?
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1516:5: n= NOT TILDE t= ID (param= square_chunk )?
                     {
                     n=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_simple_operator4644); if (failed) return ;
-                    match(input,TILDE,FOLLOW_TILDE_in_simple_operator4646); if (failed) return ;
+                    match(input,NOT,FOLLOW_NOT_in_simple_operator4586); if (failed) return ;
+                    match(input,TILDE,FOLLOW_TILDE_in_simple_operator4588); if (failed) return ;
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_simple_operator4650); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1533:27: (param= square_chunk )?
+                    match(input,ID,FOLLOW_ID_in_simple_operator4592); if (failed) return ;
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1516:27: (param= square_chunk )?
                     int alt70=2;
                     int LA70_0 = input.LA(1);
 
@@ -6157,9 +6091,9 @@
                     }
                     switch (alt70) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1533:27: param= square_chunk
+                            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1516:27: param= square_chunk
                             {
-                            pushFollow(FOLLOW_square_chunk_in_simple_operator4654);
+                            pushFollow(FOLLOW_square_chunk_in_simple_operator4596);
                             param=square_chunk();
                             _fsp--;
                             if (failed) return ;
@@ -6186,7 +6120,7 @@
                	            } 
               		
             }
-            pushFollow(FOLLOW_expression_value_in_simple_operator4669);
+            pushFollow(FOLLOW_expression_value_in_simple_operator4611);
             rd=expression_value(base,  op,  isNegated,  paramText);
             _fsp--;
             if (failed) return ;
@@ -6211,7 +6145,7 @@
 
 
     // $ANTLR start compound_operator
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1552:1: compound_operator[RestrictionConnectiveDescr base] : ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1535:1: compound_operator[RestrictionConnectiveDescr base] : ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN ;
     public final void compound_operator(RestrictionConnectiveDescr base) throws RecognitionException {
         RestrictionDescr rd = null;
 
@@ -6221,10 +6155,10 @@
         		RestrictionConnectiveDescr group = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1557:2: ( ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1558:3: ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1540:2: ( ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:3: ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1558:3: ( IN | NOT IN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:3: ( IN | NOT IN )
             int alt72=2;
             int LA72_0 = input.LA(1);
 
@@ -6237,15 +6171,15 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1558:3: ( IN | NOT IN )", 72, 0, input);
+                    new NoViableAltException("1541:3: ( IN | NOT IN )", 72, 0, input);
 
                 throw nvae;
             }
             switch (alt72) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1558:5: IN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1541:5: IN
                     {
-                    match(input,IN,FOLLOW_IN_in_compound_operator4699); if (failed) return ;
+                    match(input,IN,FOLLOW_IN_in_compound_operator4641); if (failed) return ;
                     if ( backtracking==0 ) {
 
                       			  op = "==";
@@ -6259,10 +6193,10 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1566:5: NOT IN
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1549:5: NOT IN
                     {
-                    match(input,NOT,FOLLOW_NOT_in_compound_operator4711); if (failed) return ;
-                    match(input,IN,FOLLOW_IN_in_compound_operator4713); if (failed) return ;
+                    match(input,NOT,FOLLOW_NOT_in_compound_operator4653); if (failed) return ;
+                    match(input,IN,FOLLOW_IN_in_compound_operator4655); if (failed) return ;
                     if ( backtracking==0 ) {
 
                       			  op = "!=";
@@ -6278,12 +6212,12 @@
 
             }
 
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator4728); if (failed) return ;
-            pushFollow(FOLLOW_expression_value_in_compound_operator4732);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator4670); if (failed) return ;
+            pushFollow(FOLLOW_expression_value_in_compound_operator4674);
             rd=expression_value(group,  op,  false,  null);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1576:3: ( COMMA rd= expression_value[group, op, false, null] )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1559:3: ( COMMA rd= expression_value[group, op, false, null] )*
             loop73:
             do {
                 int alt73=2;
@@ -6296,10 +6230,10 @@
 
                 switch (alt73) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1576:5: COMMA rd= expression_value[group, op, false, null]
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1559:5: COMMA rd= expression_value[group, op, false, null]
             	    {
-            	    match(input,COMMA,FOLLOW_COMMA_in_compound_operator4739); if (failed) return ;
-            	    pushFollow(FOLLOW_expression_value_in_compound_operator4743);
+            	    match(input,COMMA,FOLLOW_COMMA_in_compound_operator4681); if (failed) return ;
+            	    pushFollow(FOLLOW_expression_value_in_compound_operator4685);
             	    rd=expression_value(group,  op,  false,  null);
             	    _fsp--;
             	    if (failed) return ;
@@ -6312,7 +6246,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator4752); if (failed) return ;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator4694); if (failed) return ;
             if ( backtracking==0 ) {
 
               			location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_END);
@@ -6334,7 +6268,7 @@
 
 
     // $ANTLR start expression_value
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1583:1: expression_value[RestrictionConnectiveDescr base, String op, boolean isNegated, String paramText] returns [RestrictionDescr rd] : (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1566:1: expression_value[RestrictionConnectiveDescr base, String op, boolean isNegated, String paramText] returns [RestrictionDescr rd] : (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) ;
     public final RestrictionDescr expression_value(RestrictionConnectiveDescr base, String op, boolean isNegated, String paramText) throws RecognitionException {
         RestrictionDescr rd = null;
 
@@ -6349,16 +6283,15 @@
         		rd = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1587:2: ( (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1588:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1570:2: ( (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1571:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1588:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1571:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
             int alt74=3;
             switch ( input.LA(1) ) {
             case PACKAGE:
             case IMPORT:
             case FUNCTION:
-            case EVENT:
             case ID:
             case GLOBAL:
             case QUERY:
@@ -6383,6 +6316,7 @@
             case MEMBEROF:
             case IN:
             case THEN:
+            case EVENT:
                 {
                 alt74=1;
                 }
@@ -6404,16 +6338,16 @@
             default:
                 if (backtracking>0) {failed=true; return rd;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1588:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )", 74, 0, input);
+                    new NoViableAltException("1571:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )", 74, 0, input);
 
                 throw nvae;
             }
 
             switch (alt74) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1588:5: ap= accessor_path
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1571:5: ap= accessor_path
                     {
-                    pushFollow(FOLLOW_accessor_path_in_expression_value4786);
+                    pushFollow(FOLLOW_accessor_path_in_expression_value4728);
                     ap=accessor_path();
                     _fsp--;
                     if (failed) return rd;
@@ -6430,9 +6364,9 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:5: lc= literal_constraint
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1579:5: lc= literal_constraint
                     {
-                    pushFollow(FOLLOW_literal_constraint_in_expression_value4806);
+                    pushFollow(FOLLOW_literal_constraint_in_expression_value4748);
                     lc=literal_constraint();
                     _fsp--;
                     if (failed) return rd;
@@ -6445,9 +6379,9 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:5: rvc= paren_chunk
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1583:5: rvc= paren_chunk
                     {
-                    pushFollow(FOLLOW_paren_chunk_in_expression_value4820);
+                    pushFollow(FOLLOW_paren_chunk_in_expression_value4762);
                     rvc=paren_chunk();
                     _fsp--;
                     if (failed) return rd;
@@ -6490,7 +6424,7 @@
     };
 
     // $ANTLR start literal_constraint
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1613:1: literal_constraint returns [String text, int type] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:1: literal_constraint returns [String text, int type] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
     public final literal_constraint_return literal_constraint() throws RecognitionException {
         literal_constraint_return retval = new literal_constraint_return();
         retval.start = input.LT(1);
@@ -6501,10 +6435,10 @@
         		retval.text = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1617:2: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1617:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:2: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
             {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1617:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
             int alt75=5;
             switch ( input.LA(1) ) {
             case STRING:
@@ -6535,17 +6469,17 @@
             default:
                 if (backtracking>0) {failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1617:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )", 75, 0, input);
+                    new NoViableAltException("1600:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )", 75, 0, input);
 
                 throw nvae;
             }
 
             switch (alt75) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1617:6: t= STRING
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:6: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_literal_constraint4863); if (failed) return retval;
+                    match(input,STRING,FOLLOW_STRING_in_literal_constraint4805); if (failed) return retval;
                     if ( backtracking==0 ) {
                        retval.text = getString( t.getText() ); retval.type = LiteralRestrictionDescr.TYPE_STRING; 
                     }
@@ -6553,10 +6487,10 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1618:5: t= INT
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1601:5: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_literal_constraint4874); if (failed) return retval;
+                    match(input,INT,FOLLOW_INT_in_literal_constraint4816); if (failed) return retval;
                     if ( backtracking==0 ) {
                        retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER; 
                     }
@@ -6564,10 +6498,10 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:5: t= FLOAT
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:5: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4887); if (failed) return retval;
+                    match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4829); if (failed) return retval;
                     if ( backtracking==0 ) {
                        retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER; 
                     }
@@ -6575,10 +6509,10 @@
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1620:5: t= BOOL
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1603:5: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4898); if (failed) return retval;
+                    match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4840); if (failed) return retval;
                     if ( backtracking==0 ) {
                        retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_BOOLEAN; 
                     }
@@ -6586,10 +6520,10 @@
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1621:5: t= NULL
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1604:5: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_literal_constraint4910); if (failed) return retval;
+                    match(input,NULL,FOLLOW_NULL_in_literal_constraint4852); if (failed) return retval;
                     if ( backtracking==0 ) {
                        retval.text = null; retval.type = LiteralRestrictionDescr.TYPE_NULL; 
                     }
@@ -6617,7 +6551,7 @@
 
 
     // $ANTLR start predicate
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1625:1: predicate[ConditionalElementDescr base] : text= paren_chunk ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1608:1: predicate[ConditionalElementDescr base] : text= paren_chunk ;
     public final void predicate(ConditionalElementDescr base) throws RecognitionException {
         paren_chunk_return text = null;
 
@@ -6626,10 +6560,10 @@
         		PredicateDescr d = null;
                 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1629:2: (text= paren_chunk )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1630:3: text= paren_chunk
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:2: (text= paren_chunk )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1613:3: text= paren_chunk
             {
-            pushFollow(FOLLOW_paren_chunk_in_predicate4948);
+            pushFollow(FOLLOW_paren_chunk_in_predicate4890);
             text=paren_chunk();
             _fsp--;
             if (failed) return ;
@@ -6661,23 +6595,23 @@
     };
 
     // $ANTLR start curly_chunk
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1642:1: curly_chunk : LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1625:1: curly_chunk : LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY ;
     public final curly_chunk_return curly_chunk() throws RecognitionException {
         curly_chunk_return retval = new curly_chunk_return();
         retval.start = input.LT(1);
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1643:2: ( LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1644:3: LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:2: ( LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:3: LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY
             {
-            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk4966); if (failed) return retval;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1644:14: (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )*
+            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk4908); if (failed) return retval;
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:14: (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )*
             loop76:
             do {
                 int alt76=3;
                 int LA76_0 = input.LA(1);
 
-                if ( ((LA76_0>=PACKAGE && LA76_0<=DECLARE)||(LA76_0>=STRING && LA76_0<=86)) ) {
+                if ( ((LA76_0>=PACKAGE && LA76_0<=DECLARE)||(LA76_0>=STRING && LA76_0<=85)) ) {
                     alt76=1;
                 }
                 else if ( (LA76_0==LEFT_CURLY) ) {
@@ -6687,9 +6621,9 @@
 
                 switch (alt76) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1644:16: ~ ( LEFT_CURLY | RIGHT_CURLY )
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:16: ~ ( LEFT_CURLY | RIGHT_CURLY )
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=DECLARE)||(input.LA(1)>=STRING && input.LA(1)<=86) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=DECLARE)||(input.LA(1)>=STRING && input.LA(1)<=85) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -6697,16 +6631,16 @@
             	        if (backtracking>0) {failed=true; return retval;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk4970);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk4912);    throw mse;
             	    }
 
 
             	    }
             	    break;
             	case 2 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1644:44: curly_chunk
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1627:44: curly_chunk
             	    {
-            	    pushFollow(FOLLOW_curly_chunk_in_curly_chunk4979);
+            	    pushFollow(FOLLOW_curly_chunk_in_curly_chunk4921);
             	    curly_chunk();
             	    _fsp--;
             	    if (failed) return retval;
@@ -6719,7 +6653,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk4984); if (failed) return retval;
+            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk4926); if (failed) return retval;
 
             }
 
@@ -6740,23 +6674,23 @@
     };
 
     // $ANTLR start paren_chunk
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:1: paren_chunk : LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1630:1: paren_chunk : LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN ;
     public final paren_chunk_return paren_chunk() throws RecognitionException {
         paren_chunk_return retval = new paren_chunk_return();
         retval.start = input.LT(1);
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1648:2: ( LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1649:3: LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1631:2: ( LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1632:3: LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk4998); if (failed) return retval;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1649:14: (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )*
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk4940); if (failed) return retval;
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1632:14: (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )*
             loop77:
             do {
                 int alt77=3;
                 int LA77_0 = input.LA(1);
 
-                if ( ((LA77_0>=PACKAGE && LA77_0<=GLOBAL)||LA77_0==COMMA||(LA77_0>=DECLARE && LA77_0<=86)) ) {
+                if ( ((LA77_0>=PACKAGE && LA77_0<=GLOBAL)||LA77_0==COMMA||(LA77_0>=DECLARE && LA77_0<=85)) ) {
                     alt77=1;
                 }
                 else if ( (LA77_0==LEFT_PAREN) ) {
@@ -6766,9 +6700,9 @@
 
                 switch (alt77) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1649:16: ~ ( LEFT_PAREN | RIGHT_PAREN )
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1632:16: ~ ( LEFT_PAREN | RIGHT_PAREN )
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=GLOBAL)||input.LA(1)==COMMA||(input.LA(1)>=DECLARE && input.LA(1)<=86) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=GLOBAL)||input.LA(1)==COMMA||(input.LA(1)>=DECLARE && input.LA(1)<=85) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -6776,16 +6710,16 @@
             	        if (backtracking>0) {failed=true; return retval;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk5002);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk4944);    throw mse;
             	    }
 
 
             	    }
             	    break;
             	case 2 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1649:44: paren_chunk
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1632:44: paren_chunk
             	    {
-            	    pushFollow(FOLLOW_paren_chunk_in_paren_chunk5011);
+            	    pushFollow(FOLLOW_paren_chunk_in_paren_chunk4953);
             	    paren_chunk();
             	    _fsp--;
             	    if (failed) return retval;
@@ -6798,7 +6732,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk5016); if (failed) return retval;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk4958); if (failed) return retval;
 
             }
 
@@ -6819,23 +6753,23 @@
     };
 
     // $ANTLR start square_chunk
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1652:1: square_chunk : LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1635:1: square_chunk : LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE ;
     public final square_chunk_return square_chunk() throws RecognitionException {
         square_chunk_return retval = new square_chunk_return();
         retval.start = input.LT(1);
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1653:2: ( LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1654:3: LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1636:2: ( LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1637:3: LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE
             {
-            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk5029); if (failed) return retval;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1654:15: (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )*
+            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk4971); if (failed) return retval;
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1637:15: (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )*
             loop78:
             do {
                 int alt78=3;
                 int LA78_0 = input.LA(1);
 
-                if ( ((LA78_0>=PACKAGE && LA78_0<=NULL)||(LA78_0>=THEN && LA78_0<=86)) ) {
+                if ( ((LA78_0>=PACKAGE && LA78_0<=NULL)||(LA78_0>=THEN && LA78_0<=85)) ) {
                     alt78=1;
                 }
                 else if ( (LA78_0==LEFT_SQUARE) ) {
@@ -6845,9 +6779,9 @@
 
                 switch (alt78) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1654:17: ~ ( LEFT_SQUARE | RIGHT_SQUARE )
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1637:17: ~ ( LEFT_SQUARE | RIGHT_SQUARE )
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=NULL)||(input.LA(1)>=THEN && input.LA(1)<=86) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=NULL)||(input.LA(1)>=THEN && input.LA(1)<=85) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -6855,16 +6789,16 @@
             	        if (backtracking>0) {failed=true; return retval;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk5033);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk4975);    throw mse;
             	    }
 
 
             	    }
             	    break;
             	case 2 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1654:47: square_chunk
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1637:47: square_chunk
             	    {
-            	    pushFollow(FOLLOW_square_chunk_in_square_chunk5042);
+            	    pushFollow(FOLLOW_square_chunk_in_square_chunk4984);
             	    square_chunk();
             	    _fsp--;
             	    if (failed) return retval;
@@ -6877,7 +6811,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk5047); if (failed) return retval;
+            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk4989); if (failed) return retval;
 
             }
 
@@ -6899,28 +6833,28 @@
     };
 
     // $ANTLR start qualified_id
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:1: qualified_id returns [ String text ] : ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1640:1: qualified_id returns [ String text ] : ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
     public final qualified_id_return qualified_id() throws RecognitionException {
         qualified_id_return retval = new qualified_id_return();
         retval.start = input.LT(1);
 
-        Token ID54=null;
-        identifier_return identifier55 = null;
+        Token ID53=null;
+        identifier_return identifier54 = null;
 
 
 
         	        StringBuffer buf = new StringBuffer();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:2: ( ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:5: ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:2: ( ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:5: ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
             {
-            ID54=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_qualified_id5076); if (failed) return retval;
+            ID53=(Token)input.LT(1);
+            match(input,ID,FOLLOW_ID_in_qualified_id5018); if (failed) return retval;
             if ( backtracking==0 ) {
-              buf.append(ID54.getText());
+              buf.append(ID53.getText());
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:32: ( DOT identifier )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:32: ( DOT identifier )*
             loop79:
             do {
                 int alt79=2;
@@ -6933,15 +6867,15 @@
 
                 switch (alt79) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:34: DOT identifier
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:34: DOT identifier
             	    {
-            	    match(input,DOT,FOLLOW_DOT_in_qualified_id5082); if (failed) return retval;
-            	    pushFollow(FOLLOW_identifier_in_qualified_id5084);
-            	    identifier55=identifier();
+            	    match(input,DOT,FOLLOW_DOT_in_qualified_id5024); if (failed) return retval;
+            	    pushFollow(FOLLOW_identifier_in_qualified_id5026);
+            	    identifier54=identifier();
             	    _fsp--;
             	    if (failed) return retval;
             	    if ( backtracking==0 ) {
-            	      buf.append("."+input.toString(identifier55.start,identifier55.stop));
+            	      buf.append("."+input.toString(identifier54.start,identifier54.stop));
             	    }
 
             	    }
@@ -6952,7 +6886,7 @@
                 }
             } while (true);
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:88: ( LEFT_SQUARE RIGHT_SQUARE )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:88: ( LEFT_SQUARE RIGHT_SQUARE )*
             loop80:
             do {
                 int alt80=2;
@@ -6965,10 +6899,10 @@
 
                 switch (alt80) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1664:90: LEFT_SQUARE RIGHT_SQUARE
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:90: LEFT_SQUARE RIGHT_SQUARE
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_qualified_id5093); if (failed) return retval;
-            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_qualified_id5095); if (failed) return retval;
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_qualified_id5035); if (failed) return retval;
+            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_qualified_id5037); if (failed) return retval;
             	    if ( backtracking==0 ) {
             	      buf.append("[]");
             	    }
@@ -7004,7 +6938,7 @@
 
 
     // $ANTLR start dotted_name
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1667:1: dotted_name returns [ String text ] : i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1650:1: dotted_name returns [ String text ] : i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
     public final String dotted_name() throws RecognitionException {
         String text = null;
 
@@ -7015,17 +6949,17 @@
         	        StringBuffer buf = new StringBuffer();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:2: (i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:4: i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:2: (i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:4: i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
             {
-            pushFollow(FOLLOW_identifier_in_dotted_name5129);
+            pushFollow(FOLLOW_identifier_in_dotted_name5071);
             i=identifier();
             _fsp--;
             if (failed) return text;
             if ( backtracking==0 ) {
               buf.append(input.toString(i.start,i.stop));
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:40: ( DOT i= identifier )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:40: ( DOT i= identifier )*
             loop81:
             do {
                 int alt81=2;
@@ -7038,10 +6972,10 @@
 
                 switch (alt81) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:42: DOT i= identifier
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:42: DOT i= identifier
             	    {
-            	    match(input,DOT,FOLLOW_DOT_in_dotted_name5135); if (failed) return text;
-            	    pushFollow(FOLLOW_identifier_in_dotted_name5139);
+            	    match(input,DOT,FOLLOW_DOT_in_dotted_name5077); if (failed) return text;
+            	    pushFollow(FOLLOW_identifier_in_dotted_name5081);
             	    i=identifier();
             	    _fsp--;
             	    if (failed) return text;
@@ -7057,7 +6991,7 @@
                 }
             } while (true);
 
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:89: ( LEFT_SQUARE RIGHT_SQUARE )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:89: ( LEFT_SQUARE RIGHT_SQUARE )*
             loop82:
             do {
                 int alt82=2;
@@ -7070,10 +7004,10 @@
 
                 switch (alt82) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:91: LEFT_SQUARE RIGHT_SQUARE
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:91: LEFT_SQUARE RIGHT_SQUARE
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name5148); if (failed) return text;
-            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name5150); if (failed) return text;
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name5090); if (failed) return text;
+            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name5092); if (failed) return text;
             	    if ( backtracking==0 ) {
             	      buf.append("[]");
             	    }
@@ -7110,7 +7044,7 @@
     };
 
     // $ANTLR start accessor_path
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1677:1: accessor_path returns [ String text ] : a= accessor_element ( DOT a= accessor_element )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1660:1: accessor_path returns [ String text ] : a= accessor_element ( DOT a= accessor_element )* ;
     public final accessor_path_return accessor_path() throws RecognitionException {
         accessor_path_return retval = new accessor_path_return();
         retval.start = input.LT(1);
@@ -7122,17 +7056,17 @@
         	        StringBuffer buf = new StringBuffer();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:2: (a= accessor_element ( DOT a= accessor_element )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:4: a= accessor_element ( DOT a= accessor_element )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1667:2: (a= accessor_element ( DOT a= accessor_element )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1667:4: a= accessor_element ( DOT a= accessor_element )*
             {
-            pushFollow(FOLLOW_accessor_element_in_accessor_path5184);
+            pushFollow(FOLLOW_accessor_element_in_accessor_path5126);
             a=accessor_element();
             _fsp--;
             if (failed) return retval;
             if ( backtracking==0 ) {
               buf.append(a);
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:46: ( DOT a= accessor_element )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1667:46: ( DOT a= accessor_element )*
             loop83:
             do {
                 int alt83=2;
@@ -7145,10 +7079,10 @@
 
                 switch (alt83) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:48: DOT a= accessor_element
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1667:48: DOT a= accessor_element
             	    {
-            	    match(input,DOT,FOLLOW_DOT_in_accessor_path5190); if (failed) return retval;
-            	    pushFollow(FOLLOW_accessor_element_in_accessor_path5194);
+            	    match(input,DOT,FOLLOW_DOT_in_accessor_path5132); if (failed) return retval;
+            	    pushFollow(FOLLOW_accessor_element_in_accessor_path5136);
             	    a=accessor_element();
             	    _fsp--;
             	    if (failed) return retval;
@@ -7187,7 +7121,7 @@
 
 
     // $ANTLR start accessor_element
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1687:1: accessor_element returns [ String text ] : i= identifier (s= square_chunk )* ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1670:1: accessor_element returns [ String text ] : i= identifier (s= square_chunk )* ;
     public final String accessor_element() throws RecognitionException {
         String text = null;
 
@@ -7200,17 +7134,17 @@
         	        StringBuffer buf = new StringBuffer();
         	
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:2: (i= identifier (s= square_chunk )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:3: i= identifier (s= square_chunk )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1677:2: (i= identifier (s= square_chunk )* )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1678:3: i= identifier (s= square_chunk )*
             {
-            pushFollow(FOLLOW_identifier_in_accessor_element5232);
+            pushFollow(FOLLOW_identifier_in_accessor_element5174);
             i=identifier();
             _fsp--;
             if (failed) return text;
             if ( backtracking==0 ) {
               buf.append(input.toString(i.start,i.stop));
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:39: (s= square_chunk )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1678:39: (s= square_chunk )*
             loop84:
             do {
                 int alt84=2;
@@ -7223,9 +7157,9 @@
 
                 switch (alt84) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:40: s= square_chunk
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1678:40: s= square_chunk
             	    {
-            	    pushFollow(FOLLOW_square_chunk_in_accessor_element5239);
+            	    pushFollow(FOLLOW_square_chunk_in_accessor_element5181);
             	    s=square_chunk();
             	    _fsp--;
             	    if (failed) return text;
@@ -7262,36 +7196,36 @@
 
 
     // $ANTLR start rhs_chunk
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1698:1: rhs_chunk[RuleDescr rule] : THEN (~ END )* loc= END opt_semicolon ;
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1681:1: rhs_chunk[RuleDescr rule] : THEN (~ END )* loc= END opt_semicolon ;
     public final void rhs_chunk(RuleDescr rule) throws RecognitionException {
         Token loc=null;
-        Token THEN56=null;
+        Token THEN55=null;
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1699:2: ( THEN (~ END )* loc= END opt_semicolon )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1700:3: THEN (~ END )* loc= END opt_semicolon
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1682:2: ( THEN (~ END )* loc= END opt_semicolon )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1683:3: THEN (~ END )* loc= END opt_semicolon
             {
-            THEN56=(Token)input.LT(1);
-            match(input,THEN,FOLLOW_THEN_in_rhs_chunk5260); if (failed) return ;
+            THEN55=(Token)input.LT(1);
+            match(input,THEN,FOLLOW_THEN_in_rhs_chunk5202); if (failed) return ;
             if ( backtracking==0 ) {
                location.setType( Location.LOCATION_RHS ); 
             }
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1701:3: (~ END )*
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:3: (~ END )*
             loop85:
             do {
                 int alt85=2;
                 int LA85_0 = input.LA(1);
 
-                if ( ((LA85_0>=PACKAGE && LA85_0<=QUERY)||(LA85_0>=TEMPLATE && LA85_0<=86)) ) {
+                if ( ((LA85_0>=PACKAGE && LA85_0<=QUERY)||(LA85_0>=TEMPLATE && LA85_0<=85)) ) {
                     alt85=1;
                 }
 
 
                 switch (alt85) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1701:5: ~ END
+            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1684:5: ~ END
             	    {
-            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=QUERY)||(input.LA(1)>=TEMPLATE && input.LA(1)<=86) ) {
+            	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=QUERY)||(input.LA(1)>=TEMPLATE && input.LA(1)<=85) ) {
             	        input.consume();
             	        errorRecovery=false;failed=false;
             	    }
@@ -7299,7 +7233,7 @@
             	        if (backtracking>0) {failed=true; return ;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk5268);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk5210);    throw mse;
             	    }
 
 
@@ -7312,15 +7246,15 @@
             } while (true);
 
             loc=(Token)input.LT(1);
-            match(input,END,FOLLOW_END_in_rhs_chunk5292); if (failed) return ;
-            pushFollow(FOLLOW_opt_semicolon_in_rhs_chunk5294);
+            match(input,END,FOLLOW_END_in_rhs_chunk5234); if (failed) return ;
+            pushFollow(FOLLOW_opt_semicolon_in_rhs_chunk5236);
             opt_semicolon();
             _fsp--;
             if (failed) return ;
             if ( backtracking==0 ) {
 
                                   // ignoring first line in the consequence
-                                  String buf = input.toString( THEN56, loc );
+                                  String buf = input.toString( THEN55, loc );
                                   // removing final END keyword
                                   int idx=4;
                                   while( idx < buf.length()-3 && (buf.charAt(idx) == ' ' || buf.charAt(idx) == '\t') ) {
@@ -7330,7 +7264,7 @@
                                   if( idx < buf.length()-3 && buf.charAt(idx) == '\n' ) idx++;
                                   buf = safeSubstring( buf, idx, buf.length()-3 );
               		    rule.setConsequence( buf );
-                   		    rule.setConsequenceLocation(offset(THEN56.getLine()), THEN56.getCharPositionInLine());
+                   		    rule.setConsequenceLocation(offset(THEN55.getLine()), THEN55.getCharPositionInLine());
                		    rule.setEndCharacter( ((CommonToken)loc).getStopIndex() );
                		    location.setProperty( Location.LOCATION_RHS_CONTENT, rule.getConsequence() );
                               
@@ -7354,16 +7288,16 @@
     };
 
     // $ANTLR start name
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:1: name returns [String name] : ( ID | STRING );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1704:1: name returns [String name] : ( ID | STRING );
     public final name_return name() throws RecognitionException {
         name_return retval = new name_return();
         retval.start = input.LT(1);
 
-        Token ID57=null;
-        Token STRING58=null;
+        Token ID56=null;
+        Token STRING57=null;
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:2: ( ID | STRING )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1705:2: ( ID | STRING )
             int alt86=2;
             int LA86_0 = input.LA(1);
 
@@ -7376,29 +7310,29 @@
             else {
                 if (backtracking>0) {failed=true; return retval;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1721:1: name returns [String name] : ( ID | STRING );", 86, 0, input);
+                    new NoViableAltException("1704:1: name returns [String name] : ( ID | STRING );", 86, 0, input);
 
                 throw nvae;
             }
             switch (alt86) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:5: ID
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1705:5: ID
                     {
-                    ID57=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_name5328); if (failed) return retval;
+                    ID56=(Token)input.LT(1);
+                    match(input,ID,FOLLOW_ID_in_name5270); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.name = ID57.getText(); 
+                       retval.name = ID56.getText(); 
                     }
 
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1723:5: STRING
+                    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1706:5: STRING
                     {
-                    STRING58=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_name5336); if (failed) return retval;
+                    STRING57=(Token)input.LT(1);
+                    match(input,STRING,FOLLOW_STRING_in_name5278); if (failed) return retval;
                     if ( backtracking==0 ) {
-                       retval.name = getString( STRING58.getText() ); 
+                       retval.name = getString( STRING57.getText() ); 
                     }
 
                     }
@@ -7418,75 +7352,20 @@
     }
     // $ANTLR end name
 
-
-    // $ANTLR start dashed_id
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:1: dashed_id : identifier ( '-' identifier )* ;
-    public final void dashed_id() throws RecognitionException {
-        try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1727:2: ( identifier ( '-' identifier )* )
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1727:4: identifier ( '-' identifier )*
-            {
-            pushFollow(FOLLOW_identifier_in_dashed_id5350);
-            identifier();
-            _fsp--;
-            if (failed) return ;
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1727:15: ( '-' identifier )*
-            loop87:
-            do {
-                int alt87=2;
-                int LA87_0 = input.LA(1);
-
-                if ( (LA87_0==86) ) {
-                    alt87=1;
-                }
-
-
-                switch (alt87) {
-            	case 1 :
-            	    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1727:17: '-' identifier
-            	    {
-            	    match(input,86,FOLLOW_86_in_dashed_id5354); if (failed) return ;
-            	    pushFollow(FOLLOW_identifier_in_dashed_id5356);
-            	    identifier();
-            	    _fsp--;
-            	    if (failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop87;
-                }
-            } while (true);
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end dashed_id
-
     public static class identifier_return extends ParserRuleReturnScope {
     };
 
     // $ANTLR start identifier
-    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:1: identifier : ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | EVENT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN );
+    // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:1: identifier : ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | EVENT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN );
     public final identifier_return identifier() throws RecognitionException {
         identifier_return retval = new identifier_return();
         retval.start = input.LT(1);
 
         try {
-            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1731:2: ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | EVENT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN )
+            // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1710:2: ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | EVENT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN )
             // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:
             {
-            if ( (input.LA(1)>=PACKAGE && input.LA(1)<=ID)||input.LA(1)==GLOBAL||(input.LA(1)>=QUERY && input.LA(1)<=ATTRIBUTES)||input.LA(1)==ENABLED||input.LA(1)==SALIENCE||(input.LA(1)>=DURATION && input.LA(1)<=DIALECT)||input.LA(1)==FROM||(input.LA(1)>=INIT && input.LA(1)<=RESULT)||(input.LA(1)>=CONTAINS && input.LA(1)<=MEMBEROF)||input.LA(1)==IN||input.LA(1)==THEN ) {
+            if ( (input.LA(1)>=PACKAGE && input.LA(1)<=ID)||input.LA(1)==GLOBAL||(input.LA(1)>=QUERY && input.LA(1)<=ATTRIBUTES)||input.LA(1)==ENABLED||input.LA(1)==SALIENCE||(input.LA(1)>=DURATION && input.LA(1)<=DIALECT)||input.LA(1)==FROM||(input.LA(1)>=INIT && input.LA(1)<=RESULT)||(input.LA(1)>=CONTAINS && input.LA(1)<=MEMBEROF)||input.LA(1)==IN||(input.LA(1)>=THEN && input.LA(1)<=EVENT) ) {
                 input.consume();
                 errorRecovery=false;failed=false;
             }
@@ -7515,10 +7394,10 @@
 
     // $ANTLR start synpred1
     public final void synpred1_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:6: ( EXISTS )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:8: EXISTS
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:6: ( EXISTS )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:8: EXISTS
         {
-        match(input,EXISTS,FOLLOW_EXISTS_in_synpred12274); if (failed) return ;
+        match(input,EXISTS,FOLLOW_EXISTS_in_synpred12216); if (failed) return ;
 
         }
     }
@@ -7526,10 +7405,10 @@
 
     // $ANTLR start synpred2
     public final void synpred2_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:845:5: ( NOT )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:845:7: NOT
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:828:5: ( NOT )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:828:7: NOT
         {
-        match(input,NOT,FOLLOW_NOT_in_synpred22292); if (failed) return ;
+        match(input,NOT,FOLLOW_NOT_in_synpred22234); if (failed) return ;
 
         }
     }
@@ -7537,10 +7416,10 @@
 
     // $ANTLR start synpred3
     public final void synpred3_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:5: ( EVAL )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:7: EVAL
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:829:5: ( EVAL )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:829:7: EVAL
         {
-        match(input,EVAL,FOLLOW_EVAL_in_synpred32311); if (failed) return ;
+        match(input,EVAL,FOLLOW_EVAL_in_synpred32253); if (failed) return ;
 
         }
     }
@@ -7548,10 +7427,10 @@
 
     // $ANTLR start synpred4
     public final void synpred4_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:847:5: ( FORALL )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:847:7: FORALL
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:830:5: ( FORALL )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:830:7: FORALL
         {
-        match(input,FORALL,FOLLOW_FORALL_in_synpred42330); if (failed) return ;
+        match(input,FORALL,FOLLOW_FORALL_in_synpred42272); if (failed) return ;
 
         }
     }
@@ -7559,10 +7438,10 @@
 
     // $ANTLR start synpred5
     public final void synpred5_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:848:5: ( LEFT_PAREN )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:848:7: LEFT_PAREN
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:5: ( LEFT_PAREN )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:831:7: LEFT_PAREN
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred52349); if (failed) return ;
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred52291); if (failed) return ;
 
         }
     }
@@ -7570,11 +7449,11 @@
 
     // $ANTLR start synpred6
     public final void synpred6_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:863:13: ( FROM ENTRY_POINT )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:863:14: FROM ENTRY_POINT
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:13: ( FROM ENTRY_POINT )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:846:14: FROM ENTRY_POINT
         {
-        match(input,FROM,FOLLOW_FROM_in_synpred62455); if (failed) return ;
-        match(input,ENTRY_POINT,FOLLOW_ENTRY_POINT_in_synpred62457); if (failed) return ;
+        match(input,FROM,FOLLOW_FROM_in_synpred62397); if (failed) return ;
+        match(input,ENTRY_POINT,FOLLOW_ENTRY_POINT_in_synpred62399); if (failed) return ;
 
         }
     }
@@ -7582,10 +7461,10 @@
 
     // $ANTLR start synpred9
     public final void synpred9_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1139:6: ( LEFT_SQUARE )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1139:8: LEFT_SQUARE
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1122:6: ( LEFT_SQUARE )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1122:8: LEFT_SQUARE
         {
-        match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred93396); if (failed) return ;
+        match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred93338); if (failed) return ;
 
         }
     }
@@ -7593,10 +7472,10 @@
 
     // $ANTLR start synpred10
     public final void synpred10_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1145:6: ( LEFT_PAREN )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1145:8: LEFT_PAREN
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1128:6: ( LEFT_PAREN )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1128:8: LEFT_PAREN
         {
-        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred103429); if (failed) return ;
+        match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred103371); if (failed) return ;
 
         }
     }
@@ -7604,11 +7483,11 @@
 
     // $ANTLR start synpred11
     public final void synpred11_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1461:4: ( DOUBLE_PIPE and_restr_connective[or] )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1461:4: DOUBLE_PIPE and_restr_connective[or]
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1444:4: ( DOUBLE_PIPE and_restr_connective[or] )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1444:4: DOUBLE_PIPE and_restr_connective[or]
         {
-        match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred114174); if (failed) return ;
-        pushFollow(FOLLOW_and_restr_connective_in_synpred114185);
+        match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred114116); if (failed) return ;
+        pushFollow(FOLLOW_and_restr_connective_in_synpred114127);
         and_restr_connective(or);
         _fsp--;
         if (failed) return ;
@@ -7619,11 +7498,11 @@
 
     // $ANTLR start synpred12
     public final void synpred12_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1483:5: ( DOUBLE_AMPER constraint_expression[and] )
-        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1483:5: DOUBLE_AMPER constraint_expression[and]
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1466:5: ( DOUBLE_AMPER constraint_expression[and] )
+        // /home/etirelli/workspace/jboss/temporal/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1466:5: DOUBLE_AMPER constraint_expression[and]
         {
-        match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred124237); if (failed) return ;
-        pushFollow(FOLLOW_constraint_expression_in_synpred124248);
+        match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred124179); if (failed) return ;
+        pushFollow(FOLLOW_constraint_expression_in_synpred124190);
         constraint_expression(and);
         _fsp--;
         if (failed) return ;
@@ -7785,26 +7664,26 @@
     static final String DFA8_eofS =
         "\6\uffff";
     static final String DFA8_minS =
-        "\2\4\1\uffff\1\100\1\uffff\1\4";
+        "\2\4\1\uffff\1\77\1\uffff\1\4";
     static final String DFA8_maxS =
-        "\2\101\1\uffff\1\100\1\uffff\1\101";
+        "\2\101\1\uffff\1\77\1\uffff\1\101";
     static final String DFA8_acceptS =
         "\2\uffff\1\1\1\uffff\1\2\1\uffff";
     static final String DFA8_specialS =
         "\6\uffff}>";
     static final String[] DFA8_transitionS = {
-            "\5\1\1\uffff\1\1\7\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6\uffff"+
+            "\4\1\1\uffff\1\1\7\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6\uffff"+
             "\2\1\5\uffff\1\1\5\uffff\4\1\2\uffff\5\1\1\uffff\1\1\4\uffff"+
-            "\1\1",
-            "\7\2\1\uffff\2\4\4\uffff\6\2\2\uffff\1\2\1\uffff\1\2\6\uffff"+
+            "\2\1",
+            "\6\2\1\uffff\2\4\4\uffff\6\2\2\uffff\1\2\1\uffff\1\2\6\uffff"+
             "\2\2\5\uffff\1\2\5\uffff\4\2\2\uffff\5\2\1\uffff\1\2\2\uffff"+
-            "\1\3\1\uffff\1\2",
+            "\1\3\1\uffff\2\2",
             "",
             "\1\5",
             "",
-            "\5\2\1\uffff\1\2\1\uffff\2\4\4\uffff\6\2\2\uffff\1\2\1\uffff"+
+            "\4\2\1\uffff\1\2\1\uffff\2\4\4\uffff\6\2\2\uffff\1\2\1\uffff"+
             "\1\2\6\uffff\2\2\5\uffff\1\2\5\uffff\4\2\2\uffff\5\2\1\uffff"+
-            "\1\2\2\uffff\1\3\1\uffff\1\2"
+            "\1\2\2\uffff\1\3\1\uffff\2\2"
     };
 
     static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);
@@ -7837,7 +7716,7 @@
             this.transition = DFA8_transition;
         }
         public String getDescription() {
-            return "362:15: (paramType= dotted_name )?";
+            return "345:15: (paramType= dotted_name )?";
         }
     }
     static final String DFA9_eotS =
@@ -7845,26 +7724,26 @@
     static final String DFA9_eofS =
         "\6\uffff";
     static final String DFA9_minS =
-        "\2\4\1\100\2\uffff\1\4";
+        "\2\4\1\uffff\1\77\1\uffff\1\4";
     static final String DFA9_maxS =
-        "\2\101\1\100\2\uffff\1\101";
+        "\2\101\1\uffff\1\77\1\uffff\1\101";
     static final String DFA9_acceptS =
-        "\3\uffff\1\2\1\1\1\uffff";
+        "\2\uffff\1\1\1\uffff\1\2\1\uffff";
     static final String DFA9_specialS =
         "\6\uffff}>";
     static final String[] DFA9_transitionS = {
-            "\5\1\1\uffff\1\1\7\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6\uffff"+
+            "\4\1\1\uffff\1\1\7\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6\uffff"+
             "\2\1\5\uffff\1\1\5\uffff\4\1\2\uffff\5\1\1\uffff\1\1\4\uffff"+
-            "\1\1",
-            "\7\4\1\uffff\2\3\4\uffff\6\4\2\uffff\1\4\1\uffff\1\4\6\uffff"+
-            "\2\4\5\uffff\1\4\5\uffff\4\4\2\uffff\5\4\1\uffff\1\4\2\uffff"+
-            "\1\2\1\uffff\1\4",
+            "\2\1",
+            "\6\2\1\uffff\2\4\4\uffff\6\2\2\uffff\1\2\1\uffff\1\2\6\uffff"+
+            "\2\2\5\uffff\1\2\5\uffff\4\2\2\uffff\5\2\1\uffff\1\2\2\uffff"+
+            "\1\3\1\uffff\2\2",
+            "",
             "\1\5",
             "",
-            "",
-            "\5\4\1\uffff\1\4\1\uffff\2\3\4\uffff\6\4\2\uffff\1\4\1\uffff"+
-            "\1\4\6\uffff\2\4\5\uffff\1\4\5\uffff\4\4\2\uffff\5\4\1\uffff"+
-            "\1\4\2\uffff\1\2\1\uffff\1\4"
+            "\4\2\1\uffff\1\2\1\uffff\2\4\4\uffff\6\2\2\uffff\1\2\1\uffff"+
+            "\1\2\6\uffff\2\2\5\uffff\1\2\5\uffff\4\2\2\uffff\5\2\1\uffff"+
+            "\1\2\2\uffff\1\3\1\uffff\2\2"
     };
 
     static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS);
@@ -7897,7 +7776,7 @@
             this.transition = DFA9_transition;
         }
         public String getDescription() {
-            return "367:22: (paramType= dotted_name )?";
+            return "350:22: (paramType= dotted_name )?";
         }
     }
     static final String DFA19_eotS =
@@ -7905,9 +7784,9 @@
     static final String DFA19_eofS =
         "\11\uffff";
     static final String DFA19_minS =
-        "\2\10\1\uffff\1\10\1\uffff\1\4\1\100\2\10";
+        "\2\7\1\uffff\1\7\1\uffff\1\4\1\77\2\7";
     static final String DFA19_maxS =
-        "\2\56\1\uffff\1\116\1\uffff\1\101\1\100\2\77";
+        "\2\55\1\uffff\1\116\1\uffff\1\101\1\77\2\76";
     static final String DFA19_acceptS =
         "\2\uffff\1\2\1\uffff\1\1\4\uffff";
     static final String DFA19_specialS =
@@ -7917,11 +7796,11 @@
             "\1\3\2\uffff\1\2\1\uffff\1\4\30\uffff\1\2\1\uffff\1\2\2\uffff"+
             "\4\2",
             "",
-            "\1\4\1\5\1\uffff\1\2\2\4\61\uffff\1\6\16\uffff\1\2",
+            "\1\4\1\5\1\uffff\1\2\2\4\61\uffff\1\6\17\uffff\1\2",
             "",
-            "\5\7\1\uffff\1\7\7\uffff\6\7\2\uffff\1\7\1\uffff\1\7\6\uffff"+
+            "\4\7\1\uffff\1\7\7\uffff\6\7\2\uffff\1\7\1\uffff\1\7\6\uffff"+
             "\2\7\5\uffff\1\7\5\uffff\4\7\2\uffff\5\7\1\uffff\1\7\4\uffff"+
-            "\1\7",
+            "\2\7",
             "\1\10",
             "\1\4\1\5\1\uffff\1\2\63\uffff\1\6",
             "\1\4\2\uffff\1\2\63\uffff\1\6"
@@ -7957,7 +7836,7 @@
             this.transition = DFA19_transition;
         }
         public String getDescription() {
-            return "435:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?";
+            return "418:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?";
         }
     }
     static final String DFA54_eotS =
@@ -7965,109 +7844,105 @@
     static final String DFA54_eofS =
         "\150\uffff";
     static final String DFA54_minS =
-        "\1\10\1\uffff\1\4\1\uffff\2\4\1\0\5\4\2\uffff\1\4\1\0\5\4\1\0\5"+
-        "\4\1\0\1\4\3\0\2\4\1\0\2\4\1\0\1\4\3\0\2\4\1\0\2\4\1\0\1\4\3\0\2"+
-        "\4\1\0\3\4\1\0\3\4\1\0\2\4\1\0\1\4\1\uffff\44\0";
+        "\1\7\1\uffff\1\4\1\uffff\2\4\1\0\5\4\2\uffff\1\0\11\4\1\0\1\4\1"+
+        "\0\1\4\1\0\1\4\2\0\3\4\2\0\2\4\3\0\3\4\2\0\2\4\3\0\3\4\1\0\3\4\1"+
+        "\0\3\4\1\0\1\4\1\0\1\4\1\uffff\44\0";
     static final String DFA54_maxS =
-        "\1\114\1\uffff\1\126\1\uffff\2\126\1\0\5\126\2\uffff\1\126\1\0\5"+
-        "\126\1\0\5\126\1\0\1\126\3\0\2\126\1\0\2\126\1\0\1\126\3\0\2\126"+
-        "\1\0\2\126\1\0\1\126\3\0\2\126\1\0\3\126\1\0\3\126\1\0\2\126\1\0"+
-        "\1\126\1\uffff\44\0";
+        "\1\114\1\uffff\1\125\1\uffff\2\125\1\0\5\125\2\uffff\1\0\11\125"+
+        "\1\0\1\125\1\0\1\125\1\0\1\125\2\0\3\125\2\0\2\125\3\0\3\125\2\0"+
+        "\2\125\3\0\3\125\1\0\3\125\1\0\3\125\1\0\1\125\1\0\1\125\1\uffff"+
+        "\44\0";
     static final String DFA54_acceptS =
         "\1\uffff\1\1\1\uffff\1\3\10\uffff\2\2\65\uffff\1\2\44\uffff";
     static final String DFA54_specialS =
-        "\1\6\1\uffff\1\56\1\uffff\1\67\1\35\1\27\1\45\1\51\1\26\1\57\1\25"+
-        "\2\uffff\1\20\1\22\1\44\1\32\1\21\1\55\1\5\1\1\1\7\1\30\1\46\1\64"+
-        "\1\24\1\61\1\23\1\12\1\65\1\40\1\73\1\2\1\66\1\41\1\54\1\47\1\53"+
-        "\1\60\1\71\1\76\1\15\1\37\1\16\1\14\1\63\1\33\1\62\1\13\1\17\1\50"+
-        "\1\11\1\36\1\0\1\52\1\74\1\3\1\34\1\42\1\75\1\4\1\31\1\43\1\72\1"+
-        "\10\1\70\45\uffff}>";
+        "\1\1\1\uffff\1\36\1\uffff\1\26\1\67\1\43\1\25\1\22\1\32\1\54\1\35"+
+        "\2\uffff\1\4\1\47\1\20\1\10\1\53\1\7\1\57\1\41\1\72\1\71\1\42\1"+
+        "\63\1\21\1\34\1\70\1\33\1\15\1\56\1\44\1\73\1\12\1\64\1\24\1\6\1"+
+        "\5\1\2\1\40\1\37\1\52\1\30\1\50\1\11\1\17\1\62\1\61\1\74\1\16\1"+
+        "\0\1\60\1\31\1\27\1\55\1\45\1\75\1\13\1\65\1\46\1\76\1\14\1\66\1"+
+        "\51\1\23\1\3\45\uffff}>";
     static final String[] DFA54_transitionS = {
             "\2\3\1\uffff\1\2\2\3\5\uffff\1\3\22\uffff\4\3\1\uffff\4\3\1"+
-            "\uffff\1\3\16\uffff\1\1\1\uffff\1\3\12\uffff\1\3",
+            "\uffff\1\3\16\uffff\1\1\1\uffff\1\3\13\uffff\1\3",
             "",
-            "\4\14\1\13\2\14\1\6\1\14\1\15\30\14\1\4\1\14\1\5\2\14\1\7\1"+
+            "\3\14\1\13\2\14\1\6\1\14\1\15\30\14\1\4\1\14\1\5\2\14\1\7\1"+
             "\10\1\11\1\12\50\14",
             "",
-            "\4\14\1\23\2\14\1\17\1\14\1\15\35\14\1\16\1\20\1\21\1\22\50"+
+            "\3\14\1\23\2\14\1\16\1\14\1\15\35\14\1\17\1\20\1\21\1\22\50"+
             "\14",
-            "\4\14\1\31\2\14\1\25\1\14\1\15\35\14\1\24\1\26\1\27\1\30\50"+
+            "\3\14\1\31\2\14\1\30\1\14\1\15\35\14\1\24\1\25\1\26\1\27\50"+
             "\14",
             "\1\uffff",
-            "\4\14\1\32\2\14\1\33\1\14\1\15\111\14",
-            "\4\14\1\34\2\14\1\35\1\14\1\15\111\14",
-            "\7\14\1\36\1\14\1\15\111\14",
-            "\7\14\1\37\1\14\1\15\111\14",
-            "\5\14\1\41\1\14\1\42\1\14\1\15\61\14\1\43\16\14\1\40\10\14",
+            "\3\14\1\33\2\14\1\32\1\14\1\15\111\14",
+            "\3\14\1\35\2\14\1\34\1\14\1\15\111\14",
+            "\6\14\1\36\1\14\1\15\111\14",
+            "\6\14\1\37\1\14\1\15\111\14",
+            "\4\14\1\41\1\14\1\43\1\14\1\15\61\14\1\42\17\14\1\40\7\14",
             "",
             "",
-            "\4\14\1\44\2\14\1\45\1\14\1\15\111\14",
             "\1\uffff",
-            "\4\14\1\46\2\14\1\47\1\14\1\15\111\14",
-            "\7\14\1\50\1\14\1\15\111\14",
-            "\7\14\1\51\1\14\1\15\111\14",
-            "\5\14\1\53\1\14\1\54\1\14\1\15\61\14\1\55\16\14\1\52\10\14",
-            "\4\14\1\56\2\14\1\57\1\14\1\15\111\14",
+            "\3\14\1\45\2\14\1\44\1\14\1\15\111\14",
+            "\3\14\1\46\2\14\1\47\1\14\1\15\111\14",
+            "\6\14\1\50\1\14\1\15\111\14",
+            "\6\14\1\51\1\14\1\15\111\14",
+            "\4\14\1\53\1\14\1\55\1\14\1\15\61\14\1\54\17\14\1\52\7\14",
+            "\3\14\1\57\2\14\1\56\1\14\1\15\111\14",
+            "\3\14\1\60\2\14\1\61\1\14\1\15\111\14",
+            "\6\14\1\62\1\14\1\15\111\14",
+            "\6\14\1\63\1\14\1\15\111\14",
             "\1\uffff",
-            "\4\14\1\60\2\14\1\61\1\14\1\15\111\14",
-            "\7\14\1\62\1\14\1\15\111\14",
-            "\7\14\1\63\1\14\1\15\111\14",
-            "\5\14\1\65\1\14\1\66\1\14\1\15\61\14\1\67\16\14\1\64\10\14",
-            "\5\14\1\71\1\14\1\72\1\14\1\15\61\14\1\73\16\14\1\70\10\14",
+            "\4\14\1\65\1\14\1\67\1\14\1\15\61\14\1\66\17\14\1\64\7\14",
             "\1\uffff",
-            "\5\14\1\75\1\14\1\76\1\14\1\15\61\14\1\77\16\14\1\74\10\14",
+            "\4\14\1\71\1\14\1\73\1\14\1\15\61\14\1\72\17\14\1\70\7\14",
             "\1\uffff",
+            "\4\14\1\75\1\14\1\77\1\14\1\15\61\14\1\76\17\14\1\74\7\14",
             "\1\uffff",
             "\1\uffff",
-            "\4\14\1\100\2\14\1\101\1\14\1\15\111\14",
-            "\5\102\1\14\1\102\1\103\1\14\1\15\4\14\6\102\2\14\1\102\1\14"+
+            "\3\14\1\100\2\14\1\101\1\14\1\15\111\14",
+            "\4\102\1\14\1\102\1\103\1\14\1\15\4\14\6\102\2\14\1\102\1\14"+
             "\1\102\6\14\2\102\5\14\1\102\5\14\4\102\2\14\5\102\1\14\1\102"+
-            "\4\14\1\102\25\14",
+            "\4\14\2\102\24\14",
+            "\6\14\1\103\1\14\1\15\62\14\1\104\26\14",
             "\1\uffff",
-            "\7\14\1\103\1\14\1\15\62\14\1\104\26\14",
-            "\5\14\1\106\1\14\1\107\1\14\1\15\61\14\1\110\16\14\1\105\10"+
-            "\14",
             "\1\uffff",
-            "\5\14\1\112\1\14\1\113\1\14\1\15\61\14\1\114\16\14\1\111\10"+
-            "\14",
+            "\4\14\1\106\1\14\1\110\1\14\1\15\61\14\1\107\17\14\1\105\7\14",
+            "\4\14\1\112\1\14\1\114\1\14\1\15\61\14\1\113\17\14\1\111\7\14",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
-            "\4\14\1\115\2\14\1\116\1\14\1\15\111\14",
-            "\5\117\1\14\1\117\1\103\1\14\1\15\4\14\6\117\2\14\1\117\1\14"+
+            "\3\14\1\115\2\14\1\116\1\14\1\15\111\14",
+            "\4\117\1\14\1\117\1\103\1\14\1\15\4\14\6\117\2\14\1\117\1\14"+
             "\1\117\6\14\2\117\5\14\1\117\5\14\4\117\2\14\5\117\1\14\1\117"+
-            "\4\14\1\117\25\14",
+            "\4\14\2\117\24\14",
+            "\6\14\1\103\1\14\1\15\62\14\1\120\26\14",
             "\1\uffff",
-            "\7\14\1\103\1\14\1\15\62\14\1\120\26\14",
-            "\5\14\1\122\1\14\1\123\1\14\1\15\61\14\1\124\16\14\1\121\10"+
-            "\14",
             "\1\uffff",
-            "\5\14\1\126\1\14\1\127\1\14\1\15\61\14\1\130\16\14\1\125\10"+
-            "\14",
+            "\4\14\1\122\1\14\1\124\1\14\1\15\61\14\1\123\17\14\1\121\7\14",
+            "\4\14\1\126\1\14\1\130\1\14\1\15\61\14\1\127\17\14\1\125\7\14",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
-            "\4\14\1\131\2\14\1\132\1\14\1\15\111\14",
-            "\5\133\1\14\1\133\1\103\1\14\1\15\4\14\6\133\2\14\1\133\1\14"+
+            "\3\14\1\131\2\14\1\132\1\14\1\15\111\14",
+            "\4\133\1\14\1\133\1\103\1\14\1\15\4\14\6\133\2\14\1\133\1\14"+
             "\1\133\6\14\2\133\5\14\1\133\5\14\4\133\2\14\5\133\1\14\1\133"+
-            "\4\14\1\133\25\14",
+            "\4\14\2\133\24\14",
+            "\6\14\1\103\1\14\1\15\62\14\1\134\26\14",
             "\1\uffff",
-            "\7\14\1\103\1\14\1\15\62\14\1\134\26\14",
-            "\4\14\1\135\2\14\1\136\1\14\1\15\111\14",
-            "\5\137\1\14\1\137\1\103\1\14\1\15\4\14\6\137\2\14\1\137\1\14"+
+            "\3\14\1\135\2\14\1\136\1\14\1\15\111\14",
+            "\4\137\1\14\1\137\1\103\1\14\1\15\4\14\6\137\2\14\1\137\1\14"+
             "\1\137\6\14\2\137\5\14\1\137\5\14\4\137\2\14\5\137\1\14\1\137"+
-            "\4\14\1\137\25\14",
+            "\4\14\2\137\24\14",
+            "\6\14\1\103\1\14\1\15\62\14\1\140\26\14",
             "\1\uffff",
-            "\7\14\1\103\1\14\1\15\62\14\1\140\26\14",
-            "\4\14\1\141\2\14\1\142\1\14\1\15\111\14",
-            "\5\143\1\14\1\143\1\103\1\14\1\15\4\14\6\143\2\14\1\143\1\14"+
+            "\3\14\1\141\2\14\1\142\1\14\1\15\111\14",
+            "\4\143\1\14\1\143\1\103\1\14\1\15\4\14\6\143\2\14\1\143\1\14"+
             "\1\143\6\14\2\143\5\14\1\143\5\14\4\143\2\14\5\143\1\14\1\143"+
-            "\4\14\1\143\25\14",
+            "\4\14\2\143\24\14",
+            "\6\14\1\103\1\14\1\15\62\14\1\144\26\14",
             "\1\uffff",
-            "\7\14\1\103\1\14\1\15\62\14\1\144\26\14",
-            "\5\14\1\145\1\14\1\146\1\14\1\15\61\14\1\147\27\14",
+            "\4\14\1\145\1\14\1\147\1\14\1\15\61\14\1\146\27\14",
             "\1\uffff",
-            "\5\14\1\41\1\14\1\42\1\14\1\15\61\14\1\43\27\14",
+            "\4\14\1\41\1\14\1\43\1\14\1\15\61\14\1\42\27\14",
             "",
             "\1\uffff",
             "\1\uffff",
@@ -8137,16 +8012,16 @@
             this.transition = DFA54_transition;
         }
         public String getDescription() {
-            return "1138:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?";
+            return "1121:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?";
         }
         public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA54_54 = input.LA(1);
+                        int LA54_51 = input.LA(1);
 
                          
-                        int index54_54 = input.index();
+                        int index54_51 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred10()) ) {s = 67;}
@@ -8154,243 +8029,255 @@
                         else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index54_54);
+                        input.seek(index54_51);
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA54_21 = input.LA(1);
+                        int LA54_0 = input.LA(1);
 
                          
-                        int index54_21 = input.index();
+                        int index54_0 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 13;}
+                        if ( (LA54_0==LEFT_SQUARE) && (synpred9())) {s = 1;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_0==LEFT_PAREN) ) {s = 2;}
 
+                        else if ( ((LA54_0>=ID && LA54_0<=DOT)||(LA54_0>=COMMA && LA54_0<=RIGHT_PAREN)||LA54_0==END||(LA54_0>=OR && LA54_0<=DOUBLE_AMPER)||(LA54_0>=EXISTS && LA54_0<=FORALL)||LA54_0==INIT||LA54_0==THEN||LA54_0==76) ) {s = 3;}
+
                          
-                        input.seek(index54_21);
+                        input.seek(index54_0);
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA54_33 = input.LA(1);
+                        int LA54_39 = input.LA(1);
 
                          
-                        int index54_33 = input.index();
+                        int index54_39 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_33==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (synpred10()) ) {s = 67;}
 
-                        else if ( ((LA54_33>=PACKAGE && LA54_33<=ID)||LA54_33==GLOBAL||(LA54_33>=QUERY && LA54_33<=ATTRIBUTES)||LA54_33==ENABLED||LA54_33==SALIENCE||(LA54_33>=DURATION && LA54_33<=DIALECT)||LA54_33==FROM||(LA54_33>=INIT && LA54_33<=RESULT)||(LA54_33>=CONTAINS && LA54_33<=MEMBEROF)||LA54_33==IN||LA54_33==THEN) ) {s = 66;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_33==LEFT_PAREN) && (synpred10())) {s = 67;}
-
-                        else if ( (LA54_33==DOT||LA54_33==COMMA||(LA54_33>=DECLARE && LA54_33<=STRING)||(LA54_33>=DATE_EFFECTIVE && LA54_33<=DATE_EXPIRES)||LA54_33==BOOL||(LA54_33>=INT && LA54_33<=AGENDA_GROUP)||(LA54_33>=LOCK_ON_ACTIVE && LA54_33<=DOUBLE_AMPER)||(LA54_33>=EXISTS && LA54_33<=ACCUMULATE)||(LA54_33>=COLLECT && LA54_33<=ENTRY_POINT)||LA54_33==TILDE||(LA54_33>=FLOAT && LA54_33<=RIGHT_SQUARE)||(LA54_33>=EOL && LA54_33<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_33);
+                        input.seek(index54_39);
                         if ( s>=0 ) return s;
                         break;
                     case 3 : 
-                        int LA54_57 = input.LA(1);
+                        int LA54_66 = input.LA(1);
 
                          
-                        int index54_57 = input.index();
+                        int index54_66 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_57==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_66==LEFT_SQUARE) ) {s = 34;}
 
-                        else if ( ((LA54_57>=PACKAGE && LA54_57<=ID)||LA54_57==GLOBAL||(LA54_57>=QUERY && LA54_57<=ATTRIBUTES)||LA54_57==ENABLED||LA54_57==SALIENCE||(LA54_57>=DURATION && LA54_57<=DIALECT)||LA54_57==FROM||(LA54_57>=INIT && LA54_57<=RESULT)||(LA54_57>=CONTAINS && LA54_57<=MEMBEROF)||LA54_57==IN||LA54_57==THEN) ) {s = 95;}
+                        else if ( (LA54_66==LEFT_PAREN) ) {s = 35;}
 
-                        else if ( (LA54_57==LEFT_PAREN) && (synpred10())) {s = 67;}
+                        else if ( (LA54_66==DOT) ) {s = 33;}
 
-                        else if ( (LA54_57==DOT||LA54_57==COMMA||(LA54_57>=DECLARE && LA54_57<=STRING)||(LA54_57>=DATE_EFFECTIVE && LA54_57<=DATE_EXPIRES)||LA54_57==BOOL||(LA54_57>=INT && LA54_57<=AGENDA_GROUP)||(LA54_57>=LOCK_ON_ACTIVE && LA54_57<=DOUBLE_AMPER)||(LA54_57>=EXISTS && LA54_57<=ACCUMULATE)||(LA54_57>=COLLECT && LA54_57<=ENTRY_POINT)||LA54_57==TILDE||(LA54_57>=FLOAT && LA54_57<=RIGHT_SQUARE)||(LA54_57>=EOL && LA54_57<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_66==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_66>=PACKAGE && LA54_66<=ID)||LA54_66==GLOBAL||LA54_66==COMMA||(LA54_66>=DECLARE && LA54_66<=NULL)||(LA54_66>=RIGHT_SQUARE && LA54_66<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_57);
+                        input.seek(index54_66);
                         if ( s>=0 ) return s;
                         break;
                     case 4 : 
-                        int LA54_61 = input.LA(1);
+                        int LA54_14 = input.LA(1);
 
                          
-                        int index54_61 = input.index();
+                        int index54_14 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_61==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (synpred10()) ) {s = 13;}
 
-                        else if ( ((LA54_61>=PACKAGE && LA54_61<=ID)||LA54_61==GLOBAL||(LA54_61>=QUERY && LA54_61<=ATTRIBUTES)||LA54_61==ENABLED||LA54_61==SALIENCE||(LA54_61>=DURATION && LA54_61<=DIALECT)||LA54_61==FROM||(LA54_61>=INIT && LA54_61<=RESULT)||(LA54_61>=CONTAINS && LA54_61<=MEMBEROF)||LA54_61==IN||LA54_61==THEN) ) {s = 99;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_61==LEFT_PAREN) && (synpred10())) {s = 67;}
-
-                        else if ( (LA54_61==DOT||LA54_61==COMMA||(LA54_61>=DECLARE && LA54_61<=STRING)||(LA54_61>=DATE_EFFECTIVE && LA54_61<=DATE_EXPIRES)||LA54_61==BOOL||(LA54_61>=INT && LA54_61<=AGENDA_GROUP)||(LA54_61>=LOCK_ON_ACTIVE && LA54_61<=DOUBLE_AMPER)||(LA54_61>=EXISTS && LA54_61<=ACCUMULATE)||(LA54_61>=COLLECT && LA54_61<=ENTRY_POINT)||LA54_61==TILDE||(LA54_61>=FLOAT && LA54_61<=RIGHT_SQUARE)||(LA54_61>=EOL && LA54_61<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_61);
+                        input.seek(index54_14);
                         if ( s>=0 ) return s;
                         break;
                     case 5 : 
-                        int LA54_20 = input.LA(1);
+                        int LA54_38 = input.LA(1);
 
                          
-                        int index54_20 = input.index();
+                        int index54_38 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_20==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_38==78) ) {s = 73;}
 
-                        else if ( (LA54_20==ID) ) {s = 46;}
+                        else if ( (LA54_38==DOT) ) {s = 74;}
 
-                        else if ( (LA54_20==LEFT_PAREN) ) {s = 47;}
+                        else if ( (LA54_38==LEFT_SQUARE) ) {s = 75;}
 
-                        else if ( ((LA54_20>=PACKAGE && LA54_20<=EVENT)||(LA54_20>=DOT && LA54_20<=GLOBAL)||LA54_20==COMMA||(LA54_20>=DECLARE && LA54_20<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_38==LEFT_PAREN) ) {s = 76;}
 
+                        else if ( (LA54_38==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_38>=PACKAGE && LA54_38<=ID)||LA54_38==GLOBAL||LA54_38==COMMA||(LA54_38>=DECLARE && LA54_38<=NULL)||(LA54_38>=RIGHT_SQUARE && LA54_38<=77)||(LA54_38>=79 && LA54_38<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_20);
+                        input.seek(index54_38);
                         if ( s>=0 ) return s;
                         break;
                     case 6 : 
-                        int LA54_0 = input.LA(1);
+                        int LA54_37 = input.LA(1);
 
                          
-                        int index54_0 = input.index();
+                        int index54_37 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_0==LEFT_SQUARE) && (synpred9())) {s = 1;}
+                        if ( (LA54_37==78) ) {s = 69;}
 
-                        else if ( (LA54_0==LEFT_PAREN) ) {s = 2;}
+                        else if ( (LA54_37==DOT) ) {s = 70;}
 
-                        else if ( ((LA54_0>=ID && LA54_0<=DOT)||(LA54_0>=COMMA && LA54_0<=RIGHT_PAREN)||LA54_0==END||(LA54_0>=OR && LA54_0<=DOUBLE_AMPER)||(LA54_0>=EXISTS && LA54_0<=FORALL)||LA54_0==INIT||LA54_0==THEN||LA54_0==76) ) {s = 3;}
+                        else if ( (LA54_37==LEFT_SQUARE) ) {s = 71;}
 
+                        else if ( (LA54_37==LEFT_PAREN) ) {s = 72;}
+
+                        else if ( (LA54_37==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_37>=PACKAGE && LA54_37<=ID)||LA54_37==GLOBAL||LA54_37==COMMA||(LA54_37>=DECLARE && LA54_37<=NULL)||(LA54_37>=RIGHT_SQUARE && LA54_37<=77)||(LA54_37>=79 && LA54_37<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_0);
+                        input.seek(index54_37);
                         if ( s>=0 ) return s;
                         break;
                     case 7 : 
-                        int LA54_22 = input.LA(1);
+                        int LA54_19 = input.LA(1);
 
                          
-                        int index54_22 = input.index();
+                        int index54_19 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_22==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_19==78) ) {s = 42;}
 
-                        else if ( (LA54_22==ID) ) {s = 48;}
+                        else if ( (LA54_19==DOT) ) {s = 43;}
 
-                        else if ( (LA54_22==LEFT_PAREN) ) {s = 49;}
+                        else if ( (LA54_19==LEFT_SQUARE) ) {s = 44;}
 
-                        else if ( ((LA54_22>=PACKAGE && LA54_22<=EVENT)||(LA54_22>=DOT && LA54_22<=GLOBAL)||LA54_22==COMMA||(LA54_22>=DECLARE && LA54_22<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_19==LEFT_PAREN) ) {s = 45;}
 
+                        else if ( (LA54_19==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_19>=PACKAGE && LA54_19<=ID)||LA54_19==GLOBAL||LA54_19==COMMA||(LA54_19>=DECLARE && LA54_19<=NULL)||(LA54_19>=RIGHT_SQUARE && LA54_19<=77)||(LA54_19>=79 && LA54_19<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_22);
+                        input.seek(index54_19);
                         if ( s>=0 ) return s;
                         break;
                     case 8 : 
-                        int LA54_65 = input.LA(1);
+                        int LA54_17 = input.LA(1);
 
                          
-                        int index54_65 = input.index();
+                        int index54_17 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_17==LEFT_PAREN) ) {s = 40;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_17==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_17>=PACKAGE && LA54_17<=GLOBAL)||LA54_17==COMMA||(LA54_17>=DECLARE && LA54_17<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_65);
+                        input.seek(index54_17);
                         if ( s>=0 ) return s;
                         break;
                     case 9 : 
-                        int LA54_52 = input.LA(1);
+                        int LA54_45 = input.LA(1);
 
                          
-                        int index54_52 = input.index();
+                        int index54_45 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_52==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (synpred10()) ) {s = 67;}
 
-                        else if ( (LA54_52==ID) ) {s = 89;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_52==LEFT_PAREN) ) {s = 90;}
-
-                        else if ( ((LA54_52>=PACKAGE && LA54_52<=EVENT)||(LA54_52>=DOT && LA54_52<=GLOBAL)||LA54_52==COMMA||(LA54_52>=DECLARE && LA54_52<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_52);
+                        input.seek(index54_45);
                         if ( s>=0 ) return s;
                         break;
                     case 10 : 
-                        int LA54_29 = input.LA(1);
+                        int LA54_34 = input.LA(1);
 
                          
-                        int index54_29 = input.index();
+                        int index54_34 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 13;}
+                        if ( (LA54_34==RIGHT_SQUARE) ) {s = 68;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_34==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_34>=PACKAGE && LA54_34<=GLOBAL)||LA54_34==COMMA||(LA54_34>=DECLARE && LA54_34<=LEFT_SQUARE)||(LA54_34>=THEN && LA54_34<=85)) && (synpred10())) {s = 12;}
+
+                        else if ( (LA54_34==LEFT_PAREN) && (synpred10())) {s = 67;}
+
                          
-                        input.seek(index54_29);
+                        input.seek(index54_34);
                         if ( s>=0 ) return s;
                         break;
                     case 11 : 
-                        int LA54_49 = input.LA(1);
+                        int LA54_58 = input.LA(1);
 
                          
-                        int index54_49 = input.index();
+                        int index54_58 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_58==RIGHT_SQUARE) ) {s = 96;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_58==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_58>=PACKAGE && LA54_58<=GLOBAL)||LA54_58==COMMA||(LA54_58>=DECLARE && LA54_58<=LEFT_SQUARE)||(LA54_58>=THEN && LA54_58<=85)) && (synpred10())) {s = 12;}
+
+                        else if ( (LA54_58==LEFT_PAREN) && (synpred10())) {s = 67;}
+
                          
-                        input.seek(index54_49);
+                        input.seek(index54_58);
                         if ( s>=0 ) return s;
                         break;
                     case 12 : 
-                        int LA54_45 = input.LA(1);
+                        int LA54_62 = input.LA(1);
 
                          
-                        int index54_45 = input.index();
+                        int index54_62 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_45==RIGHT_SQUARE) ) {s = 80;}
+                        if ( (LA54_62==RIGHT_SQUARE) ) {s = 100;}
 
-                        else if ( (LA54_45==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_62==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( ((LA54_45>=PACKAGE && LA54_45<=GLOBAL)||LA54_45==COMMA||(LA54_45>=DECLARE && LA54_45<=LEFT_SQUARE)||(LA54_45>=THEN && LA54_45<=86)) && (synpred10())) {s = 12;}
+                        else if ( ((LA54_62>=PACKAGE && LA54_62<=GLOBAL)||LA54_62==COMMA||(LA54_62>=DECLARE && LA54_62<=LEFT_SQUARE)||(LA54_62>=THEN && LA54_62<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( (LA54_45==LEFT_PAREN) && (synpred10())) {s = 67;}
+                        else if ( (LA54_62==LEFT_PAREN) && (synpred10())) {s = 67;}
 
                          
-                        input.seek(index54_45);
+                        input.seek(index54_62);
                         if ( s>=0 ) return s;
                         break;
                     case 13 : 
-                        int LA54_42 = input.LA(1);
+                        int LA54_30 = input.LA(1);
 
                          
-                        int index54_42 = input.index();
+                        int index54_30 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_42==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (synpred10()) ) {s = 13;}
 
-                        else if ( (LA54_42==ID) ) {s = 77;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_42==LEFT_PAREN) ) {s = 78;}
-
-                        else if ( ((LA54_42>=PACKAGE && LA54_42<=EVENT)||(LA54_42>=DOT && LA54_42<=GLOBAL)||LA54_42==COMMA||(LA54_42>=DECLARE && LA54_42<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_42);
+                        input.seek(index54_30);
                         if ( s>=0 ) return s;
                         break;
                     case 14 : 
-                        int LA54_44 = input.LA(1);
+                        int LA54_50 = input.LA(1);
 
                          
-                        int index54_44 = input.index();
+                        int index54_50 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred10()) ) {s = 67;}
@@ -8398,14 +8285,14 @@
                         else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index54_44);
+                        input.seek(index54_50);
                         if ( s>=0 ) return s;
                         break;
                     case 15 : 
-                        int LA54_50 = input.LA(1);
+                        int LA54_46 = input.LA(1);
 
                          
-                        int index54_50 = input.index();
+                        int index54_46 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred10()) ) {s = 67;}
@@ -8413,648 +8300,629 @@
                         else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index54_50);
+                        input.seek(index54_46);
                         if ( s>=0 ) return s;
                         break;
                     case 16 : 
-                        int LA54_14 = input.LA(1);
+                        int LA54_16 = input.LA(1);
 
                          
-                        int index54_14 = input.index();
+                        int index54_16 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_14==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_16==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_14==ID) ) {s = 36;}
+                        else if ( (LA54_16==ID) ) {s = 38;}
 
-                        else if ( (LA54_14==LEFT_PAREN) ) {s = 37;}
+                        else if ( (LA54_16==LEFT_PAREN) ) {s = 39;}
 
-                        else if ( ((LA54_14>=PACKAGE && LA54_14<=EVENT)||(LA54_14>=DOT && LA54_14<=GLOBAL)||LA54_14==COMMA||(LA54_14>=DECLARE && LA54_14<=86)) && (synpred10())) {s = 12;}
+                        else if ( ((LA54_16>=PACKAGE && LA54_16<=FUNCTION)||(LA54_16>=DOT && LA54_16<=GLOBAL)||LA54_16==COMMA||(LA54_16>=DECLARE && LA54_16<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_14);
+                        input.seek(index54_16);
                         if ( s>=0 ) return s;
                         break;
                     case 17 : 
-                        int LA54_18 = input.LA(1);
+                        int LA54_26 = input.LA(1);
 
                          
-                        int index54_18 = input.index();
+                        int index54_26 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_18==LEFT_PAREN) ) {s = 41;}
+                        if ( (synpred10()) ) {s = 13;}
 
-                        else if ( (LA54_18==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( ((LA54_18>=PACKAGE && LA54_18<=GLOBAL)||LA54_18==COMMA||(LA54_18>=DECLARE && LA54_18<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_18);
+                        input.seek(index54_26);
                         if ( s>=0 ) return s;
                         break;
                     case 18 : 
-                        int LA54_15 = input.LA(1);
+                        int LA54_8 = input.LA(1);
 
                          
-                        int index54_15 = input.index();
+                        int index54_8 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 13;}
+                        if ( (LA54_8==LEFT_PAREN) ) {s = 28;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_8==ID) ) {s = 29;}
 
+                        else if ( (LA54_8==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_8>=PACKAGE && LA54_8<=FUNCTION)||(LA54_8>=DOT && LA54_8<=GLOBAL)||LA54_8==COMMA||(LA54_8>=DECLARE && LA54_8<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_15);
+                        input.seek(index54_8);
                         if ( s>=0 ) return s;
                         break;
                     case 19 : 
-                        int LA54_28 = input.LA(1);
+                        int LA54_65 = input.LA(1);
 
                          
-                        int index54_28 = input.index();
+                        int index54_65 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_28==78) ) {s = 60;}
+                        if ( (synpred10()) ) {s = 67;}
 
-                        else if ( (LA54_28==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_28==DOT) ) {s = 61;}
-
-                        else if ( (LA54_28==LEFT_PAREN) ) {s = 62;}
-
-                        else if ( (LA54_28==LEFT_SQUARE) ) {s = 63;}
-
-                        else if ( ((LA54_28>=PACKAGE && LA54_28<=ID)||LA54_28==GLOBAL||LA54_28==COMMA||(LA54_28>=DECLARE && LA54_28<=NULL)||(LA54_28>=RIGHT_SQUARE && LA54_28<=77)||(LA54_28>=79 && LA54_28<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_28);
+                        input.seek(index54_65);
                         if ( s>=0 ) return s;
                         break;
                     case 20 : 
-                        int LA54_26 = input.LA(1);
+                        int LA54_36 = input.LA(1);
 
                          
-                        int index54_26 = input.index();
+                        int index54_36 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_26==78) ) {s = 56;}
+                        if ( (synpred10()) ) {s = 67;}
 
-                        else if ( (LA54_26==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_26==DOT) ) {s = 57;}
-
-                        else if ( (LA54_26==LEFT_PAREN) ) {s = 58;}
-
-                        else if ( (LA54_26==LEFT_SQUARE) ) {s = 59;}
-
-                        else if ( ((LA54_26>=PACKAGE && LA54_26<=ID)||LA54_26==GLOBAL||LA54_26==COMMA||(LA54_26>=DECLARE && LA54_26<=NULL)||(LA54_26>=RIGHT_SQUARE && LA54_26<=77)||(LA54_26>=79 && LA54_26<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_26);
+                        input.seek(index54_36);
                         if ( s>=0 ) return s;
                         break;
                     case 21 : 
-                        int LA54_11 = input.LA(1);
+                        int LA54_7 = input.LA(1);
 
                          
-                        int index54_11 = input.index();
+                        int index54_7 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_11==78) ) {s = 32;}
+                        if ( (LA54_7==LEFT_PAREN) ) {s = 26;}
 
-                        else if ( (LA54_11==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_7==ID) ) {s = 27;}
 
-                        else if ( (LA54_11==DOT) ) {s = 33;}
+                        else if ( (LA54_7==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_11==LEFT_PAREN) ) {s = 34;}
+                        else if ( ((LA54_7>=PACKAGE && LA54_7<=FUNCTION)||(LA54_7>=DOT && LA54_7<=GLOBAL)||LA54_7==COMMA||(LA54_7>=DECLARE && LA54_7<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( (LA54_11==LEFT_SQUARE) ) {s = 35;}
-
-                        else if ( ((LA54_11>=PACKAGE && LA54_11<=ID)||LA54_11==GLOBAL||LA54_11==COMMA||(LA54_11>=DECLARE && LA54_11<=NULL)||(LA54_11>=RIGHT_SQUARE && LA54_11<=77)||(LA54_11>=79 && LA54_11<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_11);
+                        input.seek(index54_7);
                         if ( s>=0 ) return s;
                         break;
                     case 22 : 
-                        int LA54_9 = input.LA(1);
+                        int LA54_4 = input.LA(1);
 
                          
-                        int index54_9 = input.index();
+                        int index54_4 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_9==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_4==LEFT_PAREN) ) {s = 14;}
 
-                        else if ( ((LA54_9>=PACKAGE && LA54_9<=GLOBAL)||LA54_9==COMMA||(LA54_9>=DECLARE && LA54_9<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_4==EXISTS) ) {s = 15;}
 
-                        else if ( (LA54_9==LEFT_PAREN) ) {s = 30;}
+                        else if ( (LA54_4==NOT) ) {s = 16;}
 
+                        else if ( (LA54_4==EVAL) ) {s = 17;}
+
+                        else if ( (LA54_4==FORALL) ) {s = 18;}
+
+                        else if ( (LA54_4==ID) ) {s = 19;}
+
+                        else if ( (LA54_4==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_4>=PACKAGE && LA54_4<=FUNCTION)||(LA54_4>=DOT && LA54_4<=GLOBAL)||LA54_4==COMMA||(LA54_4>=DECLARE && LA54_4<=FROM)||(LA54_4>=ACCUMULATE && LA54_4<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_9);
+                        input.seek(index54_4);
                         if ( s>=0 ) return s;
                         break;
                     case 23 : 
-                        int LA54_6 = input.LA(1);
+                        int LA54_54 = input.LA(1);
 
                          
-                        int index54_6 = input.index();
+                        int index54_54 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 13;}
+                        if ( (LA54_54==RIGHT_SQUARE) ) {s = 92;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_54==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_54>=PACKAGE && LA54_54<=GLOBAL)||LA54_54==COMMA||(LA54_54>=DECLARE && LA54_54<=LEFT_SQUARE)||(LA54_54>=THEN && LA54_54<=85)) && (synpred10())) {s = 12;}
+
+                        else if ( (LA54_54==LEFT_PAREN) && (synpred10())) {s = 67;}
+
                          
-                        input.seek(index54_6);
+                        input.seek(index54_54);
                         if ( s>=0 ) return s;
                         break;
                     case 24 : 
-                        int LA54_23 = input.LA(1);
+                        int LA54_43 = input.LA(1);
 
                          
-                        int index54_23 = input.index();
+                        int index54_43 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_23==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( ((LA54_43>=PACKAGE && LA54_43<=ID)||LA54_43==GLOBAL||(LA54_43>=QUERY && LA54_43<=ATTRIBUTES)||LA54_43==ENABLED||LA54_43==SALIENCE||(LA54_43>=DURATION && LA54_43<=DIALECT)||LA54_43==FROM||(LA54_43>=INIT && LA54_43<=RESULT)||(LA54_43>=CONTAINS && LA54_43<=MEMBEROF)||LA54_43==IN||(LA54_43>=THEN && LA54_43<=EVENT)) ) {s = 79;}
 
-                        else if ( ((LA54_23>=PACKAGE && LA54_23<=GLOBAL)||LA54_23==COMMA||(LA54_23>=DECLARE && LA54_23<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_43==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_23==LEFT_PAREN) ) {s = 50;}
+                        else if ( (LA54_43==DOT||LA54_43==COMMA||(LA54_43>=DECLARE && LA54_43<=STRING)||(LA54_43>=DATE_EFFECTIVE && LA54_43<=DATE_EXPIRES)||LA54_43==BOOL||(LA54_43>=INT && LA54_43<=AGENDA_GROUP)||(LA54_43>=LOCK_ON_ACTIVE && LA54_43<=DOUBLE_AMPER)||(LA54_43>=EXISTS && LA54_43<=ACCUMULATE)||(LA54_43>=COLLECT && LA54_43<=ENTRY_POINT)||LA54_43==TILDE||(LA54_43>=FLOAT && LA54_43<=RIGHT_SQUARE)||(LA54_43>=EOL && LA54_43<=85)) && (synpred10())) {s = 12;}
 
+                        else if ( (LA54_43==LEFT_PAREN) && (synpred10())) {s = 67;}
+
                          
-                        input.seek(index54_23);
+                        input.seek(index54_43);
                         if ( s>=0 ) return s;
                         break;
                     case 25 : 
-                        int LA54_62 = input.LA(1);
+                        int LA54_53 = input.LA(1);
 
                          
-                        int index54_62 = input.index();
+                        int index54_53 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( ((LA54_53>=PACKAGE && LA54_53<=ID)||LA54_53==GLOBAL||(LA54_53>=QUERY && LA54_53<=ATTRIBUTES)||LA54_53==ENABLED||LA54_53==SALIENCE||(LA54_53>=DURATION && LA54_53<=DIALECT)||LA54_53==FROM||(LA54_53>=INIT && LA54_53<=RESULT)||(LA54_53>=CONTAINS && LA54_53<=MEMBEROF)||LA54_53==IN||(LA54_53>=THEN && LA54_53<=EVENT)) ) {s = 91;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_53==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( (LA54_53==DOT||LA54_53==COMMA||(LA54_53>=DECLARE && LA54_53<=STRING)||(LA54_53>=DATE_EFFECTIVE && LA54_53<=DATE_EXPIRES)||LA54_53==BOOL||(LA54_53>=INT && LA54_53<=AGENDA_GROUP)||(LA54_53>=LOCK_ON_ACTIVE && LA54_53<=DOUBLE_AMPER)||(LA54_53>=EXISTS && LA54_53<=ACCUMULATE)||(LA54_53>=COLLECT && LA54_53<=ENTRY_POINT)||LA54_53==TILDE||(LA54_53>=FLOAT && LA54_53<=RIGHT_SQUARE)||(LA54_53>=EOL && LA54_53<=85)) && (synpred10())) {s = 12;}
+
+                        else if ( (LA54_53==LEFT_PAREN) && (synpred10())) {s = 67;}
+
                          
-                        input.seek(index54_62);
+                        input.seek(index54_53);
                         if ( s>=0 ) return s;
                         break;
                     case 26 : 
-                        int LA54_17 = input.LA(1);
+                        int LA54_9 = input.LA(1);
 
                          
-                        int index54_17 = input.index();
+                        int index54_9 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_17==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_9==LEFT_PAREN) ) {s = 30;}
 
-                        else if ( ((LA54_17>=PACKAGE && LA54_17<=GLOBAL)||LA54_17==COMMA||(LA54_17>=DECLARE && LA54_17<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_9==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_17==LEFT_PAREN) ) {s = 40;}
+                        else if ( ((LA54_9>=PACKAGE && LA54_9<=GLOBAL)||LA54_9==COMMA||(LA54_9>=DECLARE && LA54_9<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_17);
+                        input.seek(index54_9);
                         if ( s>=0 ) return s;
                         break;
                     case 27 : 
-                        int LA54_47 = input.LA(1);
+                        int LA54_29 = input.LA(1);
 
                          
-                        int index54_47 = input.index();
+                        int index54_29 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_29==78) ) {s = 60;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_29==DOT) ) {s = 61;}
 
+                        else if ( (LA54_29==LEFT_SQUARE) ) {s = 62;}
+
+                        else if ( (LA54_29==LEFT_PAREN) ) {s = 63;}
+
+                        else if ( (LA54_29==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_29>=PACKAGE && LA54_29<=ID)||LA54_29==GLOBAL||LA54_29==COMMA||(LA54_29>=DECLARE && LA54_29<=NULL)||(LA54_29>=RIGHT_SQUARE && LA54_29<=77)||(LA54_29>=79 && LA54_29<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_47);
+                        input.seek(index54_29);
                         if ( s>=0 ) return s;
                         break;
                     case 28 : 
-                        int LA54_58 = input.LA(1);
+                        int LA54_27 = input.LA(1);
 
                          
-                        int index54_58 = input.index();
+                        int index54_27 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_27==78) ) {s = 56;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_27==DOT) ) {s = 57;}
 
+                        else if ( (LA54_27==LEFT_SQUARE) ) {s = 58;}
+
+                        else if ( (LA54_27==LEFT_PAREN) ) {s = 59;}
+
+                        else if ( (LA54_27==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_27>=PACKAGE && LA54_27<=ID)||LA54_27==GLOBAL||LA54_27==COMMA||(LA54_27>=DECLARE && LA54_27<=NULL)||(LA54_27>=RIGHT_SQUARE && LA54_27<=77)||(LA54_27>=79 && LA54_27<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_58);
+                        input.seek(index54_27);
                         if ( s>=0 ) return s;
                         break;
                     case 29 : 
-                        int LA54_5 = input.LA(1);
+                        int LA54_11 = input.LA(1);
 
                          
-                        int index54_5 = input.index();
+                        int index54_11 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_5==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_11==78) ) {s = 32;}
 
-                        else if ( (LA54_5==EXISTS) ) {s = 20;}
+                        else if ( (LA54_11==DOT) ) {s = 33;}
 
-                        else if ( (LA54_5==LEFT_PAREN) ) {s = 21;}
+                        else if ( (LA54_11==LEFT_SQUARE) ) {s = 34;}
 
-                        else if ( (LA54_5==NOT) ) {s = 22;}
+                        else if ( (LA54_11==LEFT_PAREN) ) {s = 35;}
 
-                        else if ( (LA54_5==EVAL) ) {s = 23;}
+                        else if ( (LA54_11==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_5==FORALL) ) {s = 24;}
+                        else if ( ((LA54_11>=PACKAGE && LA54_11<=ID)||LA54_11==GLOBAL||LA54_11==COMMA||(LA54_11>=DECLARE && LA54_11<=NULL)||(LA54_11>=RIGHT_SQUARE && LA54_11<=77)||(LA54_11>=79 && LA54_11<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( (LA54_5==ID) ) {s = 25;}
-
-                        else if ( ((LA54_5>=PACKAGE && LA54_5<=EVENT)||(LA54_5>=DOT && LA54_5<=GLOBAL)||LA54_5==COMMA||(LA54_5>=DECLARE && LA54_5<=FROM)||(LA54_5>=ACCUMULATE && LA54_5<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_5);
+                        input.seek(index54_11);
                         if ( s>=0 ) return s;
                         break;
                     case 30 : 
-                        int LA54_53 = input.LA(1);
+                        int LA54_2 = input.LA(1);
 
                          
-                        int index54_53 = input.index();
+                        int index54_2 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_53==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_2==OR) ) {s = 4;}
 
-                        else if ( ((LA54_53>=PACKAGE && LA54_53<=ID)||LA54_53==GLOBAL||(LA54_53>=QUERY && LA54_53<=ATTRIBUTES)||LA54_53==ENABLED||LA54_53==SALIENCE||(LA54_53>=DURATION && LA54_53<=DIALECT)||LA54_53==FROM||(LA54_53>=INIT && LA54_53<=RESULT)||(LA54_53>=CONTAINS && LA54_53<=MEMBEROF)||LA54_53==IN||LA54_53==THEN) ) {s = 91;}
+                        else if ( (LA54_2==AND) ) {s = 5;}
 
-                        else if ( (LA54_53==LEFT_PAREN) && (synpred10())) {s = 67;}
+                        else if ( (LA54_2==LEFT_PAREN) ) {s = 6;}
 
-                        else if ( (LA54_53==DOT||LA54_53==COMMA||(LA54_53>=DECLARE && LA54_53<=STRING)||(LA54_53>=DATE_EFFECTIVE && LA54_53<=DATE_EXPIRES)||LA54_53==BOOL||(LA54_53>=INT && LA54_53<=AGENDA_GROUP)||(LA54_53>=LOCK_ON_ACTIVE && LA54_53<=DOUBLE_AMPER)||(LA54_53>=EXISTS && LA54_53<=ACCUMULATE)||(LA54_53>=COLLECT && LA54_53<=ENTRY_POINT)||LA54_53==TILDE||(LA54_53>=FLOAT && LA54_53<=RIGHT_SQUARE)||(LA54_53>=EOL && LA54_53<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_2==EXISTS) ) {s = 7;}
 
+                        else if ( (LA54_2==NOT) ) {s = 8;}
+
+                        else if ( (LA54_2==EVAL) ) {s = 9;}
+
+                        else if ( (LA54_2==FORALL) ) {s = 10;}
+
+                        else if ( (LA54_2==ID) ) {s = 11;}
+
+                        else if ( ((LA54_2>=PACKAGE && LA54_2<=FUNCTION)||(LA54_2>=DOT && LA54_2<=GLOBAL)||LA54_2==COMMA||(LA54_2>=DECLARE && LA54_2<=LOCK_ON_ACTIVE)||LA54_2==DOUBLE_PIPE||(LA54_2>=DOUBLE_AMPER && LA54_2<=FROM)||(LA54_2>=ACCUMULATE && LA54_2<=85)) && (synpred10())) {s = 12;}
+
+                        else if ( (LA54_2==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
                          
-                        input.seek(index54_53);
+                        input.seek(index54_2);
                         if ( s>=0 ) return s;
                         break;
                     case 31 : 
-                        int LA54_43 = input.LA(1);
+                        int LA54_41 = input.LA(1);
 
                          
-                        int index54_43 = input.index();
+                        int index54_41 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_43==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (synpred10()) ) {s = 67;}
 
-                        else if ( ((LA54_43>=PACKAGE && LA54_43<=ID)||LA54_43==GLOBAL||(LA54_43>=QUERY && LA54_43<=ATTRIBUTES)||LA54_43==ENABLED||LA54_43==SALIENCE||(LA54_43>=DURATION && LA54_43<=DIALECT)||LA54_43==FROM||(LA54_43>=INIT && LA54_43<=RESULT)||(LA54_43>=CONTAINS && LA54_43<=MEMBEROF)||LA54_43==IN||LA54_43==THEN) ) {s = 79;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_43==LEFT_PAREN) && (synpred10())) {s = 67;}
-
-                        else if ( (LA54_43==DOT||LA54_43==COMMA||(LA54_43>=DECLARE && LA54_43<=STRING)||(LA54_43>=DATE_EFFECTIVE && LA54_43<=DATE_EXPIRES)||LA54_43==BOOL||(LA54_43>=INT && LA54_43<=AGENDA_GROUP)||(LA54_43>=LOCK_ON_ACTIVE && LA54_43<=DOUBLE_AMPER)||(LA54_43>=EXISTS && LA54_43<=ACCUMULATE)||(LA54_43>=COLLECT && LA54_43<=ENTRY_POINT)||LA54_43==TILDE||(LA54_43>=FLOAT && LA54_43<=RIGHT_SQUARE)||(LA54_43>=EOL && LA54_43<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_43);
+                        input.seek(index54_41);
                         if ( s>=0 ) return s;
                         break;
                     case 32 : 
-                        int LA54_31 = input.LA(1);
+                        int LA54_40 = input.LA(1);
 
                          
-                        int index54_31 = input.index();
+                        int index54_40 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 13;}
+                        if ( (synpred10()) ) {s = 67;}
 
                         else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index54_31);
+                        input.seek(index54_40);
                         if ( s>=0 ) return s;
                         break;
                     case 33 : 
-                        int LA54_35 = input.LA(1);
+                        int LA54_21 = input.LA(1);
 
                          
-                        int index54_35 = input.index();
+                        int index54_21 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_35==RIGHT_SQUARE) ) {s = 68;}
+                        if ( (LA54_21==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_35==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_21==ID) ) {s = 48;}
 
-                        else if ( ((LA54_35>=PACKAGE && LA54_35<=GLOBAL)||LA54_35==COMMA||(LA54_35>=DECLARE && LA54_35<=LEFT_SQUARE)||(LA54_35>=THEN && LA54_35<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_21==LEFT_PAREN) ) {s = 49;}
 
-                        else if ( (LA54_35==LEFT_PAREN) && (synpred10())) {s = 67;}
+                        else if ( ((LA54_21>=PACKAGE && LA54_21<=FUNCTION)||(LA54_21>=DOT && LA54_21<=GLOBAL)||LA54_21==COMMA||(LA54_21>=DECLARE && LA54_21<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_35);
+                        input.seek(index54_21);
                         if ( s>=0 ) return s;
                         break;
                     case 34 : 
-                        int LA54_59 = input.LA(1);
+                        int LA54_24 = input.LA(1);
 
                          
-                        int index54_59 = input.index();
+                        int index54_24 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_59==RIGHT_SQUARE) ) {s = 96;}
+                        if ( (synpred10()) ) {s = 13;}
 
-                        else if ( (LA54_59==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( ((LA54_59>=PACKAGE && LA54_59<=GLOBAL)||LA54_59==COMMA||(LA54_59>=DECLARE && LA54_59<=LEFT_SQUARE)||(LA54_59>=THEN && LA54_59<=86)) && (synpred10())) {s = 12;}
-
-                        else if ( (LA54_59==LEFT_PAREN) && (synpred10())) {s = 67;}
-
                          
-                        input.seek(index54_59);
+                        input.seek(index54_24);
                         if ( s>=0 ) return s;
                         break;
                     case 35 : 
-                        int LA54_63 = input.LA(1);
+                        int LA54_6 = input.LA(1);
 
                          
-                        int index54_63 = input.index();
+                        int index54_6 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_63==RIGHT_SQUARE) ) {s = 100;}
+                        if ( (synpred10()) ) {s = 13;}
 
-                        else if ( (LA54_63==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( ((LA54_63>=PACKAGE && LA54_63<=GLOBAL)||LA54_63==COMMA||(LA54_63>=DECLARE && LA54_63<=LEFT_SQUARE)||(LA54_63>=THEN && LA54_63<=86)) && (synpred10())) {s = 12;}
-
-                        else if ( (LA54_63==LEFT_PAREN) && (synpred10())) {s = 67;}
-
                          
-                        input.seek(index54_63);
+                        input.seek(index54_6);
                         if ( s>=0 ) return s;
                         break;
                     case 36 : 
-                        int LA54_16 = input.LA(1);
+                        int LA54_32 = input.LA(1);
 
                          
-                        int index54_16 = input.index();
+                        int index54_32 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_16==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_32==ID) ) {s = 64;}
 
-                        else if ( (LA54_16==ID) ) {s = 38;}
+                        else if ( (LA54_32==LEFT_PAREN) ) {s = 65;}
 
-                        else if ( (LA54_16==LEFT_PAREN) ) {s = 39;}
+                        else if ( (LA54_32==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( ((LA54_16>=PACKAGE && LA54_16<=EVENT)||(LA54_16>=DOT && LA54_16<=GLOBAL)||LA54_16==COMMA||(LA54_16>=DECLARE && LA54_16<=86)) && (synpred10())) {s = 12;}
+                        else if ( ((LA54_32>=PACKAGE && LA54_32<=FUNCTION)||(LA54_32>=DOT && LA54_32<=GLOBAL)||LA54_32==COMMA||(LA54_32>=DECLARE && LA54_32<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_16);
+                        input.seek(index54_32);
                         if ( s>=0 ) return s;
                         break;
                     case 37 : 
-                        int LA54_7 = input.LA(1);
+                        int LA54_56 = input.LA(1);
 
                          
-                        int index54_7 = input.index();
+                        int index54_56 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_7==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_56==ID) ) {s = 93;}
 
-                        else if ( (LA54_7==ID) ) {s = 26;}
+                        else if ( (LA54_56==LEFT_PAREN) ) {s = 94;}
 
-                        else if ( (LA54_7==LEFT_PAREN) ) {s = 27;}
+                        else if ( (LA54_56==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( ((LA54_7>=PACKAGE && LA54_7<=EVENT)||(LA54_7>=DOT && LA54_7<=GLOBAL)||LA54_7==COMMA||(LA54_7>=DECLARE && LA54_7<=86)) && (synpred10())) {s = 12;}
+                        else if ( ((LA54_56>=PACKAGE && LA54_56<=FUNCTION)||(LA54_56>=DOT && LA54_56<=GLOBAL)||LA54_56==COMMA||(LA54_56>=DECLARE && LA54_56<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_7);
+                        input.seek(index54_56);
                         if ( s>=0 ) return s;
                         break;
                     case 38 : 
-                        int LA54_24 = input.LA(1);
+                        int LA54_60 = input.LA(1);
 
                          
-                        int index54_24 = input.index();
+                        int index54_60 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_24==LEFT_PAREN) ) {s = 51;}
+                        if ( (LA54_60==ID) ) {s = 97;}
 
-                        else if ( (LA54_24==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_60==LEFT_PAREN) ) {s = 98;}
 
-                        else if ( ((LA54_24>=PACKAGE && LA54_24<=GLOBAL)||LA54_24==COMMA||(LA54_24>=DECLARE && LA54_24<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_60==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_60>=PACKAGE && LA54_60<=FUNCTION)||(LA54_60>=DOT && LA54_60<=GLOBAL)||LA54_60==COMMA||(LA54_60>=DECLARE && LA54_60<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_24);
+                        input.seek(index54_60);
                         if ( s>=0 ) return s;
                         break;
                     case 39 : 
-                        int LA54_37 = input.LA(1);
+                        int LA54_15 = input.LA(1);
 
                          
-                        int index54_37 = input.index();
+                        int index54_15 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_15==LEFT_PAREN) ) {s = 36;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_15==ID) ) {s = 37;}
 
+                        else if ( (LA54_15==RIGHT_PAREN) && (synpred10())) {s = 13;}
+
+                        else if ( ((LA54_15>=PACKAGE && LA54_15<=FUNCTION)||(LA54_15>=DOT && LA54_15<=GLOBAL)||LA54_15==COMMA||(LA54_15>=DECLARE && LA54_15<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_37);
+                        input.seek(index54_15);
                         if ( s>=0 ) return s;
                         break;
                     case 40 : 
-                        int LA54_51 = input.LA(1);
+                        int LA54_44 = input.LA(1);
 
                          
-                        int index54_51 = input.index();
+                        int index54_44 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_44==RIGHT_SQUARE) ) {s = 80;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_44==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_44>=PACKAGE && LA54_44<=GLOBAL)||LA54_44==COMMA||(LA54_44>=DECLARE && LA54_44<=LEFT_SQUARE)||(LA54_44>=THEN && LA54_44<=85)) && (synpred10())) {s = 12;}
+
+                        else if ( (LA54_44==LEFT_PAREN) && (synpred10())) {s = 67;}
+
                          
-                        input.seek(index54_51);
+                        input.seek(index54_44);
                         if ( s>=0 ) return s;
                         break;
                     case 41 : 
-                        int LA54_8 = input.LA(1);
+                        int LA54_64 = input.LA(1);
 
                          
-                        int index54_8 = input.index();
+                        int index54_64 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_8==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_64==DOT) ) {s = 101;}
 
-                        else if ( (LA54_8==ID) ) {s = 28;}
+                        else if ( (LA54_64==LEFT_SQUARE) ) {s = 102;}
 
-                        else if ( (LA54_8==LEFT_PAREN) ) {s = 29;}
+                        else if ( (LA54_64==LEFT_PAREN) ) {s = 103;}
 
-                        else if ( ((LA54_8>=PACKAGE && LA54_8<=EVENT)||(LA54_8>=DOT && LA54_8<=GLOBAL)||LA54_8==COMMA||(LA54_8>=DECLARE && LA54_8<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_64==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_64>=PACKAGE && LA54_64<=ID)||LA54_64==GLOBAL||LA54_64==COMMA||(LA54_64>=DECLARE && LA54_64<=NULL)||(LA54_64>=RIGHT_SQUARE && LA54_64<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_8);
+                        input.seek(index54_64);
                         if ( s>=0 ) return s;
                         break;
                     case 42 : 
-                        int LA54_55 = input.LA(1);
+                        int LA54_42 = input.LA(1);
 
                          
-                        int index54_55 = input.index();
+                        int index54_42 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_55==RIGHT_SQUARE) ) {s = 92;}
+                        if ( (LA54_42==ID) ) {s = 77;}
 
-                        else if ( (LA54_55==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_42==LEFT_PAREN) ) {s = 78;}
 
-                        else if ( ((LA54_55>=PACKAGE && LA54_55<=GLOBAL)||LA54_55==COMMA||(LA54_55>=DECLARE && LA54_55<=LEFT_SQUARE)||(LA54_55>=THEN && LA54_55<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_42==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_55==LEFT_PAREN) && (synpred10())) {s = 67;}
+                        else if ( ((LA54_42>=PACKAGE && LA54_42<=FUNCTION)||(LA54_42>=DOT && LA54_42<=GLOBAL)||LA54_42==COMMA||(LA54_42>=DECLARE && LA54_42<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_55);
+                        input.seek(index54_42);
                         if ( s>=0 ) return s;
                         break;
                     case 43 : 
-                        int LA54_38 = input.LA(1);
+                        int LA54_18 = input.LA(1);
 
                          
-                        int index54_38 = input.index();
+                        int index54_18 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_38==78) ) {s = 73;}
+                        if ( (LA54_18==LEFT_PAREN) ) {s = 41;}
 
-                        else if ( (LA54_38==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_18==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_38==DOT) ) {s = 74;}
+                        else if ( ((LA54_18>=PACKAGE && LA54_18<=GLOBAL)||LA54_18==COMMA||(LA54_18>=DECLARE && LA54_18<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( (LA54_38==LEFT_PAREN) ) {s = 75;}
-
-                        else if ( (LA54_38==LEFT_SQUARE) ) {s = 76;}
-
-                        else if ( ((LA54_38>=PACKAGE && LA54_38<=ID)||LA54_38==GLOBAL||LA54_38==COMMA||(LA54_38>=DECLARE && LA54_38<=NULL)||(LA54_38>=RIGHT_SQUARE && LA54_38<=77)||(LA54_38>=79 && LA54_38<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_38);
+                        input.seek(index54_18);
                         if ( s>=0 ) return s;
                         break;
                     case 44 : 
-                        int LA54_36 = input.LA(1);
+                        int LA54_10 = input.LA(1);
 
                          
-                        int index54_36 = input.index();
+                        int index54_10 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_36==78) ) {s = 69;}
+                        if ( (LA54_10==LEFT_PAREN) ) {s = 31;}
 
-                        else if ( (LA54_36==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_10==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_36==DOT) ) {s = 70;}
+                        else if ( ((LA54_10>=PACKAGE && LA54_10<=GLOBAL)||LA54_10==COMMA||(LA54_10>=DECLARE && LA54_10<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( (LA54_36==LEFT_PAREN) ) {s = 71;}
-
-                        else if ( (LA54_36==LEFT_SQUARE) ) {s = 72;}
-
-                        else if ( ((LA54_36>=PACKAGE && LA54_36<=ID)||LA54_36==GLOBAL||LA54_36==COMMA||(LA54_36>=DECLARE && LA54_36<=NULL)||(LA54_36>=RIGHT_SQUARE && LA54_36<=77)||(LA54_36>=79 && LA54_36<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_36);
+                        input.seek(index54_10);
                         if ( s>=0 ) return s;
                         break;
                     case 45 : 
-                        int LA54_19 = input.LA(1);
+                        int LA54_55 = input.LA(1);
 
                          
-                        int index54_19 = input.index();
+                        int index54_55 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_19==78) ) {s = 42;}
+                        if ( (synpred10()) ) {s = 67;}
 
-                        else if ( (LA54_19==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_19==DOT) ) {s = 43;}
-
-                        else if ( (LA54_19==LEFT_PAREN) ) {s = 44;}
-
-                        else if ( (LA54_19==LEFT_SQUARE) ) {s = 45;}
-
-                        else if ( ((LA54_19>=PACKAGE && LA54_19<=ID)||LA54_19==GLOBAL||LA54_19==COMMA||(LA54_19>=DECLARE && LA54_19<=NULL)||(LA54_19>=RIGHT_SQUARE && LA54_19<=77)||(LA54_19>=79 && LA54_19<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_19);
+                        input.seek(index54_55);
                         if ( s>=0 ) return s;
                         break;
                     case 46 : 
-                        int LA54_2 = input.LA(1);
+                        int LA54_31 = input.LA(1);
 
                          
-                        int index54_2 = input.index();
+                        int index54_31 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_2==OR) ) {s = 4;}
+                        if ( (synpred10()) ) {s = 13;}
 
-                        else if ( (LA54_2==AND) ) {s = 5;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_2==LEFT_PAREN) ) {s = 6;}
-
-                        else if ( (LA54_2==EXISTS) ) {s = 7;}
-
-                        else if ( (LA54_2==NOT) ) {s = 8;}
-
-                        else if ( (LA54_2==EVAL) ) {s = 9;}
-
-                        else if ( (LA54_2==FORALL) ) {s = 10;}
-
-                        else if ( (LA54_2==ID) ) {s = 11;}
-
-                        else if ( ((LA54_2>=PACKAGE && LA54_2<=EVENT)||(LA54_2>=DOT && LA54_2<=GLOBAL)||LA54_2==COMMA||(LA54_2>=DECLARE && LA54_2<=LOCK_ON_ACTIVE)||LA54_2==DOUBLE_PIPE||(LA54_2>=DOUBLE_AMPER && LA54_2<=FROM)||(LA54_2>=ACCUMULATE && LA54_2<=86)) && (synpred10())) {s = 12;}
-
-                        else if ( (LA54_2==RIGHT_PAREN) && (synpred10())) {s = 13;}
-
                          
-                        input.seek(index54_2);
+                        input.seek(index54_31);
                         if ( s>=0 ) return s;
                         break;
                     case 47 : 
-                        int LA54_10 = input.LA(1);
+                        int LA54_20 = input.LA(1);
 
                          
-                        int index54_10 = input.index();
+                        int index54_20 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_10==LEFT_PAREN) ) {s = 31;}
+                        if ( (LA54_20==LEFT_PAREN) ) {s = 46;}
 
-                        else if ( (LA54_10==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_20==ID) ) {s = 47;}
 
-                        else if ( ((LA54_10>=PACKAGE && LA54_10<=GLOBAL)||LA54_10==COMMA||(LA54_10>=DECLARE && LA54_10<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_20==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_20>=PACKAGE && LA54_20<=FUNCTION)||(LA54_20>=DOT && LA54_20<=GLOBAL)||LA54_20==COMMA||(LA54_20>=DECLARE && LA54_20<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_10);
+                        input.seek(index54_20);
                         if ( s>=0 ) return s;
                         break;
                     case 48 : 
-                        int LA54_39 = input.LA(1);
+                        int LA54_52 = input.LA(1);
 
                          
-                        int index54_39 = input.index();
+                        int index54_52 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_52==ID) ) {s = 89;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_52==LEFT_PAREN) ) {s = 90;}
 
-                         
-                        input.seek(index54_39);
-                        if ( s>=0 ) return s;
-                        break;
-                    case 49 : 
-                        int LA54_27 = input.LA(1);
+                        else if ( (LA54_52==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                         
-                        int index54_27 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred10()) ) {s = 13;}
+                        else if ( ((LA54_52>=PACKAGE && LA54_52<=FUNCTION)||(LA54_52>=DOT && LA54_52<=GLOBAL)||LA54_52==COMMA||(LA54_52>=DECLARE && LA54_52<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( (true) ) {s = 3;}
-
                          
-                        input.seek(index54_27);
+                        input.seek(index54_52);
                         if ( s>=0 ) return s;
                         break;
-                    case 50 : 
+                    case 49 : 
                         int LA54_48 = input.LA(1);
 
                          
@@ -9063,44 +8931,44 @@
                         s = -1;
                         if ( (LA54_48==78) ) {s = 85;}
 
-                        else if ( (LA54_48==RIGHT_PAREN) && (synpred10())) {s = 13;}
-
                         else if ( (LA54_48==DOT) ) {s = 86;}
 
-                        else if ( (LA54_48==LEFT_PAREN) ) {s = 87;}
+                        else if ( (LA54_48==LEFT_SQUARE) ) {s = 87;}
 
-                        else if ( (LA54_48==LEFT_SQUARE) ) {s = 88;}
+                        else if ( (LA54_48==LEFT_PAREN) ) {s = 88;}
 
-                        else if ( ((LA54_48>=PACKAGE && LA54_48<=ID)||LA54_48==GLOBAL||LA54_48==COMMA||(LA54_48>=DECLARE && LA54_48<=NULL)||(LA54_48>=RIGHT_SQUARE && LA54_48<=77)||(LA54_48>=79 && LA54_48<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_48==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_48>=PACKAGE && LA54_48<=ID)||LA54_48==GLOBAL||LA54_48==COMMA||(LA54_48>=DECLARE && LA54_48<=NULL)||(LA54_48>=RIGHT_SQUARE && LA54_48<=77)||(LA54_48>=79 && LA54_48<=85)) && (synpred10())) {s = 12;}
+
                          
                         input.seek(index54_48);
                         if ( s>=0 ) return s;
                         break;
-                    case 51 : 
-                        int LA54_46 = input.LA(1);
+                    case 50 : 
+                        int LA54_47 = input.LA(1);
 
                          
-                        int index54_46 = input.index();
+                        int index54_47 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_46==78) ) {s = 81;}
+                        if ( (LA54_47==78) ) {s = 81;}
 
-                        else if ( (LA54_46==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        else if ( (LA54_47==DOT) ) {s = 82;}
 
-                        else if ( (LA54_46==DOT) ) {s = 82;}
+                        else if ( (LA54_47==LEFT_SQUARE) ) {s = 83;}
 
-                        else if ( (LA54_46==LEFT_PAREN) ) {s = 83;}
+                        else if ( (LA54_47==LEFT_PAREN) ) {s = 84;}
 
-                        else if ( (LA54_46==LEFT_SQUARE) ) {s = 84;}
+                        else if ( (LA54_47==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( ((LA54_46>=PACKAGE && LA54_46<=ID)||LA54_46==GLOBAL||LA54_46==COMMA||(LA54_46>=DECLARE && LA54_46<=NULL)||(LA54_46>=RIGHT_SQUARE && LA54_46<=77)||(LA54_46>=79 && LA54_46<=86)) && (synpred10())) {s = 12;}
+                        else if ( ((LA54_47>=PACKAGE && LA54_47<=ID)||LA54_47==GLOBAL||LA54_47==COMMA||(LA54_47>=DECLARE && LA54_47<=NULL)||(LA54_47>=RIGHT_SQUARE && LA54_47<=77)||(LA54_47>=79 && LA54_47<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_46);
+                        input.seek(index54_47);
                         if ( s>=0 ) return s;
                         break;
-                    case 52 : 
+                    case 51 : 
                         int LA54_25 = input.LA(1);
 
                          
@@ -9109,40 +8977,55 @@
                         s = -1;
                         if ( (LA54_25==78) ) {s = 52;}
 
-                        else if ( (LA54_25==RIGHT_PAREN) && (synpred10())) {s = 13;}
-
                         else if ( (LA54_25==DOT) ) {s = 53;}
 
-                        else if ( (LA54_25==LEFT_PAREN) ) {s = 54;}
+                        else if ( (LA54_25==LEFT_SQUARE) ) {s = 54;}
 
-                        else if ( (LA54_25==LEFT_SQUARE) ) {s = 55;}
+                        else if ( (LA54_25==LEFT_PAREN) ) {s = 55;}
 
-                        else if ( ((LA54_25>=PACKAGE && LA54_25<=ID)||LA54_25==GLOBAL||LA54_25==COMMA||(LA54_25>=DECLARE && LA54_25<=NULL)||(LA54_25>=RIGHT_SQUARE && LA54_25<=77)||(LA54_25>=79 && LA54_25<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_25==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_25>=PACKAGE && LA54_25<=ID)||LA54_25==GLOBAL||LA54_25==COMMA||(LA54_25>=DECLARE && LA54_25<=NULL)||(LA54_25>=RIGHT_SQUARE && LA54_25<=77)||(LA54_25>=79 && LA54_25<=85)) && (synpred10())) {s = 12;}
+
                          
                         input.seek(index54_25);
                         if ( s>=0 ) return s;
                         break;
+                    case 52 : 
+                        int LA54_35 = input.LA(1);
+
+                         
+                        int index54_35 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred10()) ) {s = 67;}
+
+                        else if ( (true) ) {s = 3;}
+
+                         
+                        input.seek(index54_35);
+                        if ( s>=0 ) return s;
+                        break;
                     case 53 : 
-                        int LA54_30 = input.LA(1);
+                        int LA54_59 = input.LA(1);
 
                          
-                        int index54_30 = input.index();
+                        int index54_59 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 13;}
+                        if ( (synpred10()) ) {s = 67;}
 
                         else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index54_30);
+                        input.seek(index54_59);
                         if ( s>=0 ) return s;
                         break;
                     case 54 : 
-                        int LA54_34 = input.LA(1);
+                        int LA54_63 = input.LA(1);
 
                          
-                        int index54_34 = input.index();
+                        int index54_63 = input.index();
                         input.rewind();
                         s = -1;
                         if ( (synpred10()) ) {s = 67;}
@@ -9150,163 +9033,155 @@
                         else if ( (true) ) {s = 3;}
 
                          
-                        input.seek(index54_34);
+                        input.seek(index54_63);
                         if ( s>=0 ) return s;
                         break;
                     case 55 : 
-                        int LA54_4 = input.LA(1);
+                        int LA54_5 = input.LA(1);
 
                          
-                        int index54_4 = input.index();
+                        int index54_5 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_4==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_5==EXISTS) ) {s = 20;}
 
-                        else if ( (LA54_4==EXISTS) ) {s = 14;}
+                        else if ( (LA54_5==NOT) ) {s = 21;}
 
-                        else if ( (LA54_4==LEFT_PAREN) ) {s = 15;}
+                        else if ( (LA54_5==EVAL) ) {s = 22;}
 
-                        else if ( (LA54_4==NOT) ) {s = 16;}
+                        else if ( (LA54_5==FORALL) ) {s = 23;}
 
-                        else if ( (LA54_4==EVAL) ) {s = 17;}
+                        else if ( (LA54_5==LEFT_PAREN) ) {s = 24;}
 
-                        else if ( (LA54_4==FORALL) ) {s = 18;}
+                        else if ( (LA54_5==ID) ) {s = 25;}
 
-                        else if ( (LA54_4==ID) ) {s = 19;}
+                        else if ( (LA54_5==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( ((LA54_4>=PACKAGE && LA54_4<=EVENT)||(LA54_4>=DOT && LA54_4<=GLOBAL)||LA54_4==COMMA||(LA54_4>=DECLARE && LA54_4<=FROM)||(LA54_4>=ACCUMULATE && LA54_4<=86)) && (synpred10())) {s = 12;}
+                        else if ( ((LA54_5>=PACKAGE && LA54_5<=FUNCTION)||(LA54_5>=DOT && LA54_5<=GLOBAL)||LA54_5==COMMA||(LA54_5>=DECLARE && LA54_5<=FROM)||(LA54_5>=ACCUMULATE && LA54_5<=85)) && (synpred10())) {s = 12;}
 
                          
-                        input.seek(index54_4);
+                        input.seek(index54_5);
                         if ( s>=0 ) return s;
                         break;
                     case 56 : 
-                        int LA54_66 = input.LA(1);
+                        int LA54_28 = input.LA(1);
 
                          
-                        int index54_66 = input.index();
+                        int index54_28 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_66==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (synpred10()) ) {s = 13;}
 
-                        else if ( (LA54_66==LEFT_SQUARE) ) {s = 35;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_66==LEFT_PAREN) ) {s = 34;}
-
-                        else if ( (LA54_66==DOT) ) {s = 33;}
-
-                        else if ( ((LA54_66>=PACKAGE && LA54_66<=ID)||LA54_66==GLOBAL||LA54_66==COMMA||(LA54_66>=DECLARE && LA54_66<=NULL)||(LA54_66>=RIGHT_SQUARE && LA54_66<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_66);
+                        input.seek(index54_28);
                         if ( s>=0 ) return s;
                         break;
                     case 57 : 
-                        int LA54_40 = input.LA(1);
+                        int LA54_23 = input.LA(1);
 
                          
-                        int index54_40 = input.index();
+                        int index54_23 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( (LA54_23==LEFT_PAREN) ) {s = 51;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_23==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( ((LA54_23>=PACKAGE && LA54_23<=GLOBAL)||LA54_23==COMMA||(LA54_23>=DECLARE && LA54_23<=85)) && (synpred10())) {s = 12;}
+
                          
-                        input.seek(index54_40);
+                        input.seek(index54_23);
                         if ( s>=0 ) return s;
                         break;
                     case 58 : 
-                        int LA54_64 = input.LA(1);
+                        int LA54_22 = input.LA(1);
 
                          
-                        int index54_64 = input.index();
+                        int index54_22 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_64==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (LA54_22==LEFT_PAREN) ) {s = 50;}
 
-                        else if ( (LA54_64==DOT) ) {s = 101;}
+                        else if ( (LA54_22==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_64==LEFT_PAREN) ) {s = 102;}
+                        else if ( ((LA54_22>=PACKAGE && LA54_22<=GLOBAL)||LA54_22==COMMA||(LA54_22>=DECLARE && LA54_22<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( (LA54_64==LEFT_SQUARE) ) {s = 103;}
-
-                        else if ( ((LA54_64>=PACKAGE && LA54_64<=ID)||LA54_64==GLOBAL||LA54_64==COMMA||(LA54_64>=DECLARE && LA54_64<=NULL)||(LA54_64>=RIGHT_SQUARE && LA54_64<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_64);
+                        input.seek(index54_22);
                         if ( s>=0 ) return s;
                         break;
                     case 59 : 
-                        int LA54_32 = input.LA(1);
+                        int LA54_33 = input.LA(1);
 
                          
-                        int index54_32 = input.index();
+                        int index54_33 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_32==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( ((LA54_33>=PACKAGE && LA54_33<=ID)||LA54_33==GLOBAL||(LA54_33>=QUERY && LA54_33<=ATTRIBUTES)||LA54_33==ENABLED||LA54_33==SALIENCE||(LA54_33>=DURATION && LA54_33<=DIALECT)||LA54_33==FROM||(LA54_33>=INIT && LA54_33<=RESULT)||(LA54_33>=CONTAINS && LA54_33<=MEMBEROF)||LA54_33==IN||(LA54_33>=THEN && LA54_33<=EVENT)) ) {s = 66;}
 
-                        else if ( (LA54_32==ID) ) {s = 64;}
+                        else if ( (LA54_33==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_32==LEFT_PAREN) ) {s = 65;}
+                        else if ( (LA54_33==DOT||LA54_33==COMMA||(LA54_33>=DECLARE && LA54_33<=STRING)||(LA54_33>=DATE_EFFECTIVE && LA54_33<=DATE_EXPIRES)||LA54_33==BOOL||(LA54_33>=INT && LA54_33<=AGENDA_GROUP)||(LA54_33>=LOCK_ON_ACTIVE && LA54_33<=DOUBLE_AMPER)||(LA54_33>=EXISTS && LA54_33<=ACCUMULATE)||(LA54_33>=COLLECT && LA54_33<=ENTRY_POINT)||LA54_33==TILDE||(LA54_33>=FLOAT && LA54_33<=RIGHT_SQUARE)||(LA54_33>=EOL && LA54_33<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( ((LA54_32>=PACKAGE && LA54_32<=EVENT)||(LA54_32>=DOT && LA54_32<=GLOBAL)||LA54_32==COMMA||(LA54_32>=DECLARE && LA54_32<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_33==LEFT_PAREN) && (synpred10())) {s = 67;}
 
                          
-                        input.seek(index54_32);
+                        input.seek(index54_33);
                         if ( s>=0 ) return s;
                         break;
                     case 60 : 
-                        int LA54_56 = input.LA(1);
+                        int LA54_49 = input.LA(1);
 
                          
-                        int index54_56 = input.index();
+                        int index54_49 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_56==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( (synpred10()) ) {s = 67;}
 
-                        else if ( (LA54_56==ID) ) {s = 93;}
+                        else if ( (true) ) {s = 3;}
 
-                        else if ( (LA54_56==LEFT_PAREN) ) {s = 94;}
-
-                        else if ( ((LA54_56>=PACKAGE && LA54_56<=EVENT)||(LA54_56>=DOT && LA54_56<=GLOBAL)||LA54_56==COMMA||(LA54_56>=DECLARE && LA54_56<=86)) && (synpred10())) {s = 12;}
-
                          
-                        input.seek(index54_56);
+                        input.seek(index54_49);
                         if ( s>=0 ) return s;
                         break;
                     case 61 : 
-                        int LA54_60 = input.LA(1);
+                        int LA54_57 = input.LA(1);
 
                          
-                        int index54_60 = input.index();
+                        int index54_57 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (LA54_60==RIGHT_PAREN) && (synpred10())) {s = 13;}
+                        if ( ((LA54_57>=PACKAGE && LA54_57<=ID)||LA54_57==GLOBAL||(LA54_57>=QUERY && LA54_57<=ATTRIBUTES)||LA54_57==ENABLED||LA54_57==SALIENCE||(LA54_57>=DURATION && LA54_57<=DIALECT)||LA54_57==FROM||(LA54_57>=INIT && LA54_57<=RESULT)||(LA54_57>=CONTAINS && LA54_57<=MEMBEROF)||LA54_57==IN||(LA54_57>=THEN && LA54_57<=EVENT)) ) {s = 95;}
 
-                        else if ( (LA54_60==ID) ) {s = 97;}
+                        else if ( (LA54_57==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
-                        else if ( (LA54_60==LEFT_PAREN) ) {s = 98;}
+                        else if ( (LA54_57==DOT||LA54_57==COMMA||(LA54_57>=DECLARE && LA54_57<=STRING)||(LA54_57>=DATE_EFFECTIVE && LA54_57<=DATE_EXPIRES)||LA54_57==BOOL||(LA54_57>=INT && LA54_57<=AGENDA_GROUP)||(LA54_57>=LOCK_ON_ACTIVE && LA54_57<=DOUBLE_AMPER)||(LA54_57>=EXISTS && LA54_57<=ACCUMULATE)||(LA54_57>=COLLECT && LA54_57<=ENTRY_POINT)||LA54_57==TILDE||(LA54_57>=FLOAT && LA54_57<=RIGHT_SQUARE)||(LA54_57>=EOL && LA54_57<=85)) && (synpred10())) {s = 12;}
 
-                        else if ( ((LA54_60>=PACKAGE && LA54_60<=EVENT)||(LA54_60>=DOT && LA54_60<=GLOBAL)||LA54_60==COMMA||(LA54_60>=DECLARE && LA54_60<=86)) && (synpred10())) {s = 12;}
+                        else if ( (LA54_57==LEFT_PAREN) && (synpred10())) {s = 67;}
 
                          
-                        input.seek(index54_60);
+                        input.seek(index54_57);
                         if ( s>=0 ) return s;
                         break;
                     case 62 : 
-                        int LA54_41 = input.LA(1);
+                        int LA54_61 = input.LA(1);
 
                          
-                        int index54_41 = input.index();
+                        int index54_61 = input.index();
                         input.rewind();
                         s = -1;
-                        if ( (synpred10()) ) {s = 67;}
+                        if ( ((LA54_61>=PACKAGE && LA54_61<=ID)||LA54_61==GLOBAL||(LA54_61>=QUERY && LA54_61<=ATTRIBUTES)||LA54_61==ENABLED||LA54_61==SALIENCE||(LA54_61>=DURATION && LA54_61<=DIALECT)||LA54_61==FROM||(LA54_61>=INIT && LA54_61<=RESULT)||(LA54_61>=CONTAINS && LA54_61<=MEMBEROF)||LA54_61==IN||(LA54_61>=THEN && LA54_61<=EVENT)) ) {s = 99;}
 
-                        else if ( (true) ) {s = 3;}
+                        else if ( (LA54_61==RIGHT_PAREN) && (synpred10())) {s = 13;}
 
+                        else if ( (LA54_61==DOT||LA54_61==COMMA||(LA54_61>=DECLARE && LA54_61<=STRING)||(LA54_61>=DATE_EFFECTIVE && LA54_61<=DATE_EXPIRES)||LA54_61==BOOL||(LA54_61>=INT && LA54_61<=AGENDA_GROUP)||(LA54_61>=LOCK_ON_ACTIVE && LA54_61<=DOUBLE_AMPER)||(LA54_61>=EXISTS && LA54_61<=ACCUMULATE)||(LA54_61>=COLLECT && LA54_61<=ENTRY_POINT)||LA54_61==TILDE||(LA54_61>=FLOAT && LA54_61<=RIGHT_SQUARE)||(LA54_61>=EOL && LA54_61<=85)) && (synpred10())) {s = 12;}
+
+                        else if ( (LA54_61==LEFT_PAREN) && (synpred10())) {s = 67;}
+
                          
-                        input.seek(index54_41);
+                        input.seek(index54_61);
                         if ( s>=0 ) return s;
                         break;
             }
@@ -9322,9 +9197,9 @@
     static final String DFA66_eofS =
         "\23\uffff";
     static final String DFA66_minS =
-        "\1\14\1\uffff\1\4\1\11\1\0\1\4\1\uffff\1\4\13\0";
+        "\1\13\1\uffff\1\4\1\10\1\0\1\4\1\uffff\1\4\13\0";
     static final String DFA66_maxS =
-        "\1\51\1\uffff\2\125\1\0\1\125\1\uffff\1\125\13\0";
+        "\1\50\1\uffff\2\125\1\0\1\125\1\uffff\1\125\13\0";
     static final String DFA66_acceptS =
         "\1\uffff\1\2\4\uffff\1\1\14\uffff";
     static final String DFA66_specialS =
@@ -9332,19 +9207,19 @@
     static final String[] DFA66_transitionS = {
             "\2\1\31\uffff\1\2\1\uffff\1\1",
             "",
-            "\5\1\1\uffff\1\1\1\4\6\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6\uffff"+
+            "\4\1\1\uffff\1\1\1\4\6\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6\uffff"+
             "\2\1\5\uffff\1\1\1\uffff\1\6\1\1\2\uffff\4\1\2\uffff\1\5\1\7"+
-            "\1\10\1\11\1\12\1\6\1\3\4\uffff\1\1\16\uffff\6\6",
-            "\1\1\1\uffff\1\13\40\uffff\1\1\11\uffff\7\1\2\uffff\1\1\20\uffff"+
+            "\1\10\1\11\1\12\1\6\1\3\4\uffff\2\1\16\uffff\6\6",
+            "\1\1\1\uffff\1\13\40\uffff\1\1\11\uffff\7\1\2\uffff\1\1\21\uffff"+
             "\6\1",
             "\1\uffff",
-            "\5\6\1\1\1\6\1\22\5\uffff\7\6\2\uffff\4\6\5\uffff\2\6\5\uffff"+
-            "\1\6\1\uffff\1\1\3\uffff\4\6\2\uffff\1\15\1\16\1\17\1\20\1\21"+
-            "\1\1\1\14\2\6\1\1\1\uffff\1\6\16\uffff\6\1",
+            "\4\6\1\1\1\6\1\15\5\uffff\7\6\2\uffff\4\6\5\uffff\2\6\5\uffff"+
+            "\1\6\1\uffff\1\1\3\uffff\4\6\2\uffff\1\16\1\17\1\20\1\21\1\22"+
+            "\1\1\1\14\2\6\1\1\1\uffff\2\6\16\uffff\6\1",
             "",
-            "\5\6\1\1\1\6\1\22\5\uffff\7\6\2\uffff\4\6\5\uffff\2\6\5\uffff"+
-            "\1\6\1\uffff\1\1\3\uffff\4\6\2\uffff\1\15\1\16\1\17\1\20\1\21"+
-            "\1\1\1\14\2\6\1\1\1\uffff\1\6\16\uffff\6\1",
+            "\4\6\1\1\1\6\1\15\5\uffff\7\6\2\uffff\4\6\5\uffff\2\6\5\uffff"+
+            "\1\6\1\uffff\1\1\3\uffff\4\6\2\uffff\1\16\1\17\1\20\1\21\1\22"+
+            "\1\1\1\14\2\6\1\1\1\uffff\2\6\16\uffff\6\1",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -9388,7 +9263,7 @@
             this.transition = DFA66_transition;
         }
         public String getDescription() {
-            return "()* loopback of 1459:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*";
+            return "()* loopback of 1442:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*";
         }
         public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
         	int _s = s;
@@ -9417,36 +9292,75 @@
         }
     }
     static final String DFA67_eotS =
-        "\32\uffff";
+        "\70\uffff";
     static final String DFA67_eofS =
-        "\1\1\31\uffff";
+        "\1\1\13\uffff\1\4\1\uffff\5\4\45\uffff";
     static final String DFA67_minS =
-        "\1\14\1\uffff\1\4\1\11\2\4\1\uffff\1\4\22\0";
+        "\1\13\1\uffff\1\4\1\10\1\uffff\7\4\1\10\6\4\1\10\1\0\2\4\41\0";
     static final String DFA67_maxS =
-        "\1\51\1\uffff\4\125\1\uffff\1\125\22\0";
+        "\1\50\1\uffff\2\125\1\uffff\7\125\1\76\1\125\5\101\1\125\1\0\2\125"+
+        "\41\0";
     static final String DFA67_acceptS =
-        "\1\uffff\1\2\4\uffff\1\1\23\uffff";
+        "\1\uffff\1\2\2\uffff\1\1\63\uffff";
     static final String DFA67_specialS =
-        "\32\uffff}>";
+        "\24\uffff\1\0\43\uffff}>";
     static final String[] DFA67_transitionS = {
             "\2\1\31\uffff\1\1\1\uffff\1\2",
             "",
-            "\5\1\1\uffff\1\1\1\4\6\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6\uffff"+
-            "\2\1\5\uffff\1\1\1\uffff\1\6\1\1\2\uffff\4\1\2\uffff\1\5\1\7"+
-            "\1\10\1\11\1\12\1\6\1\3\4\uffff\1\1\16\uffff\6\6",
-            "\1\1\1\uffff\1\13\40\uffff\1\1\11\uffff\7\1\2\uffff\1\1\20\uffff"+
+            "\4\1\1\uffff\1\1\1\12\6\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6"+
+            "\uffff\2\1\5\uffff\1\1\1\uffff\1\4\1\1\2\uffff\4\1\2\uffff\1"+
+            "\5\1\6\1\7\1\10\1\11\1\4\1\3\4\uffff\2\1\16\uffff\6\4",
+            "\1\1\1\uffff\1\13\40\uffff\1\1\11\uffff\7\1\2\uffff\1\1\21\uffff"+
             "\6\1",
-            "\5\1\1\uffff\1\1\1\15\6\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6"+
-            "\uffff\2\1\5\uffff\1\1\1\uffff\1\6\1\1\2\uffff\4\1\2\uffff\1"+
-            "\16\1\17\1\20\1\21\1\22\1\6\1\14\4\uffff\1\1\16\uffff\6\6",
-            "\5\6\1\1\1\6\1\31\5\uffff\7\6\2\uffff\4\6\5\uffff\2\6\5\uffff"+
-            "\1\6\1\uffff\1\1\3\uffff\4\6\2\uffff\1\24\1\25\1\26\1\27\1\30"+
-            "\1\1\1\23\2\6\1\1\1\uffff\1\6\16\uffff\6\1",
             "",
-            "\5\6\1\1\1\6\1\31\5\uffff\7\6\2\uffff\4\6\5\uffff\2\6\5\uffff"+
-            "\1\6\1\uffff\1\1\3\uffff\4\6\2\uffff\1\24\1\25\1\26\1\27\1\30"+
-            "\1\1\1\23\2\6\1\1\1\uffff\1\6\16\uffff\6\1",
+            "\4\4\1\1\1\4\1\15\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5\uffff"+
+            "\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\16\1\17\1\20\1\21\1\22"+
+            "\1\1\1\14\2\4\1\1\1\uffff\2\4\16\uffff\6\1",
+            "\4\4\1\1\1\4\1\15\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5\uffff"+
+            "\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\16\1\17\1\20\1\21\1\22"+
+            "\1\1\1\14\2\4\1\1\1\uffff\2\4\16\uffff\6\1",
+            "\4\4\1\1\1\4\1\15\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5\uffff"+
+            "\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\16\1\17\1\20\1\21\1\22"+
+            "\1\1\1\14\2\4\1\1\1\uffff\2\4\16\uffff\6\1",
+            "\4\4\1\1\1\4\1\15\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5\uffff"+
+            "\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\16\1\17\1\20\1\21\1\22"+
+            "\1\1\1\14\2\4\1\1\1\uffff\2\4\16\uffff\6\1",
+            "\4\4\1\1\1\4\1\15\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5\uffff"+
+            "\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\16\1\17\1\20\1\21\1\22"+
+            "\1\1\1\14\2\4\1\1\1\uffff\2\4\16\uffff\6\1",
+            "\4\1\1\uffff\1\1\1\24\6\uffff\6\1\2\uffff\1\1\1\uffff\1\1\6"+
+            "\uffff\2\1\5\uffff\1\1\1\uffff\1\4\1\1\2\uffff\4\1\2\uffff\1"+
+            "\25\1\26\1\27\1\30\1\31\1\4\1\23\4\uffff\2\1\16\uffff\6\4",
+            "\4\4\1\uffff\1\4\1\40\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5"+
+            "\uffff\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\33\1\34\1\35\1"+
+            "\36\1\37\1\1\1\32\2\4\2\uffff\2\4\16\uffff\6\1",
+            "\1\4\1\uffff\1\1\2\4\31\uffff\1\4\1\uffff\1\4\25\uffff\1\4",
+            "\6\4\1\57\40\4\1\42\11\4\1\51\1\52\1\53\1\54\1\55\1\56\1\41"+
+            "\24\4\1\43\1\44\1\45\1\46\1\47\1\50",
+            "\4\1\1\4\2\1\2\4\3\uffff\7\1\2\uffff\4\1\5\uffff\2\1\2\uffff"+
+            "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\2\uffff\5\1\1\uffff\3\1\1\4"+
+            "\1\uffff\2\1",
+            "\4\1\1\4\2\1\2\4\3\uffff\7\1\2\uffff\4\1\5\uffff\2\1\2\uffff"+
+            "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\2\uffff\5\1\1\uffff\3\1\1\4"+
+            "\1\uffff\2\1",
+            "\4\1\1\4\2\1\2\4\3\uffff\7\1\2\uffff\4\1\5\uffff\2\1\2\uffff"+
+            "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\2\uffff\5\1\1\uffff\3\1\1\4"+
+            "\1\uffff\2\1",
+            "\4\1\1\4\2\1\2\4\3\uffff\7\1\2\uffff\4\1\5\uffff\2\1\2\uffff"+
+            "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\2\uffff\5\1\1\uffff\3\1\1\4"+
+            "\1\uffff\2\1",
+            "\4\1\1\4\2\1\2\4\3\uffff\7\1\2\uffff\4\1\5\uffff\2\1\2\uffff"+
+            "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\2\uffff\5\1\1\uffff\3\1\1\4"+
+            "\1\uffff\2\1",
+            "\1\1\1\uffff\1\60\40\uffff\1\1\11\uffff\7\1\2\uffff\1\1\21\uffff"+
+            "\6\1",
             "\1\uffff",
+            "\4\4\1\1\1\4\1\67\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5\uffff"+
+            "\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\62\1\63\1\64\1\65\1\66"+
+            "\1\1\1\61\2\4\1\1\1\uffff\2\4\16\uffff\6\1",
+            "\4\4\1\1\1\4\1\67\5\uffff\7\4\2\uffff\4\4\5\uffff\2\4\5\uffff"+
+            "\1\4\1\uffff\1\1\3\uffff\4\4\2\uffff\1\62\1\63\1\64\1\65\1\66"+
+            "\1\1\1\61\2\4\1\1\1\uffff\2\4\16\uffff\6\1",
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
@@ -9463,6 +9377,22 @@
             "\1\uffff",
             "\1\uffff",
             "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
             "\1\uffff"
     };
 
@@ -9496,365 +9426,382 @@
             this.transition = DFA67_transition;
         }
         public String getDescription() {
-            return "()* loopback of 1482:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*";
+            return "()* loopback of 1465:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*";
         }
+        public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA67_20 = input.LA(1);
+
+                         
+                        int index67_20 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred12()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index67_20);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (backtracking>0) {failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 67, _s, input);
+            error(nvae);
+            throw nvae;
+        }
     }
  
 
     public static final BitSet FOLLOW_76_in_opt_semicolon39 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_prolog_in_compilation_unit57 = new BitSet(new long[]{0x0000003FD7344460L});
-    public static final BitSet FOLLOW_statement_in_compilation_unit62 = new BitSet(new long[]{0x0000003FD7344460L});
+    public static final BitSet FOLLOW_prolog_in_compilation_unit57 = new BitSet(new long[]{0x0000001FEB9A2260L});
+    public static final BitSet FOLLOW_statement_in_compilation_unit62 = new BitSet(new long[]{0x0000001FEB9A2260L});
     public static final BitSet FOLLOW_EOF_in_compilation_unit67 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_package_statement_in_prolog96 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_rule_attribute_in_statement121 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_function_import_statement_in_statement128 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_event_import_statement_in_statement134 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_import_statement_in_statement139 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_global_in_statement145 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_function_in_statement151 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_template_in_statement165 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule_in_statement174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_query_in_statement186 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_declaration_in_statement201 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_PACKAGE_in_package_statement227 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_package_statement231 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_package_statement233 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IMPORT_in_import_statement264 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_import_name_in_import_statement287 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_import_statement290 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IMPORT_in_function_import_statement314 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_FUNCTION_in_function_import_statement316 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_import_name_in_function_import_statement339 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_function_import_statement342 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IMPORT_in_event_import_statement366 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_EVENT_in_event_import_statement368 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_import_name_in_event_import_statement391 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_event_import_statement394 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_import_name420 = new BitSet(new long[]{0x0000000000000202L,0x0000000000002000L});
-    public static final BitSet FOLLOW_DOT_in_import_name432 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_import_name436 = new BitSet(new long[]{0x0000000000000202L,0x0000000000002000L});
-    public static final BitSet FOLLOW_77_in_import_name460 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GLOBAL_in_global494 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_global505 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_global516 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_global518 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_function543 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_function547 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_function552 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_function561 = new BitSet(new long[]{0x17CF041814FC25F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_function570 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_argument_in_function575 = new BitSet(new long[]{0x0000000000003000L});
-    public static final BitSet FOLLOW_COMMA_in_function589 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_function593 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_argument_in_function598 = new BitSet(new long[]{0x0000000000003000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_function622 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_curly_chunk_in_function628 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_argument655 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument661 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument663 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_DECLARE_in_declaration703 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_declaration707 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_LEFT_CURLY_in_declaration752 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_decl_attribute_in_declaration778 = new BitSet(new long[]{0x0000000000011000L});
-    public static final BitSet FOLLOW_COMMA_in_declaration783 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_decl_attribute_in_declaration785 = new BitSet(new long[]{0x0000000000011000L});
-    public static final BitSet FOLLOW_RIGHT_CURLY_in_declaration807 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_decl_attribute843 = new BitSet(new long[]{0x17CF041814FE05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_decl_attribute866 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_dotted_name_in_decl_attribute907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_QUERY_in_query980 = new BitSet(new long[]{0x0000000000020100L});
-    public static final BitSet FOLLOW_name_in_query984 = new BitSet(new long[]{0x0000780000080900L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_query994 = new BitSet(new long[]{0x0000000000002100L});
-    public static final BitSet FOLLOW_qualified_id_in_query1029 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_ID_in_query1034 = new BitSet(new long[]{0x0000000000003000L});
-    public static final BitSet FOLLOW_COMMA_in_query1055 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_qualified_id_in_query1059 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_ID_in_query1064 = new BitSet(new long[]{0x0000000000003000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_query1114 = new BitSet(new long[]{0x0000780000080900L});
-    public static final BitSet FOLLOW_normal_lhs_block_in_query1143 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_END_in_query1148 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_query1150 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TEMPLATE_in_template1178 = new BitSet(new long[]{0x0000000000020100L});
-    public static final BitSet FOLLOW_name_in_template1182 = new BitSet(new long[]{0x0000000000000100L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_template1184 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_template_slot_in_template1199 = new BitSet(new long[]{0x0000000000080100L});
-    public static final BitSet FOLLOW_END_in_template1214 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_template1216 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_qualified_id_in_template_slot1262 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_template_slot1278 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_template_slot1280 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_in_rule1311 = new BitSet(new long[]{0x0000000000020100L});
-    public static final BitSet FOLLOW_name_in_rule1315 = new BitSet(new long[]{0x0000003FD7C00000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule_attributes_in_rule1324 = new BitSet(new long[]{0x0000000000400000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_WHEN_in_rule1336 = new BitSet(new long[]{0x0000780000000900L,0x0000000000004002L});
-    public static final BitSet FOLLOW_78_in_rule1338 = new BitSet(new long[]{0x0000780000000900L,0x0000000000000002L});
-    public static final BitSet FOLLOW_normal_lhs_block_in_rule1349 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rhs_chunk_in_rule1359 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ATTRIBUTES_in_rule_attributes1379 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_78_in_rule_attributes1381 = new BitSet(new long[]{0x0000003FD7000000L});
-    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1389 = new BitSet(new long[]{0x0000003FD7001002L});
-    public static final BitSet FOLLOW_COMMA_in_rule_attributes1396 = new BitSet(new long[]{0x0000003FD7000000L});
-    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1401 = new BitSet(new long[]{0x0000003FD7001002L});
-    public static final BitSet FOLLOW_salience_in_rule_attribute1438 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_no_loop_in_rule_attribute1446 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_agenda_group_in_rule_attribute1455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_duration_in_rule_attribute1464 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_activation_group_in_rule_attribute1473 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_auto_focus_in_rule_attribute1481 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_effective_in_rule_attribute1489 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_date_expires_in_rule_attribute1497 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_enabled_in_rule_attribute1505 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1513 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_dialect_in_rule_attribute1528 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DATE_EFFECTIVE_in_date_effective1554 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_STRING_in_date_effective1556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DATE_EXPIRES_in_date_expires1585 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_STRING_in_date_expires1587 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ENABLED_in_enabled1616 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_BOOL_in_enabled1618 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SALIENCE_in_salience1651 = new BitSet(new long[]{0x0000000020000800L});
-    public static final BitSet FOLLOW_INT_in_salience1662 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_salience1677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NO_LOOP_in_no_loop1707 = new BitSet(new long[]{0x0000000008000002L});
-    public static final BitSet FOLLOW_BOOL_in_no_loop1720 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1755 = new BitSet(new long[]{0x0000000008000002L});
-    public static final BitSet FOLLOW_BOOL_in_auto_focus1768 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACTIVATION_GROUP_in_activation_group1804 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_STRING_in_activation_group1806 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1834 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_STRING_in_ruleflow_group1836 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AGENDA_GROUP_in_agenda_group1864 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_STRING_in_agenda_group1866 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DURATION_in_duration1894 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_INT_in_duration1896 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DIALECT_in_dialect1924 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_STRING_in_dialect1926 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1958 = new BitSet(new long[]{0x0000000008000002L});
-    public static final BitSet FOLLOW_BOOL_in_lock_on_active1971 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_in_normal_lhs_block2010 = new BitSet(new long[]{0x0000780000000902L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs2047 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or2072 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_OR_in_lhs_or2074 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or2087 = new BitSet(new long[]{0x0000780000002900L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or2098 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or2116 = new BitSet(new long[]{0x000000C000000002L});
-    public static final BitSet FOLLOW_set_in_lhs_or2124 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or2140 = new BitSet(new long[]{0x000000C000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and2171 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_AND_in_lhs_and2173 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2185 = new BitSet(new long[]{0x0000780000002900L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and2195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2213 = new BitSet(new long[]{0x0000030000000002L});
-    public static final BitSet FOLLOW_set_in_lhs_and2221 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2237 = new BitSet(new long[]{0x0000030000000002L});
-    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary2282 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_lhs_not_in_lhs_unary2300 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary2319 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary2338 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary2355 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_unary2359 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary2361 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_pattern_source_in_lhs_unary2372 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary2384 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_pattern_source2411 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_FROM_in_pattern_source2462 = new BitSet(new long[]{0x0020000000000000L});
-    public static final BitSet FOLLOW_entrypoint_statement_in_pattern_source2466 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FROM_in_pattern_source2486 = new BitSet(new long[]{0x17DF841814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_accumulate_statement_in_pattern_source2544 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_collect_statement_in_pattern_source2567 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_from_statement_in_pattern_source2604 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXISTS_in_lhs_exist2647 = new BitSet(new long[]{0x0000000000000900L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist2667 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_exist2671 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist2701 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist2751 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_lhs_not2803 = new BitSet(new long[]{0x0000000000000900L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not2816 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_not2820 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not2851 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_not2888 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EVAL_in_lhs_eval2934 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval2945 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FORALL_in_lhs_forall2971 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall2973 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2977 = new BitSet(new long[]{0x0000000000002100L});
-    public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2992 = new BitSet(new long[]{0x0000000000002100L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall3008 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_binding_in_lhs_pattern3041 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fact_in_lhs_pattern3049 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_from_source_in_from_statement3076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement3113 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement3123 = new BitSet(new long[]{0x0000780000000900L});
-    public static final BitSet FOLLOW_lhs_or_in_accumulate_statement3127 = new BitSet(new long[]{0x0001000000001100L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3129 = new BitSet(new long[]{0x0001000000000100L});
-    public static final BitSet FOLLOW_INIT_in_accumulate_statement3147 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3160 = new BitSet(new long[]{0x0002000000001000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3162 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_ACTION_in_accumulate_statement3173 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3177 = new BitSet(new long[]{0x000C000000001000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3179 = new BitSet(new long[]{0x000C000000000000L});
-    public static final BitSet FOLLOW_REVERSE_in_accumulate_statement3192 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3196 = new BitSet(new long[]{0x0008000000001000L});
-    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3198 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_RESULT_in_accumulate_statement3215 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3219 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_ID_in_accumulate_statement3245 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3249 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement3266 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_from_source3297 = new BitSet(new long[]{0x0000000000000A02L});
-    public static final BitSet FOLLOW_paren_chunk_in_from_source3325 = new BitSet(new long[]{0x0000000000000202L});
-    public static final BitSet FOLLOW_expression_chain_in_from_source3338 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOT_in_expression_chain3369 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_expression_chain3373 = new BitSet(new long[]{0x8000000000000A02L});
-    public static final BitSet FOLLOW_square_chunk_in_expression_chain3404 = new BitSet(new long[]{0x0000000000000202L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_chain3437 = new BitSet(new long[]{0x0000000000000202L});
-    public static final BitSet FOLLOW_expression_chain_in_expression_chain3452 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_collect_statement3503 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement3513 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_pattern_source_in_collect_statement3517 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement3519 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ENTRY_POINT_in_entrypoint_statement3556 = new BitSet(new long[]{0x0000000000020100L});
-    public static final BitSet FOLLOW_name_in_entrypoint_statement3568 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_fact_binding3600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_78_in_fact_binding3602 = new BitSet(new long[]{0x0000000000000900L});
-    public static final BitSet FOLLOW_fact_in_fact_binding3616 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding3632 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_fact_in_fact_binding3636 = new BitSet(new long[]{0x000000C000002000L});
-    public static final BitSet FOLLOW_set_in_fact_binding3649 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_fact_in_fact_binding3661 = new BitSet(new long[]{0x000000C000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding3679 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_qualified_id_in_fact3734 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_fact3744 = new BitSet(new long[]{0x17CF241814FC2DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_constraints_in_fact3756 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact3763 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EOF_in_fact3772 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_constraint_in_constraints3790 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_COMMA_in_constraints3797 = new BitSet(new long[]{0x17CF241814FC0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_constraint_in_constraints3806 = new BitSet(new long[]{0x0000000000001002L});
-    public static final BitSet FOLLOW_or_constr_in_constraint3839 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr3862 = new BitSet(new long[]{0x0000008000000002L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr3870 = new BitSet(new long[]{0x17CF241814FC0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_and_constr_in_or_constr3879 = new BitSet(new long[]{0x0000008000000002L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr3911 = new BitSet(new long[]{0x0000020000000002L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr3919 = new BitSet(new long[]{0x17CF241814FC0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_unary_constr_in_and_constr3928 = new BitSet(new long[]{0x0000020000000002L});
-    public static final BitSet FOLLOW_field_constraint_in_unary_constr3956 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr3964 = new BitSet(new long[]{0x17CF241814FC0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_or_constr_in_unary_constr3966 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr3969 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EVAL_in_unary_constr3975 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_predicate_in_unary_constr3977 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_field_constraint4016 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_78_in_field_constraint4018 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint4037 = new BitSet(new long[]{0x1FC0100000000802L,0x00000000003F8000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint4051 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_79_in_field_constraint4066 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_predicate_in_field_constraint4068 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_field_constraint4094 = new BitSet(new long[]{0x1FC0100000000800L,0x00000000003F0000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint4103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective4150 = new BitSet(new long[]{0x0000008000000002L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective4174 = new BitSet(new long[]{0x1FC0100000000800L,0x00000000003F0000L});
-    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective4185 = new BitSet(new long[]{0x0000008000000002L});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4217 = new BitSet(new long[]{0x0000020000000002L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective4237 = new BitSet(new long[]{0x1FC0100000000800L,0x00000000003F0000L});
-    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4248 = new BitSet(new long[]{0x0000020000000002L});
-    public static final BitSet FOLLOW_compound_operator_in_constraint_expression4285 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_simple_operator_in_constraint_expression4292 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression4300 = new BitSet(new long[]{0x1FC0100000000800L,0x00000000003F0000L});
-    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression4309 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression4314 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_80_in_simple_operator4345 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_81_in_simple_operator4353 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_82_in_simple_operator4361 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_83_in_simple_operator4369 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_84_in_simple_operator4377 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_simple_operator4385 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_CONTAINS_in_simple_operator4413 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_simple_operator4441 = new BitSet(new long[]{0x0040000000000000L});
-    public static final BitSet FOLLOW_CONTAINS_in_simple_operator4445 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_EXCLUDES_in_simple_operator4473 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_MATCHES_in_simple_operator4501 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_SOUNDSLIKE_in_simple_operator4529 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_simple_operator4557 = new BitSet(new long[]{0x0100000000000000L});
-    public static final BitSet FOLLOW_MATCHES_in_simple_operator4561 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4589 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_simple_operator4617 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4621 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_TILDE_in_simple_operator4627 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_ID_in_simple_operator4631 = new BitSet(new long[]{0xF7CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_square_chunk_in_simple_operator4635 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_simple_operator4644 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_TILDE_in_simple_operator4646 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_ID_in_simple_operator4650 = new BitSet(new long[]{0xF7CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_square_chunk_in_simple_operator4654 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_value_in_simple_operator4669 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IN_in_compound_operator4699 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_NOT_in_compound_operator4711 = new BitSet(new long[]{0x1000000000000000L});
-    public static final BitSet FOLLOW_IN_in_compound_operator4713 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator4728 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator4732 = new BitSet(new long[]{0x0000000000003000L});
-    public static final BitSet FOLLOW_COMMA_in_compound_operator4739 = new BitSet(new long[]{0x77CF04183CFE0DF0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_value_in_compound_operator4743 = new BitSet(new long[]{0x0000000000003000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator4752 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_path_in_expression_value4786 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_constraint_in_expression_value4806 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_expression_value4820 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_literal_constraint4863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_literal_constraint4874 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_literal_constraint4887 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_literal_constraint4898 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_literal_constraint4910 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_predicate4948 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk4966 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_set_in_curly_chunk4970 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk4979 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk4984 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk4998 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_set_in_paren_chunk5002 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk5011 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk5016 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk5029 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_set_in_square_chunk5033 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_square_chunk_in_square_chunk5042 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk5047 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_qualified_id5076 = new BitSet(new long[]{0x8000000000000202L});
-    public static final BitSet FOLLOW_DOT_in_qualified_id5082 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_qualified_id5084 = new BitSet(new long[]{0x8000000000000202L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_qualified_id5093 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_qualified_id5095 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_dotted_name5129 = new BitSet(new long[]{0x8000000000000202L});
-    public static final BitSet FOLLOW_DOT_in_dotted_name5135 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_dotted_name5139 = new BitSet(new long[]{0x8000000000000202L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name5148 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name5150 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path5184 = new BitSet(new long[]{0x0000000000000202L});
-    public static final BitSet FOLLOW_DOT_in_accessor_path5190 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_accessor_element_in_accessor_path5194 = new BitSet(new long[]{0x0000000000000202L});
-    public static final BitSet FOLLOW_identifier_in_accessor_element5232 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_square_chunk_in_accessor_element5239 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_THEN_in_rhs_chunk5260 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_set_in_rhs_chunk5268 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000007FFFFFL});
-    public static final BitSet FOLLOW_END_in_rhs_chunk5292 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_opt_semicolon_in_rhs_chunk5294 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_name5328 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_name5336 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_dashed_id5350 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
-    public static final BitSet FOLLOW_86_in_dashed_id5354 = new BitSet(new long[]{0x17CF041814FC05F0L,0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_dashed_id5356 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
+    public static final BitSet FOLLOW_import_statement_in_statement134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_global_in_statement140 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_function_in_statement146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_template_in_statement160 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule_in_statement169 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_query_in_statement181 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_type_declaration_in_statement196 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_PACKAGE_in_package_statement222 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_dotted_name_in_package_statement226 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_package_statement228 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IMPORT_in_import_statement259 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_import_name_in_import_statement282 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_import_statement285 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IMPORT_in_function_import_statement309 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_FUNCTION_in_function_import_statement311 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_import_name_in_function_import_statement334 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_function_import_statement337 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_import_name362 = new BitSet(new long[]{0x0000000000000102L,0x0000000000002000L});
+    public static final BitSet FOLLOW_DOT_in_import_name374 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_import_name378 = new BitSet(new long[]{0x0000000000000102L,0x0000000000002000L});
+    public static final BitSet FOLLOW_77_in_import_name402 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GLOBAL_in_global436 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_dotted_name_in_global447 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_global458 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_global460 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_function485 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_dotted_name_in_function489 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_function494 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_function503 = new BitSet(new long[]{0x0BE7820C0A7E12F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_dotted_name_in_function512 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_argument_in_function517 = new BitSet(new long[]{0x0000000000001800L});
+    public static final BitSet FOLLOW_COMMA_in_function531 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_dotted_name_in_function535 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_argument_in_function540 = new BitSet(new long[]{0x0000000000001800L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_function564 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_curly_chunk_in_function570 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_argument597 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument603 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument605 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_DECLARE_in_type_declaration645 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_type_declaration649 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_LEFT_CURLY_in_type_declaration694 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_type_decl_attribute_in_type_declaration720 = new BitSet(new long[]{0x0000000000008800L});
+    public static final BitSet FOLLOW_COMMA_in_type_declaration725 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_type_decl_attribute_in_type_declaration727 = new BitSet(new long[]{0x0000000000008800L});
+    public static final BitSet FOLLOW_RIGHT_CURLY_in_type_declaration749 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_type_decl_attribute785 = new BitSet(new long[]{0x0BE7820C0A7F02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_STRING_in_type_decl_attribute808 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_dotted_name_in_type_decl_attribute849 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_QUERY_in_query922 = new BitSet(new long[]{0x0000000000010080L});
+    public static final BitSet FOLLOW_name_in_query926 = new BitSet(new long[]{0x00003C0000040480L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_query936 = new BitSet(new long[]{0x0000000000001080L});
+    public static final BitSet FOLLOW_qualified_id_in_query971 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_ID_in_query976 = new BitSet(new long[]{0x0000000000001800L});
+    public static final BitSet FOLLOW_COMMA_in_query997 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_qualified_id_in_query1001 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_ID_in_query1006 = new BitSet(new long[]{0x0000000000001800L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_query1056 = new BitSet(new long[]{0x00003C0000040480L});
+    public static final BitSet FOLLOW_normal_lhs_block_in_query1085 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_END_in_query1090 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_query1092 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TEMPLATE_in_template1120 = new BitSet(new long[]{0x0000000000010080L});
+    public static final BitSet FOLLOW_name_in_template1124 = new BitSet(new long[]{0x0000000000000080L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_template1126 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_template_slot_in_template1141 = new BitSet(new long[]{0x0000000000040080L});
+    public static final BitSet FOLLOW_END_in_template1156 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_template1158 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_qualified_id_in_template_slot1204 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_template_slot1220 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_template_slot1222 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_in_rule1253 = new BitSet(new long[]{0x0000000000010080L});
+    public static final BitSet FOLLOW_name_in_rule1257 = new BitSet(new long[]{0x0000001FEBE00000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_rule_attributes_in_rule1266 = new BitSet(new long[]{0x0000000000200000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_WHEN_in_rule1278 = new BitSet(new long[]{0x00003C0000000480L,0x0000000000004001L});
+    public static final BitSet FOLLOW_78_in_rule1280 = new BitSet(new long[]{0x00003C0000000480L,0x0000000000000001L});
+    public static final BitSet FOLLOW_normal_lhs_block_in_rule1291 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_rhs_chunk_in_rule1301 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ATTRIBUTES_in_rule_attributes1321 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_78_in_rule_attributes1323 = new BitSet(new long[]{0x0000001FEB800000L});
+    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1331 = new BitSet(new long[]{0x0000001FEB800802L});
+    public static final BitSet FOLLOW_COMMA_in_rule_attributes1338 = new BitSet(new long[]{0x0000001FEB800000L});
+    public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1343 = new BitSet(new long[]{0x0000001FEB800802L});
+    public static final BitSet FOLLOW_salience_in_rule_attribute1380 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_no_loop_in_rule_attribute1388 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_agenda_group_in_rule_attribute1397 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_duration_in_rule_attribute1406 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_activation_group_in_rule_attribute1415 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_auto_focus_in_rule_attribute1423 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_effective_in_rule_attribute1431 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_date_expires_in_rule_attribute1439 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_enabled_in_rule_attribute1447 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1455 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1463 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_dialect_in_rule_attribute1470 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DATE_EFFECTIVE_in_date_effective1496 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_STRING_in_date_effective1498 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DATE_EXPIRES_in_date_expires1527 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_STRING_in_date_expires1529 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ENABLED_in_enabled1558 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_BOOL_in_enabled1560 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_salience1593 = new BitSet(new long[]{0x0000000010000400L});
+    public static final BitSet FOLLOW_INT_in_salience1604 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_salience1619 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NO_LOOP_in_no_loop1649 = new BitSet(new long[]{0x0000000004000002L});
+    public static final BitSet FOLLOW_BOOL_in_no_loop1662 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1697 = new BitSet(new long[]{0x0000000004000002L});
+    public static final BitSet FOLLOW_BOOL_in_auto_focus1710 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACTIVATION_GROUP_in_activation_group1746 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_STRING_in_activation_group1748 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1776 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_STRING_in_ruleflow_group1778 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AGENDA_GROUP_in_agenda_group1806 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_STRING_in_agenda_group1808 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DURATION_in_duration1836 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_INT_in_duration1838 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DIALECT_in_dialect1866 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_STRING_in_dialect1868 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1900 = new BitSet(new long[]{0x0000000004000002L});
+    public static final BitSet FOLLOW_BOOL_in_lock_on_active1913 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_in_normal_lhs_block1952 = new BitSet(new long[]{0x00003C0000000482L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs1989 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or2014 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_OR_in_lhs_or2016 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or2029 = new BitSet(new long[]{0x00003C0000001480L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or2040 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or2058 = new BitSet(new long[]{0x0000006000000002L});
+    public static final BitSet FOLLOW_set_in_lhs_or2066 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or2082 = new BitSet(new long[]{0x0000006000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and2113 = new BitSet(new long[]{0x0000008000000000L});
+    public static final BitSet FOLLOW_AND_in_lhs_and2115 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2127 = new BitSet(new long[]{0x00003C0000001480L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and2137 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2155 = new BitSet(new long[]{0x0000018000000002L});
+    public static final BitSet FOLLOW_set_in_lhs_and2163 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and2179 = new BitSet(new long[]{0x0000018000000002L});
+    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary2224 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_lhs_not_in_lhs_unary2242 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary2261 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary2280 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary2297 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_unary2301 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary2303 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_pattern_source_in_lhs_unary2314 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary2326 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_pattern_source2353 = new BitSet(new long[]{0x0000020000000002L});
+    public static final BitSet FOLLOW_FROM_in_pattern_source2404 = new BitSet(new long[]{0x0010000000000000L});
+    public static final BitSet FOLLOW_entrypoint_statement_in_pattern_source2408 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FROM_in_pattern_source2428 = new BitSet(new long[]{0x0BEFC20C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_accumulate_statement_in_pattern_source2486 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_collect_statement_in_pattern_source2509 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_from_statement_in_pattern_source2546 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXISTS_in_lhs_exist2589 = new BitSet(new long[]{0x0000000000000480L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist2609 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_exist2613 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist2643 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist2693 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_lhs_not2745 = new BitSet(new long[]{0x0000000000000480L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not2758 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_not2762 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not2793 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_not2830 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EVAL_in_lhs_eval2876 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval2887 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FORALL_in_lhs_forall2913 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall2915 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2919 = new BitSet(new long[]{0x0000000000001080L});
+    public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2934 = new BitSet(new long[]{0x0000000000001080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall2950 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_binding_in_lhs_pattern2983 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_fact_in_lhs_pattern2991 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_from_source_in_from_statement3018 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement3055 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement3065 = new BitSet(new long[]{0x00003C0000000480L});
+    public static final BitSet FOLLOW_lhs_or_in_accumulate_statement3069 = new BitSet(new long[]{0x0000800000000880L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3071 = new BitSet(new long[]{0x0000800000000080L});
+    public static final BitSet FOLLOW_INIT_in_accumulate_statement3089 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3102 = new BitSet(new long[]{0x0001000000000800L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3104 = new BitSet(new long[]{0x0001000000000000L});
+    public static final BitSet FOLLOW_ACTION_in_accumulate_statement3115 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3119 = new BitSet(new long[]{0x0006000000000800L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3121 = new BitSet(new long[]{0x0006000000000000L});
+    public static final BitSet FOLLOW_REVERSE_in_accumulate_statement3134 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3138 = new BitSet(new long[]{0x0004000000000800L});
+    public static final BitSet FOLLOW_COMMA_in_accumulate_statement3140 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_RESULT_in_accumulate_statement3157 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3161 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_ID_in_accumulate_statement3187 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement3191 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement3208 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_from_source3239 = new BitSet(new long[]{0x0000000000000502L});
+    public static final BitSet FOLLOW_paren_chunk_in_from_source3267 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_expression_chain_in_from_source3280 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOT_in_expression_chain3311 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_expression_chain3315 = new BitSet(new long[]{0x4000000000000502L});
+    public static final BitSet FOLLOW_square_chunk_in_expression_chain3346 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_chain3379 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_expression_chain_in_expression_chain3394 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_collect_statement3445 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement3455 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_pattern_source_in_collect_statement3459 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement3461 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ENTRY_POINT_in_entrypoint_statement3498 = new BitSet(new long[]{0x0000000000010080L});
+    public static final BitSet FOLLOW_name_in_entrypoint_statement3510 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_fact_binding3542 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_78_in_fact_binding3544 = new BitSet(new long[]{0x0000000000000480L});
+    public static final BitSet FOLLOW_fact_in_fact_binding3558 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding3574 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_fact_in_fact_binding3578 = new BitSet(new long[]{0x0000006000001000L});
+    public static final BitSet FOLLOW_set_in_fact_binding3591 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_fact_in_fact_binding3603 = new BitSet(new long[]{0x0000006000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding3621 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_qualified_id_in_fact3676 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_fact3686 = new BitSet(new long[]{0x0BE7920C0A7E16F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_constraints_in_fact3698 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_fact3705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EOF_in_fact3714 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_constraint_in_constraints3732 = new BitSet(new long[]{0x0000000000000802L});
+    public static final BitSet FOLLOW_COMMA_in_constraints3739 = new BitSet(new long[]{0x0BE7920C0A7E06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_constraint_in_constraints3748 = new BitSet(new long[]{0x0000000000000802L});
+    public static final BitSet FOLLOW_or_constr_in_constraint3781 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr3804 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr3812 = new BitSet(new long[]{0x0BE7920C0A7E06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_and_constr_in_or_constr3821 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr3853 = new BitSet(new long[]{0x0000010000000002L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr3861 = new BitSet(new long[]{0x0BE7920C0A7E06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_unary_constr_in_and_constr3870 = new BitSet(new long[]{0x0000010000000002L});
+    public static final BitSet FOLLOW_field_constraint_in_unary_constr3898 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr3906 = new BitSet(new long[]{0x0BE7920C0A7E06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_or_constr_in_unary_constr3908 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr3911 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EVAL_in_unary_constr3917 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_predicate_in_unary_constr3919 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_field_constraint3958 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_78_in_field_constraint3960 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint3979 = new BitSet(new long[]{0x0FE0080000000402L,0x00000000003F8000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3993 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_79_in_field_constraint4008 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_predicate_in_field_constraint4010 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_field_constraint4036 = new BitSet(new long[]{0x0FE0080000000400L,0x00000000003F0000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constraint4045 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective4092 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective4116 = new BitSet(new long[]{0x0FE0080000000400L,0x00000000003F0000L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective4127 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4159 = new BitSet(new long[]{0x0000010000000002L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective4179 = new BitSet(new long[]{0x0FE0080000000400L,0x00000000003F0000L});
+    public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective4190 = new BitSet(new long[]{0x0000010000000002L});
+    public static final BitSet FOLLOW_compound_operator_in_constraint_expression4227 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_simple_operator_in_constraint_expression4234 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression4242 = new BitSet(new long[]{0x0FE0080000000400L,0x00000000003F0000L});
+    public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression4251 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression4256 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_80_in_simple_operator4287 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_81_in_simple_operator4295 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_82_in_simple_operator4303 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_83_in_simple_operator4311 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_84_in_simple_operator4319 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_85_in_simple_operator4327 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_CONTAINS_in_simple_operator4355 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_NOT_in_simple_operator4383 = new BitSet(new long[]{0x0020000000000000L});
+    public static final BitSet FOLLOW_CONTAINS_in_simple_operator4387 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_EXCLUDES_in_simple_operator4415 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_MATCHES_in_simple_operator4443 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_SOUNDSLIKE_in_simple_operator4471 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_NOT_in_simple_operator4499 = new BitSet(new long[]{0x0080000000000000L});
+    public static final BitSet FOLLOW_MATCHES_in_simple_operator4503 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4531 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_NOT_in_simple_operator4559 = new BitSet(new long[]{0x0200000000000000L});
+    public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4563 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_TILDE_in_simple_operator4569 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_ID_in_simple_operator4573 = new BitSet(new long[]{0x7BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_square_chunk_in_simple_operator4577 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_NOT_in_simple_operator4586 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_TILDE_in_simple_operator4588 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_ID_in_simple_operator4592 = new BitSet(new long[]{0x7BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_square_chunk_in_simple_operator4596 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_expression_value_in_simple_operator4611 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IN_in_compound_operator4641 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_NOT_in_compound_operator4653 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_IN_in_compound_operator4655 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator4670 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator4674 = new BitSet(new long[]{0x0000000000001800L});
+    public static final BitSet FOLLOW_COMMA_in_compound_operator4681 = new BitSet(new long[]{0x3BE7820C1E7F06F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_expression_value_in_compound_operator4685 = new BitSet(new long[]{0x0000000000001800L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator4694 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_accessor_path_in_expression_value4728 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_constraint_in_expression_value4748 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_expression_value4762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal_constraint4805 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal_constraint4816 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal_constraint4829 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal_constraint4840 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_literal_constraint4852 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_predicate4890 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk4908 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_set_in_curly_chunk4912 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk4921 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk4926 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk4940 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_set_in_paren_chunk4944 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk4953 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk4958 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk4971 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_set_in_square_chunk4975 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_square_chunk_in_square_chunk4984 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk4989 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_qualified_id5018 = new BitSet(new long[]{0x4000000000000102L});
+    public static final BitSet FOLLOW_DOT_in_qualified_id5024 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_qualified_id5026 = new BitSet(new long[]{0x4000000000000102L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_qualified_id5035 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_qualified_id5037 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_identifier_in_dotted_name5071 = new BitSet(new long[]{0x4000000000000102L});
+    public static final BitSet FOLLOW_DOT_in_dotted_name5077 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_identifier_in_dotted_name5081 = new BitSet(new long[]{0x4000000000000102L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name5090 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name5092 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path5126 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_DOT_in_accessor_path5132 = new BitSet(new long[]{0x0BE7820C0A7E02F0L,0x0000000000000003L});
+    public static final BitSet FOLLOW_accessor_element_in_accessor_path5136 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_identifier_in_accessor_element5174 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_square_chunk_in_accessor_element5181 = new BitSet(new long[]{0x4000000000000002L});
+    public static final BitSet FOLLOW_THEN_in_rhs_chunk5202 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_set_in_rhs_chunk5210 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000003FFFFFL});
+    public static final BitSet FOLLOW_END_in_rhs_chunk5234 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_opt_semicolon_in_rhs_chunk5236 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_name5270 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_name5278 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_set_in_identifier0 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXISTS_in_synpred12274 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_synpred22292 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EVAL_in_synpred32311 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FORALL_in_synpred42330 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred52349 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FROM_in_synpred62455 = new BitSet(new long[]{0x0020000000000000L});
-    public static final BitSet FOLLOW_ENTRY_POINT_in_synpred62457 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred93396 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred103429 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred114174 = new BitSet(new long[]{0x1FC0100000000800L,0x00000000003F0000L});
-    public static final BitSet FOLLOW_and_restr_connective_in_synpred114185 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred124237 = new BitSet(new long[]{0x1FC0100000000800L,0x00000000003F0000L});
-    public static final BitSet FOLLOW_constraint_expression_in_synpred124248 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXISTS_in_synpred12216 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_synpred22234 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EVAL_in_synpred32253 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FORALL_in_synpred42272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred52291 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FROM_in_synpred62397 = new BitSet(new long[]{0x0010000000000000L});
+    public static final BitSet FOLLOW_ENTRY_POINT_in_synpred62399 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred93338 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_synpred103371 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred114116 = new BitSet(new long[]{0x0FE0080000000400L,0x00000000003F0000L});
+    public static final BitSet FOLLOW_and_restr_connective_in_synpred114127 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred124179 = new BitSet(new long[]{0x0FE0080000000400L,0x00000000003F0000L});
+    public static final BitSet FOLLOW_constraint_expression_in_synpred124190 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -515,7 +515,7 @@
 
         for ( final Iterator it = imports.iterator(); it.hasNext(); ) {
             final ImportDescr importDescr = (ImportDescr) it.next(); 
-            final String importTemplate = "import " + ( importDescr.isEvent() ? "event " : "" ) + importDescr.getTarget() + ";" + DrlDumper.eol;
+            final String importTemplate = "import " + importDescr.getTarget() + ";" + DrlDumper.eol;
             importList += importTemplate;
         }
         return importList + DrlDumper.eol;

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -42,10 +42,6 @@
         return new FunctionImportDescr();
     }
 
-    public ImportDescr createEventImport() {
-        return new ImportDescr( true ); // import is an event
-    }
-
     public QueryDescr createQuery(final String queryName) {
         return new QueryDescr( queryName,
                                "" );
@@ -68,4 +64,8 @@
     public EntryPointDescr createEntryPoint() {
         return new EntryPointDescr();
     }
+    
+    public TypeDeclarationDescr createTypeDeclaration() {
+        return new TypeDeclarationDescr();
+    }
 }

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -24,23 +24,13 @@
 
     private static final long serialVersionUID = 400L;
     private String            target;
-    private boolean           event;
 
     public ImportDescr() {
-        this( null, false );
+        this( null );
     }
 
     public ImportDescr(final String clazzName) {
-        this( clazzName, false );
-    }
-
-    public ImportDescr(final boolean isEvent) {
-        this( null, isEvent );
-    }
-
-    public ImportDescr(final String clazzName, final boolean isEvent ) {
         this.target = clazzName;
-        this.event = isEvent;
     }
 
     public String getTarget() {
@@ -90,8 +80,4 @@
         return "import " + this.target;
     }
 
-    public boolean isEvent() {
-        return this.event;
-    }
-
 }

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/PackageDescr.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -36,7 +36,7 @@
     private List              factTemplates    = Collections.EMPTY_LIST;
     private List              functions        = Collections.EMPTY_LIST;
     private List              rules            = Collections.EMPTY_LIST;
-    private List<TypeDeclarationDescr> declarations     = Collections.emptyList();
+    private List<TypeDeclarationDescr> typeDeclarations     = Collections.emptyList();
 
     public PackageDescr(final String name) {
         this( name,
@@ -148,14 +148,14 @@
         return this.rules;
     }
 
-    public void addDeclaration(TypeDeclarationDescr declaration) {
-        if ( this.declarations == Collections.EMPTY_LIST ) {
-            this.declarations = new ArrayList<TypeDeclarationDescr>();
+    public void addTypeDeclaration(TypeDeclarationDescr declaration) {
+        if ( this.typeDeclarations == Collections.EMPTY_LIST ) {
+            this.typeDeclarations = new ArrayList<TypeDeclarationDescr>();
         }
-        this.declarations.add( declaration );
+        this.typeDeclarations.add( declaration );
     }
     
-    public List<TypeDeclarationDescr> getDeclarations() {
-        return this.declarations;
+    public List<TypeDeclarationDescr> getTypeDeclarations() {
+        return this.typeDeclarations;
     }
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/TypeDeclarationDescr.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/TypeDeclarationDescr.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/TypeDeclarationDescr.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -48,30 +48,30 @@
     
 
     private static final long   serialVersionUID = 400L;
-    private String              identifier;
+    private String              typeName;
     private Map<String, String> attributes;
 
     public TypeDeclarationDescr() {
         this(null);
     }
     
-    public TypeDeclarationDescr(final String identifier) {
-        this.identifier = identifier;
+    public TypeDeclarationDescr(final String typeName) {
+        this.typeName = typeName;
         this.attributes = new HashMap<String, String>();
     }
 
     /**
      * @return the identifier
      */
-    public String getIdentifier() {
-        return identifier;
+    public String getTypeName() {
+        return typeName;
     }
 
     /**
      * @param identifier the identifier to set
      */
-    public void setIdentifier(String identifier) {
-        this.identifier = identifier;
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
     }
     
     /**
@@ -101,6 +101,6 @@
     }
 
     public String toString() {
-        return "TypeDeclaration[ "+this.getIdentifier()+" ]";
+        return "TypeDeclaration[ "+this.getTypeName()+" ]";
     }
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -19,12 +19,9 @@
 import java.util.Iterator;
 
 import org.drools.lang.descr.ProcessDescr;
-import org.drools.lang.descr.RuleDescr;
 import org.drools.rule.ImportDeclaration;
 import org.drools.rule.builder.ProcessBuildContext;
 import org.drools.rule.builder.ProcessClassBuilder;
-import org.drools.rule.builder.RuleBuildContext;
-import org.drools.rule.builder.RuleClassBuilder;
 import org.drools.util.StringUtils;
 
 /**
@@ -50,7 +47,7 @@
         buffer.append( "package " + context.getPkg().getName() + ";" + lineSeparator );
 
         for ( ImportDeclaration decl : context.getPkg().getImports().values() ) {
-            buffer.append( "import " +  ( decl.isEvent() ? "event " : "" ) + decl.getTarget() + ";" + lineSeparator );
+            buffer.append( "import " +  decl.getTarget() + ";" + lineSeparator );
         }
 
         for ( final Iterator it = context.getPkg().getStaticImports().iterator(); it.hasNext(); ) {

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2008-01-27 21:07:59 UTC (rev 18163)
@@ -223,14 +223,13 @@
 statement
 	:	a=rule_attribute { this.packageDescr.addAttribute( a ); }
 	|	function_import_statement 
-	|	event_import_statement
 	|	import_statement 
 	|	global 
 	|	function 
 	|       t=template { this.packageDescr.addFactTemplate( $t.template ); }
 	|	r=rule { this.packageDescr.addRule( $r.rule ); }			
 	|	q=query	{ this.packageDescr.addRule( $q.query ); }
-	|       d=declaration { this.packageDescr.addDeclaration( $d.declaration ); }
+	|       d=type_declaration { this.packageDescr.addTypeDeclaration( $d.declaration ); }
 	;
 	
 package_statement returns [String packageName]
@@ -276,22 +275,6 @@
 	        import_name[importDecl] opt_semicolon
 	;
 
-event_import_statement
-        @init {
-        	ImportDescr importDecl = null;
-        }
-	:	IMPORT EVENT 
-	        {
-	            importDecl = factory.createEventImport( );
-	            importDecl.setStartCharacter( ((CommonToken)$IMPORT).getStartIndex() );
-		    if (packageDescr != null) {
-			packageDescr.addImport( importDecl );
-		    }
-	        }
-	        import_name[importDecl] opt_semicolon
-	;
-
-
 import_name[ImportDescr importDecl] returns [String name]
 	@init {
 		$name = null;
@@ -388,20 +371,20 @@
 	:	id=identifier { $name=$id.text; } ( '[' ']' { $name += "[]";})*
 	;
 	
-declaration returns [TypeDeclarationDescr declaration]
+type_declaration returns [TypeDeclarationDescr declaration]
         @init {
-                $declaration = new TypeDeclarationDescr();
+                $declaration = factory.createTypeDeclaration();
         }
         :	DECLARE id=identifier 
                         {
-                            $declaration.setIdentifier( $id.text );
+                            $declaration.setTypeName( $id.text );
                         }
                 LEFT_CURLY
-                        decl_attribute[$declaration] ( COMMA decl_attribute[$declaration] )*
+                        type_decl_attribute[$declaration] ( COMMA type_decl_attribute[$declaration] )*
                 RIGHT_CURLY
         ;
         
-decl_attribute[TypeDeclarationDescr declaration]
+type_decl_attribute[TypeDeclarationDescr declaration]
         :	att=identifier 
                 ( val=STRING 
                 {

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/StockTick.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/StockTick.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/StockTick.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -5,6 +5,7 @@
     private String company;
     private double price;
     private long time;
+    private long duration;
     
     public StockTick() {
     }
@@ -20,6 +21,19 @@
         this.time = time;
     }
 
+    public StockTick(long seq,
+                     String company,
+                     double price,
+                     long time, 
+                     long duration ) {
+        super();
+        this.seq = seq;
+        this.company = company;
+        this.price = price;
+        this.time = time;
+        this.duration = duration;
+    }
+
     public String getCompany() {
         return company;
     }
@@ -49,4 +63,18 @@
         return "StockTick( "+this.seq+" : " +this.company +" : "+ this.price +" )";
     }
 
+    /**
+     * @return the duration
+     */
+    public long getDuration() {
+        return duration;
+    }
+
+    /**
+     * @param duration the duration to set
+     */
+    public void setDuration(long duration) {
+        this.duration = duration;
+    }
+
 }

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -39,6 +39,7 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.StatefulSession;
+import org.drools.StockTick;
 import org.drools.WorkingMemory;
 import org.drools.base.DefaultKnowledgeHelper;
 import org.drools.common.ActivationGroupNode;
@@ -69,6 +70,7 @@
 import org.drools.lang.descr.QueryDescr;
 import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.RuleDescr;
+import org.drools.lang.descr.TypeDeclarationDescr;
 import org.drools.lang.descr.VariableRestrictionDescr;
 import org.drools.process.core.Process;
 import org.drools.process.core.Variable;
@@ -82,6 +84,7 @@
 import org.drools.rule.PredicateConstraint;
 import org.drools.rule.ReturnValueConstraint;
 import org.drools.rule.Rule;
+import org.drools.rule.TypeDeclaration;
 import org.drools.rule.builder.dialect.java.JavaDialect;
 import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
 import org.drools.spi.Activation;
@@ -193,7 +196,7 @@
                       pkg.getPackageCompilationData().list().length );
 
         builder.addPackage( packageDescr );
-        
+
         pkg = builder.getPackage();
 
         rule = pkg.getRule( "rule-1" );
@@ -1004,7 +1007,7 @@
         PackageBuilder builder = new PackageBuilder();
         PackageDescr pkgDescr = new PackageDescr( "org.test" );
         builder.addPackage( pkgDescr );
-        
+
         final Field dialectField = builder.getClass().getDeclaredField( "dialect" );
         dialectField.setAccessible( true );
         JavaDialect dialect = (JavaDialect) dialectField.get( builder );
@@ -1017,11 +1020,11 @@
 
         // test JANINO with property settings
         PackageBuilderConfiguration conf = new PackageBuilderConfiguration();
-        JavaDialectConfiguration javaConf = ( JavaDialectConfiguration ) conf.getDialectConfiguration( "java" );
+        JavaDialectConfiguration javaConf = (JavaDialectConfiguration) conf.getDialectConfiguration( "java" );
         javaConf.setCompiler( JavaDialectConfiguration.JANINO );
         builder = new PackageBuilder( conf );
         builder.addPackage( pkgDescr );
-        
+
         dialect = (JavaDialect) dialectField.get( builder );
         compiler = (JavaCompiler) compilerField.get( dialect );
         assertSame( JaninoJavaCompiler.class,
@@ -1029,17 +1032,42 @@
 
         // test eclipse jdt core with property settings and default source level
         conf = new PackageBuilderConfiguration();
-        javaConf = ( JavaDialectConfiguration ) conf.getDialectConfiguration( "java" );
+        javaConf = (JavaDialectConfiguration) conf.getDialectConfiguration( "java" );
         javaConf.setCompiler( JavaDialectConfiguration.ECLIPSE );
         builder = new PackageBuilder( conf );
         builder.addPackage( pkgDescr );
-        
+
         dialect = (JavaDialect) dialectField.get( builder );
         compiler = (JavaCompiler) compilerField.get( dialect );
         assertSame( EclipseJavaCompiler.class,
                     compiler.getClass() );
     }
 
+    public void testTypeDeclaration() throws Exception {
+        PackageDescr pkgDescr = new PackageDescr( "org.test" );
+        TypeDeclarationDescr typeDescr = new TypeDeclarationDescr( "StockTick" );
+        typeDescr.addAttribute( TypeDeclarationDescr.ATTR_ROLE,
+                                "event" );
+        typeDescr.addAttribute( TypeDeclarationDescr.ATTR_CLASS,
+                                "org.drools.StockTick" );
+        pkgDescr.addTypeDeclaration( typeDescr );
+
+        PackageBuilder builder = new PackageBuilder();
+        builder.addPackage( pkgDescr );
+
+        Package pkg = builder.getPackage();
+        assertEquals( 1,
+                      pkg.getTypeDeclarations().size() );
+
+        TypeDeclaration type = pkg.getTypeDeclaration( "StockTick" );
+        assertEquals( "StockTick",
+                      type.getTypeName() );
+        assertEquals( TypeDeclaration.Role.EVENT,
+                      type.getRole() );
+        assertEquals( StockTick.class,
+                      type.getTypeClass() );
+    }
+
     public void testPackageMerge() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         try {
@@ -1251,21 +1279,19 @@
         assertFalse( pkg.getRuleFlows().containsKey( "1" ) );
 
     }
-    
+
     public void testJaninoWithStaticImports() throws Exception {
         PackageBuilderConfiguration cfg = new PackageBuilderConfiguration();
-        JavaDialectConfiguration javaConf = ( JavaDialectConfiguration ) cfg.getDialectConfiguration( "java" );
+        JavaDialectConfiguration javaConf = (JavaDialectConfiguration) cfg.getDialectConfiguration( "java" );
         javaConf.setCompiler( JavaDialectConfiguration.JANINO );
-        
-        
-        PackageBuilder bldr = new PackageBuilder(cfg);
-        bldr.addPackageFromDrl( new StringReader("package testBuilderPackageConfig \n import java.util.List") );
-        bldr.addPackageFromDrl( new StringReader("function void doSomething() {\n System.err.println(List.class.toString()); }"));
-        
-        assertFalse(bldr.hasErrors());
-        
+
+        PackageBuilder bldr = new PackageBuilder( cfg );
+        bldr.addPackageFromDrl( new StringReader( "package testBuilderPackageConfig \n import java.util.List" ) );
+        bldr.addPackageFromDrl( new StringReader( "function void doSomething() {\n System.err.println(List.class.toString()); }" ) );
+
+        assertFalse( bldr.hasErrors() );
+
     }
-    
 
     class MockRuleFlow
         implements
@@ -1292,9 +1318,9 @@
         public String getVersion() {
             return null;
         }
-        
+
         public String getPackageName() {
-        	return null;
+            return null;
         }
 
         public void setId(String id) {
@@ -1308,7 +1334,7 @@
 
         public void setVersion(String version) {
         }
-        
+
         public void setPackageName(String packageName) {
         }
 

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -110,7 +110,7 @@
 
     }
 
-    public void testTimeRelationalOperators() throws Exception {
+    public void FIXME_testTimeRelationalOperators() throws Exception {
         // read in the source
         final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_TimeRelationalOperators.drl" ) );
         final RuleBase ruleBase = loadRuleBase( reader );
@@ -163,49 +163,57 @@
         StockTick tick1 = new StockTick( 1,
                                          "DROO",
                                          50,
-                                         System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         3 );
         StockTick tick2 = new StockTick( 2,
                                          "ACME",
                                          10,
-                                         System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         3 );
         StockTick tick3 = new StockTick( 3,
                                          "ACME",
                                          10,
-                                         System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         3 );
         StockTick tick4 = new StockTick( 4,
                                          "DROO",
                                          50,
-                                         System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         5 );
         StockTick tick5 = new StockTick( 5,
                 						 "ACME",
                 						 10,
-                						 System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         5 );
         StockTick tick6 = new StockTick( 6,
 										 "ACME",
 										 10,
-										 System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         3 );
         StockTick tick7 = new StockTick( 7,
 				 						 "ACME",
 				 						 10,
-				 						 System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         5 );
         StockTick tick8 = new StockTick( 8,
 										 "ACME",
 										 10,
-										 System.currentTimeMillis() );
+                                         System.currentTimeMillis(),
+                                         3 );
 
-        InternalFactHandle handle1 = (InternalFactHandle) wm.insert( tick1, 3 );
+        InternalFactHandle handle1 = (InternalFactHandle) wm.insert( tick1 );
         clock.advanceTime( 4 );
-        InternalFactHandle handle2 = (InternalFactHandle) wm.insert( tick2, 3 );
+        InternalFactHandle handle2 = (InternalFactHandle) wm.insert( tick2 );
         clock.advanceTime( 4 );
-        InternalFactHandle handle3 = (InternalFactHandle) wm.insert( tick3, 3 );
+        InternalFactHandle handle3 = (InternalFactHandle) wm.insert( tick3 );
         clock.advanceTime( 4 );
-        InternalFactHandle handle4 = (InternalFactHandle) wm.insert( tick4, 5 );
-        InternalFactHandle handle5 = (InternalFactHandle) wm.insert( tick5, 5 );
+        InternalFactHandle handle4 = (InternalFactHandle) wm.insert( tick4 );
+        InternalFactHandle handle5 = (InternalFactHandle) wm.insert( tick5 );
         clock.advanceTime( 1 );
-        InternalFactHandle handle6 = (InternalFactHandle) wm.insert( tick6, 3 );
-        InternalFactHandle handle7 = (InternalFactHandle) wm.insert( tick7, 5 );
+        InternalFactHandle handle6 = (InternalFactHandle) wm.insert( tick6 );
+        InternalFactHandle handle7 = (InternalFactHandle) wm.insert( tick7 );
         clock.advanceTime( 2 );
-        InternalFactHandle handle8 = (InternalFactHandle) wm.insert( tick8, 3 );
+        InternalFactHandle handle8 = (InternalFactHandle) wm.insert( tick8 );
         
         assertNotNull( handle1 );
         assertNotNull( handle2 );
@@ -298,7 +306,7 @@
 
     }
 
-    public void testSimpleTimeWindow() throws Exception {
+    public void FIXME_testSimpleTimeWindow() throws Exception {
         // read in the source
         final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_SimpleTimeWindow.drl" ) );
         final RuleBase ruleBase = loadRuleBase( reader );

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -3740,26 +3740,6 @@
         assertTrue( re.isNegated() );
     }
 
-    public void testEventImport() throws Exception {
-        final DRLParser parser = parseResource( "import_event.drl" );
-        parser.compilation_unit();
-
-        assertFalse( "Parser should not raise errors: " + parser.getErrorMessages().toString(),
-                     parser.hasErrors() );
-
-        final PackageDescr pack = parser.getPackageDescr();
-
-        final List imports = pack.getImports();
-
-        assertEquals( 1,
-                      imports.size() );
-
-        final ImportDescr descr = (ImportDescr) imports.get( 0 );
-
-        assertTrue( descr.isEvent() );
-
-    }
-
     public void testTypeDeclaration() throws Exception {
         final DRLParser parser = parseResource( "declare_type.drl" );
         parser.compilation_unit();
@@ -3769,7 +3749,7 @@
 
         final PackageDescr pack = parser.getPackageDescr();
 
-        final List<TypeDeclarationDescr> declarations = pack.getDeclarations();
+        final List<TypeDeclarationDescr> declarations = pack.getTypeDeclarations();
 
         assertEquals( 1,
                       declarations.size() );

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl	2008-01-27 21:07:59 UTC (rev 18163)
@@ -1,7 +1,12 @@
 package org.drools;
 
-import event org.drools.StockTick;
+import org.drools.StockTick;
 
+declare StockTick {
+    role event,
+    clock_strategy pseudo
+}
+
 global java.util.List results;
 
 rule "Check event"

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl	2008-01-27 21:07:59 UTC (rev 18163)
@@ -1,7 +1,12 @@
 package org.drools;
 
-import event org.drools.StockTick;
+import org.drools.StockTick;
 
+declare StockTick {
+    role event,
+    duration_attribute duration
+}
+
 global java.util.List results_coincides;
 global java.util.List results_after;
 global java.util.List results_before;

Modified: labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint.drl	2008-01-27 21:07:59 UTC (rev 18163)
@@ -1,9 +1,13 @@
 package org.drools;
 
-import event org.drools.StockTick;
+import org.drools.StockTick;
 
 global java.util.List results;
 
+declare StockTick {
+    role event
+}
+
 rule "Test entry point"
 when
     $st : StockTick( company == "ACME", price > 10 ) from entry-point StockStream

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/WorkingMemory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/WorkingMemory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/WorkingMemory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -218,21 +218,6 @@
     FactHandle insert(Object object) throws FactException;
     
     /**
-     * Assert a fact with inherent duration.
-     * 
-     * @param object
-     *            The fact object.
-     * @param duration
-     *            The duration of the fact.
-     * 
-     * @return The new fact-handle associated with the object.
-     * 
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    FactHandle insert(Object object, long duration) throws FactException;
-
-    /**
      * Retrieve the QueryResults of the specified query.
      *
      * @param query
@@ -283,29 +268,6 @@
                             boolean dynamic) throws FactException;
     
     /**
-     * Insert a fact with inherent duration registering JavaBean 
-     * <code>PropertyChangeListeners</code> on the Object to 
-     * automatically trigger <code>update</code> calls
-     * if <code>dynamic</code> is <code>true</code>.
-     * 
-     * @param object
-     *            The fact object.
-     * @param duration
-     *            The duration of the fact.
-     * @param dynamic
-     *            true if Drools should add JavaBean
-     *            <code>PropertyChangeListeners</code> to the object.
-     * 
-     * @return The new fact-handle associated with the object.
-     * 
-     * @throws FactException
-     *             If a RuntimeException error occurs.
-     */
-    FactHandle insert(Object object,
-    				  long duration,
-                      boolean dynamic) throws FactException;
-
-    /**
      * Retract a fact.
      * 
      * @param handle

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -59,71 +59,32 @@
 
     public void insert(final Object object) throws FactException {
         insert( object,
-        		0,
                 false );
     }
 
-    public void insert(final Object object, 
-    				   final long duration) throws FactException {
-        insert( object,
-        		duration,
-                false );
-    }
-    
     public void insert(final Object object,
                        final boolean dynamic) throws FactException {
         this.workingMemory.insert( object,
-        						   0,
                                    dynamic,
                                    false,
                                    this.rule,
                                    this.activation );
     }
     
-    public void insert(final Object object,
-    				   final long duration,
-    				   final boolean dynamic) throws FactException {
-		this.workingMemory.insert( object,
-								duration,
-		                        dynamic,
-		                        false,
-		                        this.rule,
-		                        this.activation );
-	}
-
     public void insertLogical(final Object object) throws FactException {
         insertLogical( object,
-        			   0,
                        false );
     }
 
-    public void insertLogical(final Object object, final long duration) throws FactException {
-        insertLogical( object,
-        			   duration,
-                       false );
-    }
-    
     public void insertLogical(final Object object,
                               final boolean dynamic) throws FactException {
         this.workingMemory.insert( object,
-        						   0,
                                    dynamic,
                                    true,
                                    this.rule,
                                    this.activation );
     }
     
-    public void insertLogical(final Object object,
-    						  final long duration,
-    						  final boolean dynamic) throws FactException {
-		this.workingMemory.insert( object,
-								   duration,
-								   dynamic,
-								   true,
-								   this.rule,
-								   this.activation );
-	}
-
     public void update(final FactHandle handle,
                        final Object newObject) throws FactException {
         // only update if this fact exists in the wm

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -45,37 +45,16 @@
             return newFactHandle( this.factHandlePool.pop(),
                                   object, 
                                   isEvent,
-                                  0,
                                   workingMemory );
         }
 
         return newFactHandle( this.id++,
                               object,
                               isEvent,
-                              0,
                               workingMemory );
     }
     
     /* (non-Javadoc)
-     * @see org.drools.reteoo.FactHandleFactory#newFactHandle()
-     */
-    public final InternalFactHandle newFactHandle( final Object object, final boolean isEvent, long duration, final WorkingMemory workingMemory ) {
-        if ( !this.factHandlePool.isEmpty() ) {
-            return newFactHandle( this.factHandlePool.pop(),
-                                  object, 
-                                  isEvent,
-                                  duration,
-                                  workingMemory );
-        }
-
-        return newFactHandle( this.id++,
-                              object,
-                              isEvent,
-                              duration,
-                              workingMemory );
-    }
-
-    /* (non-Javadoc)
      * @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
      */
     protected final InternalFactHandle newFactHandle(final long id,
@@ -86,29 +65,12 @@
                               object,
                               this.counter++,
                               isEvent,
-                              0,
                               workingMemory );
     }
     
     /* (non-Javadoc)
      * @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
      */
-    protected final InternalFactHandle newFactHandle(final long id,
-                                                     final Object object,
-                                                     final boolean isEvent,
-                                                     final long duration,
-                                                     final WorkingMemory workingMemory ) {
-        return newFactHandle( id,
-                              object,
-                              this.counter++,
-                              isEvent,
-                              duration,
-                              workingMemory );
-    }
-
-    /* (non-Javadoc)
-     * @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
-     */
     protected abstract InternalFactHandle newFactHandle(final long id,
                                                         final Object object,
                                                         final long recency,
@@ -116,16 +78,6 @@
                                                         final WorkingMemory workingMemory );
     
     /* (non-Javadoc)
-     * @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
-     */
-    protected abstract InternalFactHandle newFactHandle(final long id,
-                                                        final Object object,
-                                                        final long recency,
-                                                        final boolean isEvent,
-                                                        final long duration,
-                                                        final WorkingMemory workingMemory );
-
-    /* (non-Javadoc)
      * @see org.drools.reteoo.FactHandleFactory#increaseFactHandleRecency(org.drools.FactHandle)
      */
     public final void increaseFactHandleRecency(final InternalFactHandle factHandle) {

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -69,7 +69,6 @@
 import org.drools.rule.Rule;
 import org.drools.rule.TimeMachine;
 import org.drools.ruleflow.core.RuleFlowProcess;
-import org.drools.ruleflow.instance.RuleFlowProcessInstance;
 import org.drools.ruleflow.instance.RuleFlowProcessInstanceFactory;
 import org.drools.spi.Activation;
 import org.drools.spi.AgendaFilter;
@@ -593,87 +592,41 @@
      */
     public FactHandle insert(final Object object) throws FactException {
         return insert( object, /* Not-Dynamic */
-                       0,
                        false,
                        false,
                        null,
                        null );
     }
 
-    public FactHandle insert(final Object object,
-                             final long duration) throws FactException {
-        return insert( object, /* Not-Dynamic */
-                       duration,
-                       false,
-                       false,
-                       null,
-                       null );
-    }
-
     /**
      * @see WorkingMemory
      */
     public FactHandle insertLogical(final Object object) throws FactException {
         return insert( object, //Not-Dynamic 
-                       0,
                        false,
                        true,
                        null,
                        null );
     }
 
-    public FactHandle insertLogical(final Object object,
-                                    final long duration) throws FactException {
-        return insert( object, /* Not-Dynamic */
-                       duration,
-                       false,
-                       true,
-                       null,
-                       null );
-    }
-
     public FactHandle insert(final Object object,
                              final boolean dynamic) throws FactException {
         return insert( object,
-                       0,
                        dynamic,
                        false,
                        null,
                        null );
     }
 
-    public FactHandle insert(final Object object,
-                             final long duration,
-                             final boolean dynamic) throws FactException {
-        return insert( object,
-                       duration,
-                       dynamic,
-                       false,
-                       null,
-                       null );
-    }
-
     public FactHandle insertLogical(final Object object,
                                     final boolean dynamic) throws FactException {
         return insert( object,
-                       0,
                        dynamic,
                        true,
                        null,
                        null );
     }
 
-    public FactHandle insertLogical(final Object object,
-                                    final long duration,
-                                    final boolean dynamic) throws FactException {
-        return insert( object,
-                       duration,
-                       dynamic,
-                       true,
-                       null,
-                       null );
-    }
-
     public FactHandle insert(final Object object,
                              final boolean dynamic,
                              boolean logical,
@@ -681,7 +634,6 @@
                              final Activation activation) throws FactException {
         return this.insert( EntryPoint.DEFAULT,
                             object,
-                            0,
                             dynamic,
                             logical,
                             rule,
@@ -689,43 +641,12 @@
 
     }
 
-    public FactHandle insert(final Object object,
-                             final long duration,
-                             final boolean dynamic,
-                             boolean logical,
-                             final Rule rule,
-                             final Activation activation) throws FactException {
-        return this.insert( EntryPoint.DEFAULT,
-                            object,
-                            duration,
-                            dynamic,
-                            logical,
-                            rule,
-                            activation );
-    }
-
     protected FactHandle insert(final EntryPoint entryPoint,
                                 final Object object,
                                 final boolean dynamic,
                                 boolean logical,
                                 final Rule rule,
                                 final Activation activation) throws FactException {
-        return this.insert( entryPoint,
-                            object,
-                            0,
-                            dynamic,
-                            logical,
-                            rule,
-                            activation );
-    }
-
-    protected FactHandle insert(final EntryPoint entryPoint,
-                                final Object object,
-                                final long duration,
-                                final boolean dynamic,
-                                boolean logical,
-                                final Rule rule,
-                                final Activation activation) throws FactException {
         if ( object == null ) {
             // you cannot assert a null object
             return null;
@@ -739,7 +660,6 @@
         if ( isSequential() ) {
             handle = this.handleFactory.newFactHandle( object,
                                                        typeConf.isEvent(),
-                                                       duration,
                                                        this );
             this.objectStore.addHandle( handle, object );
             insert( entryPoint,
@@ -797,7 +717,6 @@
                     // assert
                     handle = this.handleFactory.newFactHandle( object,
                                                                typeConf.isEvent(),
-                                                               duration,
                                                                this );
                     this.objectStore.addHandle( handle, object );
 
@@ -850,7 +769,6 @@
                             key.setStatus( EqualityKey.STATED );
                             handle = this.handleFactory.newFactHandle( object,
                                                                        typeConf.isEvent(),
-                                                                       duration,
                                                                        this );
                             handle.setEqualityKey( key );
                             key.addFactHandle( handle );
@@ -861,7 +779,6 @@
                     } else {
                         handle = this.handleFactory.newFactHandle( object,
                                                                    typeConf.isEvent(),
-                                                                   duration,
                                                                    this );
                         this.objectStore.addHandle( handle, object );
                         key.addFactHandle( handle );
@@ -892,7 +809,6 @@
                 }
                 handle = this.handleFactory.newFactHandle( object,
                                                            typeConf.isEvent(),
-                                                           duration,
                                                            this );
                 this.objectStore.addHandle( handle, object );
 

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -19,7 +19,6 @@
 import org.drools.spi.Activation;
 import org.drools.spi.FactHandleFactory;
 import org.drools.spi.PropagationContext;
-import org.drools.util.ObjectHashMap;
 
 public interface InternalWorkingMemory
     extends

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryActions.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -35,26 +35,15 @@
                         Rule rule,
                         Activation activation) throws FactException;
 
-    /*FactHandle insert(Object object,
+    FactHandle insert(Object object,
                       boolean dynamic,
                       boolean logical,
                       Rule rule,
-                      Activation activation) throws FactException;*/
+                      Activation activation) throws FactException;
     
-    FactHandle insert(Object object,
-    		long duration,
-            boolean dynamic,
-            boolean logical,
-            Rule rule,
-            Activation activation) throws FactException;
-
-    /*public FactHandle insertLogical(Object object,
-                                    boolean dynamic) throws FactException;*/
-    
     public FactHandle insertLogical(Object object,
-    								long duration,
-    								boolean dynamic) throws FactException;
-
+                                    boolean dynamic) throws FactException;
+    
     public void modifyRetract(final FactHandle factHandle,
                               final Rule rule,
                               final Activation activation);

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -381,7 +381,7 @@
 
         // First alpha node filters
         boolean isAllowed = true;
-        final InternalFactHandle createdHandle = workingMemory.getFactHandleFactory().newFactHandle( result, false, 0, workingMemory ); // so far, result is not an event
+        final InternalFactHandle createdHandle = workingMemory.getFactHandleFactory().newFactHandle( result, false, workingMemory ); // so far, result is not an event
         for ( int i = 0, length = this.resultConstraints.length; i < length; i++ ) {
             if ( !this.resultConstraints[i].isAllowed( createdHandle,
                                                        workingMemory ) ) {

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -52,29 +52,6 @@
     }
     
     /* (non-Javadoc)
-     * @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
-     */
-    protected final InternalFactHandle newFactHandle(final long id,
-                                                     final Object object,
-                                                     final long recency,
-                                                     final boolean isEvent,
-                                                     final long duration,
-                                                     final WorkingMemory workingMemory ) {
-        if ( isEvent ) {
-            SessionClock clock = ((TemporalSession) workingMemory).getSessionClock(); 
-            return new EventFactHandle( id,
-                                        object,
-                                        recency,
-                                        clock.getCurrentTime(),
-                                        duration );  // primitive events have 0 duration
-        } else {
-            return new DefaultFactHandle( id,
-                                          object,
-                                          recency );
-        }
-    }
-
-    /* (non-Javadoc)
      * @see org.drools.reteoo.FactHandleFactory#newInstance()
      */
     public FactHandleFactory newInstance() {

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -89,7 +89,7 @@
     public QueryResults getQueryResults(final String query, final Object[] arguments) {
 
         Object object = new DroolsQuery( query, arguments );
-        InternalFactHandle handle = this.handleFactory.newFactHandle( object, false, 0, this );
+        InternalFactHandle handle = this.handleFactory.newFactHandle( object, false, this );
         
         insert( EntryPoint.DEFAULT, // query dummy objects always use default entry point
                 handle,

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -20,9 +20,7 @@
 import java.io.Serializable;
 
 /**
- * A class to represent an import declaration. That declaration
- * may have additional metadata associated to it, like a flag
- * stating if the imported class is an event or not
+ * A class to represent an import declaration. 
  * 
  * @author etirelli
  */
@@ -31,13 +29,12 @@
     private static final long serialVersionUID = 6410032114027977766L;
 
     private String target;
-    private boolean isEvent;
 
     /**
      * Creates an empty import declaration 
      */
     public ImportDeclaration() {
-        this( null, false );
+        this( null );
     }
 
     /**
@@ -46,30 +43,10 @@
      * @param target
      */
     public ImportDeclaration( String target ) {
-        this( target, false ); 
-    }
-    
-    /**
-     * Creates an import declaration for the given target.
-     * 
-     * @param target the import target
-     * @param isEvent true if the target is an event-type target, false otherwise.
-     */
-    public ImportDeclaration(String target,
-                             boolean isEvent) {
         super();
         this.target = target;
-        this.isEvent = isEvent;
     }
-
-    public boolean isEvent() {
-        return isEvent;
-    }
-
-    public void setEvent(boolean isEvent) {
-        this.isEvent = isEvent;
-    }
-
+    
     public String getTarget() {
         return target;
     }
@@ -81,7 +58,6 @@
     public int hashCode() {
         final int PRIME = 31;
         int result = 1;
-        result = PRIME * result + (isEvent ? 1231 : 1237);
         result = PRIME * result + ((target == null) ? 0 : target.hashCode());
         return result;
     }
@@ -91,7 +67,6 @@
         if ( obj == null ) return false;
         if ( getClass() != obj.getClass() ) return false;
         final ImportDeclaration other = (ImportDeclaration) obj;
-        if ( isEvent != other.isEvent ) return false;
         if ( target == null ) {
             if ( other.target != null ) return false;
         } else if ( !target.equals( other.target ) ) return false;
@@ -105,7 +80,7 @@
      * @param name
      * @return
      */
-    public boolean matches( Class clazz ) {
+    public boolean matches( Class<?> clazz ) {
         // fully qualified import?
         if( this.target.equals( clazz.getName() ) ) {
             return true;

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/Package.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/Package.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -233,6 +233,10 @@
     public Map<String, TypeDeclaration> getTypeDeclarations() {
         return this.typeDeclarations;
     }
+    
+    public TypeDeclaration getTypeDeclaration( String type ) {
+        return this.typeDeclarations.get( type );
+    }
 
     public void addStaticImport(final String functionImport) {
         if ( this.staticImports == Collections.EMPTY_SET ) {
@@ -474,23 +478,13 @@
         if( clazz == null ) {
             return false;
         }
-        // check if clazz is resolved by any of the import declarations
-        for( ImportDeclaration imp : this.imports.values() ) {
-            if( imp.isEvent() && imp.matches( clazz ) ) {
+        // check if clazz is resolved by any of the type declarations
+        for( TypeDeclaration type : this.typeDeclarations.values() ) {
+            if( type.matches( clazz ) && type.getRole() == TypeDeclaration.Role.EVENT ) {
                 return true;
             }
         }
-        // if it is not resolved, try superclass 
-        if( this.isEvent( clazz.getSuperclass() ) ) {
-            return true;
-        }
-        
-        // if it is no resolved, try interfaces
-        for( Class interf : clazz.getInterfaces() ) {
-            if( this.isEvent( interf ) ) {
-                return true;
-            }
-        }
+
         return false;
     }
 
@@ -503,5 +497,6 @@
         this.staticImports.clear();
         this.globals.clear();
         this.factTemplates.clear();
+        this.typeDeclarations.clear();
     }
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/TypeDeclaration.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -18,9 +18,6 @@
 
 package org.drools.rule;
 
-import java.util.Map;
-
-import org.drools.RuntimeDroolsException;
 import org.drools.facttemplates.FactTemplate;
 
 /**
@@ -32,49 +29,53 @@
 public class TypeDeclaration {
     
     public static enum Role {
-        FACT("fact"), 
-        EVENT("event");
+        FACT,
+        EVENT;
         
-        private static Map<String, Role> roles;
-        Role( String text ) {
-            Role.roles.put( text, this );
+        public static Role parseRole( String role ) {
+            if( "event".equalsIgnoreCase( role ) ) {
+                return EVENT;
+            } else if( "fact".equalsIgnoreCase( role ) ) {
+                return FACT;
+            }
+            return null;
         }
-        
-        public static Role parseRole( String roleStr ) {
-            return roles.get( roleStr.toLowerCase() );
-        }
     }
     
     public static enum Format {
-        POJO("pojo"), 
-        TEMPLATE("template");
-        
-        private static Map<String, Format> formats;
-        Format( String format ) {
-            Format.formats.put( format, this );
-        }
-        
+        POJO, 
+        TEMPLATE;
+
         public static Format parseFormat( String format ) {
-            return formats.get( format.toLowerCase() );
+            if( "pojo".equalsIgnoreCase( format ) ) {
+                return POJO;
+            } else if( "template".equalsIgnoreCase( format ) ) {
+                return TEMPLATE;
+            }
+            return null;
         }
     }
     
     public static enum ClockStrategy {
-        NONE("none"),
-        PSEUDO("pseudo"), 
-        SYSTEM("system"), 
-        HEARTBEAT("heartbeat"), 
-        ATTRIBUTE("attribute");
-
-        public static final String ATTR_NAME = "clock_strategy";
-
-        private static Map<String, ClockStrategy> strategies;
-        ClockStrategy( String strategy ) {
-            ClockStrategy.strategies.put( strategy, this );
-        }
+        NONE,
+        PSEUDO, 
+        SYSTEM, 
+        HEARTBEAT, 
+        ATTRIBUTE;
         
-        public static ClockStrategy parseStrategy( String strategy ) {
-            return strategies.get( strategy.toLowerCase() );
+        public static ClockStrategy parseClockStrategy( String clockStrategy ) {
+            if( "none".equalsIgnoreCase( clockStrategy ) ) {
+                return NONE;
+            } else if( "pseudo".equalsIgnoreCase( clockStrategy ) ) {
+                return PSEUDO;
+            } else if( "system".equalsIgnoreCase( clockStrategy ) ) {
+                return SYSTEM;
+            } else if( "heartbeat".equalsIgnoreCase( clockStrategy ) ) {
+                return HEARTBEAT;
+            } else if( "attribute".equalsIgnoreCase( clockStrategy ) ) {
+                return ATTRIBUTE;
+            }
+            return null;
         }
     }
 
@@ -120,17 +121,6 @@
     }
 
     /**
-     * @param role the category to set
-     */
-    public void setRole(String role) {
-        Role r = Role.parseRole( role );
-        if( r == null ) {
-            throw new RuntimeDroolsException( "Unknown role '"+role+"' declared for type '"+this.typeName+"'");
-        }
-        this.role = r;
-    }
-
-    /**
      * @return the format
      */
     public Format getFormat() {
@@ -145,17 +135,6 @@
     }
 
     /**
-     * @param format the format to set
-     */
-    public void setFormat(String format) {
-        Format f = Format.parseFormat( format );
-        if( f == null ) {
-            throw new RuntimeDroolsException( "Unknown format '"+format+"' declared for type '"+this.typeName+"'");
-        }
-        this.format = f;
-    }
-
-    /**
      * @return the clockStrategy
      */
     public ClockStrategy getClockStrategy() {
@@ -170,17 +149,6 @@
     }
 
     /**
-     * @param clockStrategy the clockStrategy to set
-     */
-    public void setClockStrategy(String clockStrategy) {
-        ClockStrategy c = ClockStrategy.parseStrategy( clockStrategy );
-        if( c == null ) {
-            throw new RuntimeDroolsException( "Unknown clock strategy '"+clockStrategy+"' declared for type '"+this.typeName+"'");
-        }
-        this.clockStrategy = c;
-    }
-
-    /**
      * @return the timestampAttribute
      */
     public String getTimestampAttribute() {
@@ -236,5 +204,21 @@
         this.typeTemplate = typeTemplate;
     }
     
+    /**
+     * Returns true if the given parameter matches this type declaration
+     * 
+     * @param clazz
+     * @return
+     */
+    public boolean matches( Object clazz ) {
+        boolean matches = false;
+        if( clazz instanceof FactTemplate ) {
+            matches = this.typeTemplate.equals( clazz );
+        } else {
+            matches = this.typeClass.isAssignableFrom( (Class<?>) clazz );
+        }
+        return matches;
+    }
     
+    
 }

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -41,13 +41,6 @@
     InternalFactHandle newFactHandle(Object object, boolean isEvent, WorkingMemory workingMemory );
     
     /**
-     * Construct a handle with a new id and a duration.
-     * 
-     * @return The handle.
-     */
-    InternalFactHandle newFactHandle(Object object, boolean isEvent, long duration, WorkingMemory workingMemory );
-
-    /**
      * Increases the recency of the FactHandle
      * 
      * @param factHandle

Modified: labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java	2008-01-27 20:42:02 UTC (rev 18162)
+++ labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java	2008-01-27 21:07:59 UTC (rev 18163)
@@ -58,17 +58,6 @@
     void insert(Object object) throws FactException;
     
     /**
-     * Asserts an object, notice that it does not return the FactHandle
-     * 
-     * @param object -
-     *            the object to be asserted
-     * @throws FactException -
-     *             Exceptions can be thrown by conditions which are wrapped and
-     *             returned as a FactException
-     */
-    void insert(Object object, long duration) throws FactException;
-
-    /**
      * Asserts an object specifying that it implement the onPropertyChange
      * listener, notice that it does not return the FactHandle.
      * 
@@ -83,33 +72,11 @@
     void insert(Object object,
                       boolean dynamic) throws FactException;
     
-    /**
-     * Asserts an object specifying that it implement the onPropertyChange
-     * listener, notice that it does not return the FactHandle.
-     * 
-     * @param object -
-     *            the object to be asserted
-     * @param dynamic -
-     *            specifies the object implements onPropertyChangeListener
-     * @throws FactException -
-     *             Exceptions can be thrown by conditions which are wrapped and
-     *             returned as a FactException
-     */
-    void insert(Object object,
-    			long duration,
-                boolean dynamic) throws FactException;
-
     public void insertLogical(Object object) throws FactException;
     
-    public void insertLogical(Object object, long duration) throws FactException;
-
     public void insertLogical(Object object,
                                     boolean dynamic) throws FactException;
     
-    public void insertLogical(Object object,
-    						  long duration,
-    						  boolean dynamic) throws FactException;
-
     void update(FactHandle handle,
                       Object newObject) throws FactException;
 




More information about the jboss-svn-commits mailing list