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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 14 23:43:07 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-03-14 23:43:07 -0400 (Wed, 14 Mar 2007)
New Revision: 10212

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPLexer.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPParser.java
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/CLP.g
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/clp/ClpParserTest.java
Log:
JBRULES-720 Clips Parser
-Its now  working as long as there is a space  after the  ::

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPLexer.java	2007-03-15 03:14:24 UTC (rev 10211)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPLexer.java	2007-03-15 03:43:07 UTC (rev 10212)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-15 03:13:31
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-15 03:41:54
 
 	package org.drools.clp;
 
@@ -1423,11 +1423,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:8: ( '?' ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:8: '?' ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:8: ( '?' ('a'..'z'|'A'..'Z'|'_'|'$') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:8: '?' ('a'..'z'|'A'..'Z'|'_'|'$') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
             {
             match('?'); if (failed) return ;
-            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                 input.consume();
             failed=false;
             }
@@ -1438,21 +1438,21 @@
                 recover(mse);    throw mse;
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:57: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:38: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
             loop14:
             do {
                 int alt14=2;
                 int LA14_0 = input.LA(1);
-                if ( ((LA14_0>='0' && LA14_0<='9')||(LA14_0>='A' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='z')||(LA14_0>='\u00C0' && LA14_0<='\u00FF')) ) {
+                if ( ((LA14_0>='0' && LA14_0<='9')||(LA14_0>='A' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='z')) ) {
                     alt14=1;
                 }
 
 
                 switch (alt14) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:58: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:39: ('a'..'z'|'A'..'Z'|'_'|'0'..'9')
             	    {
-            	    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') ) {
+            	    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.consume();
             	    failed=false;
             	    }
@@ -1500,10 +1500,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:4: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:4: ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:4: ( ('a'..'z'|'A'..'Z'|'_'|'$') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:4: ('a'..'z'|'A'..'Z'|'_'|'$') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
             {
-            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') ) {
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                 input.consume();
             failed=false;
             }
@@ -1514,21 +1514,21 @@
                 recover(mse);    throw mse;
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:50: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:31: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
             loop15:
             do {
                 int alt15=2;
                 int LA15_0 = input.LA(1);
-                if ( ((LA15_0>='0' && LA15_0<='9')||(LA15_0>='A' && LA15_0<='Z')||LA15_0=='_'||(LA15_0>='a' && LA15_0<='z')||(LA15_0>='\u00C0' && LA15_0<='\u00FF')) ) {
+                if ( ((LA15_0>='0' && LA15_0<='9')||(LA15_0>='A' && LA15_0<='Z')||LA15_0=='_'||(LA15_0>='a' && LA15_0<='z')) ) {
                     alt15=1;
                 }
 
 
                 switch (alt15) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:51: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:32: ('a'..'z'|'A'..'Z'|'_'|'0'..'9')
             	    {
-            	    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') ) {
+            	    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.consume();
             	    failed=false;
             	    }
@@ -2720,7 +2720,7 @@
         "\2\0\2\uffff\6\0\1\uffff\1\60\6\0\1\uffff\1\0\2\uffff\2\0\1\60\6"+
         "\0\1\60\1\uffff\2\0\1\uffff\2\0\2\uffff\1\0\1\uffff";
     public static final String DFA22_maxS =
-        "\1\ufffe\1\uffff\12\ufffe\1\uffff\5\ufffe\1\uffff\2\ufffe\1\u00ff"+
+        "\1\ufffe\1\uffff\12\ufffe\1\uffff\5\ufffe\1\uffff\2\ufffe\1\172"+
         "\2\ufffe\2\uffff\4\ufffe\3\uffff\13\ufffe\1\uffff\1\ufffe\1\uffff"+
         "\2\ufffe\2\uffff\2\ufffe\1\uffff\1\72\13\ufffe\1\71\1\uffff\1\165"+
         "\3\ufffe\1\72\1\uffff\1\ufffe\1\uffff\2\ufffe\4\uffff\1\ufffe\2"+
@@ -2743,7 +2743,7 @@
         "\37\1\23\1\30\1\31\1\46\1\50\1\51\1\20\1\54\1\27\12\21\1\4\1\1\1"+
         "\3\1\2\1\53\1\25\1\42\32\47\1\32\1\52\1\33\1\45\1\43\1\54\1\10\2"+
         "\47\1\6\1\12\1\17\6\47\1\5\1\11\1\7\3\47\1\16\1\13\6\47\1\34\1\40"+
-        "\1\35\1\36\101\54\100\47\ufeff\54",
+        "\1\35\1\36\uff80\54",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\21\54\2\uffff\1\54\1\55\1\uffff\74\54\1\uffff\1\54"+
@@ -2756,44 +2756,37 @@
         "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\16\64\1\63\13\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\16\64\1\63\13\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\4\64\1\67\25\64\1\54\1\uffff\1\54\1\uffff\101\54\100"+
-        "\64\ufeff\54",
+        "\54\1\64\1\54\4\64\1\67\25\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\21\64\1\70\10\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\21\64\1\70\10\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\15\64\1\71\14\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\15\64\1\71\14\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
         "\54\1\64\1\54\16\64\1\72\5\64\1\73\5\64\1\54\1\uffff\1\54\1\uffff"+
-        "\101\54\100\64\ufeff\54",
+        "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\27\64\1\74\2\64\1\54\1\uffff\1\54\1\uffff\101\54\100"+
-        "\64\ufeff\54",
+        "\54\1\64\1\54\27\64\1\74\2\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
         "\54\1\64\1\54\4\64\1\76\14\64\1\75\10\64\1\54\1\uffff\1\54\1\uffff"+
-        "\101\54\100\64\ufeff\54",
+        "\uff80\54",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\21\54\2\uffff\2\54\1\uffff\74\54\1\uffff\1\54\1\uffff"+
         "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\1\77\31\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64"+
-        "\ufeff\54",
+        "\54\1\64\1\54\1\77\31\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\1\100\31\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64"+
-        "\ufeff\54",
+        "\54\1\64\1\54\1\100\31\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\101\1\54\2\uffff\2\54\1\uffff\74\54\1\uffff"+
         "\1\54\1\uffff\uff80\54",
@@ -2806,10 +2799,8 @@
         "\uff80\105",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\107\1\110\2\uffff\2\54\1\uffff\1\54\32\107"+
-        "\4\54\1\107\1\54\32\107\1\54\1\uffff\1\54\1\uffff\101\54\100\107"+
-        "\ufeff\54",
-        "\1\111\34\uffff\32\111\4\uffff\1\111\1\uffff\32\111\105\uffff\100"+
-        "\111",
+        "\4\54\1\107\1\54\32\107\1\54\1\uffff\1\54\1\uffff\uff80\54",
+        "\1\111\34\uffff\32\111\4\uffff\1\111\1\uffff\32\111",
         "\11\112\2\113\2\112\1\113\22\112\1\113\1\112\1\113\3\112\1\113\1"+
         "\112\2\113\21\112\2\113\2\112\1\113\74\112\1\113\1\112\1\113\uff80"+
         "\112",
@@ -2841,8 +2832,7 @@
         "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\21\54\2\uffff\2\54\1\uffff\74\54\1\uffff\1\54\1\uffff"+
         "\uff80\54",
@@ -2854,8 +2844,7 @@
         "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\21\54\2\uffff\2\54\1\uffff\74\54\1\uffff\1\54\1\uffff"+
         "\uff80\54",
@@ -2883,54 +2872,47 @@
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\3\64\1\125\26\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\3\64\1\125\26\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "",
         "\1\126",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
         "\54\1\64\1\54\2\64\1\127\2\64\1\130\24\64\1\54\1\uffff\1\54\1\uffff"+
-        "\101\54\100\64\ufeff\54",
+        "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\3\64\1\132\26\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\3\64\1\132\26\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\23\64\1\133\6\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\23\64\1\133\6\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\13\64\1\134\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\13\64\1\134\16\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\10\64\1\135\21\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\10\64\1\135\21\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\24\64\1\136\5\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\24\64\1\136\5\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\22\64\1\137\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\22\64\1\137\7\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\13\64\1\140\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\13\64\1\140\16\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\13\64\1\141\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\13\64\1\141\16\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\4\54\1\102\1\54\12\101\1\54\2\uffff\2\54\1\uffff\74"+
         "\54\1\uffff\1\54\1\uffff\uff80\54",
@@ -2947,8 +2929,7 @@
         "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\1\126",
         "",
         "\11\112\2\113\2\112\1\113\22\112\1\113\1\112\1\113\3\112\1\113\1"+
@@ -2972,52 +2953,46 @@
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\10\64\1\154\21\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\10\64\1\154\21\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\21\54\2\uffff\2\54\1\uffff\74\54\1\uffff\1\54\1\uffff"+
         "\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\13\64\1\156\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\13\64\1\156\16\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\21\64\1\157\10\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\21\64\1\157\10\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\13\64\1\162\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\13\64\1\162\16\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\22\64\1\163\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\22\64\1\163\7\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\4\64\1\164\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\4\64\1\164\25\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\23\64\1\165\6\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\23\64\1\165\6\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\10\64\1\166\21\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\10\64\1\166\21\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\22\64\1\167\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\22\64\1\167\7\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\142\1\54\2\uffff\2\54\1\uffff\74\54\1\uffff"+
         "\1\54\1\uffff\uff80\54",
@@ -3044,43 +3019,37 @@
         "\uff80\153",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\5\64\1\175\24\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\5\64\1\175\24\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\1\176\31\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64"+
-        "\ufeff\54",
+        "\54\1\64\1\54\1\176\31\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\24\64\1\177\5\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\24\64\1\177\5\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\23\64\1\u0081\6\64\1\54\1\uffff\1\54\1\uffff\uff80"+
         "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\23\64\1\u0081\6\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54\1\64\1\54\4\64\1\u0084\25\64\1\54\1\uffff\1\54\1\uffff\uff80"+
         "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\4\64\1\u0084\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
-        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
-        "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\4\64\1\u0085\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\4\64\1\u0085\25\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "",
         "\12\u0086\7\uffff\6\u0086\32\uffff\6\u0086",
         "\11\105\2\22\2\105\1\22\22\105\1\22\1\105\1\22\3\105\1\22\1\106"+
@@ -3094,70 +3063,65 @@
         "\1\uffff\1\153\1\uffff\uff80\153",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\30\64\1\u0088\1\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\30\64\1\u0088\1\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\21\64\1\u0089\10\64\1\54\1\uffff\1\54\1\uffff\101"+
-        "\54\100\64\ufeff\54",
+        "\54\1\64\1\54\21\64\1\u0089\10\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\13\64\1\u008a\16\64\1\54\1\uffff\1\54\1\uffff\101"+
-        "\54\100\64\ufeff\54",
+        "\54\1\64\1\54\13\64\1\u008a\16\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\22\64\1\u008b\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\22\64\1\u008b\7\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\15\64\1\u008c\14\64\1\54\1\uffff\1\54\1\uffff\101"+
-        "\54\100\64\ufeff\54",
+        "\54\1\64\1\54\15\64\1\u008c\14\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\12\u008d\7\uffff\6\u008d\32\uffff\6\u008d",
         "\11\105\2\22\2\105\1\22\22\105\1\22\1\105\1\22\3\105\1\22\1\106"+
         "\2\22\21\105\2\22\2\105\1\22\34\105\1\104\37\105\1\22\1\105\1\22"+
         "\uff80\105",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\4\64\1\u008f\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\4\64\1\u008f\25\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\4\64\1\u0090\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\4\64\1\u0090\25\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\2\64\1\u0092\27\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\2\64\1\u0092\27\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\12\u0093\7\uffff\6\u0093\32\uffff\6\u0093",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\4\64\1\u0096\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
-        "\100\64\ufeff\54",
+        "\54\1\64\1\54\4\64\1\u0096\25\64\1\54\1\uffff\1\54\1\uffff\uff80"+
+        "\54",
         "\11\105\2\22\2\105\1\22\22\105\1\22\1\105\1\22\3\105\1\22\1\106"+
         "\2\22\21\105\2\22\2\105\1\22\34\105\1\104\37\105\1\22\1\105\1\22"+
         "\uff80\105",
@@ -3165,8 +3129,7 @@
         "",
         "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
         "\1\54\2\uffff\6\54\12\64\1\66\2\uffff\2\54\1\uffff\1\54\32\64\4"+
-        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
-        "\54",
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
         ""
     };
 

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPParser.java	2007-03-15 03:14:24 UTC (rev 10211)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPParser.java	2007-03-15 03:43:07 UTC (rev 10212)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-15 03:13:30
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-15 03:41:54
 
 	package org.drools.clp;
 	import java.util.List;
@@ -255,7 +255,7 @@
 
 
     // $ANTLR start rule
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:210:1: rule returns [RuleDescr rule] : loc= LEFT_PAREN 'defrule' (module= agenda_group ) ruleName= ID documentation= STRING ( ruleAttribute[rule] )* ( lhs[lhs] )* rhs[rule] RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:210:1: rule returns [RuleDescr rule] : loc= LEFT_PAREN 'defrule' (module= agenda_group )? ruleName= ID documentation= STRING ( ruleAttribute[rule] )* ( lhs[lhs] )* rhs[rule] RIGHT_PAREN ;
     public RuleDescr rule() throws RecognitionException {
         RuleDescr rule = null;
 
@@ -271,25 +271,35 @@
         	        ColumnDescr colum = null;	        
         	      
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:216:4: (loc= LEFT_PAREN 'defrule' (module= agenda_group ) ruleName= ID documentation= STRING ( ruleAttribute[rule] )* ( lhs[lhs] )* rhs[rule] RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:216:4: loc= LEFT_PAREN 'defrule' (module= agenda_group ) ruleName= ID documentation= STRING ( ruleAttribute[rule] )* ( lhs[lhs] )* rhs[rule] RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:216:4: (loc= LEFT_PAREN 'defrule' (module= agenda_group )? ruleName= ID documentation= STRING ( ruleAttribute[rule] )* ( lhs[lhs] )* rhs[rule] RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:216:4: loc= LEFT_PAREN 'defrule' (module= agenda_group )? ruleName= ID documentation= STRING ( ruleAttribute[rule] )* ( lhs[lhs] )* rhs[rule] RIGHT_PAREN
             {
             loc=(Token)input.LT(1);
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_rule64); 
             match(input,DEFRULE,FOLLOW_DEFRULE_in_rule72); 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:220:3: (module= agenda_group )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:220:5: module= agenda_group
-            {
-             System.err.println( "before" ); 
-            pushFollow(FOLLOW_agenda_group_in_rule87);
-            module=agenda_group();
-            _fsp--;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:220:3: (module= agenda_group )?
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+            if ( (LA2_0==MODULE) ) {
+                alt2=1;
+            }
+            switch (alt2) {
+                case 1 :
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:220:5: module= agenda_group
+                    {
+                     System.err.println( "before" ); 
+                    pushFollow(FOLLOW_agenda_group_in_rule87);
+                    module=agenda_group();
+                    _fsp--;
 
 
+                    }
+                    break;
+
             }
 
             ruleName=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_rule100); 
+            match(input,ID,FOLLOW_ID_in_rule101); 
              
             	  		debug( "start rule: " + ruleName.getText() );
             	        rule = new RuleDescr( ruleName.getText(), null ); 
@@ -308,30 +318,30 @@
             			lhs.setStartCharacter( ((CommonToken)loc).getStartIndex() );				
             		
             documentation=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_rule113); 
+            match(input,STRING,FOLLOW_STRING_in_rule114); 
             
             	    	// do nothing here for now
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:243:3: ( ruleAttribute[rule] )*
-            loop2:
+            loop3:
             do {
-                int alt2=2;
-                int LA2_0 = input.LA(1);
-                if ( (LA2_0==LEFT_PAREN) ) {
-                    int LA2_1 = input.LA(2);
-                    if ( (LA2_1==DECLARE) ) {
-                        alt2=1;
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+                if ( (LA3_0==LEFT_PAREN) ) {
+                    int LA3_1 = input.LA(2);
+                    if ( (LA3_1==DECLARE) ) {
+                        alt3=1;
                     }
 
 
                 }
 
 
-                switch (alt2) {
+                switch (alt3) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:243:3: ruleAttribute[rule]
             	    {
-            	    pushFollow(FOLLOW_ruleAttribute_in_rule119);
+            	    pushFollow(FOLLOW_ruleAttribute_in_rule120);
             	    ruleAttribute(rule);
             	    _fsp--;
 
@@ -340,25 +350,25 @@
             	    break;
 
             	default :
-            	    break loop2;
+            	    break loop3;
                 }
             } while (true);
 
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:245:3: ( lhs[lhs] )*
-            loop3:
+            loop4:
             do {
-                int alt3=2;
-                int LA3_0 = input.LA(1);
-                if ( (LA3_0==LEFT_PAREN||LA3_0==VAR) ) {
-                    alt3=1;
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+                if ( (LA4_0==LEFT_PAREN||LA4_0==VAR) ) {
+                    alt4=1;
                 }
 
 
-                switch (alt3) {
+                switch (alt4) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:245:3: lhs[lhs]
             	    {
-            	    pushFollow(FOLLOW_lhs_in_rule128);
+            	    pushFollow(FOLLOW_lhs_in_rule129);
             	    lhs(lhs);
             	    _fsp--;
 
@@ -367,15 +377,15 @@
             	    break;
 
             	default :
-            	    break loop3;
+            	    break loop4;
                 }
             } while (true);
 
-            pushFollow(FOLLOW_rhs_in_rule137);
+            pushFollow(FOLLOW_rhs_in_rule138);
             rhs(rule);
             _fsp--;
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_rule145); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_rule146); 
 
             }
 
@@ -407,7 +417,7 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:258:3: t= MODULE
             {
             t=(Token)input.LT(1);
-            match(input,MODULE,FOLLOW_MODULE_in_agenda_group170); 
+            match(input,MODULE,FOLLOW_MODULE_in_agenda_group171); 
             
             			System.out.println( "agenda group body" );		
             			d = new AttributeDescr( "agenda-group", t.getText() );
@@ -440,16 +450,16 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:271:3: ( LEFT_PAREN 'declare' LEFT_PAREN d= salience RIGHT_PAREN RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:271:3: LEFT_PAREN 'declare' LEFT_PAREN d= salience RIGHT_PAREN RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute190); 
-            match(input,DECLARE,FOLLOW_DECLARE_in_ruleAttribute192); 
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute197); 
-            pushFollow(FOLLOW_salience_in_ruleAttribute201);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute191); 
+            match(input,DECLARE,FOLLOW_DECLARE_in_ruleAttribute193); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute198); 
+            pushFollow(FOLLOW_salience_in_ruleAttribute202);
             d=salience();
             _fsp--;
 
              rule.addAttribute( d ); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute208); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute212); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute209); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute213); 
 
             }
 
@@ -481,9 +491,9 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:282:3: loc= SALIENCE i= INT
             {
             loc=(Token)input.LT(1);
-            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience239); 
+            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience240); 
             i=(Token)input.LT(1);
-            match(input,INT,FOLLOW_INT_in_salience243); 
+            match(input,INT,FOLLOW_INT_in_salience244); 
             
             			d = new AttributeDescr( "salience", i.getText() );
             			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
@@ -513,50 +523,50 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:293:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )
             {
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:293:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )
-            int alt4=7;
-            int LA4_0 = input.LA(1);
-            if ( (LA4_0==LEFT_PAREN) ) {
+            int alt5=7;
+            int LA5_0 = input.LA(1);
+            if ( (LA5_0==LEFT_PAREN) ) {
                 switch ( input.LA(2) ) {
-                case OR:
-                    alt4=2;
+                case ID:
+                    alt5=6;
                     break;
+                case NOT:
+                    alt5=3;
+                    break;
                 case TEST:
-                    alt4=5;
+                    alt5=5;
                     break;
-                case NOT:
-                    alt4=3;
+                case AND:
+                    alt5=1;
                     break;
-                case ID:
-                    alt4=6;
-                    break;
                 case EXISTS:
-                    alt4=4;
+                    alt5=4;
                     break;
-                case AND:
-                    alt4=1;
+                case OR:
+                    alt5=2;
                     break;
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("293:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 4, 1, input);
+                        new NoViableAltException("293:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 5, 1, input);
 
                     throw nvae;
                 }
 
             }
-            else if ( (LA4_0==VAR) ) {
-                alt4=7;
+            else if ( (LA5_0==VAR) ) {
+                alt5=7;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("293:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 4, 0, input);
+                    new NoViableAltException("293:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 5, 0, input);
 
                 throw nvae;
             }
-            switch (alt4) {
+            switch (alt5) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:293:8: and_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_and_ce_in_lhs270);
+                    pushFollow(FOLLOW_and_ce_in_lhs271);
                     and_ce(in_ce);
                     _fsp--;
 
@@ -566,7 +576,7 @@
                 case 2 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:294:7: or_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_or_ce_in_lhs280);
+                    pushFollow(FOLLOW_or_ce_in_lhs281);
                     or_ce(in_ce);
                     _fsp--;
 
@@ -576,7 +586,7 @@
                 case 3 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:295:7: not_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_not_ce_in_lhs289);
+                    pushFollow(FOLLOW_not_ce_in_lhs290);
                     not_ce(in_ce);
                     _fsp--;
 
@@ -586,7 +596,7 @@
                 case 4 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:296:7: exists_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_exists_ce_in_lhs298);
+                    pushFollow(FOLLOW_exists_ce_in_lhs299);
                     exists_ce(in_ce);
                     _fsp--;
 
@@ -596,7 +606,7 @@
                 case 5 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:297:8: eval_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_eval_ce_in_lhs312);
+                    pushFollow(FOLLOW_eval_ce_in_lhs313);
                     eval_ce(in_ce);
                     _fsp--;
 
@@ -606,7 +616,7 @@
                 case 6 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:298:7: normal_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_normal_pattern_in_lhs326);
+                    pushFollow(FOLLOW_normal_pattern_in_lhs327);
                     normal_pattern(in_ce);
                     _fsp--;
 
@@ -616,7 +626,7 @@
                 case 7 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:299:7: bound_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_bound_pattern_in_lhs335);
+                    pushFollow(FOLLOW_bound_pattern_in_lhs336);
                     bound_pattern(in_ce);
                     _fsp--;
 
@@ -652,22 +662,22 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:310:3: ( '=>' ( function[context] )* )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:310:3: '=>' ( function[context] )*
             {
-            match(input,41,FOLLOW_41_in_rhs362); 
+            match(input,41,FOLLOW_41_in_rhs363); 
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:311:4: ( function[context] )*
-            loop5:
+            loop6:
             do {
-                int alt5=2;
-                int LA5_0 = input.LA(1);
-                if ( (LA5_0==LEFT_PAREN) ) {
-                    alt5=1;
+                int alt6=2;
+                int LA6_0 = input.LA(1);
+                if ( (LA6_0==LEFT_PAREN) ) {
+                    alt6=1;
                 }
 
 
-                switch (alt5) {
+                switch (alt6) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:311:4: function[context]
             	    {
-            	    pushFollow(FOLLOW_function_in_rhs367);
+            	    pushFollow(FOLLOW_function_in_rhs368);
             	    function(context);
             	    _fsp--;
 
@@ -676,7 +686,7 @@
             	    break;
 
             	default :
-            	    break loop5;
+            	    break loop6;
                 }
             } while (true);
 
@@ -704,31 +714,31 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:315:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] )
             {
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:315:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] )
-            int alt6=6;
-            int LA6_0 = input.LA(1);
-            if ( (LA6_0==LEFT_PAREN) ) {
+            int alt7=6;
+            int LA7_0 = input.LA(1);
+            if ( (LA7_0==LEFT_PAREN) ) {
                 switch ( input.LA(2) ) {
-                case OR:
-                    alt6=2;
+                case EXISTS:
+                    alt7=4;
                     break;
+                case ID:
+                    alt7=6;
+                    break;
                 case TEST:
-                    alt6=5;
+                    alt7=5;
                     break;
                 case AND:
-                    alt6=1;
+                    alt7=1;
                     break;
-                case ID:
-                    alt6=6;
+                case OR:
+                    alt7=2;
                     break;
                 case NOT:
-                    alt6=3;
+                    alt7=3;
                     break;
-                case EXISTS:
-                    alt6=4;
-                    break;
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("315:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] )", 6, 1, input);
+                        new NoViableAltException("315:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] )", 7, 1, input);
 
                     throw nvae;
                 }
@@ -736,15 +746,15 @@
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("315:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] )", 6, 0, input);
+                    new NoViableAltException("315:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] )", 7, 0, input);
 
                 throw nvae;
             }
-            switch (alt6) {
+            switch (alt7) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:315:8: and_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_and_ce_in_ce391);
+                    pushFollow(FOLLOW_and_ce_in_ce392);
                     and_ce(in_ce);
                     _fsp--;
 
@@ -754,7 +764,7 @@
                 case 2 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:316:10: or_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_or_ce_in_ce404);
+                    pushFollow(FOLLOW_or_ce_in_ce405);
                     or_ce(in_ce);
                     _fsp--;
 
@@ -764,7 +774,7 @@
                 case 3 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:317:7: not_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_not_ce_in_ce413);
