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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Feb 3 07:45:15 EST 2007


Author: tirelli
Date: 2007-02-03 07:45:15 -0500 (Sat, 03 Feb 2007)
New Revision: 9308

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
Log:
JBRULES-439: fixing start/end character position

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2007-02-03 00:37:55 UTC (rev 9307)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java	2007-02-03 12:45:15 UTC (rev 9308)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-02-02 17:11:53
+// $ANTLR 3.0b5 D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-02-03 10:35:44
 
 	package org.drools.lang;
 
@@ -605,10 +605,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1396:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1396:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:17: ( ' ' | '\\t' | '\\f' | EOL )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1396:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:17: ( ' ' | '\\t' | '\\f' | EOL )
             int alt1=4;
             switch ( input.LA(1) ) {
             case ' ':
@@ -627,35 +627,35 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1396:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
+                    new NoViableAltException("1437:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
 
                 throw nvae;
             }
 
             switch (alt1) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1396:19: ' '
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:19: ' '
                     {
                     match(' '); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1397:19: '\\t'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:19: '\\t'
                     {
                     match('\t'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1398:19: '\\f'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1439:19: '\\f'
                     {
                     match('\f'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1399:19: EOL
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1440:19: EOL
                     {
                     mEOL(); if (failed) return ;
 
@@ -689,10 +689,10 @@
     public void mEOL() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1406:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1406:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1447:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1447:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1406:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1447:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
             if ( (LA2_0=='\r') ) {
@@ -709,13 +709,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1406:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+                    new NoViableAltException("1447:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
 
                 throw nvae;
             }
             switch (alt2) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1406:14: ( '\\r\\n' )=> '\\r\\n'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1447:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (failed) return ;
 
@@ -723,14 +723,14 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1407:25: '\\r'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1448:25: '\\r'
                     {
                     match('\r'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1408:25: '\\n'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1449:25: '\\n'
                     {
                     match('\n'); if (failed) return ;
 
@@ -758,10 +758,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:4: ( ( '-' )? ( '0' .. '9' )+ )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:4: ( '-' )? ( '0' .. '9' )+
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1454:4: ( ( '-' )? ( '0' .. '9' )+ )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1454:4: ( '-' )? ( '0' .. '9' )+
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:4: ( '-' )?
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1454:4: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
             if ( (LA3_0=='-') ) {
@@ -769,7 +769,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:5: '-'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1454:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -778,7 +778,7 @@
 
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:10: ( '0' .. '9' )+
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1454:10: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -791,7 +791,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:11: '0' .. '9'
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1454:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -835,10 +835,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:4: ( '-' )?
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:4: ( '-' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
             if ( (LA5_0=='-') ) {
@@ -846,7 +846,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:5: '-'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -855,7 +855,7 @@
 
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:10: ( '0' .. '9' )+
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:10: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -868,7 +868,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:11: '0' .. '9'
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -886,7 +886,7 @@
             } while (true);
 
             match('.'); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:26: ( '0' .. '9' )+
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:26: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -899,7 +899,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:27: '0' .. '9'
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1458:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -943,7 +943,7 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1462:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
             if ( (LA10_0=='\"') ) {
@@ -955,19 +955,19 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1420:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 10, 0, input);
+                    new NoViableAltException("1461:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 10, 0, input);
 
                 throw nvae;
             }
             switch (alt10) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1462:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1462:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1462:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
                     {
                     match('\"'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1462:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
                     loop8:
                     do {
                         int alt8=3;
@@ -982,14 +982,14 @@
 
                         switch (alt8) {
                     	case 1 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:15: EscapeSequence
+                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1462:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:32: ~ ('\\\\'|'\"')
+                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1462:32: ~ ('\\\\'|'\"')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -1019,13 +1019,13 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
                     {
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
                     {
                     match('\''); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
                     loop9:
                     do {
                         int alt9=3;
@@ -1040,14 +1040,14 @@
 
                         switch (alt9) {
                     	case 1 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:16: EscapeSequence
+                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:33: ~ ('\\\\'|'\\'')
+                    	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:33: ~ ('\\\\'|'\\'')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -1097,8 +1097,8 @@
     public void mHexDigit() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1426:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1426:12: ('0'..'9'|'a'..'f'|'A'..'F')
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1467:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1467: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();
@@ -1125,7 +1125,7 @@
     public void mEscapeSequence() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1430:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1471:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape )
             int alt11=3;
             int LA11_0 = input.LA(1);
             if ( (LA11_0=='\\') ) {
@@ -1156,7 +1156,7 @@
                 default:
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1428:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 1, input);
+                        new NoViableAltException("1469:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 1, input);
 
                     throw nvae;
                 }
@@ -1165,13 +1165,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1428:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 0, input);
+                    new NoViableAltException("1469:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 0, input);
 
                 throw nvae;
             }
             switch (alt11) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1430:9: '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\')
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1471:9: '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\')
                     {
                     match('\\'); if (failed) return ;
                     if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
@@ -1189,14 +1189,14 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1431:9: UnicodeEscape
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1472:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1432:9: OctalEscape
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1473:9: OctalEscape
                     {
                     mOctalEscape(); if (failed) return ;
 
@@ -1215,7 +1215,7 @@
     public void mOctalEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
             int alt12=3;
             int LA12_0 = input.LA(1);
             if ( (LA12_0=='\\') ) {
@@ -1244,7 +1244,7 @@
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("1435:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+                        new NoViableAltException("1476:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
 
                     throw nvae;
                 }
@@ -1252,31 +1252,31 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1435:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
+                    new NoViableAltException("1476:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
 
                 throw nvae;
             }
             switch (alt12) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:14: ( '0' .. '3' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:15: '0' .. '3'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:14: ( '0' .. '3' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (failed) return ;
 
                     }
 
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:25: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:26: '0' .. '7'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:25: ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:36: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1437:37: '0' .. '7'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:36: ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1286,18 +1286,18 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1479:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:14: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:15: '0' .. '7'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1479:14: ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1479:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:25: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1438:26: '0' .. '7'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1479:25: ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1479:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1307,11 +1307,11 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1439:9: '\\\\' ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1480:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1439:14: ( '0' .. '7' )
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1439:15: '0' .. '7'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1480:14: ( '0' .. '7' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1480:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1333,8 +1333,8 @@
     public void mUnicodeEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1444:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1444:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1485:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1485:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (failed) return ;
             match('u'); if (failed) return ;
@@ -1361,10 +1361,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1448:4: ( ( 'true' | 'false' ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1448:4: ( 'true' | 'false' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1489:4: ( ( 'true' | 'false' ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1489:4: ( 'true' | 'false' )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1448:4: ( 'true' | 'false' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1489:4: ( 'true' | 'false' )
             int alt13=2;
             int LA13_0 = input.LA(1);
             if ( (LA13_0=='t') ) {
@@ -1376,13 +1376,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1448:4: ( 'true' | 'false' )", 13, 0, input);
+                    new NoViableAltException("1489:4: ( 'true' | 'false' )", 13, 0, input);
 
                 throw nvae;
             }
             switch (alt13) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1448:5: 'true'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1489:5: 'true'
                     {
                     match("true"); if (failed) return ;
 
@@ -1390,7 +1390,7 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1448:12: 'false'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1489:12: 'false'
                     {
                     match("false"); if (failed) return ;
 
@@ -1427,8 +1427,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1451:11: ( 'package' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1451:11: 'package'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1492:11: ( 'package' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1492:11: 'package'
             {
             match("package"); if (failed) return ;
 
@@ -1459,8 +1459,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1453:10: ( 'import' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1453:10: 'import'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1494:10: ( 'import' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1494:10: 'import'
             {
             match("import"); if (failed) return ;
 
@@ -1491,8 +1491,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1455:12: ( 'function' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1455:12: 'function'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1496:12: ( 'function' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1496:12: 'function'
             {
             match("function"); if (failed) return ;
 
@@ -1523,8 +1523,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1457:10: ( 'global' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1457:10: 'global'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1498:10: ( 'global' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1498:10: 'global'
             {
             match("global"); if (failed) return ;
 
@@ -1555,8 +1555,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1459:11: ( 'rule' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1459:11: 'rule'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1500:11: ( 'rule' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1500:11: 'rule'
             {
             match("rule"); if (failed) return ;
 
@@ -1587,8 +1587,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:9: ( 'query' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1461:9: 'query'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1502:9: ( 'query' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1502:9: 'query'
             {
             match("query"); if (failed) return ;
 
@@ -1619,8 +1619,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:12: ( 'template' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1463:12: 'template'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1504:12: ( 'template' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1504:12: 'template'
             {
             match("template"); if (failed) return ;
 
@@ -1651,8 +1651,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:14: ( 'attributes' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1465:14: 'attributes'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:14: ( 'attributes' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1506:14: 'attributes'
             {
             match("attributes"); if (failed) return ;
 
@@ -1683,8 +1683,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1468:4: ( 'date-effective' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1468:4: 'date-effective'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1509:4: ( 'date-effective' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1509:4: 'date-effective'
             {
             match("date-effective"); if (failed) return ;
 
@@ -1715,8 +1715,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1471:4: ( 'date-expires' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1471:4: 'date-expires'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1512:4: ( 'date-expires' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1512:4: 'date-expires'
             {
             match("date-expires"); if (failed) return ;
 
@@ -1747,8 +1747,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1473:11: ( 'enabled' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1473:11: 'enabled'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1514:11: ( 'enabled' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1514:11: 'enabled'
             {
             match("enabled"); if (failed) return ;
 
@@ -1779,8 +1779,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:4: ( 'salience' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1476:4: 'salience'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:4: ( 'salience' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:4: 'salience'
             {
             match("salience"); if (failed) return ;
 
@@ -1811,8 +1811,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:11: ( 'no-loop' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1478:11: 'no-loop'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1519:11: ( 'no-loop' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1519:11: 'no-loop'
             {
             match("no-loop"); if (failed) return ;
 
@@ -1843,8 +1843,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1481:4: ( 'auto-focus' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1481:4: 'auto-focus'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1522:4: ( 'auto-focus' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1522:4: 'auto-focus'
             {
             match("auto-focus"); if (failed) return ;
 
@@ -1875,8 +1875,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1484:4: ( 'activation-group' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1484:4: 'activation-group'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1525:4: ( 'activation-group' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1525:4: 'activation-group'
             {
             match("activation-group"); if (failed) return ;
 
@@ -1907,8 +1907,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1487:4: ( 'agenda-group' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1487:4: 'agenda-group'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1528:4: ( 'agenda-group' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1528:4: 'agenda-group'
             {
             match("agenda-group"); if (failed) return ;
 
@@ -1939,8 +1939,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:4: ( 'duration' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1490:4: 'duration'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1531:4: ( 'duration' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1531:4: 'duration'
             {
             match("duration"); if (failed) return ;
 
@@ -1971,8 +1971,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1492:8: ( 'from' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1492:8: 'from'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1533:8: ( 'from' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1533:8: 'from'
             {
             match("from"); if (failed) return ;
 
@@ -2003,8 +2003,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1495:4: ( 'accumulate' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1495:4: 'accumulate'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1536:4: ( 'accumulate' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1536:4: 'accumulate'
             {
             match("accumulate"); if (failed) return ;
 
@@ -2035,8 +2035,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1497:8: ( 'init' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1497:8: 'init'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1538:8: ( 'init' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1538:8: 'init'
             {
             match("init"); if (failed) return ;
 
@@ -2067,8 +2067,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1499:10: ( 'action' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1499:10: 'action'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1540:10: ( 'action' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1540:10: 'action'
             {
             match("action"); if (failed) return ;
 
@@ -2099,8 +2099,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1501:10: ( 'result' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1501:10: 'result'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1542:10: ( 'result' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1542:10: 'result'
             {
             match("result"); if (failed) return ;
 
@@ -2131,8 +2131,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1503:11: ( 'collect' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1503:11: 'collect'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1544:11: ( 'collect' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1544:11: 'collect'
             {
             match("collect"); if (failed) return ;
 
@@ -2163,8 +2163,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1505:6: ( 'or' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1505:6: 'or'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1546:6: ( 'or' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1546:6: 'or'
             {
             match("or"); if (failed) return ;
 
@@ -2195,8 +2195,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:7: ( 'and' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1507:7: 'and'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1548:7: ( 'and' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1548:7: 'and'
             {
             match("and"); if (failed) return ;
 
@@ -2227,8 +2227,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1510:4: ( 'contains' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1510:4: 'contains'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1551:4: ( 'contains' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1551:4: 'contains'
             {
             match("contains"); if (failed) return ;
 
@@ -2259,8 +2259,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1513:4: ( 'excludes' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1513:4: 'excludes'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1554:4: ( 'excludes' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1554:4: 'excludes'
             {
             match("excludes"); if (failed) return ;
 
@@ -2291,8 +2291,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1515:11: ( 'matches' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1515:11: 'matches'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1556:11: ( 'matches' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1556:11: 'matches'
             {
             match("matches"); if (failed) return ;
 
@@ -2323,8 +2323,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:8: ( 'null' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1517:8: 'null'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1558:8: ( 'null' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1558:8: 'null'
             {
             match("null"); if (failed) return ;
 
@@ -2355,8 +2355,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1519:10: ( 'exists' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1519:10: 'exists'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1560:10: ( 'exists' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1560:10: 'exists'
             {
             match("exists"); if (failed) return ;
 
@@ -2387,8 +2387,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1521:7: ( 'not' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1521:7: 'not'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1562:7: ( 'not' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1562:7: 'not'
             {
             match("not"); if (failed) return ;
 
@@ -2419,8 +2419,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1523:8: ( 'eval' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1523:8: 'eval'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1564:8: ( 'eval' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1564:8: 'eval'
             {
             match("eval"); if (failed) return ;
 
@@ -2451,8 +2451,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1525:10: ( 'forall' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1525:10: 'forall'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1566:10: ( 'forall' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1566:10: 'forall'
             {
             match("forall"); if (failed) return ;
 
@@ -2483,8 +2483,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1527:11: ( 'when' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1527:11: 'when'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1568:11: ( 'when' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1568:11: 'when'
             {
             match("when"); if (failed) return ;
 
@@ -2515,8 +2515,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1529:12: ( 'then' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1529:12: 'then'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1570:12: ( 'then' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1570:12: 'then'
             {
             match("then"); if (failed) return ;
 
@@ -2547,8 +2547,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1531:11: ( 'end' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1531:11: 'end'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1572:11: ( 'end' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1572:11: 'end'
             {
             match("end"); if (failed) return ;
 
@@ -2579,8 +2579,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:4: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:4: ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575:4: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575: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();
@@ -2593,7 +2593,7 @@
                 recover(mse);    throw mse;
             }
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:50: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575:50: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
             loop14:
             do {
                 int alt14=2;
@@ -2605,7 +2605,7 @@
 
                 switch (alt14) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1534:51: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575:51: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
             	    {
             	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
             	        input.consume();
@@ -2654,11 +2654,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1539:4: ( '#' ( options {greedy=false; } : . )* EOL )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1539:4: '#' ( options {greedy=false; } : . )* EOL
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1580:4: ( '#' ( options {greedy=false; } : . )* EOL )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1580:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1539:8: ( options {greedy=false; } : . )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1580:8: ( options {greedy=false; } : . )*
             loop15:
             do {
                 int alt15=2;
@@ -2676,7 +2676,7 @@
 
                 switch (alt15) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1539:35: .
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1580:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2719,12 +2719,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:4: ( '//' ( options {greedy=false; } : . )* EOL )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:4: '//' ( options {greedy=false; } : . )* EOL
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1586:4: ( '//' ( options {greedy=false; } : . )* EOL )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1586:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (failed) return ;
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:9: ( options {greedy=false; } : . )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1586:9: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -2742,7 +2742,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1545:36: .
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1586:36: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2785,8 +2785,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1551:11: ( '(' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1551:11: '('
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1592:11: ( '(' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1592:11: '('
             {
             match('('); if (failed) return ;
 
@@ -2816,8 +2816,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1555:11: ( ')' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1555:11: ')'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1596:11: ( ')' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1596:11: ')'
             {
             match(')'); if (failed) return ;
 
@@ -2847,8 +2847,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1559:11: ( '[' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1559:11: '['
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1600:11: ( '[' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1600:11: '['
             {
             match('['); if (failed) return ;
 
@@ -2878,8 +2878,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1563:11: ( ']' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1563:11: ']'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1604:11: ( ']' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1604:11: ']'
             {
             match(']'); if (failed) return ;
 
@@ -2909,8 +2909,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1567:11: ( '{' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1567:11: '{'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1608:11: ( '{' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1608:11: '{'
             {
             match('{'); if (failed) return ;
 
@@ -2940,8 +2940,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1571:11: ( '}' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1571:11: '}'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1612:11: ( '}' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1612:11: '}'
             {
             match('}'); if (failed) return ;
 
@@ -2971,12 +2971,12 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1616:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1616:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (failed) return ;
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575:9: ( options {greedy=false; } : . )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1616:9: ( options {greedy=false; } : . )*
             loop17:
             do {
                 int alt17=2;
@@ -2999,7 +2999,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1575:35: .
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1616:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -3043,8 +3043,8 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1579:7: ( ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\'))
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1580:3: ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\')
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1620:7: ( ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\'))
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1621:3: ('!'|'@'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'?'|'|'|','|'='|'/'|'\\''|'\\\\')
             {
             if ( input.LA(1)=='!'||(input.LA(1)>='$' && input.LA(1)<='\'')||(input.LA(1)>='*' && input.LA(1)<='-')||input.LA(1)=='/'||input.LA(1)=='='||(input.LA(1)>='?' && input.LA(1)<='@')||input.LA(1)=='\\'||(input.LA(1)>='^' && input.LA(1)<='_')||input.LA(1)=='|' ) {
                 input.consume();

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2007-02-03 00:37:55 UTC (rev 9307)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java	2007-02-03 12:45:15 UTC (rev 9308)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-02-02 17:11:52
+// $ANTLR 3.0b5 D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g 2007-02-03 10:35:43
 
 	package org.drools.lang;
 	import java.util.List;
@@ -3606,24 +3606,34 @@
 
 
     // $ANTLR start predicate
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:993:1: predicate[ColumnDescr column] : text= paren_chunk[null] ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:993:1: predicate[ColumnDescr column] : text= paren_chunk[d] ;
     public void predicate(ColumnDescr column) throws RecognitionException {   
         String text = null;
 
 
+        
+        		PredicateDescr d = null;
+                
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:995:3: (text= paren_chunk[null] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:995:3: text= paren_chunk[null]
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:998:3: (text= paren_chunk[d] )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:998:3: text= paren_chunk[d]
             {
-            pushFollow(FOLLOW_paren_chunk_in_predicate2682);
-            text=paren_chunk(null);
+            if ( backtracking==0 ) {
+              
+              			d = new PredicateDescr( );
+              		
+            }
+            pushFollow(FOLLOW_paren_chunk_in_predicate2699);
+            text=paren_chunk(d);
             _fsp--;
             if (failed) return ;
             if ( backtracking==0 ) {
               
-              		        String body = text.substring(1, text.length()-1);
-              			PredicateDescr d = new PredicateDescr( body );
-              			column.addDescr( d );
+              		        if( text != null ) {
+              			        String body = text.substring(1, text.length()-1);
+              			        d.setText( body );
+              				column.addDescr( d );
+              		        }
               		
             }
 
@@ -3642,7 +3652,7 @@
 
 
     // $ANTLR start paren_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1003:1: paren_chunk[BaseDescr descr] returns [String text] : loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1011:1: paren_chunk[BaseDescr descr] returns [String text] : loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN ;
     public String paren_chunk(BaseDescr descr) throws RecognitionException {   
         String text = null;
 
@@ -3655,8 +3665,8 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1009:10: (loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1009:10: loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1017:10: (loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1017:10: loc= LEFT_PAREN ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )* loc= RIGHT_PAREN
             {
             if ( backtracking==0 ) {
               
@@ -3666,14 +3676,14 @@
               	        
             }
             loc=(Token)input.LT(1);
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk2731); if (failed) return text;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk2748); if (failed) return text;
             if ( backtracking==0 ) {
               
               		    buf.append( loc.getText());
                
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1019:3: ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1027:3: ( (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN) | ( paren_chunk[null] )=>chunk= paren_chunk[null] )*
             loop39:
             do {
                 int alt39=3;
@@ -3688,7 +3698,7 @@
 
                 switch (alt39) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1020:4: (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN)
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1028:4: (~ (LEFT_PAREN|RIGHT_PAREN))=>~ (LEFT_PAREN|RIGHT_PAREN)
             	    {
             	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=OR)||(input.LA(1)>=CONTAINS && input.LA(1)<=76) ) {
             	        input.consume();
@@ -3698,7 +3708,7 @@
             	        if (backtracking>0) {failed=true; return text;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk2747);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk2764);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -3710,9 +3720,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1025:4: ( paren_chunk[null] )=>chunk= paren_chunk[null]
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1033:4: ( paren_chunk[null] )=>chunk= paren_chunk[null]
             	    {
-            	    pushFollow(FOLLOW_paren_chunk_in_paren_chunk2771);
+            	    pushFollow(FOLLOW_paren_chunk_in_paren_chunk2788);
             	    chunk=paren_chunk(null);
             	    _fsp--;
             	    if (failed) return text;
@@ -3740,7 +3750,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk2808); if (failed) return text;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk2825); if (failed) return text;
             if ( backtracking==0 ) {
               
                                   buf.append( loc.getText() );
@@ -3766,7 +3776,7 @@
 
 
     // $ANTLR start curly_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1047:1: curly_chunk[BaseDescr descr] returns [String text] : loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1055:1: curly_chunk[BaseDescr descr] returns [String text] : loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY ;
     public String curly_chunk(BaseDescr descr) throws RecognitionException {   
         String text = null;
 
@@ -3779,11 +3789,11 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1053:3: (loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1053:3: loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1061:3: (loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1061:3: loc= LEFT_CURLY ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )* loc= RIGHT_CURLY
             {
             loc=(Token)input.LT(1);
-            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk2859); if (failed) return text;
+            match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk2876); if (failed) return text;
             if ( backtracking==0 ) {
               
               	            channel = ((SwitchingCommonTokenStream)input).getTokenTypeChannel( WS ); 
@@ -3793,7 +3803,7 @@
               		    buf.append( loc.getText() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1061:3: ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1069:3: ( (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY) | ( curly_chunk[descr] )=>chunk= curly_chunk[descr] )*
             loop40:
             do {
                 int alt40=3;
@@ -3808,7 +3818,7 @@
 
                 switch (alt40) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1062:4: (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY)
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1070:4: (~ (LEFT_CURLY|RIGHT_CURLY))=>~ (LEFT_CURLY|RIGHT_CURLY)
             	    {
             	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=NULL)||(input.LA(1)>=LEFT_SQUARE && input.LA(1)<=76) ) {
             	        input.consume();
@@ -3818,7 +3828,7 @@
             	        if (backtracking>0) {failed=true; return text;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk2875);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk2892);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -3830,9 +3840,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1067:4: ( curly_chunk[descr] )=>chunk= curly_chunk[descr]
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1075:4: ( curly_chunk[descr] )=>chunk= curly_chunk[descr]
             	    {
-            	    pushFollow(FOLLOW_curly_chunk_in_curly_chunk2899);
+            	    pushFollow(FOLLOW_curly_chunk_in_curly_chunk2916);
             	    chunk=curly_chunk(descr);
             	    _fsp--;
             	    if (failed) return text;
@@ -3860,7 +3870,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk2936); if (failed) return text;
+            match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk2953); if (failed) return text;
             if ( backtracking==0 ) {
               
                                   buf.append( loc.getText() );
@@ -3886,7 +3896,7 @@
 
 
     // $ANTLR start square_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1089:1: square_chunk[BaseDescr descr] returns [String text] : loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1097:1: square_chunk[BaseDescr descr] returns [String text] : loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE ;
     public String square_chunk(BaseDescr descr) throws RecognitionException {   
         String text = null;
 
@@ -3899,8 +3909,8 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1095:10: (loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1095:10: loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1103:10: (loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1103:10: loc= LEFT_SQUARE ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )* loc= RIGHT_SQUARE
             {
             if ( backtracking==0 ) {
               
@@ -3910,14 +3920,14 @@
               	        
             }
             loc=(Token)input.LT(1);
-            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk2999); if (failed) return text;
+            match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk3016); if (failed) return text;
             if ( backtracking==0 ) {
               
               		    buf.append( loc.getText());
                
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1105:3: ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1113:3: ( (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE) | ( square_chunk[null] )=>chunk= square_chunk[null] )*
             loop41:
             do {
                 int alt41=3;
@@ -3932,7 +3942,7 @@
 
                 switch (alt41) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1106:4: (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE)
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1114:4: (~ (LEFT_SQUARE|RIGHT_SQUARE))=>~ (LEFT_SQUARE|RIGHT_SQUARE)
             	    {
             	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=RIGHT_CURLY)||(input.LA(1)>=AND && input.LA(1)<=76) ) {
             	        input.consume();
@@ -3942,7 +3952,7 @@
             	        if (backtracking>0) {failed=true; return text;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk3015);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk3032);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -3954,9 +3964,9 @@
             	    }
             	    break;
             	case 2 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1111:4: ( square_chunk[null] )=>chunk= square_chunk[null]
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1119:4: ( square_chunk[null] )=>chunk= square_chunk[null]
             	    {
-            	    pushFollow(FOLLOW_square_chunk_in_square_chunk3039);
+            	    pushFollow(FOLLOW_square_chunk_in_square_chunk3056);
             	    chunk=square_chunk(null);
             	    _fsp--;
             	    if (failed) return text;
@@ -3984,7 +3994,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk3076); if (failed) return text;
+            match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk3093); if (failed) return text;
             if ( backtracking==0 ) {
               
                                   buf.append( loc.getText() );
@@ -4010,7 +4020,7 @@
 
 
     // $ANTLR start retval_constraint
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1133:1: retval_constraint returns [String text] : c= paren_chunk[null] ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1141:1: retval_constraint returns [String text] : c= paren_chunk[null] ;
     public String retval_constraint() throws RecognitionException {   
         String text = null;
 
@@ -4021,10 +4031,10 @@
         		text = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1138:3: (c= paren_chunk[null] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1138:3: c= paren_chunk[null]
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1146:3: (c= paren_chunk[null] )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1146:3: c= paren_chunk[null]
             {
-            pushFollow(FOLLOW_paren_chunk_in_retval_constraint3121);
+            pushFollow(FOLLOW_paren_chunk_in_retval_constraint3138);
             c=paren_chunk(null);
             _fsp--;
             if (failed) return text;
@@ -4047,7 +4057,7 @@
 
 
     // $ANTLR start lhs_or
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1141:1: lhs_or returns [BaseDescr d] : left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1149:1: lhs_or returns [BaseDescr d] : left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* ;
     public BaseDescr lhs_or() throws RecognitionException {   
         BaseDescr d = null;
 
@@ -4061,17 +4071,17 @@
         		OrDescr or = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1147:3: (left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1147:3: left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1155:3: (left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )* )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1155:3: left= lhs_and ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
             {
-            pushFollow(FOLLOW_lhs_and_in_lhs_or3149);
+            pushFollow(FOLLOW_lhs_and_in_lhs_or3166);
             left=lhs_and();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
               d = left; 
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1148:3: ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1156:3: ( ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and )*
             loop42:
             do {
                 int alt42=2;
@@ -4083,7 +4093,7 @@
 
                 switch (alt42) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1148:5: ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1156:5: ( (OR|'||') lhs_and )=> (OR|'||')right= lhs_and
             	    {
             	    if ( input.LA(1)==OR||input.LA(1)==66 ) {
             	        input.consume();
@@ -4093,10 +4103,10 @@
             	        if (backtracking>0) {failed=true; return d;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or3158);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or3175);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_lhs_and_in_lhs_or3168);
+            	    pushFollow(FOLLOW_lhs_and_in_lhs_or3185);
             	    right=lhs_and();
             	    _fsp--;
             	    if (failed) return d;
@@ -4136,7 +4146,7 @@
 
 
     // $ANTLR start lhs_and
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1162:1: lhs_and returns [BaseDescr d] : left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1170:1: lhs_and returns [BaseDescr d] : left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* ;
     public BaseDescr lhs_and() throws RecognitionException {   
         BaseDescr d = null;
 
@@ -4150,17 +4160,17 @@
         		AndDescr and = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1168:3: (left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1168:3: left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1176:3: (left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )* )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1176:3: left= lhs_unary ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
             {
-            pushFollow(FOLLOW_lhs_unary_in_lhs_and3204);
+            pushFollow(FOLLOW_lhs_unary_in_lhs_and3221);
             left=lhs_unary();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
                d = left; 
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1169:3: ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1177:3: ( ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary )*
             loop43:
             do {
                 int alt43=2;
@@ -4172,7 +4182,7 @@
 
                 switch (alt43) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1169:5: ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1177:5: ( (AND|'&&') lhs_unary )=> (AND|'&&')right= lhs_unary
             	    {
             	    if ( input.LA(1)==AND||input.LA(1)==76 ) {
             	        input.consume();
@@ -4182,10 +4192,10 @@
             	        if (backtracking>0) {failed=true; return d;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and3213);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and3230);    throw mse;
             	    }
 
-            	    pushFollow(FOLLOW_lhs_unary_in_lhs_and3223);
+            	    pushFollow(FOLLOW_lhs_unary_in_lhs_and3240);
             	    right=lhs_unary();
             	    _fsp--;
             	    if (failed) return d;
@@ -4225,7 +4235,7 @@
 
 
     // $ANTLR start lhs_unary
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1183:1: lhs_unary returns [BaseDescr d] : ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1191:1: lhs_unary returns [BaseDescr d] : ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon ;
     public BaseDescr lhs_unary() throws RecognitionException {   
         BaseDescr d = null;
 
@@ -4242,10 +4252,10 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1187:4: ( ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1187:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1195:4: ( ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1195:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' ) opt_semicolon
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1187:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1195:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )
             int alt46=6;
             switch ( input.LA(1) ) {
             case EXISTS:
@@ -4269,16 +4279,16 @@
             default:
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1187:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )", 46, 0, input);
+                    new NoViableAltException("1195:4: ( ( lhs_exist )=>u= lhs_exist | ( lhs_not )=>u= lhs_not | ( lhs_eval )=>u= lhs_eval | ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )? | ( lhs_forall )=>u= lhs_forall | '(' u= lhs_or ')' )", 46, 0, input);
 
                 throw nvae;
             }
 
             switch (alt46) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1187:6: ( lhs_exist )=>u= lhs_exist
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1195:6: ( lhs_exist )=>u= lhs_exist
                     {
-                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary3260);
+                    pushFollow(FOLLOW_lhs_exist_in_lhs_unary3277);
                     u=lhs_exist();
                     _fsp--;
                     if (failed) return d;
@@ -4286,9 +4296,9 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1188:5: ( lhs_not )=>u= lhs_not
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1196:5: ( lhs_not )=>u= lhs_not
                     {
-                    pushFollow(FOLLOW_lhs_not_in_lhs_unary3268);
+                    pushFollow(FOLLOW_lhs_not_in_lhs_unary3285);
                     u=lhs_not();
                     _fsp--;
                     if (failed) return d;
@@ -4296,9 +4306,9 @@
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1189:5: ( lhs_eval )=>u= lhs_eval
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1197:5: ( lhs_eval )=>u= lhs_eval
                     {
-                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary3276);
+                    pushFollow(FOLLOW_lhs_eval_in_lhs_unary3293);
                     u=lhs_eval();
                     _fsp--;
                     if (failed) return d;
@@ -4306,13 +4316,13 @@
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1190:5: ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:5: ( lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )? )=>u= lhs_column ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
                     {
-                    pushFollow(FOLLOW_lhs_column_in_lhs_unary3284);
+                    pushFollow(FOLLOW_lhs_column_in_lhs_unary3301);
                     u=lhs_column();
                     _fsp--;
                     if (failed) return d;
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1190:18: ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:18: ( ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) ) )?
                     int alt45=2;
                     int LA45_0 = input.LA(1);
                     if ( (LA45_0==FROM) ) {
@@ -4320,10 +4330,10 @@
                     }
                     switch (alt45) {
                         case 1 :
-                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1191:13: ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
+                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1199:13: ( FROM ( ( ACCUMULATE )=> ( accumulate_statement ) | ( COLLECT )=> ( collect_statement ) | (~ (ACCUMULATE|COLLECT))=> ( from_statement ) ) )=> FROM ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
                             {
-                            match(input,FROM,FOLLOW_FROM_in_lhs_unary3300); if (failed) return d;
-                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1191:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
+                            match(input,FROM,FOLLOW_FROM_in_lhs_unary3317); if (failed) return d;
+                            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1199:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )
                             int alt44=3;
                             switch ( input.LA(1) ) {
                             case ACCUMULATE:
@@ -4336,7 +4346,7 @@
                                 else {
                                     if (backtracking>0) {failed=true; return d;}
                                     NoViableAltException nvae =
-                                        new NoViableAltException("1191:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 1, input);
+                                        new NoViableAltException("1199:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 1, input);
 
                                     throw nvae;
                                 }
@@ -4351,7 +4361,7 @@
                                 else {
                                     if (backtracking>0) {failed=true; return d;}
                                     NoViableAltException nvae =
-                                        new NoViableAltException("1191:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 2, input);
+                                        new NoViableAltException("1199:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 2, input);
 
                                     throw nvae;
                                 }
@@ -4390,19 +4400,19 @@
                             default:
                                 if (backtracking>0) {failed=true; return d;}
                                 NoViableAltException nvae =
-                                    new NoViableAltException("1191:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 0, input);
+                                    new NoViableAltException("1199:18: ( ( ACCUMULATE )=> (ac= accumulate_statement ) | ( COLLECT )=> (cs= collect_statement ) | (~ (ACCUMULATE|COLLECT))=> (fm= from_statement ) )", 44, 0, input);
 
                                 throw nvae;
                             }
 
                             switch (alt44) {
                                 case 1 :
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1192:14: ( ACCUMULATE )=> (ac= accumulate_statement )
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:14: ( ACCUMULATE )=> (ac= accumulate_statement )
                                     {
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1192:32: (ac= accumulate_statement )
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1192:33: ac= accumulate_statement
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:32: (ac= accumulate_statement )
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:33: ac= accumulate_statement
                                     {
-                                    pushFollow(FOLLOW_accumulate_statement_in_lhs_unary3328);
+                                    pushFollow(FOLLOW_accumulate_statement_in_lhs_unary3345);
                                     ac=accumulate_statement();
                                     _fsp--;
                                     if (failed) return d;
@@ -4416,12 +4426,12 @@
                                     }
                                     break;
                                 case 2 :
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:14: ( COLLECT )=> (cs= collect_statement )
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1201:14: ( COLLECT )=> (cs= collect_statement )
                                     {
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:29: (cs= collect_statement )
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:30: cs= collect_statement
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1201:29: (cs= collect_statement )
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1201:30: cs= collect_statement
                                     {
-                                    pushFollow(FOLLOW_collect_statement_in_lhs_unary3357);
+                                    pushFollow(FOLLOW_collect_statement_in_lhs_unary3374);
                                     cs=collect_statement();
                                     _fsp--;
                                     if (failed) return d;
@@ -4435,12 +4445,12 @@
                                     }
                                     break;
                                 case 3 :
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1194:14: (~ (ACCUMULATE|COLLECT))=> (fm= from_statement )
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1202:14: (~ (ACCUMULATE|COLLECT))=> (fm= from_statement )
                                     {
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1194:43: (fm= from_statement )
-                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1194:44: fm= from_statement
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1202:43: (fm= from_statement )
+                                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1202:44: fm= from_statement
                                     {
-                                    pushFollow(FOLLOW_from_statement_in_lhs_unary3392);
+                                    pushFollow(FOLLOW_from_statement_in_lhs_unary3409);
                                     fm=from_statement();
                                     _fsp--;
                                     if (failed) return d;
@@ -4466,9 +4476,9 @@
                     }
                     break;
                 case 5 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1197:5: ( lhs_forall )=>u= lhs_forall
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1205:5: ( lhs_forall )=>u= lhs_forall
                     {
-                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary3431);
+                    pushFollow(FOLLOW_lhs_forall_in_lhs_unary3448);
                     u=lhs_forall();
                     _fsp--;
                     if (failed) return d;
@@ -4476,14 +4486,14 @@
                     }
                     break;
                 case 6 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1198:5: '(' u= lhs_or ')'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1206:5: '(' u= lhs_or ')'
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary3439); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_unary3443);
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary3456); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_unary3460);
                     u=lhs_or();
                     _fsp--;
                     if (failed) return d;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary3445); if (failed) return d;
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary3462); if (failed) return d;
 
                     }
                     break;
@@ -4493,7 +4503,7 @@
             if ( backtracking==0 ) {
                d = u; 
             }
-            pushFollow(FOLLOW_opt_semicolon_in_lhs_unary3455);
+            pushFollow(FOLLOW_opt_semicolon_in_lhs_unary3472);
             opt_semicolon();
             _fsp--;
             if (failed) return d;
@@ -4513,11 +4523,12 @@
 
 
     // $ANTLR start lhs_exist
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1203:1: lhs_exist returns [BaseDescr d] : loc= EXISTS ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column ) ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1211:1: lhs_exist returns [BaseDescr d] : loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) ;
     public BaseDescr lhs_exist() throws RecognitionException {   
         BaseDescr d = null;
 
         Token loc=null;
+        Token end=null;
         BaseDescr column = null;
 
 
@@ -4525,12 +4536,19 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1207:4: (loc= EXISTS ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1207:4: loc= EXISTS ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1215:4: (loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1215:4: loc= EXISTS ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist3479); if (failed) return d;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1207:15: ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column )
+            match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist3496); if (failed) return d;
+            if ( backtracking==0 ) {
+              
+              			d = new ExistsDescr( ); 
+              			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+              			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+              		
+            }
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1221:10: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
             int alt47=2;
             int LA47_0 = input.LA(1);
             if ( (LA47_0==LEFT_PAREN) ) {
@@ -4542,42 +4560,57 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1207:15: ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column )", 47, 0, input);
+                    new NoViableAltException("1221:10: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )", 47, 0, input);
 
                 throw nvae;
             }
             switch (alt47) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1207:16: ( '(' lhs_or ')' )=> '(' column= lhs_or ')'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1221:12: ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' )
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist3482); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3486);
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1221:12: ( '(' column= lhs_or end= ')' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1221:14: '(' column= lhs_or end= ')'
+                    {
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist3516); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_exist3520);
                     column=lhs_or();
                     _fsp--;
                     if (failed) return d;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist3488); if (failed) return d;
+                    if ( backtracking==0 ) {
+                       if ( column != null ) ((ExistsDescr)d).addDescr( column ); 
+                    }
+                    end=(Token)input.LT(1);
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist3552); if (failed) return d;
+                    if ( backtracking==0 ) {
+                       if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() ); 
+                    }
 
                     }
+
+
+                    }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1207:40: column= lhs_column
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1226:12: column= lhs_column
                     {
-                    pushFollow(FOLLOW_lhs_column_in_lhs_exist3494);
+                    pushFollow(FOLLOW_lhs_column_in_lhs_exist3602);
                     column=lhs_column();
                     _fsp--;
                     if (failed) return d;
+                    if ( backtracking==0 ) {
+                      
+                      	                	if ( column != null ) {
+                      	                		((ExistsDescr)d).addDescr( column );
+                      	                		d.setEndCharacter( column.getEndCharacter() );
+                      	                	}
+                      	                
+                    }
 
                     }
                     break;
 
             }
 
-            if ( backtracking==0 ) {
-               
-              			d = new ExistsDescr( (ColumnDescr) column ); 
-              			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
-              		
-            }
 
             }
 
@@ -4594,11 +4627,12 @@
 
 
     // $ANTLR start lhs_not
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1214:1: lhs_not returns [NotDescr d] : loc= NOT ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column ) ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1236:1: lhs_not returns [NotDescr d] : loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) ;
     public NotDescr lhs_not() throws RecognitionException {   
         NotDescr d = null;
 
         Token loc=null;
+        Token end=null;
         BaseDescr column = null;
 
 
@@ -4606,12 +4640,19 @@
         		d = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1218:4: (loc= NOT ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1218:4: loc= NOT ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1240:4: (loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1240:4: loc= NOT ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
             {
             loc=(Token)input.LT(1);
-            match(input,NOT,FOLLOW_NOT_in_lhs_not3524); if (failed) return d;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1218:12: ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column )
+            match(input,NOT,FOLLOW_NOT_in_lhs_not3656); if (failed) return d;
+            if ( backtracking==0 ) {
+              
+              			d = new NotDescr( ); 
+              			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+              			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+              		
+            }
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1246:3: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )
             int alt48=2;
             int LA48_0 = input.LA(1);
             if ( (LA48_0==LEFT_PAREN) ) {
@@ -4623,42 +4664,57 @@
             else {
                 if (backtracking>0) {failed=true; return d;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1218:12: ( ( '(' lhs_or ')' )=> '(' column= lhs_or ')' | column= lhs_column )", 48, 0, input);
+                    new NoViableAltException("1246:3: ( ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' ) | column= lhs_column )", 48, 0, input);
 
                 throw nvae;
             }
             switch (alt48) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1218:13: ( '(' lhs_or ')' )=> '(' column= lhs_or ')'
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1246:5: ( ( '(' lhs_or ')' ) )=> ( '(' column= lhs_or end= ')' )
                     {
-                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not3527); if (failed) return d;
-                    pushFollow(FOLLOW_lhs_or_in_lhs_not3531);
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1246:5: ( '(' column= lhs_or end= ')' )
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1246:7: '(' column= lhs_or end= ')'
+                    {
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not3669); if (failed) return d;
+                    pushFollow(FOLLOW_lhs_or_in_lhs_not3673);
                     column=lhs_or();
                     _fsp--;
                     if (failed) return d;
-                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not3534); if (failed) return d;
+                    if ( backtracking==0 ) {
+                       if ( column != null ) d.addDescr( column ); 
+                    }
+                    end=(Token)input.LT(1);
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not3706); if (failed) return d;
+                    if ( backtracking==0 ) {
+                       if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() ); 
+                    }
 
                     }
+
+
+                    }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1218:38: column= lhs_column
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1252:3: column= lhs_column
                     {
-                    pushFollow(FOLLOW_lhs_column_in_lhs_not3540);
+                    pushFollow(FOLLOW_lhs_column_in_lhs_not3743);
                     column=lhs_column();
                     _fsp--;
                     if (failed) return d;
+                    if ( backtracking==0 ) {
+                      
+                      	                	if ( column != null ) {
+                      	                		d.addDescr( column );
+                      	                		d.setEndCharacter( column.getEndCharacter() );
+                      	                	}
+                      	                
+                    }
 
                     }
                     break;
 
             }
 
-            if ( backtracking==0 ) {
-              
-              			d = new NotDescr( column ); 
-              			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
-              		
-            }
 
             }
 
@@ -4675,7 +4731,7 @@
 
 
     // $ANTLR start lhs_eval
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1225:1: lhs_eval returns [BaseDescr d] : loc= EVAL c= paren_chunk[d] ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1262:1: lhs_eval returns [BaseDescr d] : loc= EVAL c= paren_chunk[d] ;
     public BaseDescr lhs_eval() throws RecognitionException {   
         BaseDescr d = null;
 
@@ -4687,23 +4743,23 @@
         		d = new EvalDescr( );
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1230:3: (loc= EVAL c= paren_chunk[d] )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1230:3: loc= EVAL c= paren_chunk[d]
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1267:3: (loc= EVAL c= paren_chunk[d] )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1267:3: loc= EVAL c= paren_chunk[d]
             {
             loc=(Token)input.LT(1);
-            match(input,EVAL,FOLLOW_EVAL_in_lhs_eval3570); if (failed) return d;
-            pushFollow(FOLLOW_paren_chunk_in_lhs_eval3574);
+            match(input,EVAL,FOLLOW_EVAL_in_lhs_eval3791); if (failed) return d;
+            pushFollow(FOLLOW_paren_chunk_in_lhs_eval3795);
             c=paren_chunk(d);
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
                
+              			if ( loc != null ) d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		        if( c != null ) {
               		            String body = c.substring(1, c.length()-1);
               			    checkTrailingSemicolon( body, offset(loc.getLine()) );
               			    ((EvalDescr) d).setText( body );
               			}
-              			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		
             }
 
@@ -4722,11 +4778,12 @@
 
 
     // $ANTLR start lhs_forall
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1241:1: lhs_forall returns [ForallDescr d] : loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ ')' ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1278:1: lhs_forall returns [ForallDescr d] : loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')' ;
     public ForallDescr lhs_forall() throws RecognitionException {   
         ForallDescr d = null;
 
         Token loc=null;
+        Token end=null;
         BaseDescr base = null;
 
         BaseDescr column = null;
@@ -4736,24 +4793,25 @@
         		d = factory.createForall();
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1245:4: (loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ ')' )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1245:4: loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ ')'
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1282:4: (loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')' )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1282:4: loc= FORALL '(' base= lhs_column ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+ end= ')'
             {
             loc=(Token)input.LT(1);
-            match(input,FORALL,FOLLOW_FORALL_in_lhs_forall3603); if (failed) return d;
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall3605); if (failed) return d;
-            pushFollow(FOLLOW_lhs_column_in_lhs_forall3609);
+            match(input,FORALL,FOLLOW_FORALL_in_lhs_forall3824); if (failed) return d;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall3826); if (failed) return d;
+            pushFollow(FOLLOW_lhs_column_in_lhs_forall3830);
             base=lhs_column();
             _fsp--;
             if (failed) return d;
             if ( backtracking==0 ) {
               
+              			if ( loc != null ) d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
               		        // adding the base column
               		        d.addDescr( base );
               			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1251:3: ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1289:3: ( ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column )+
             int cnt50=0;
             loop50:
             do {
@@ -4766,9 +4824,9 @@
 
                 switch (alt50) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1251:5: ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1289:5: ( ( ( ',' )=> ',' )? lhs_column )=> ( ( ',' )=> ',' )? column= lhs_column
             	    {
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1251:5: ( ( ',' )=> ',' )?
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1289:5: ( ( ',' )=> ',' )?
             	    int alt49=2;
             	    int LA49_0 = input.LA(1);
             	    if ( (LA49_0==64) ) {
@@ -4776,16 +4834,16 @@
             	    }
             	    switch (alt49) {
             	        case 1 :
-            	            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1251:6: ( ',' )=> ','
+            	            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1289:6: ( ',' )=> ','
             	            {
-            	            match(input,64,FOLLOW_64_in_lhs_forall3623); if (failed) return d;
+            	            match(input,64,FOLLOW_64_in_lhs_forall3844); if (failed) return d;
 
             	            }
             	            break;
 
             	    }
 
-            	    pushFollow(FOLLOW_lhs_column_in_lhs_forall3629);
+            	    pushFollow(FOLLOW_lhs_column_in_lhs_forall3850);
             	    column=lhs_column();
             	    _fsp--;
             	    if (failed) return d;
@@ -4809,7 +4867,13 @@
                 cnt50++;
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall3642); if (failed) return d;
+            end=(Token)input.LT(1);
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall3865); if (failed) return d;
+            if ( backtracking==0 ) {
+              
+              		        if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() );
+              		
+            }
 
             }
 
@@ -4826,7 +4890,7 @@
 
 
     // $ANTLR start dotted_name
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1260:1: dotted_name[BaseDescr descr] returns [String name] : id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1301:1: dotted_name[BaseDescr descr] returns [String name] : id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* ;
     public String dotted_name(BaseDescr descr) throws RecognitionException {   
         String name = null;
 
@@ -4839,11 +4903,11 @@
         		name = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1265:3: (id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1265:3: id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1306:3: (id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )* )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1306:3: id= ID ( ( '.' identifier )=> '.' ident= identifier )* ( ( '[' ']' )=> '[' loc= ']' )*
             {
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_dotted_name3669); if (failed) return name;
+            match(input,ID,FOLLOW_ID_in_dotted_name3896); if (failed) return name;
             if ( backtracking==0 ) {
                
               		    name=id.getText(); 
@@ -4853,7 +4917,7 @@
               		    }
               		
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1273:3: ( ( '.' identifier )=> '.' ident= identifier )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1314:3: ( ( '.' identifier )=> '.' ident= identifier )*
             loop51:
             do {
                 int alt51=2;
@@ -4865,10 +4929,10 @@
 
                 switch (alt51) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1273:5: ( '.' identifier )=> '.' ident= identifier
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1314:5: ( '.' identifier )=> '.' ident= identifier
             	    {
-            	    match(input,62,FOLLOW_62_in_dotted_name3681); if (failed) return name;
-            	    pushFollow(FOLLOW_identifier_in_dotted_name3685);
+            	    match(input,62,FOLLOW_62_in_dotted_name3908); if (failed) return name;
+            	    pushFollow(FOLLOW_identifier_in_dotted_name3912);
             	    ident=identifier();
             	    _fsp--;
             	    if (failed) return name;
@@ -4889,7 +4953,7 @@
                 }
             } while (true);
 
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1281:3: ( ( '[' ']' )=> '[' loc= ']' )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1322:3: ( ( '[' ']' )=> '[' loc= ']' )*
             loop52:
             do {
                 int alt52=2;
@@ -4901,11 +4965,11 @@
 
                 switch (alt52) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1281:5: ( '[' ']' )=> '[' loc= ']'
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1322:5: ( '[' ']' )=> '[' loc= ']'
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name3707); if (failed) return name;
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name3934); if (failed) return name;
             	    loc=(Token)input.LT(1);
-            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name3711); if (failed) return name;
+            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name3938); if (failed) return name;
             	    if ( backtracking==0 ) {
             	       
             	      		        name = name + "[]";
@@ -4939,7 +5003,7 @@
 
 
     // $ANTLR start argument
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1291:1: argument returns [String name] : id= identifier ( ( '[' ']' )=> '[' ']' )* ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1332:1: argument returns [String name] : id= identifier ( ( '[' ']' )=> '[' ']' )* ;
     public String argument() throws RecognitionException {   
         String name = null;
 
@@ -4950,17 +5014,17 @@
         		name = null;
         	
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1296:3: (id= identifier ( ( '[' ']' )=> '[' ']' )* )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1296:3: id= identifier ( ( '[' ']' )=> '[' ']' )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1337:3: (id= identifier ( ( '[' ']' )=> '[' ']' )* )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1337:3: id= identifier ( ( '[' ']' )=> '[' ']' )*
             {
-            pushFollow(FOLLOW_identifier_in_argument3750);
+            pushFollow(FOLLOW_identifier_in_argument3977);
             id=identifier();
             _fsp--;
             if (failed) return name;
             if ( backtracking==0 ) {
                name=id.getText(); 
             }
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1296:40: ( ( '[' ']' )=> '[' ']' )*
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1337:40: ( ( '[' ']' )=> '[' ']' )*
             loop53:
             do {
                 int alt53=2;
@@ -4972,10 +5036,10 @@
 
                 switch (alt53) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1296:42: ( '[' ']' )=> '[' ']'
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1337:42: ( '[' ']' )=> '[' ']'
             	    {
-            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument3756); if (failed) return name;
-            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument3758); if (failed) return name;
+            	    match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument3983); if (failed) return name;
+            	    match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument3985); if (failed) return name;
             	    if ( backtracking==0 ) {
             	       name = name + "[]";
             	    }
@@ -5004,7 +5068,7 @@
 
 
     // $ANTLR start rhs_chunk
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1299:1: rhs_chunk[RuleDescr rule] : start= THEN ( (~ END )=>~ END )* loc= END ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1340:1: rhs_chunk[RuleDescr rule] : start= THEN ( (~ END )=>~ END )* loc= END ;
     public void rhs_chunk(RuleDescr rule) throws RecognitionException {   
         Token start=null;
         Token loc=null;
@@ -5014,8 +5078,8 @@
                    Integer channel = null;
                 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1305:10: (start= THEN ( (~ END )=>~ END )* loc= END )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1305:10: start= THEN ( (~ END )=>~ END )* loc= END
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1346:10: (start= THEN ( (~ END )=>~ END )* loc= END )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1346:10: start= THEN ( (~ END )=>~ END )* loc= END
             {
             if ( backtracking==0 ) {
               
@@ -5025,8 +5089,8 @@
               	        
             }
             start=(Token)input.LT(1);
-            match(input,THEN,FOLLOW_THEN_in_rhs_chunk3802); if (failed) return ;
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1311:3: ( (~ END )=>~ END )*
+            match(input,THEN,FOLLOW_THEN_in_rhs_chunk4029); if (failed) return ;
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1352:3: ( (~ END )=>~ END )*
             loop54:
             do {
                 int alt54=2;
@@ -5038,7 +5102,7 @@
 
                 switch (alt54) {
             	case 1 :
-            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1312:6: (~ END )=>~ END
+            	    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1353:6: (~ END )=>~ END
             	    {
             	    if ( (input.LA(1)>=PACKAGE && input.LA(1)<=QUERY)||(input.LA(1)>=TEMPLATE && input.LA(1)<=76) ) {
             	        input.consume();
@@ -5048,7 +5112,7 @@
             	        if (backtracking>0) {failed=true; return ;}
             	        MismatchedSetException mse =
             	            new MismatchedSetException(null,input);
-            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk3814);    throw mse;
+            	        recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk4041);    throw mse;
             	    }
 
             	    if ( backtracking==0 ) {
@@ -5075,7 +5139,7 @@
               		
             }
             loc=(Token)input.LT(1);
-            match(input,END,FOLLOW_END_in_rhs_chunk3851); if (failed) return ;
+            match(input,END,FOLLOW_END_in_rhs_chunk4078); if (failed) return ;
             if ( backtracking==0 ) {
               
                                   // ignoring first line in the consequence
@@ -5109,7 +5173,7 @@
 
 
     // $ANTLR start name
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1342:1: name returns [String s] : ( ( ID )=>tok= ID | str= STRING ) ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1383:1: name returns [String s] : ( ( ID )=>tok= ID | str= STRING ) ;
     public String name() throws RecognitionException {   
         String s = null;
 
@@ -5117,10 +5181,10 @@
         Token str=null;
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1344:2: ( ( ( ID )=>tok= ID | str= STRING ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1344:2: ( ( ID )=>tok= ID | str= STRING )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1385:2: ( ( ( ID )=>tok= ID | str= STRING ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1385:2: ( ( ID )=>tok= ID | str= STRING )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1344:2: ( ( ID )=>tok= ID | str= STRING )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1385:2: ( ( ID )=>tok= ID | str= STRING )
             int alt55=2;
             int LA55_0 = input.LA(1);
             if ( (LA55_0==ID) ) {
@@ -5132,16 +5196,16 @@
             else {
                 if (backtracking>0) {failed=true; return s;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1344:2: ( ( ID )=>tok= ID | str= STRING )", 55, 0, input);
+                    new NoViableAltException("1385:2: ( ( ID )=>tok= ID | str= STRING )", 55, 0, input);
 
                 throw nvae;
             }
             switch (alt55) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1345:6: ( ID )=>tok= ID
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1386:6: ( ID )=>tok= ID
                     {
                     tok=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_name3895); if (failed) return s;
+                    match(input,ID,FOLLOW_ID_in_name4122); if (failed) return s;
                     if ( backtracking==0 ) {
                       
                       	        s = tok.getText();
@@ -5151,10 +5215,10 @@
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1350:6: str= STRING
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1391:6: str= STRING
                     {
                     str=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_name3914); if (failed) return s;
+                    match(input,STRING,FOLLOW_STRING_in_name4141); if (failed) return s;
                     if ( backtracking==0 ) {
                       
                       	       s = getString( str );
@@ -5182,17 +5246,17 @@
 
 
     // $ANTLR start identifier
-    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1357:1: identifier returns [Token tok] : ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) ;
+    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1398:1: identifier returns [Token tok] : ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) ;
     public Token identifier() throws RecognitionException {   
         Token tok = null;
 
         Token t=null;
 
         try {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1359:2: ( ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) )
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1359:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1400:2: ( ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END ) )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1400:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
             {
-            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1359:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
+            // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1400:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )
             int alt56=31;
             switch ( input.LA(1) ) {
             case ID:
@@ -5291,257 +5355,257 @@
             default:
                 if (backtracking>0) {failed=true; return tok;}
                 NoViableAltException nvae =
-                    new NoViableAltException("1359:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )", 56, 0, input);
+                    new NoViableAltException("1400:2: ( ( ID )=>t= ID | ( PACKAGE )=>t= PACKAGE | ( FUNCTION )=>t= FUNCTION | ( GLOBAL )=>t= GLOBAL | ( IMPORT )=>t= IMPORT | ( RULE )=>t= RULE | ( QUERY )=>t= QUERY | ( TEMPLATE )=>t= TEMPLATE | ( ATTRIBUTES )=>t= ATTRIBUTES | ( ENABLED )=>t= ENABLED | ( SALIENCE )=>t= SALIENCE | ( DURATION )=>t= DURATION | ( FROM )=>t= FROM | ( ACCUMULATE )=>t= ACCUMULATE | ( INIT )=>t= INIT | ( ACTION )=>t= ACTION | ( RESULT )=>t= RESULT | ( COLLECT )=>t= COLLECT | ( OR )=>t= OR | ( AND )=>t= AND | ( CONTAINS )=>t= CONTAINS | ( EXCLUDES )=>t= EXCLUDES | ( MATCHES )=>t= MATCHES | ( NULL )=>t= NULL | ( EXISTS )=>t= EXISTS | ( NOT )=>t= NOT | ( EVAL )=>t= EVAL | ( FORALL )=>t= FORALL | ( WHEN )=>t= WHEN | ( THEN )=>t= THEN | t= END )", 56, 0, input);
 
                 throw nvae;
             }
 
             switch (alt56) {
                 case 1 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1359:10: ( ID )=>t= ID
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1400:10: ( ID )=>t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_identifier3952); if (failed) return tok;
+                    match(input,ID,FOLLOW_ID_in_identifier4179); if (failed) return tok;
 
                     }
                     break;
                 case 2 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1360:4: ( PACKAGE )=>t= PACKAGE
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1401:4: ( PACKAGE )=>t= PACKAGE
                     {
                     t=(Token)input.LT(1);
-                    match(input,PACKAGE,FOLLOW_PACKAGE_in_identifier3965); if (failed) return tok;
+                    match(input,PACKAGE,FOLLOW_PACKAGE_in_identifier4192); if (failed) return tok;
 
                     }
                     break;
                 case 3 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1361:4: ( FUNCTION )=>t= FUNCTION
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1402:4: ( FUNCTION )=>t= FUNCTION
                     {
                     t=(Token)input.LT(1);
-                    match(input,FUNCTION,FOLLOW_FUNCTION_in_identifier3972); if (failed) return tok;
+                    match(input,FUNCTION,FOLLOW_FUNCTION_in_identifier4199); if (failed) return tok;
 
                     }
                     break;
                 case 4 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1362:4: ( GLOBAL )=>t= GLOBAL
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1403:4: ( GLOBAL )=>t= GLOBAL
                     {
                     t=(Token)input.LT(1);
-                    match(input,GLOBAL,FOLLOW_GLOBAL_in_identifier3979); if (failed) return tok;
+                    match(input,GLOBAL,FOLLOW_GLOBAL_in_identifier4206); if (failed) return tok;
 
                     }
                     break;
                 case 5 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1363:4: ( IMPORT )=>t= IMPORT
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1404:4: ( IMPORT )=>t= IMPORT
                     {
                     t=(Token)input.LT(1);
-                    match(input,IMPORT,FOLLOW_IMPORT_in_identifier3986); if (failed) return tok;
+                    match(input,IMPORT,FOLLOW_IMPORT_in_identifier4213); if (failed) return tok;
 
                     }
                     break;
                 case 6 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1364:4: ( RULE )=>t= RULE
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1405:4: ( RULE )=>t= RULE
                     {
                     t=(Token)input.LT(1);
-                    match(input,RULE,FOLLOW_RULE_in_identifier3995); if (failed) return tok;
+                    match(input,RULE,FOLLOW_RULE_in_identifier4222); if (failed) return tok;
 
                     }
                     break;
                 case 7 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1365:4: ( QUERY )=>t= QUERY
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1406:4: ( QUERY )=>t= QUERY
                     {
                     t=(Token)input.LT(1);
-                    match(input,QUERY,FOLLOW_QUERY_in_identifier4002); if (failed) return tok;
+                    match(input,QUERY,FOLLOW_QUERY_in_identifier4229); if (failed) return tok;
 
                     }
                     break;
                 case 8 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1366:17: ( TEMPLATE )=>t= TEMPLATE
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1407:17: ( TEMPLATE )=>t= TEMPLATE
                     {
                     t=(Token)input.LT(1);
-                    match(input,TEMPLATE,FOLLOW_TEMPLATE_in_identifier4023); if (failed) return tok;
+                    match(input,TEMPLATE,FOLLOW_TEMPLATE_in_identifier4250); if (failed) return tok;
 
                     }
                     break;
                 case 9 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1367:17: ( ATTRIBUTES )=>t= ATTRIBUTES
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1408:17: ( ATTRIBUTES )=>t= ATTRIBUTES
                     {
                     t=(Token)input.LT(1);
-                    match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_identifier4051); if (failed) return tok;
+                    match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_identifier4278); if (failed) return tok;
 
                     }
                     break;
                 case 10 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1368:17: ( ENABLED )=>t= ENABLED
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1409:17: ( ENABLED )=>t= ENABLED
                     {
                     t=(Token)input.LT(1);
-                    match(input,ENABLED,FOLLOW_ENABLED_in_identifier4077); if (failed) return tok;
+                    match(input,ENABLED,FOLLOW_ENABLED_in_identifier4304); if (failed) return tok;
 
                     }
                     break;
                 case 11 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1369:17: ( SALIENCE )=>t= SALIENCE
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1410:17: ( SALIENCE )=>t= SALIENCE
                     {
                     t=(Token)input.LT(1);
-                    match(input,SALIENCE,FOLLOW_SALIENCE_in_identifier4106); if (failed) return tok;
+                    match(input,SALIENCE,FOLLOW_SALIENCE_in_identifier4333); if (failed) return tok;
 
                     }
                     break;
                 case 12 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1370:17: ( DURATION )=>t= DURATION
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1411:17: ( DURATION )=>t= DURATION
                     {
                     t=(Token)input.LT(1);
-                    match(input,DURATION,FOLLOW_DURATION_in_identifier4128); if (failed) return tok;
+                    match(input,DURATION,FOLLOW_DURATION_in_identifier4355); if (failed) return tok;
 
                     }
                     break;
                 case 13 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1371:17: ( FROM )=>t= FROM
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1412:17: ( FROM )=>t= FROM
                     {
                     t=(Token)input.LT(1);
-                    match(input,FROM,FOLLOW_FROM_in_identifier4150); if (failed) return tok;
+                    match(input,FROM,FOLLOW_FROM_in_identifier4377); if (failed) return tok;
 
                     }
                     break;
                 case 14 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1372:17: ( ACCUMULATE )=>t= ACCUMULATE
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1413:17: ( ACCUMULATE )=>t= ACCUMULATE
                     {
                     t=(Token)input.LT(1);
-                    match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_identifier4179); if (failed) return tok;
+                    match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_identifier4406); if (failed) return tok;
 
                     }
                     break;
                 case 15 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1373:17: ( INIT )=>t= INIT
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1414:17: ( INIT )=>t= INIT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INIT,FOLLOW_INIT_in_identifier4201); if (failed) return tok;
+                    match(input,INIT,FOLLOW_INIT_in_identifier4428); if (failed) return tok;
 
                     }
                     break;
                 case 16 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1374:17: ( ACTION )=>t= ACTION
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1415:17: ( ACTION )=>t= ACTION
                     {
                     t=(Token)input.LT(1);
-                    match(input,ACTION,FOLLOW_ACTION_in_identifier4230); if (failed) return tok;
+                    match(input,ACTION,FOLLOW_ACTION_in_identifier4457); if (failed) return tok;
 
                     }
                     break;
                 case 17 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1375:17: ( RESULT )=>t= RESULT
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1416:17: ( RESULT )=>t= RESULT
                     {
                     t=(Token)input.LT(1);
-                    match(input,RESULT,FOLLOW_RESULT_in_identifier4259); if (failed) return tok;
+                    match(input,RESULT,FOLLOW_RESULT_in_identifier4486); if (failed) return tok;
 
                     }
                     break;
                 case 18 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1376:17: ( COLLECT )=>t= COLLECT
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1417:17: ( COLLECT )=>t= COLLECT
                     {
                     t=(Token)input.LT(1);
-                    match(input,COLLECT,FOLLOW_COLLECT_in_identifier4288); if (failed) return tok;
+                    match(input,COLLECT,FOLLOW_COLLECT_in_identifier4515); if (failed) return tok;
 
                     }
                     break;
                 case 19 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1377:17: ( OR )=>t= OR
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1418:17: ( OR )=>t= OR
                     {
                     t=(Token)input.LT(1);
-                    match(input,OR,FOLLOW_OR_in_identifier4317); if (failed) return tok;
+                    match(input,OR,FOLLOW_OR_in_identifier4544); if (failed) return tok;
 
                     }
                     break;
                 case 20 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1378:17: ( AND )=>t= AND
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1419:17: ( AND )=>t= AND
                     {
                     t=(Token)input.LT(1);
-                    match(input,AND,FOLLOW_AND_in_identifier4346); if (failed) return tok;
+                    match(input,AND,FOLLOW_AND_in_identifier4573); if (failed) return tok;
 
                     }
                     break;
                 case 21 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1379:17: ( CONTAINS )=>t= CONTAINS
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1420:17: ( CONTAINS )=>t= CONTAINS
                     {
                     t=(Token)input.LT(1);
-                    match(input,CONTAINS,FOLLOW_CONTAINS_in_identifier4375); if (failed) return tok;
+                    match(input,CONTAINS,FOLLOW_CONTAINS_in_identifier4602); if (failed) return tok;
 
                     }
                     break;
                 case 22 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1380:17: ( EXCLUDES )=>t= EXCLUDES
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1421:17: ( EXCLUDES )=>t= EXCLUDES
                     {
                     t=(Token)input.LT(1);
-                    match(input,EXCLUDES,FOLLOW_EXCLUDES_in_identifier4397); if (failed) return tok;
+                    match(input,EXCLUDES,FOLLOW_EXCLUDES_in_identifier4624); if (failed) return tok;
 
                     }
                     break;
                 case 23 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1381:17: ( MATCHES )=>t= MATCHES
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1422:17: ( MATCHES )=>t= MATCHES
                     {
                     t=(Token)input.LT(1);
-                    match(input,MATCHES,FOLLOW_MATCHES_in_identifier4419); if (failed) return tok;
+                    match(input,MATCHES,FOLLOW_MATCHES_in_identifier4646); if (failed) return tok;
 
                     }
                     break;
                 case 24 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1382:17: ( NULL )=>t= NULL
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1423:17: ( NULL )=>t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_identifier4448); if (failed) return tok;
+                    match(input,NULL,FOLLOW_NULL_in_identifier4675); if (failed) return tok;
 
                     }
                     break;
                 case 25 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1383:17: ( EXISTS )=>t= EXISTS
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1424:17: ( EXISTS )=>t= EXISTS
                     {
                     t=(Token)input.LT(1);
-                    match(input,EXISTS,FOLLOW_EXISTS_in_identifier4477); if (failed) return tok;
+                    match(input,EXISTS,FOLLOW_EXISTS_in_identifier4704); if (failed) return tok;
 
                     }
                     break;
                 case 26 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1384:17: ( NOT )=>t= NOT
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1425:17: ( NOT )=>t= NOT
                     {
                     t=(Token)input.LT(1);
-                    match(input,NOT,FOLLOW_NOT_in_identifier4506); if (failed) return tok;
+                    match(input,NOT,FOLLOW_NOT_in_identifier4733); if (failed) return tok;
 
                     }
                     break;
                 case 27 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1385:17: ( EVAL )=>t= EVAL
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1426:17: ( EVAL )=>t= EVAL
                     {
                     t=(Token)input.LT(1);
-                    match(input,EVAL,FOLLOW_EVAL_in_identifier4535); if (failed) return tok;
+                    match(input,EVAL,FOLLOW_EVAL_in_identifier4762); if (failed) return tok;
 
                     }
                     break;
                 case 28 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1386:17: ( FORALL )=>t= FORALL
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1427:17: ( FORALL )=>t= FORALL
                     {
                     t=(Token)input.LT(1);
-                    match(input,FORALL,FOLLOW_FORALL_in_identifier4564); if (failed) return tok;
+                    match(input,FORALL,FOLLOW_FORALL_in_identifier4791); if (failed) return tok;
 
                     }
                     break;
                 case 29 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1387:17: ( WHEN )=>t= WHEN
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1428:17: ( WHEN )=>t= WHEN
                     {
                     t=(Token)input.LT(1);
-                    match(input,WHEN,FOLLOW_WHEN_in_identifier4602); if (failed) return tok;
+                    match(input,WHEN,FOLLOW_WHEN_in_identifier4829); if (failed) return tok;
 
                     }
                     break;
                 case 30 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1388:17: ( THEN )=>t= THEN
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1429:17: ( THEN )=>t= THEN
                     {
                     t=(Token)input.LT(1);
-                    match(input,THEN,FOLLOW_THEN_in_identifier4634); if (failed) return tok;
+                    match(input,THEN,FOLLOW_THEN_in_identifier4861); if (failed) return tok;
 
                     }
                     break;
                 case 31 :
-                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1389:17: t= END
+                    // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1430:17: t= END
                     {
                     t=(Token)input.LT(1);
-                    match(input,END,FOLLOW_END_in_identifier4663); if (failed) return tok;
+                    match(input,END,FOLLOW_END_in_identifier4890); if (failed) return tok;
 
                     }
                     break;
@@ -5647,10 +5711,10 @@
 
     // $ANTLR start synpred69
     public void synpred69_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1192:14: ( ACCUMULATE )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1192:16: ACCUMULATE
+        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:14: ( ACCUMULATE )
+        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1200:16: ACCUMULATE
         {
-        match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_synpred693319); if (failed) return ;
+        match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_synpred693336); if (failed) return ;
 
         }
     }
@@ -5658,10 +5722,10 @@
 
     // $ANTLR start synpred70
     public void synpred70_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:14: ( COLLECT )
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1193:16: COLLECT
+        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1201:14: ( COLLECT )
+        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1201:16: COLLECT
         {
-        match(input,COLLECT,FOLLOW_COLLECT_in_synpred703348); if (failed) return ;
+        match(input,COLLECT,FOLLOW_COLLECT_in_synpred703365); if (failed) return ;
 
         }
     }
@@ -5669,8 +5733,8 @@
 
     // $ANTLR start synpred71
     public void synpred71_fragment() throws RecognitionException {   
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1194:14: (~ (ACCUMULATE|COLLECT))
-        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1194:16: ~ (ACCUMULATE|COLLECT)
+        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1202:14: (~ (ACCUMULATE|COLLECT))
+        // D:\\workspace\\jboss\\jbossrules\\drools-compiler\\src\\main\\resources\\org\\drools\\lang\\DRL.g:1202:16: ~ (ACCUMULATE|COLLECT)
         {
         if ( (input.LA(1)>=PACKAGE && input.LA(1)<=DURATION)||(input.LA(1)>=INIT && input.LA(1)<=RESULT)||(input.LA(1)>=ID && input.LA(1)<=76) ) {
             input.consume();
@@ -5680,7 +5744,7 @@
             if (backtracking>0) {failed=true; return ;}
             MismatchedSetException mse =
                 new MismatchedSetException(null,input);
-            recoverFromMismatchedSet(input,mse,FOLLOW_set_in_synpred713378);    throw mse;
+            recoverFromMismatchedSet(input,mse,FOLLOW_set_in_synpred713395);    throw mse;
         }
 
 
@@ -5811,34 +5875,34 @@
         "\7\uffff\1\10\2\uffff\6\11\6\uffff\6\10\6\uffff\37\10\6\11\10\uffff"+
         "\1\11\12\uffff\37\11\2\uffff\1\10\46\uffff\37\11\22\uffff\1\11\1"+
         "\uffff\37\10\44\uffff\37\10\22\uffff\1\10\101\uffff\40\11\1\uffff"+
-        "\2\10\6\uffff\1\10\37\11\100\uffff\40\10\1\11\1\uffff\1\11\6\uffff"+
-        "\1\11\1\10\2\uffff\1\11\44\uffff\1\10\1\11\42\uffff\1\10\4\uffff"+
-        "\1\11\76\uffff\1\11\177\uffff\1\10\101\uffff";
+        "\2\10\6\uffff\1\10\37\11\100\uffff\40\10\1\uffff\2\11\6\uffff\1"+
+        "\11\1\10\42\uffff\1\11\4\uffff\1\10\1\11\42\uffff\1\10\4\uffff\1"+
+        "\11\76\uffff\1\11\177\uffff\1\10\101\uffff";
     public static final String DFA4_minS =
-        "\1\5\1\4\5\uffff\1\4\2\uffff\1\4\1\5\1\4\2\5\2\4\1\37\2\4\2\17\2"+
+        "\1\5\1\4\5\uffff\1\4\2\uffff\1\4\1\5\1\4\2\5\2\4\1\37\1\4\2\17\3"+
         "\4\1\5\1\4\2\5\1\4\1\37\1\4\2\17\2\4\1\5\1\4\1\5\1\4\2\5\1\4\27"+
-        "\5\2\4\1\5\1\4\2\5\1\4\1\37\1\4\2\17\11\4\1\37\1\4\2\17\2\4\1\5"+
-        "\2\4\2\5\1\4\30\5\7\4\1\53\37\11\1\4\1\53\37\5\2\4\1\11\2\4\7\11"+
-        "\1\4\5\11\1\5\42\4\1\53\37\11\1\4\1\53\37\5\2\4\1\11\1\4\2\11\1"+
-        "\4\5\11\1\4\5\11\1\5\101\4\1\5\37\4\1\0\2\5\2\4\1\0\3\4\1\5\137"+
-        "\4\1\5\37\4\1\5\1\0\1\5\2\4\1\0\3\4\2\5\1\4\1\53\1\5\41\4\1\53\1"+
+        "\5\2\4\1\5\1\4\2\5\1\4\1\37\1\4\2\17\11\4\1\37\2\4\2\17\1\4\1\5"+
+        "\1\4\1\5\1\4\2\5\1\4\27\5\7\4\1\53\37\11\1\4\1\53\37\5\2\4\1\11"+
+        "\2\4\7\11\1\4\5\11\1\5\42\4\1\53\37\11\1\4\1\53\37\5\2\4\1\11\2"+
+        "\4\7\11\1\4\5\11\1\5\101\4\1\5\37\4\1\0\2\5\2\4\1\0\3\4\1\5\137"+
+        "\4\1\5\37\4\1\0\2\5\2\4\1\0\3\4\2\5\1\4\1\53\40\4\1\5\1\4\1\53\1"+
         "\4\1\53\2\5\1\4\1\53\40\4\1\5\1\4\1\53\1\4\1\53\1\5\u0100\4";
     public static final String DFA4_maxS =
-        "\1\13\1\62\5\uffff\1\77\2\uffff\6\77\1\62\1\41\2\62\2\41\6\77\6"+
-        "\75\45\77\6\75\2\76\1\77\1\100\2\76\2\62\1\41\1\62\2\41\1\62\37"+
+        "\1\13\1\62\5\uffff\1\77\2\uffff\6\77\1\62\1\41\1\62\2\41\1\62\6"+
+        "\77\6\75\45\77\6\75\2\76\1\77\1\100\2\76\2\62\1\41\2\62\2\41\37"+
         "\77\2\76\1\77\1\100\2\76\1\62\1\53\37\75\1\62\1\53\37\75\1\62\6"+
         "\75\1\101\3\75\1\101\1\114\3\75\1\101\2\75\1\76\37\77\2\62\1\53"+
-        "\37\75\1\62\1\53\37\75\1\62\6\75\1\101\3\75\1\101\1\114\1\101\5"+
-        "\75\40\76\1\62\37\76\1\62\1\37\37\77\1\0\2\75\1\101\1\114\1\0\1"+
-        "\114\2\101\1\75\37\77\37\76\1\62\37\76\1\62\1\37\37\77\1\75\1\0"+
-        "\1\75\1\101\1\114\1\0\1\114\2\101\1\75\1\37\1\62\1\53\1\75\40\114"+
-        "\1\62\1\53\1\62\1\53\2\37\1\62\1\53\40\114\1\75\1\62\1\53\1\62\1"+
-        "\53\1\37\37\76\1\62\36\114\1\76\1\114\37\76\1\62\37\76\1\62\37\76"+
-        "\1\62\36\114\1\76\1\114\37\76\1\62\37\76\1\62";
+        "\37\75\1\62\1\53\37\75\1\62\6\75\1\101\3\75\1\101\1\114\3\75\1\101"+
+        "\2\75\40\76\1\62\37\76\1\62\1\37\37\77\1\0\2\75\1\101\1\114\1\0"+
+        "\1\114\2\101\1\75\37\77\37\76\1\62\37\76\1\62\1\37\37\77\1\0\2\75"+
+        "\1\101\1\114\1\0\1\114\2\101\1\75\1\37\1\62\1\53\40\114\1\75\1\62"+
+        "\1\53\1\62\1\53\2\37\1\62\1\53\40\114\1\75\1\62\1\53\1\62\1\53\1"+
+        "\37\37\76\1\62\36\114\1\76\1\114\37\76\1\62\37\76\1\62\37\76\1\62"+
+        "\36\114\1\76\1\114\37\76\1\62\37\76\1\62";
     public static final String DFA4_acceptS =
         "\2\uffff\1\3\1\4\1\5\1\6\1\7\1\uffff\1\1\1\2\u0386\uffff";
     public static final String DFA4_specialS =
-        "\u01ab\uffff\1\2\4\uffff\1\3\u0084\uffff\1\1\3\uffff\1\0\u0156\uffff}>";
+        "\u01ab\uffff\1\0\4\uffff\1\2\u0083\uffff\1\3\4\uffff\1\1\u0156\uffff}>";
     public static final String[] DFA4_transition = {
         "\1\1\1\3\1\2\1\6\1\uffff\1\4\1\5",
         "\2\10\1\7\7\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\2\uffff\3"+
@@ -5853,7 +5917,7 @@
         "\3\10",
         "",
         "",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\4\uffff\7\10\12\uffff"+
         "\3\11",
         "\4\11\1\uffff\2\11\23\uffff\1\10\35\uffff\3\11",
@@ -5870,10 +5934,10 @@
         "\1\11\1\uffff\1\10",
         "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\1\10\1\uffff\3\11"+
         "\1\uffff\1\11\4\uffff\7\11",
+        "\1\11\17\uffff\1\11\1\uffff\1\10",
+        "\1\11\17\uffff\1\11\1\uffff\1\10",
         "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\1\10\1\uffff\3\11"+
         "\1\uffff\1\11\4\uffff\7\11",
-        "\1\11\17\uffff\1\11\1\uffff\1\10",
-        "\1\11\17\uffff\1\11\1\uffff\1\10",
         "\1\43\1\46\1\44\1\45\1\50\1\100\1\51\1\47\1\76\1\52\3\uffff\1\53"+
         "\1\uffff\1\54\5\uffff\1\55\1\57\1\60\1\61\1\62\1\63\1\42\1\64\2"+
         "\uffff\1\66\1\70\1\67\1\uffff\1\71\4\uffff\1\65\1\56\1\72\1\73\1"+
@@ -5896,7 +5960,7 @@
         "\1\11\17\uffff\1\121\35\uffff\1\10",
         "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\6\11\1\122\1\11\2\uffff"+
         "\3\11\1\uffff\1\11\4\uffff\7\11\12\uffff\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\11\11\1\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
         "\4\10\1\uffff\2\10\25\uffff\1\11\33\uffff\3\10",
@@ -5934,9 +5998,9 @@
         "\4\10\1\uffff\2\10\25\uffff\1\11\33\uffff\3\10",
         "\4\10\1\uffff\2\10\25\uffff\1\11\33\uffff\3\10",
         "\4\10\1\uffff\2\10\25\uffff\1\11\33\uffff\3\10",
-        "\1\141\1\132\1\134\1\133\1\137\1\170\1\135\1\136\1\166\1\142\3\uffff"+
+        "\1\133\1\136\1\134\1\135\1\140\1\170\1\141\1\137\1\166\1\142\3\uffff"+
         "\1\143\1\uffff\1\144\5\uffff\1\145\1\147\1\150\1\151\1\152\1\153"+
-        "\1\140\1\154\2\uffff\1\156\1\160\1\157\1\uffff\1\161\4\uffff\1\155"+
+        "\1\132\1\154\2\uffff\1\156\1\160\1\157\1\uffff\1\161\4\uffff\1\155"+
         "\1\146\1\162\1\163\1\164\1\165\1\167\12\uffff\3\11",
         "\1\10\1\27\1\26\1\30\1\33\1\10\1\31\1\32\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\4\uffff\7\10\12\uffff"+
@@ -5989,24 +6053,25 @@
         "\1\10\1\uffff\1\11",
         "\12\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\1\11\1\uffff\3\10"+
         "\1\uffff\1\10\4\uffff\7\10",
+        "\12\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\1\11\1\uffff\3\10"+
+        "\1\uffff\1\10\4\uffff\7\10",
         "\1\10\17\uffff\1\10\1\uffff\1\11",
         "\1\10\17\uffff\1\10\1\uffff\1\11",
-        "\12\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\1\11\1\uffff\3\10"+
-        "\1\uffff\1\10\4\uffff\7\10",
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\5\uffff\11\10\1\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
+        "\7\10\12\uffff\1\11\1\u00f4\1\11",
+        "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
         "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\1\10\1\uffff\3\11"+
         "\1\uffff\1\11\4\uffff\7\11\12\uffff\3\11",
         "\4\11\1\uffff\2\11\23\uffff\1\11\1\uffff\1\10\33\uffff\3\11",
         "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\1\10\1\uffff\3\11"+
         "\1\uffff\1\11\4\uffff\7\11\12\uffff\3\11",
-        "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\1\10\1\uffff\3\11"+
-        "\1\uffff\1\11\4\uffff\7\11\12\uffff\3\11",
         "\4\11\1\uffff\2\11\3\uffff\1\11\17\uffff\1\11\1\uffff\1\10\33\uffff"+
         "\3\11",
         "\4\11\1\uffff\2\11\3\uffff\1\11\17\uffff\1\11\1\uffff\1\10\33\uffff"+
         "\3\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
-        "\1\10\5\uffff\11\10\1\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
-        "\7\10\12\uffff\1\11\1\u00f4\1\11",
+        "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\1\10\1\uffff\3\11"+
+        "\1\uffff\1\11\4\uffff\7\11\12\uffff\3\11",
         "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
         "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
         "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
@@ -6030,7 +6095,6 @@
         "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
         "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
         "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
-        "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\3\11",
         "\1\u00f8\1\u00fb\1\u00f9\1\u00fa\1\u00fd\1\u0115\1\u00fe\1\u00fc"+
         "\1\u0113\1\u00ff\3\uffff\1\u0100\1\uffff\1\u0101\5\uffff\1\u0102"+
         "\1\u0104\1\u0105\1\u0106\1\u0107\1\u0108\1\u00f7\1\u0109\1\10\1"+
@@ -6043,15 +6107,15 @@
         "\1\u012c\1\u012e\1\u012d\1\uffff\1\u012f\2\uffff\1\u0117\1\uffff"+
         "\1\u012b\1\u0124\1\u0130\1\u0131\1\u0132\1\u0133\1\u0135\13\uffff"+
         "\1\u0116",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
         "\10\11\1\u0142\1\u013e\1\10\1\uffff\1\10\1\u013f\1\uffff\1\u0140"+
         "\1\uffff\4\10\1\u0141\7\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1\11"+
         "\1\uffff\6\11\1\u0143\13\uffff\1\11\1\uffff\1\10",
-        "\5\11\1\u0149\4\11\3\uffff\1\11\1\uffff\1\11\5\uffff\6\11\1\u0144"+
+        "\5\11\1\u0149\4\11\3\uffff\1\11\1\uffff\1\11\5\uffff\6\11\1\u0147"+
         "\1\11\1\10\1\uffff\3\11\1\uffff\1\11\2\uffff\1\11\1\uffff\2\11\1"+
-        "\u0145\1\u0146\1\u0147\1\u0148\1\11\13\uffff\1\11",
+        "\u0144\1\u0145\1\u0146\1\u0148\1\11\13\uffff\1\11",
         "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\6\11\1\u014a\1\11\2\uffff"+
         "\3\11\1\uffff\1\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\11",
         "\1\u014c\1\u014f\1\u014d\1\u014e\1\u0151\1\u0169\1\u0152\1\u0150"+
@@ -6159,97 +6223,97 @@
         "\5\11\1\u01b4\4\11\3\uffff\1\11\1\uffff\1\11\5\uffff\6\11\1\u014a"+
         "\1\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1\11\1\uffff\7\11\12\uffff"+
         "\1\10\1\11",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
-        "\1\11\1\126\1\124\1\125\1\130\1\11\1\131\1\127\2\11\3\uffff\1\11"+
+        "\1\11\1\124\1\126\1\125\1\131\1\11\1\127\1\130\2\11\3\uffff\1\11"+
         "\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1\11\2\uffff\1"+
         "\11\1\uffff\7\11\12\uffff\1\10\1\123\1\10",
         "\1\u01b6\1\u01b9\1\u01b7\1\u01b8\1\u01bb\1\u01d3\1\u01bc\1\u01ba"+
@@ -6336,15 +6400,15 @@
         "\1\u0222\1\u0223\1\u0224\1\u0225\1\u0226\1\u0215\1\u0227\2\uffff"+
         "\1\u0229\1\u022b\1\u022a\1\uffff\1\u022c\4\uffff\1\u0228\1\u0221"+
         "\1\u022d\1\u022e\1\u022f\1\u0230\1\u0232",
-        "\5\10\1\u0234\4\10\3\uffff\1\10\1\uffff\1\10\5\uffff\6\10\1\171"+
+        "\5\10\1\u0234\4\10\3\uffff\1\10\1\uffff\1\10\5\uffff\6\10\1\173"+
         "\1\10\2\uffff\3\10\1\uffff\1\10\4\uffff\7\10\12\uffff\1\11",
         "\1\11\25\uffff\1\172\35\uffff\1\11",
-        "\5\10\1\u0235\4\10\3\uffff\1\10\1\uffff\1\10\5\uffff\6\10\1\173"+
+        "\5\10\1\u0235\4\10\3\uffff\1\10\1\uffff\1\10\5\uffff\6\10\1\171"+
         "\1\10\2\uffff\3\10\1\uffff\1\10\4\uffff\7\10\12\uffff\1\11",
+        "\5\10\1\u0236\4\10\3\uffff\1\10\1\uffff\1\10\5\uffff\6\10\1\176"+
+        "\1\10\2\uffff\3\10\1\uffff\1\10\4\uffff\7\10\12\uffff\1\11",
         "\1\11\5\uffff\1\10\17\uffff\1\174\35\uffff\1\11",
         "\1\11\5\uffff\1\10\17\uffff\1\175\35\uffff\1\11",
-        "\5\10\1\u0236\4\10\3\uffff\1\10\1\uffff\1\10\5\uffff\6\10\1\176"+
-        "\1\10\2\uffff\3\10\1\uffff\1\10\4\uffff\7\10\12\uffff\1\11",
         "\1\11\25\uffff\1\11\35\uffff\1\11\3\uffff\1\10",
         "\1\11\10\uffff\1\10\14\uffff\1\11\35\uffff\1\11",
         "\1\11\12\uffff\1\10\12\uffff\1\11\35\uffff\1\11",
@@ -6352,11 +6416,11 @@
         "\1\11\25\uffff\1\u0237\1\uffff\1\10\14\uffff\5\10\12\uffff\1\11"+
         "\3\uffff\1\10",
         "\5\10\1\u0239\25\10\1\u023a\35\10\1\u0238\17\10",
-        "\1\11\25\uffff\1\11\1\uffff\1\10\10\uffff\1\10\22\uffff\1\11\1\10"+
-        "\2\uffff\1\10",
         "\1\11\25\uffff\1\u023b\1\uffff\1\10\33\uffff\1\11",
         "\1\11\25\uffff\1\u023c\1\uffff\1\10\33\uffff\1\11",
         "\1\11\25\uffff\1\11\1\uffff\1\10\33\uffff\1\11",
+        "\1\11\25\uffff\1\11\1\uffff\1\10\10\uffff\1\10\22\uffff\1\11\1\10"+
+        "\2\uffff\1\10",
         "\1\11\25\uffff\1\11\1\uffff\1\10\33\uffff\1\11",
         "\4\10\1\11\2\10\23\uffff\1\11\35\uffff\1\11",
         "\5\10\1\u023d\4\10\3\uffff\1\10\1\uffff\1\10\5\uffff\6\10\1\u00d4"+
@@ -6846,11 +6910,11 @@
         "\1\11",
         "\5\11\1\u01b0\25\11\1\u01b1\55\11",
         "\1\uffff",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
         "\12\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\1\11\1\uffff\3\10"+
         "\1\uffff\1\10\2\uffff\1\u0263\1\uffff\7\10\13\uffff\1\u0262\2\uffff"+
         "\1\11",
@@ -6858,97 +6922,97 @@
         "\1\uffff\1\10\2\uffff\1\u0265\1\uffff\7\10\13\uffff\1\u0264\2\uffff"+
         "\1\11",
         "\4\10\1\11\2\10\23\uffff\1\11\35\uffff\1\u0266",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
-        "\1\10\1\20\1\22\1\21\1\25\1\10\1\23\1\24\2\10\3\uffff\1\10\1\uffff"+
+        "\1\10\1\22\1\20\1\21\1\24\1\10\1\25\1\23\2\10\3\uffff\1\10\1\uffff"+
         "\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1\10\2\uffff\1\10\1\uffff"+
         "\7\10\12\uffff\1\11\1\u00f4\1\11",
         "\1\u00f8\1\u00fb\1\u00f9\1\u00fa\1\u00fd\1\u0115\1\u00fe\1\u00fc"+
@@ -7334,101 +7398,101 @@
         "\1\u012c\1\u012e\1\u012d\1\uffff\1\u012f\2\uffff\1\u0117\1\uffff"+
         "\1\u012b\1\u0124\1\u0130\1\u0131\1\u0132\1\u0133\1\u0135",
         "\4\10\1\11\2\10\23\uffff\1\11",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\12\uffff\1\10\1\u0137\1\10",
+        "\1\uffff",
         "\4\11\1\uffff\2\11\25\uffff\1\10\33\uffff\1\11",
-        "\1\uffff",
         "\4\11\1\uffff\2\11\23\uffff\1\10\35\uffff\1\u0267",
         "\12\11\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\1\10\1\uffff\3\11"+
         "\1\uffff\1\11\2\uffff\1\u0269\1\uffff\7\11\13\uffff\1\u0268\2\uffff"+
@@ -7454,7 +7518,6 @@
         "\1\u02a4\1\u02a6\1\u02a5\1\uffff\1\u02a7\4\uffff\1\u02a3\1\u029c"+
         "\1\u02a8\1\u02a9\1\u02aa\1\u02ab\1\u02ad",
         "\1\u02af",
-        "\4\11\1\10\2\11\23\uffff\1\10\35\uffff\1\10",
         "\1\u02b1\1\u02b4\1\u02b2\1\u02b3\1\u02b6\1\u02ce\1\u02b7\1\u02b5"+
         "\1\u02cc\1\u02b8\3\11\1\u02b9\1\11\1\u02ba\5\11\1\u02bb\1\u02bd"+
         "\1\u02be\1\u02bf\1\u02c0\1\u02c1\1\u02b0\1\u02c2\2\11\1\u02c4\1"+
@@ -7491,6 +7554,7 @@
         "\5\11\1\u01b0\25\11\1\u01b1\35\11\1\u01af\17\11",
         "\5\11\1\u01b0\25\11\1\u01b1\35\11\1\u01af\17\11",
         "\5\11\1\u01b0\25\11\1\u01b1\35\11\1\u01af\17\11",
+        "\4\11\1\10\2\11\23\uffff\1\10\35\uffff\1\10",
         "\1\u02d1\1\u02d4\1\u02d2\1\u02d3\1\u02d6\1\u02ee\1\u02d7\1\u02d5"+
         "\1\u02ec\1\u02d8\3\uffff\1\u02d9\1\uffff\1\u02da\5\uffff\1\u02db"+
         "\1\u02dd\1\u02de\1\u02df\1\u02e0\1\u02e1\1\u02d0\1\u02e2\2\uffff"+
@@ -7625,164 +7689,164 @@
         "\1\uffff\1\10\2\uffff\1\u0240\1\uffff\7\10\13\uffff\1\u023f",
         "\12\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\1\11\1\uffff\3\10"+
         "\1\uffff\1\10\2\uffff\1\u0240\1\uffff\7\10",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\13\11\1\u0242\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\13\11\1\u0241\16\11",
         "\1\10\1\u00c2\1\u00c4\1\u00c3\1\u00c7\1\10\1\u00c5\1\u00c6\2\10"+
         "\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\2\uffff\3\10\1\uffff\1"+
         "\10\2\uffff\1\10\1\uffff\7\10\13\uffff\1\10",
-        "\1\u0245\1\u0248\1\u0246\1\u0247\1\u024a\1\u0241\1\u024b\1\u0249"+
-        "\1\u0260\1\u024c\3\11\1\u024d\1\11\1\u024e\5\11\1\u024f\1\u0251"+
-        "\1\u0252\1\u0253\1\u0254\1\u0255\1\u0244\1\u0256\2\11\1\u0258\1"+
-        "\u025a\1\u0259\1\11\1\u025b\2\11\1\u0243\1\11\1\u0257\1\u0250\1"+
-        "\u025c\1\u025d\1\u025e\1\u025f\1\u0261\32\11",
+        "\1\u0244\1\u0247\1\u0245\1\u0246\1\u0249\1\u0261\1\u024a\1\u0248"+
+        "\1\u025f\1\u024b\3\11\1\u024c\1\11\1\u024d\5\11\1\u024e\1\u0250"+
+        "\1\u0251\1\u0252\1\u0253\1\u0254\1\u0243\1\u0255\2\11\1\u0257\1"+
+        "\u0259\1\u0258\1\11\1\u025a\2\11\1\u0242\1\11\1\u0256\1\u024f\1"+
+        "\u025b\1\u025c\1\u025d\1\u025e\1\u0260\32\11",
         "\12\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\1\11\1\uffff\3\10"+
         "\1\uffff\1\10\2\uffff\1\u0263\1\uffff\7\10\13\uffff\1\u0262",
         "\12\10\3\uffff\1\10\1\uffff\1\10\5\uffff\10\10\1\11\1\uffff\3\10"+
@@ -8125,7 +8189,7 @@
         "\1\u027a\1\u027b\1\u027c\1\u027d\1\u026c\1\u027e\2\10\1\u0280\1"+
         "\u0282\1\u0281\1\10\1\u0283\2\10\1\u026b\1\10\1\u027f\1\u0278\1"+
         "\u0284\1\u0285\1\u0286\1\u0287\1\u0289\13\10\1\u026a\16\10",
-        "\1\11\1\u013a\1\u0138\1\u0139\1\u013c\1\11\1\u013d\1\u013b\2\11"+
+        "\1\11\1\u0138\1\u013a\1\u0139\1\u013d\1\11\1\u013b\1\u013c\2\11"+
         "\3\uffff\1\11\1\uffff\1\11\5\uffff\10\11\2\uffff\3\11\1\uffff\1"+
         "\11\2\uffff\1\11\1\uffff\7\11\13\uffff\1\11",
         "\1\u026d\1\u0270\1\u026e\1\u026f\1\u0272\1\u028a\1\u0273\1\u0271"+
@@ -8581,109 +8645,109 @@
     public static final BitSet FOLLOW_ID_in_enum_constraint2647 = new BitSet(new long[]{0x4000000000000000L});
     public static final BitSet FOLLOW_62_in_enum_constraint2653 = new BitSet(new long[]{0x0007F0B9FE0A3FF0L});
     public static final BitSet FOLLOW_identifier_in_enum_constraint2657 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_predicate2682 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk2731 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_set_in_paren_chunk2747 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk2771 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk2808 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk2859 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_set_in_curly_chunk2875 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk2899 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk2936 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk2999 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_set_in_square_chunk3015 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_square_chunk_in_square_chunk3039 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk3076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paren_chunk_in_retval_constraint3121 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or3149 = new BitSet(new long[]{0x0000000100000002L,0x0000000000000004L});
-    public static final BitSet FOLLOW_set_in_lhs_or3158 = new BitSet(new long[]{0x0003C00280000000L});
-    public static final BitSet FOLLOW_lhs_and_in_lhs_or3168 = new BitSet(new long[]{0x0000000100000002L,0x0000000000000004L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3204 = new BitSet(new long[]{0x0000100000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_set_in_lhs_and3213 = new BitSet(new long[]{0x0003C00280000000L});
-    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3223 = new BitSet(new long[]{0x0000100000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3260 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3268 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3276 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3284 = new BitSet(new long[]{0x2000200000000002L});
-    public static final BitSet FOLLOW_FROM_in_lhs_unary3300 = new BitSet(new long[]{0x0007F0B9FE0A3FF0L});
-    public static final BitSet FOLLOW_accumulate_statement_in_lhs_unary3328 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_collect_statement_in_lhs_unary3357 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_from_statement_in_lhs_unary3392 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary3431 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary3439 = new BitSet(new long[]{0x0003C00280000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_unary3443 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary3445 = new BitSet(new long[]{0x2000000000000002L});
-    public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary3455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXISTS_in_lhs_exist3479 = new BitSet(new long[]{0x0000000280000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist3482 = new BitSet(new long[]{0x0003C00280000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3486 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist3488 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3494 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_lhs_not3524 = new BitSet(new long[]{0x0000000280000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not3527 = new BitSet(new long[]{0x0003C00280000000L});
-    public static final BitSet FOLLOW_lhs_or_in_lhs_not3531 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not3534 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_not3540 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EVAL_in_lhs_eval3570 = new BitSet(new long[]{0x0000000200000000L});
-    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval3574 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FORALL_in_lhs_forall3603 = new BitSet(new long[]{0x0000000200000000L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall3605 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3609 = new BitSet(new long[]{0x0000000080000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_64_in_lhs_forall3623 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3629 = new BitSet(new long[]{0x0000000480000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall3642 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_dotted_name3669 = new BitSet(new long[]{0x4000040000000002L});
-    public static final BitSet FOLLOW_62_in_dotted_name3681 = new BitSet(new long[]{0x0007F0B9FE0A3FF0L});
-    public static final BitSet FOLLOW_identifier_in_dotted_name3685 = new BitSet(new long[]{0x4000040000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name3707 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name3711 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_identifier_in_argument3750 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument3756 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument3758 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_THEN_in_rhs_chunk3802 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_set_in_rhs_chunk3814 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
-    public static final BitSet FOLLOW_END_in_rhs_chunk3851 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_name3895 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_name3914 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_identifier3952 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_PACKAGE_in_identifier3965 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FUNCTION_in_identifier3972 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_GLOBAL_in_identifier3979 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IMPORT_in_identifier3986 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_in_identifier3995 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_QUERY_in_identifier4002 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TEMPLATE_in_identifier4023 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ATTRIBUTES_in_identifier4051 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ENABLED_in_identifier4077 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SALIENCE_in_identifier4106 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_DURATION_in_identifier4128 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FROM_in_identifier4150 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_identifier4179 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INIT_in_identifier4201 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACTION_in_identifier4230 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RESULT_in_identifier4259 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_identifier4288 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_OR_in_identifier4317 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AND_in_identifier4346 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CONTAINS_in_identifier4375 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXCLUDES_in_identifier4397 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MATCHES_in_identifier4419 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_identifier4448 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EXISTS_in_identifier4477 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NOT_in_identifier4506 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_EVAL_in_identifier4535 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FORALL_in_identifier4564 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_WHEN_in_identifier4602 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_THEN_in_identifier4634 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_END_in_identifier4663 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_predicate2699 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk2748 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_set_in_paren_chunk2764 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_paren_chunk_in_paren_chunk2788 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk2825 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk2876 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_set_in_curly_chunk2892 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_curly_chunk_in_curly_chunk2916 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk2953 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk3016 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_set_in_square_chunk3032 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_square_chunk_in_square_chunk3056 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk3093 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_paren_chunk_in_retval_constraint3138 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or3166 = new BitSet(new long[]{0x0000000100000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_set_in_lhs_or3175 = new BitSet(new long[]{0x0003C00280000000L});
+    public static final BitSet FOLLOW_lhs_and_in_lhs_or3185 = new BitSet(new long[]{0x0000000100000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3221 = new BitSet(new long[]{0x0000100000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_set_in_lhs_and3230 = new BitSet(new long[]{0x0003C00280000000L});
+    public static final BitSet FOLLOW_lhs_unary_in_lhs_and3240 = new BitSet(new long[]{0x0000100000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_lhs_exist_in_lhs_unary3277 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_lhs_not_in_lhs_unary3285 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_lhs_eval_in_lhs_unary3293 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_unary3301 = new BitSet(new long[]{0x2000200000000002L});
+    public static final BitSet FOLLOW_FROM_in_lhs_unary3317 = new BitSet(new long[]{0x0007F0B9FE0A3FF0L});
+    public static final BitSet FOLLOW_accumulate_statement_in_lhs_unary3345 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_collect_statement_in_lhs_unary3374 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_from_statement_in_lhs_unary3409 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_lhs_forall_in_lhs_unary3448 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary3456 = new BitSet(new long[]{0x0003C00280000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_unary3460 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary3462 = new BitSet(new long[]{0x2000000000000002L});
+    public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary3472 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXISTS_in_lhs_exist3496 = new BitSet(new long[]{0x0000000280000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist3516 = new BitSet(new long[]{0x0003C00280000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_exist3520 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist3552 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_exist3602 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_lhs_not3656 = new BitSet(new long[]{0x0000000280000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not3669 = new BitSet(new long[]{0x0003C00280000000L});
+    public static final BitSet FOLLOW_lhs_or_in_lhs_not3673 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not3706 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_not3743 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EVAL_in_lhs_eval3791 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_paren_chunk_in_lhs_eval3795 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FORALL_in_lhs_forall3824 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall3826 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3830 = new BitSet(new long[]{0x0000000080000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_64_in_lhs_forall3844 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_lhs_column_in_lhs_forall3850 = new BitSet(new long[]{0x0000000480000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall3865 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_dotted_name3896 = new BitSet(new long[]{0x4000040000000002L});
+    public static final BitSet FOLLOW_62_in_dotted_name3908 = new BitSet(new long[]{0x0007F0B9FE0A3FF0L});
+    public static final BitSet FOLLOW_identifier_in_dotted_name3912 = new BitSet(new long[]{0x4000040000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name3934 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name3938 = new BitSet(new long[]{0x0000040000000002L});
+    public static final BitSet FOLLOW_identifier_in_argument3977 = new BitSet(new long[]{0x0000040000000002L});
+    public static final BitSet FOLLOW_LEFT_SQUARE_in_argument3983 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument3985 = new BitSet(new long[]{0x0000040000000002L});
+    public static final BitSet FOLLOW_THEN_in_rhs_chunk4029 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_set_in_rhs_chunk4041 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000000000001FFFL});
+    public static final BitSet FOLLOW_END_in_rhs_chunk4078 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_name4122 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_name4141 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_identifier4179 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_PACKAGE_in_identifier4192 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FUNCTION_in_identifier4199 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_GLOBAL_in_identifier4206 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_IMPORT_in_identifier4213 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_in_identifier4222 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_QUERY_in_identifier4229 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TEMPLATE_in_identifier4250 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ATTRIBUTES_in_identifier4278 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ENABLED_in_identifier4304 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_identifier4333 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_DURATION_in_identifier4355 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FROM_in_identifier4377 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_identifier4406 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INIT_in_identifier4428 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACTION_in_identifier4457 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RESULT_in_identifier4486 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_identifier4515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_OR_in_identifier4544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AND_in_identifier4573 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CONTAINS_in_identifier4602 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXCLUDES_in_identifier4624 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MATCHES_in_identifier4646 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_identifier4675 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EXISTS_in_identifier4704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NOT_in_identifier4733 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EVAL_in_identifier4762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FORALL_in_identifier4791 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_WHEN_in_identifier4829 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_THEN_in_identifier4861 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_END_in_identifier4890 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_import_statement_in_synpred4114 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_function_import_statement_in_synpred5126 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_paren_chunk_in_synpred351666 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_LEFT_PAREN_in_synpred381766 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_set_in_synpred412075 = new BitSet(new long[]{0x0000000080000000L});
     public static final BitSet FOLLOW_fact_in_synpred412092 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ACCUMULATE_in_synpred693319 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_COLLECT_in_synpred703348 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_synpred713378 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ACCUMULATE_in_synpred693336 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLLECT_in_synpred703365 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_set_in_synpred713395 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2007-02-03 00:37:55 UTC (rev 9307)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2007-02-03 12:45:15 UTC (rev 9308)
@@ -991,13 +991,21 @@
 	
 
 predicate[ColumnDescr column]
+        @init {
+		PredicateDescr d = null;
+        }
 	:
-		text=paren_chunk[null]
 		{
-		        String body = text.substring(1, text.length()-1);
-			PredicateDescr d = new PredicateDescr( body );
-			column.addDescr( d );
+			d = new PredicateDescr( );
 		}
+		text=paren_chunk[d]
+		{
+		        if( text != null ) {
+			        String body = text.substring(1, text.length()-1);
+			        d.setText( body );
+				column.addDescr( d );
+		        }
+		}
 	;
 
 paren_chunk[BaseDescr descr] returns [String text]
@@ -1204,22 +1212,51 @@
 	@init {
 		d = null;
 	}
-	:	loc=EXISTS ('(' column=lhs_or ')' | column=lhs_column)
-		{ 
-			d = new ExistsDescr( (ColumnDescr) column ); 
+	:	loc=EXISTS 
+		{
+			d = new ExistsDescr( ); 
 			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
-		}	
+			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+		}
+	        ( ( '(' column=lhs_or 
+	           	{ if ( column != null ) ((ExistsDescr)d).addDescr( column ); }
+	           end=')' 
+	                { if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() ); }
+	        )    
+	        | column=lhs_column
+	                {
+	                	if ( column != null ) {
+	                		((ExistsDescr)d).addDescr( column );
+	                		d.setEndCharacter( column.getEndCharacter() );
+	                	}
+	                }
+	        )
 	;
 	
 lhs_not	returns [NotDescr d]
 	@init {
 		d = null;
 	}
-	:	loc=NOT ('(' column=lhs_or  ')' | column=lhs_column)
+	:	loc=NOT 
 		{
-			d = new NotDescr( column ); 
+			d = new NotDescr( ); 
 			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
 		}
+		( ( '(' column=lhs_or  
+	           	{ if ( column != null ) d.addDescr( column ); }
+	           end=')' 
+	                { if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() ); }
+		  )
+		| 
+		column=lhs_column
+	                {
+	                	if ( column != null ) {
+	                		d.addDescr( column );
+	                		d.setEndCharacter( column.getEndCharacter() );
+	                	}
+	                }
+		)
 	;
 
 lhs_eval returns [BaseDescr d]
@@ -1229,12 +1266,12 @@
 	:
 		loc=EVAL c=paren_chunk[d]
 		{ 
+			if ( loc != null ) d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
 		        if( c != null ) {
 		            String body = c.substring(1, c.length()-1);
 			    checkTrailingSemicolon( body, offset(loc.getLine()) );
 			    ((EvalDescr) d).setText( body );
 			}
-			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
 		}
 	;
 	
@@ -1244,6 +1281,7 @@
 	}
 	:	loc=FORALL '(' base=lhs_column   
 		{
+			if ( loc != null ) d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
 		        // adding the base column
 		        d.addDescr( base );
 			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
@@ -1254,7 +1292,10 @@
 			d.addDescr( column );
 		}
 		)+
-		')'
+		end=')'
+		{
+		        if ( end != null ) d.setEndCharacter( ((CommonToken)end).getStopIndex() );
+		}
 	;
 
 dotted_name[BaseDescr descr] returns [String name]




More information about the jboss-svn-commits mailing list