+                    pushFollow(FOLLOW_not_ce_in_ce414);
                     not_ce(in_ce);
                     _fsp--;
 
@@ -774,7 +784,7 @@
                 case 4 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:318:7: exists_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_exists_ce_in_ce422);
+                    pushFollow(FOLLOW_exists_ce_in_ce423);
                     exists_ce(in_ce);
                     _fsp--;
 
@@ -784,7 +794,7 @@
                 case 5 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:319:8: eval_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_eval_ce_in_ce436);
+                    pushFollow(FOLLOW_eval_ce_in_ce437);
                     eval_ce(in_ce);
                     _fsp--;
 
@@ -794,7 +804,7 @@
                 case 6 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:320:10: normal_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_normal_pattern_in_ce460);
+                    pushFollow(FOLLOW_normal_pattern_in_ce461);
                     normal_pattern(in_ce);
                     _fsp--;
 
@@ -829,27 +839,27 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:329:4: ( LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:329:4: LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce492); 
-            match(input,AND,FOLLOW_AND_in_and_ce497); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce493); 
+            match(input,AND,FOLLOW_AND_in_and_ce498); 
             
             	    	andDescr = new AndDescr();
             			in_ce.addDescr( andDescr );
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:334:3: ( ce[andDescr] )*
-            loop7:
+            loop8:
             do {
-                int alt7=2;
-                int LA7_0 = input.LA(1);
-                if ( (LA7_0==LEFT_PAREN) ) {
-                    alt7=1;
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+                if ( (LA8_0==LEFT_PAREN) ) {
+                    alt8=1;
                 }
 
 
-                switch (alt7) {
+                switch (alt8) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:334:3: ce[andDescr]
             	    {
-            	    pushFollow(FOLLOW_ce_in_and_ce503);
+            	    pushFollow(FOLLOW_ce_in_and_ce504);
             	    ce(andDescr);
             	    _fsp--;
 
@@ -858,11 +868,11 @@
             	    break;
 
             	default :
-            	    break loop7;
+            	    break loop8;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_and_ce512); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_and_ce513); 
 
             }
 
@@ -888,27 +898,27 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:342:4: ( LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:342:4: LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce540); 
-            match(input,OR,FOLLOW_OR_in_or_ce545); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce541); 
+            match(input,OR,FOLLOW_OR_in_or_ce546); 
             
             	    	orDescr = new OrDescr();
             			in_ce.addDescr( orDescr );
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:347:3: ( ce[orDescr] )*
-            loop8:
+            loop9:
             do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
-                if ( (LA8_0==LEFT_PAREN) ) {
-                    alt8=1;
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+                if ( (LA9_0==LEFT_PAREN) ) {
+                    alt9=1;
                 }
 
 
-                switch (alt8) {
+                switch (alt9) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:347:3: ce[orDescr]
             	    {
-            	    pushFollow(FOLLOW_ce_in_or_ce551);
+            	    pushFollow(FOLLOW_ce_in_or_ce552);
             	    ce(orDescr);
             	    _fsp--;
 
@@ -917,11 +927,11 @@
             	    break;
 
             	default :
-            	    break loop8;
+            	    break loop9;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_or_ce560); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_or_ce561); 
 
             }
 
@@ -947,23 +957,23 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:355:4: ( LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:355:4: LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce588); 
-            match(input,NOT,FOLLOW_NOT_in_not_ce593); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce589); 
+            match(input,NOT,FOLLOW_NOT_in_not_ce594); 
             
             			notDescr = new NotDescr();
             		    in_ce.addDescr( notDescr );
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:3: ( ce[notDescr] )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
-            if ( (LA9_0==LEFT_PAREN) ) {
-                alt9=1;
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+            if ( (LA10_0==LEFT_PAREN) ) {
+                alt10=1;
             }
-            switch (alt9) {
+            switch (alt10) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:3: ce[notDescr]
                     {
-                    pushFollow(FOLLOW_ce_in_not_ce599);
+                    pushFollow(FOLLOW_ce_in_not_ce600);
                     ce(notDescr);
                     _fsp--;
 
@@ -973,7 +983,7 @@
 
             }
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_not_ce608); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_not_ce609); 
 
             }
 
@@ -999,23 +1009,23 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:368:4: ( LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:368:4: LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce637); 
-            match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce642); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce638); 
+            match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce643); 
             
             		    existsDescr = new ExistsDescr();
             		    in_ce.addDescr( existsDescr );
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:373:3: ( ce[existsDescr] )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
-            if ( (LA10_0==LEFT_PAREN) ) {
-                alt10=1;
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+            if ( (LA11_0==LEFT_PAREN) ) {
+                alt11=1;
             }
-            switch (alt10) {
+            switch (alt11) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:373:3: ce[existsDescr]
                     {
-                    pushFollow(FOLLOW_ce_in_exists_ce648);
+                    pushFollow(FOLLOW_ce_in_exists_ce649);
                     ce(existsDescr);
                     _fsp--;
 
@@ -1025,7 +1035,7 @@
 
             }
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_exists_ce657); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_exists_ce658); 
 
             }
 
@@ -1053,20 +1063,20 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:383:4: ( LEFT_PAREN TEST function[context] RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:383:4: LEFT_PAREN TEST function[context] RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce685); 
-            match(input,TEST,FOLLOW_TEST_in_eval_ce690); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce686); 
+            match(input,TEST,FOLLOW_TEST_in_eval_ce691); 
             
             		    evalDescr = new EvalDescr();
             		    in_ce.addDescr( evalDescr );
             		
-            pushFollow(FOLLOW_function_in_eval_ce696);
+            pushFollow(FOLLOW_function_in_eval_ce697);
             function(context);
             _fsp--;
 
             					
             			evalDescr.setContent( engine );			
             		
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_eval_ce707); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_eval_ce708); 
 
             }
 
@@ -1094,28 +1104,28 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:398:4: ( LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:398:4: LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern735); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern736); 
             name=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_normal_pattern742); 
+            match(input,ID,FOLLOW_ID_in_normal_pattern743); 
             
             			column = new ColumnDescr(name.getText());
             			in_ce.addDescr( column );
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:403:3: ( field_constriant[column] )*
-            loop11:
+            loop12:
             do {
-                int alt11=2;
-                int LA11_0 = input.LA(1);
-                if ( (LA11_0==LEFT_PAREN) ) {
-                    alt11=1;
+                int alt12=2;
+                int LA12_0 = input.LA(1);
+                if ( (LA12_0==LEFT_PAREN) ) {
+                    alt12=1;
                 }
 
 
-                switch (alt11) {
+                switch (alt12) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:403:3: field_constriant[column]
             	    {
-            	    pushFollow(FOLLOW_field_constriant_in_normal_pattern748);
+            	    pushFollow(FOLLOW_field_constriant_in_normal_pattern749);
             	    field_constriant(column);
             	    _fsp--;
 
@@ -1124,11 +1134,11 @@
             	    break;
 
             	default :
-            	    break loop11;
+            	    break loop12;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_normal_pattern758); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_normal_pattern759); 
 
             }
 
@@ -1159,34 +1169,34 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:414:4: var= VAR '<-' LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN
             {
             var=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_bound_pattern786); 
+            match(input,VAR,FOLLOW_VAR_in_bound_pattern787); 
             
             			identifier = var.getText();
             		
-            match(input,42,FOLLOW_42_in_bound_pattern792); 
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_bound_pattern797); 
+            match(input,42,FOLLOW_42_in_bound_pattern793); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_bound_pattern798); 
             name=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_bound_pattern804); 
+            match(input,ID,FOLLOW_ID_in_bound_pattern805); 
             
             			column = new ColumnDescr(name.getText());
             			column.setIdentifier( identifier );
             			in_ce.addDescr( column );	    
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:424:3: ( field_constriant[column] )*
-            loop12:
+            loop13:
             do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
-                if ( (LA12_0==LEFT_PAREN) ) {
-                    alt12=1;
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+                if ( (LA13_0==LEFT_PAREN) ) {
+                    alt13=1;
                 }
 
 
-                switch (alt12) {
+                switch (alt13) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:424:3: field_constriant[column]
             	    {
-            	    pushFollow(FOLLOW_field_constriant_in_bound_pattern810);
+            	    pushFollow(FOLLOW_field_constriant_in_bound_pattern811);
             	    field_constriant(column);
             	    _fsp--;
 
@@ -1195,11 +1205,11 @@
             	    break;
 
             	default :
-            	    break loop12;
+            	    break loop13;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_bound_pattern817); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_bound_pattern818); 
 
             }
 
@@ -1230,38 +1240,38 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:435:4: ( LEFT_PAREN f= ID restriction[fc, column] ( connective[fc] restriction[fc, column] )* RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:435:4: LEFT_PAREN f= ID restriction[fc, column] ( connective[fc] restriction[fc, column] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant845); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant846); 
             f=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_field_constriant852); 
+            match(input,ID,FOLLOW_ID_in_field_constriant853); 
             
             			fc = new FieldConstraintDescr(f.getText());
             			fc.setLocation( offset(f.getLine()), f.getCharPositionInLine() );
             			fc.setStartCharacter( ((CommonToken)f).getStartIndex() );
             			column.addDescr( fc );			
             		
-            pushFollow(FOLLOW_restriction_in_field_constriant864);
+            pushFollow(FOLLOW_restriction_in_field_constriant865);
             restriction(fc,  column);
             _fsp--;
 
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:444:3: ( connective[fc] restriction[fc, column] )*
-            loop13:
+            loop14:
             do {
-                int alt13=2;
-                int LA13_0 = input.LA(1);
-                if ( ((LA13_0>=AMPERSAND && LA13_0<=PIPE)) ) {
-                    alt13=1;
+                int alt14=2;
+                int LA14_0 = input.LA(1);
+                if ( ((LA14_0>=AMPERSAND && LA14_0<=PIPE)) ) {
+                    alt14=1;
                 }
 
 
-                switch (alt13) {
+                switch (alt14) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:445:5: connective[fc] restriction[fc, column]
             	    {
-            	    pushFollow(FOLLOW_connective_in_field_constriant876);
+            	    pushFollow(FOLLOW_connective_in_field_constriant877);
             	    connective(fc);
             	    _fsp--;
 
-            	    pushFollow(FOLLOW_restriction_in_field_constriant893);
+            	    pushFollow(FOLLOW_restriction_in_field_constriant894);
             	    restriction(fc,  column);
             	    _fsp--;
 
@@ -1270,11 +1280,11 @@
             	    break;
 
             	default :
-            	    break loop13;
+            	    break loop14;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_field_constriant916); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_field_constriant917); 
 
             }
 
@@ -1298,25 +1308,25 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:452:4: ( AMPERSAND | PIPE )
             {
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:452:4: ( AMPERSAND | PIPE )
-            int alt14=2;
-            int LA14_0 = input.LA(1);
-            if ( (LA14_0==AMPERSAND) ) {
-                alt14=1;
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+            if ( (LA15_0==AMPERSAND) ) {
+                alt15=1;
             }
-            else if ( (LA14_0==PIPE) ) {
-                alt14=2;
+            else if ( (LA15_0==PIPE) ) {
+                alt15=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("452:4: ( AMPERSAND | PIPE )", 14, 0, input);
+                    new NoViableAltException("452:4: ( AMPERSAND | PIPE )", 15, 0, input);
 
                 throw nvae;
             }
-            switch (alt14) {
+            switch (alt15) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:452:6: AMPERSAND
                     {
-                    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_connective934); 
+                    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_connective935); 
                      fc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND)); 
 
                     }
@@ -1324,7 +1334,7 @@
                 case 2 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:453:9: PIPE
                     {
-                    match(input,PIPE,FOLLOW_PIPE_in_connective946); 
+                    match(input,PIPE,FOLLOW_PIPE_in_connective947); 
                     fc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR)); 
 
                     }
@@ -1361,16 +1371,16 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:461:4: ( TILDE )? ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )
             {
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:461:4: ( TILDE )?
-            int alt15=2;
-            int LA15_0 = input.LA(1);
-            if ( (LA15_0==TILDE) ) {
-                alt15=1;
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+            if ( (LA16_0==TILDE) ) {
+                alt16=1;
             }
-            switch (alt15) {
+            switch (alt16) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:461:5: TILDE
                     {
-                    match(input,TILDE,FOLLOW_TILDE_in_restriction981); 
+                    match(input,TILDE,FOLLOW_TILDE_in_restriction982); 
                     op = "!=";
 
                     }
@@ -1379,16 +1389,16 @@
             }
 
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:462:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )
-            int alt16=4;
+            int alt17=4;
             switch ( input.LA(1) ) {
             case 43:
-                alt16=1;
+                alt17=1;
                 break;
             case 44:
-                alt16=2;
+                alt17=2;
                 break;
             case VAR:
-                alt16=3;
+                alt17=3;
                 break;
             case ID:
             case STRING:
@@ -1396,20 +1406,20 @@
             case FLOAT:
             case BOOL:
             case NULL:
-                alt16=4;
+                alt17=4;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("462:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )", 16, 0, input);
+                    new NoViableAltException("462:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )", 17, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt16) {
+            switch (alt17) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:462:6: predicate_constraint[op, column]
                     {
-                    pushFollow(FOLLOW_predicate_constraint_in_restriction998);
+                    pushFollow(FOLLOW_predicate_constraint_in_restriction999);
                     predicate_constraint(op,  column);
                     _fsp--;
 
@@ -1419,7 +1429,7 @@
                 case 2 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:463:11: return_value_restriction[op, fc]
                     {
-                    pushFollow(FOLLOW_return_value_restriction_in_restriction1018);
+                    pushFollow(FOLLOW_return_value_restriction_in_restriction1019);
                     return_value_restriction(op,  fc);
                     _fsp--;
 
@@ -1429,7 +1439,7 @@
                 case 3 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:464:10: variable_restriction[op, fc]
                     {
-                    pushFollow(FOLLOW_variable_restriction_in_restriction1030);
+                    pushFollow(FOLLOW_variable_restriction_in_restriction1031);
                     variable_restriction(op,  fc);
                     _fsp--;
 
@@ -1439,7 +1449,7 @@
                 case 4 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:465:12: lc= literal_restriction
                     {
-                    pushFollow(FOLLOW_literal_restriction_in_restriction1046);
+                    pushFollow(FOLLOW_literal_restriction_in_restriction1047);
                     lc=literal_restriction();
                     _fsp--;
 
@@ -1479,8 +1489,8 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:477:4: ( ':' function[context] )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:477:4: ':' function[context]
             {
-            match(input,43,FOLLOW_43_in_predicate_constraint1088); 
-            pushFollow(FOLLOW_function_in_predicate_constraint1092);
+            match(input,43,FOLLOW_43_in_predicate_constraint1089); 
+            pushFollow(FOLLOW_function_in_predicate_constraint1093);
             function(context);
             _fsp--;
 
@@ -1513,8 +1523,8 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:489:4: ( '=' function[context] )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:489:4: '=' function[context]
             {
-            match(input,44,FOLLOW_44_in_return_value_restriction1115); 
-            pushFollow(FOLLOW_function_in_return_value_restriction1120);
+            match(input,44,FOLLOW_44_in_return_value_restriction1116); 
+            pushFollow(FOLLOW_function_in_return_value_restriction1121);
             function(context);
             _fsp--;
 
@@ -1546,7 +1556,7 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:496:4: var= VAR
             {
             var=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_variable_restriction1141); 
+            match(input,VAR,FOLLOW_VAR_in_variable_restriction1142); 
             
             			fc.addRestriction( new VariableRestrictionDescr(op, var.getText()) );
             		
@@ -1580,7 +1590,7 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:507:6: (t= literal )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:507:6: t= literal
             {
-            pushFollow(FOLLOW_literal_in_literal_restriction1174);
+            pushFollow(FOLLOW_literal_in_literal_restriction1175);
             t=literal();
             _fsp--;
 
@@ -1617,8 +1627,8 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:516:4: ( LEFT_PAREN name= function_name ( function_params[context, f] )+ RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:516:4: LEFT_PAREN name= function_name ( function_params[context, f] )+ RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function1199); 
-            pushFollow(FOLLOW_function_name_in_function1205);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function1200); 
+            pushFollow(FOLLOW_function_name_in_function1206);
             name=function_name();
             _fsp--;
 
@@ -1629,21 +1639,21 @@
             		  	f = factory.createFunction( name.getText() );		  
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:524:3: ( function_params[context, f] )+
-            int cnt17=0;
-            loop17:
+            int cnt18=0;
+            loop18:
             do {
-                int alt17=2;
-                int LA17_0 = input.LA(1);
-                if ( ((LA17_0>=LEFT_PAREN && LA17_0<=STRING)||LA17_0==INT||LA17_0==VAR||(LA17_0>=FLOAT && LA17_0<=NULL)) ) {
-                    alt17=1;
+                int alt18=2;
+                int LA18_0 = input.LA(1);
+                if ( ((LA18_0>=LEFT_PAREN && LA18_0<=STRING)||LA18_0==INT||LA18_0==VAR||(LA18_0>=FLOAT && LA18_0<=NULL)) ) {
+                    alt18=1;
                 }
 
 
-                switch (alt17) {
+                switch (alt18) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:524:3: function_params[context, f]
             	    {
-            	    pushFollow(FOLLOW_function_params_in_function1218);
+            	    pushFollow(FOLLOW_function_params_in_function1219);
             	    function_params(context,  f);
             	    _fsp--;
 
@@ -1652,15 +1662,15 @@
             	    break;
 
             	default :
-            	    if ( cnt17 >= 1 ) break loop17;
+            	    if ( cnt18 >= 1 ) break loop18;
                         EarlyExitException eee =
-                            new EarlyExitException(17, input);
+                            new EarlyExitException(18, input);
                         throw eee;
                 }
-                cnt17++;
+                cnt18++;
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function1228); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function1229); 
              context.addFunction( f ); 
 
             }
@@ -1690,24 +1700,24 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:536:3: ( LEFT_PAREN 'modify' ( slot_name_value_pair[context, f] )+ RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:536:3: LEFT_PAREN 'modify' ( slot_name_value_pair[context, f] )+ RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_modify_function1259); 
-            match(input,45,FOLLOW_45_in_modify_function1264); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_modify_function1260); 
+            match(input,45,FOLLOW_45_in_modify_function1265); 
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:538:4: ( slot_name_value_pair[context, f] )+
-            int cnt18=0;
-            loop18:
+            int cnt19=0;
+            loop19:
             do {
-                int alt18=2;
-                int LA18_0 = input.LA(1);
-                if ( (LA18_0==LEFT_PAREN) ) {
-                    alt18=1;
+                int alt19=2;
+                int LA19_0 = input.LA(1);
+                if ( (LA19_0==LEFT_PAREN) ) {
+                    alt19=1;
                 }
 
 
-                switch (alt18) {
+                switch (alt19) {
             	case 1 :
             	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:538:4: slot_name_value_pair[context, f]
             	    {
-            	    pushFollow(FOLLOW_slot_name_value_pair_in_modify_function1269);
+            	    pushFollow(FOLLOW_slot_name_value_pair_in_modify_function1270);
             	    slot_name_value_pair(context,  f);
             	    _fsp--;
 
@@ -1716,15 +1726,15 @@
             	    break;
 
             	default :
-            	    if ( cnt18 >= 1 ) break loop18;
+            	    if ( cnt19 >= 1 ) break loop19;
                         EarlyExitException eee =
-                            new EarlyExitException(18, input);
+                            new EarlyExitException(19, input);
                         throw eee;
                 }
-                cnt18++;
+                cnt19++;
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_modify_function1275); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_modify_function1276); 
 
             }
 
@@ -1755,45 +1765,45 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:547:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )
             {
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:547:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )
-            int alt19=8;
+            int alt20=8;
             switch ( input.LA(1) ) {
             case VAR:
-                alt19=1;
+                alt20=1;
                 break;
             case STRING:
-                alt19=2;
+                alt20=2;
                 break;
             case ID:
-                alt19=3;
+                alt20=3;
                 break;
             case FLOAT:
-                alt19=4;
+                alt20=4;
                 break;
             case INT:
-                alt19=5;
+                alt20=5;
                 break;
             case BOOL:
-                alt19=6;
+                alt20=6;
                 break;
             case NULL:
-                alt19=7;
+                alt20=7;
                 break;
             case LEFT_PAREN:
-                alt19=8;
+                alt20=8;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("547:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 19, 0, input);
+                    new NoViableAltException("547:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 20, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt19) {
+            switch (alt20) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:547:6: t= VAR
                     {
                     t=(Token)input.LT(1);
-                    match(input,VAR,FOLLOW_VAR_in_function_params1304); 
+                    match(input,VAR,FOLLOW_VAR_in_function_params1305); 
                      value = context.getVariableValueHandler(t.getText() ); 
 
                     }
@@ -1802,7 +1812,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:548:6: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_function_params1316); 
+                    match(input,STRING,FOLLOW_STRING_in_function_params1317); 
                      value = new ObjectLiteralValue( getString( t ) ); 
 
                     }
@@ -1811,7 +1821,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:549:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_function_params1331); 
+                    match(input,ID,FOLLOW_ID_in_function_params1332); 
                      value = new ObjectLiteralValue( t.getText() ); 
 
                     }
@@ -1820,7 +1830,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:550:6: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_function_params1352); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_function_params1353); 
                      value = new DoubleLiteralValue( t.getText() ); 
 
                     }
@@ -1829,7 +1839,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:551:6: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_function_params1367); 
+                    match(input,INT,FOLLOW_INT_in_function_params1368); 
                      value = new LongLiteralValue( t.getText() ); 
 
                     }
@@ -1838,7 +1848,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:552:6: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_function_params1387); 
+                    match(input,BOOL,FOLLOW_BOOL_in_function_params1388); 
                      value = new BooleanLiteralValue( t.getText() ); 
 
                     }
@@ -1847,7 +1857,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:553:6: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_function_params1409); 
+                    match(input,NULL,FOLLOW_NULL_in_function_params1410); 
                      value = ObjectLiteralValue.NULL; 
 
                     }
@@ -1855,7 +1865,7 @@
                 case 8 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:6: nf= function[context]
                     {
-                    pushFollow(FOLLOW_function_in_function_params1425);
+                    pushFollow(FOLLOW_function_in_function_params1426);
                     nf=function(context);
                     _fsp--;
 
@@ -1898,52 +1908,52 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:566:3: ( LEFT_PAREN id= ID (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] ) RIGHT_PAREN )
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:566:3: LEFT_PAREN id= ID (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] ) RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_slot_name_value_pair1467); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_slot_name_value_pair1468); 
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_slot_name_value_pair1473); 
+            match(input,ID,FOLLOW_ID_in_slot_name_value_pair1474); 
             
             			name = id.getText();
             		
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:570:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )
-            int alt20=8;
+            int alt21=8;
             switch ( input.LA(1) ) {
             case VAR:
-                alt20=1;
+                alt21=1;
                 break;
             case STRING:
-                alt20=2;
+                alt21=2;
                 break;
             case ID:
-                alt20=3;
+                alt21=3;
                 break;
             case FLOAT:
-                alt20=4;
+                alt21=4;
                 break;
             case INT:
-                alt20=5;
+                alt21=5;
                 break;
             case BOOL:
-                alt20=6;
+                alt21=6;
                 break;
             case NULL:
-                alt20=7;
+                alt21=7;
                 break;
             case LEFT_PAREN:
-                alt20=8;
+                alt21=8;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("570:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 20, 0, input);
+                    new NoViableAltException("570:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 21, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt20) {
+            switch (alt21) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:570:6: t= VAR
                     {
                     t=(Token)input.LT(1);
-                    match(input,VAR,FOLLOW_VAR_in_slot_name_value_pair1484); 
+                    match(input,VAR,FOLLOW_VAR_in_slot_name_value_pair1485); 
                      nameValuePair = new SlotNameValuePair(name, context.getVariableValueHandler( t.getText() ) ); 
 
                     }
@@ -1952,7 +1962,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:7: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_slot_name_value_pair1502); 
+                    match(input,STRING,FOLLOW_STRING_in_slot_name_value_pair1503); 
                      nameValuePair = new SlotNameValuePair(name, new ObjectLiteralValue( getString( t ) ) ); 
 
                     }
@@ -1961,7 +1971,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:572:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_slot_name_value_pair1517); 
+                    match(input,ID,FOLLOW_ID_in_slot_name_value_pair1518); 
                      nameValuePair = new SlotNameValuePair(name, new ObjectLiteralValue( t.getText() ) ); 
 
                     }
@@ -1970,7 +1980,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:573:6: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_slot_name_value_pair1538); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_slot_name_value_pair1539); 
                      nameValuePair = new SlotNameValuePair(name, new DoubleLiteralValue( t.getText() ) ); 
 
                     }
@@ -1979,7 +1989,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:574:6: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_slot_name_value_pair1553); 
+                    match(input,INT,FOLLOW_INT_in_slot_name_value_pair1554); 
                      nameValuePair = new SlotNameValuePair(name, new LongLiteralValue( t.getText() ) ); 
 
                     }
@@ -1988,7 +1998,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:6: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_slot_name_value_pair1573); 
+                    match(input,BOOL,FOLLOW_BOOL_in_slot_name_value_pair1574); 
                      nameValuePair = new SlotNameValuePair(name, new BooleanLiteralValue( t.getText() ) ) ; 
 
                     }
@@ -1997,7 +2007,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:576:6: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_slot_name_value_pair1595); 
+                    match(input,NULL,FOLLOW_NULL_in_slot_name_value_pair1596); 
                      nameValuePair = new SlotNameValuePair(name, ObjectLiteralValue.NULL ); 
 
                     }
@@ -2005,7 +2015,7 @@
                 case 8 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:577:6: nf= function[context]
                     {
-                    pushFollow(FOLLOW_function_in_slot_name_value_pair1611);
+                    pushFollow(FOLLOW_function_in_slot_name_value_pair1612);
                     nf=function(context);
                     _fsp--;
 
@@ -2017,7 +2027,7 @@
             }
 
              f.addParameter( nameValuePair ); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1648); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1649); 
 
             }
 
@@ -2048,39 +2058,39 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )
             {
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )
-            int alt21=6;
+            int alt22=6;
             switch ( input.LA(1) ) {
             case STRING:
-                alt21=1;
+                alt22=1;
                 break;
             case ID:
-                alt21=2;
+                alt22=2;
                 break;
             case INT:
-                alt21=3;
+                alt22=3;
                 break;
             case FLOAT:
-                alt21=4;
+                alt22=4;
                 break;
             case BOOL:
-                alt21=5;
+                alt22=5;
                 break;
             case NULL:
-                alt21=6;
+                alt22=6;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("588:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )", 21, 0, input);
+                    new NoViableAltException("588:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )", 22, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt21) {
+            switch (alt22) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:8: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_literal1677); 
+                    match(input,STRING,FOLLOW_STRING_in_literal1678); 
                      text = getString( t ); 
 
                     }
@@ -2089,7 +2099,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:589:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_literal1690); 
+                    match(input,ID,FOLLOW_ID_in_literal1691); 
                      text = t.getText(); 
 
                     }
@@ -2098,7 +2108,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590:7: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_literal1706); 
+                    match(input,INT,FOLLOW_INT_in_literal1707); 
                      text = t.getText(); 
 
                     }
@@ -2107,7 +2117,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:591:7: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_literal1721); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_literal1722); 
                      text = t.getText(); 
 
                     }
@@ -2116,7 +2126,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:592:7: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_literal1734); 
+                    match(input,BOOL,FOLLOW_BOOL_in_literal1735); 
                      text = t.getText(); 
 
                     }
@@ -2125,7 +2135,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:593:7: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_literal1748); 
+                    match(input,NULL,FOLLOW_NULL_in_literal1749); 
                      text = null; 
 
                     }
@@ -2160,30 +2170,30 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:599:2: (t= ID | t= MISC | t= SYMBOL )
             {
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:599:2: (t= ID | t= MISC | t= SYMBOL )
-            int alt22=3;
+            int alt23=3;
             switch ( input.LA(1) ) {
             case ID:
-                alt22=1;
+                alt23=1;
                 break;
             case MISC:
-                alt22=2;
+                alt23=2;
                 break;
             case SYMBOL:
-                alt22=3;
+                alt23=3;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("599:2: (t= ID | t= MISC | t= SYMBOL )", 22, 0, input);
+                    new NoViableAltException("599:2: (t= ID | t= MISC | t= SYMBOL )", 23, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt22) {
+            switch (alt23) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:599:4: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_function_name1777); 
+                    match(input,ID,FOLLOW_ID_in_function_name1778); 
 
                     }
                     break;
@@ -2191,7 +2201,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:600:4: t= MISC
                     {
                     t=(Token)input.LT(1);
-                    match(input,MISC,FOLLOW_MISC_in_function_name1785); 
+                    match(input,MISC,FOLLOW_MISC_in_function_name1786); 
 
                     }
                     break;
@@ -2199,7 +2209,7 @@
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601:4: t= SYMBOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,SYMBOL,FOLLOW_SYMBOL_in_function_name1792); 
+                    match(input,SYMBOL,FOLLOW_SYMBOL_in_function_name1793); 
 
                     }
                     break;
@@ -2228,122 +2238,122 @@
 
     public static final BitSet FOLLOW_40_in_opt_semicolon38 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_LEFT_PAREN_in_rule64 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_DEFRULE_in_rule72 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_DEFRULE_in_rule72 = new BitSet(new long[]{0x0000000000000120L});
     public static final BitSet FOLLOW_agenda_group_in_rule87 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_rule100 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_STRING_in_rule113 = new BitSet(new long[]{0x0000020000010010L});
-    public static final BitSet FOLLOW_ruleAttribute_in_rule119 = new BitSet(new long[]{0x0000020000010010L});
-    public static final BitSet FOLLOW_lhs_in_rule128 = new BitSet(new long[]{0x0000020000010010L});
-    public static final BitSet FOLLOW_rhs_in_rule137 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_rule145 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MODULE_in_agenda_group170 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute190 = new BitSet(new long[]{0x0000000010000000L});
-    public static final BitSet FOLLOW_DECLARE_in_ruleAttribute192 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute197 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_salience_in_ruleAttribute201 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute208 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute212 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SALIENCE_in_salience239 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_INT_in_salience243 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_ce_in_lhs270 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_or_ce_in_lhs280 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_ce_in_lhs289 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_exists_ce_in_lhs298 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_eval_ce_in_lhs312 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_normal_pattern_in_lhs326 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_bound_pattern_in_lhs335 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rhs362 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_function_in_rhs367 = new BitSet(new long[]{0x0000000000000012L});
-    public static final BitSet FOLLOW_and_ce_in_ce391 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_or_ce_in_ce404 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_ce_in_ce413 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_exists_ce_in_ce422 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_eval_ce_in_ce436 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_normal_pattern_in_ce460 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_and_ce492 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_AND_in_and_ce497 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_ce_in_and_ce503 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_and_ce512 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_or_ce540 = new BitSet(new long[]{0x0000000000001000L});
-    public static final BitSet FOLLOW_OR_in_or_ce545 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_ce_in_or_ce551 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_or_ce560 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_not_ce588 = new BitSet(new long[]{0x0000000000002000L});
-    public static final BitSet FOLLOW_NOT_in_not_ce593 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_ce_in_not_ce599 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_not_ce608 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_exists_ce637 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_EXISTS_in_exists_ce642 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_ce_in_exists_ce648 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_exists_ce657 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_eval_ce685 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_TEST_in_eval_ce690 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_function_in_eval_ce696 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_eval_ce707 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_normal_pattern735 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_normal_pattern742 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_field_constriant_in_normal_pattern748 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_normal_pattern758 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_bound_pattern786 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_42_in_bound_pattern792 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_bound_pattern797 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_bound_pattern804 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_field_constriant_in_bound_pattern810 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_bound_pattern817 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_field_constriant845 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_field_constriant852 = new BitSet(new long[]{0x0000180000790460L});
-    public static final BitSet FOLLOW_restriction_in_field_constriant864 = new BitSet(new long[]{0x0000000000060080L});
-    public static final BitSet FOLLOW_connective_in_field_constriant876 = new BitSet(new long[]{0x0000180000790460L});
-    public static final BitSet FOLLOW_restriction_in_field_constriant893 = new BitSet(new long[]{0x0000000000060080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_field_constriant916 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AMPERSAND_in_connective934 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_PIPE_in_connective946 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TILDE_in_restriction981 = new BitSet(new long[]{0x0000180000710460L});
-    public static final BitSet FOLLOW_predicate_constraint_in_restriction998 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_return_value_restriction_in_restriction1018 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_variable_restriction_in_restriction1030 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_restriction_in_restriction1046 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_43_in_predicate_constraint1088 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_function_in_predicate_constraint1092 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_return_value_restriction1115 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_function_in_return_value_restriction1120 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_variable_restriction1141 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_in_literal_restriction1174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_function1199 = new BitSet(new long[]{0x0000000001800020L});
-    public static final BitSet FOLLOW_function_name_in_function1205 = new BitSet(new long[]{0x0000000000710470L});
-    public static final BitSet FOLLOW_function_params_in_function1218 = new BitSet(new long[]{0x00000000007104F0L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_function1228 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_modify_function1259 = new BitSet(new long[]{0x0000200000000000L});
-    public static final BitSet FOLLOW_45_in_modify_function1264 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_slot_name_value_pair_in_modify_function1269 = new BitSet(new long[]{0x0000000000000090L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_modify_function1275 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_function_params1304 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_function_params1316 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_params1331 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_function_params1352 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_function_params1367 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_function_params1387 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_function_params1409 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_function_in_function_params1425 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_slot_name_value_pair1467 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1473 = new BitSet(new long[]{0x0000000000710470L});
-    public static final BitSet FOLLOW_VAR_in_slot_name_value_pair1484 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_STRING_in_slot_name_value_pair1502 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1517 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_FLOAT_in_slot_name_value_pair1538 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_INT_in_slot_name_value_pair1553 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_BOOL_in_slot_name_value_pair1573 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_NULL_in_slot_name_value_pair1595 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_function_in_slot_name_value_pair1611 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1648 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_literal1677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_literal1690 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_literal1706 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_literal1721 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_literal1734 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_literal1748 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_name1777 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MISC_in_function_name1785 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SYMBOL_in_function_name1792 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_rule101 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_STRING_in_rule114 = new BitSet(new long[]{0x0000020000010010L});
+    public static final BitSet FOLLOW_ruleAttribute_in_rule120 = new BitSet(new long[]{0x0000020000010010L});
+    public static final BitSet FOLLOW_lhs_in_rule129 = new BitSet(new long[]{0x0000020000010010L});
+    public static final BitSet FOLLOW_rhs_in_rule138 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_rule146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MODULE_in_agenda_group171 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute191 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_DECLARE_in_ruleAttribute193 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute198 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_salience_in_ruleAttribute202 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute209 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute213 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_salience240 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_INT_in_salience244 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_ce_in_lhs271 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_ce_in_lhs281 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_ce_in_lhs290 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_exists_ce_in_lhs299 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_ce_in_lhs313 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_normal_pattern_in_lhs327 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_bound_pattern_in_lhs336 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rhs363 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_function_in_rhs368 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_and_ce_in_ce392 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_ce_in_ce405 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_ce_in_ce414 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_exists_ce_in_ce423 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_ce_in_ce437 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_normal_pattern_in_ce461 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_and_ce493 = new BitSet(new long[]{0x0000000000000800L});
+    public static final BitSet FOLLOW_AND_in_and_ce498 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_and_ce504 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_and_ce513 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_or_ce541 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_OR_in_or_ce546 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_or_ce552 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_or_ce561 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_not_ce589 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_NOT_in_not_ce594 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_not_ce600 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_not_ce609 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_exists_ce638 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_EXISTS_in_exists_ce643 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_exists_ce649 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_exists_ce658 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_eval_ce686 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_TEST_in_eval_ce691 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_function_in_eval_ce697 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_eval_ce708 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_normal_pattern736 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_normal_pattern743 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_field_constriant_in_normal_pattern749 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_normal_pattern759 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_bound_pattern787 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_bound_pattern793 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_bound_pattern798 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_bound_pattern805 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_field_constriant_in_bound_pattern811 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_bound_pattern818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_field_constriant846 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_field_constriant853 = new BitSet(new long[]{0x0000180000790460L});
+    public static final BitSet FOLLOW_restriction_in_field_constriant865 = new BitSet(new long[]{0x0000000000060080L});
+    public static final BitSet FOLLOW_connective_in_field_constriant877 = new BitSet(new long[]{0x0000180000790460L});
+    public static final BitSet FOLLOW_restriction_in_field_constriant894 = new BitSet(new long[]{0x0000000000060080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_field_constriant917 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AMPERSAND_in_connective935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_PIPE_in_connective947 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TILDE_in_restriction982 = new BitSet(new long[]{0x0000180000710460L});
+    public static final BitSet FOLLOW_predicate_constraint_in_restriction999 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_return_value_restriction_in_restriction1019 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variable_restriction_in_restriction1031 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_restriction_in_restriction1047 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_43_in_predicate_constraint1089 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_function_in_predicate_constraint1093 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_return_value_restriction1116 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_function_in_return_value_restriction1121 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_variable_restriction1142 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_in_literal_restriction1175 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_function1200 = new BitSet(new long[]{0x0000000001800020L});
+    public static final BitSet FOLLOW_function_name_in_function1206 = new BitSet(new long[]{0x0000000000710470L});
+    public static final BitSet FOLLOW_function_params_in_function1219 = new BitSet(new long[]{0x00000000007104F0L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_function1229 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_modify_function1260 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_45_in_modify_function1265 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_slot_name_value_pair_in_modify_function1270 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_modify_function1276 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_function_params1305 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_function_params1317 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_params1332 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_function_params1353 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_function_params1368 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_function_params1388 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_function_params1410 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_function_in_function_params1426 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_slot_name_value_pair1468 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1474 = new BitSet(new long[]{0x0000000000710470L});
+    public static final BitSet FOLLOW_VAR_in_slot_name_value_pair1485 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_STRING_in_slot_name_value_pair1503 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1518 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_FLOAT_in_slot_name_value_pair1539 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_INT_in_slot_name_value_pair1554 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_BOOL_in_slot_name_value_pair1574 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_NULL_in_slot_name_value_pair1596 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_function_in_slot_name_value_pair1612 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1649 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal1678 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_literal1691 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal1707 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal1722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal1735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_literal1749 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_name1778 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MISC_in_function_name1786 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SYMBOL_in_function_name1793 = new BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/CLP.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/CLP.g	2007-03-15 03:14:24 UTC (rev 10211)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/CLP.g	2007-03-15 03:43:07 UTC (rev 10212)
@@ -217,7 +217,7 @@
 		
 		'defrule' 	
 		
-		(	{ System.err.println( "before" ); } module=agenda_group )
+		(	{ System.err.println( "before" ); } module=agenda_group )?
 		
 	  	ruleName=ID 
 	  	{ 
@@ -680,11 +680,11 @@
 	:	('true'|'false') 
 	;
 	
-VAR 	: '?'('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff')('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff')* 
+VAR 	: '?'('a'..'z'|'A'..'Z'|'_'|'$')('a'..'z'|'A'..'Z'|'_'|'0'..'9')* 
         ;
 
 ID	
-	:	('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff')('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff')* 
+	:	('a'..'z'|'A'..'Z'|'_'|'$')('a'..'z'|'A'..'Z'|'_'|'0'..'9')* 
 	;
 
 SH_STYLE_SINGLE_LINE_COMMENT	

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/clp/ClpParserTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/clp/ClpParserTest.java	2007-03-15 03:14:24 UTC (rev 10211)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/clp/ClpParserTest.java	2007-03-15 03:43:07 UTC (rev 10212)
@@ -309,7 +309,7 @@
     }
 
     public void testRuleHeader() throws Exception {
-        RuleDescr rule = parse( "(defrule MAIN:: name \"docs\"(declare (salience -100) ) => )" ).rule();
+        RuleDescr rule = parse( "(defrule MAIN::name \"docs\"(declare (salience -100) ) => )" ).rule();
         
         List attributes = rule.getAttributes();
         AttributeDescr module = ( AttributeDescr ) attributes.get( 0 );
@@ -324,16 +324,16 @@
     }
     
     private CLPParser parse(final String text) throws Exception {
-        return newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
-        //return this.parser;
+        this.parser = newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
+        return this.parser;
     }
 
-//    private CLPParser parse(final String source,
-//                            final String text) throws Exception {
-//        this.parser = newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
-//        this.parser.setSource( source );
-//        return this.parser;
-//    }
+    private CLPParser parse(final String source,
+                            final String text) throws Exception {
+        this.parser = newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
+        this.parser.setSource( source );
+        return this.parser;
+    }
 
     private Reader getReader(final String name) throws Exception {
         final InputStream in = getClass().getResourceAsStream( name );
@@ -341,26 +341,26 @@
         return new InputStreamReader( in );
     }
 
-//    private CLPParser parseResource(final String name) throws Exception {
-//
-//        //        System.err.println( getClass().getResource( name ) );
-//        Reader reader = getReader( name );
-//
-//        final StringBuffer text = new StringBuffer();
-//
-//        final char[] buf = new char[1024];
-//        int len = 0;
-//
-//        while ( (len = reader.read( buf )) >= 0 ) {
-//            text.append( buf,
-//                         0,
-//                         len );
-//        }
-//
-//        return parse( name,
-//                      text.toString() );
-//    }
+    private CLPParser parseResource(final String name) throws Exception {
 
+        //        System.err.println( getClass().getResource( name ) );
+        Reader reader = getReader( name );
+
+        final StringBuffer text = new StringBuffer();
+
+        final char[] buf = new char[1024];
+        int len = 0;
+
+        while ( (len = reader.read( buf )) >= 0 ) {
+            text.append( buf,
+                         0,
+                         len );
+        }
+
+        return parse( name,
+                      text.toString() );
+    }
+
     private CharStream newCharStream(final String text) {
         return new ANTLRStringStream( text );
     }




More information about the jboss-svn-commits mailing list