[jboss-svn-commits] JBL Code SVN: r10213 - 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
Thu Mar 15 00:41:39 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-03-15 00:41:39 -0400 (Thu, 15 Mar 2007)
New Revision: 10213

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:43:07 UTC (rev 10212)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPLexer.java	2007-03-15 04:41:39 UTC (rev 10213)
@@ -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:41:54
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-15 04:40:35
 
 	package org.drools.clp;
 
@@ -10,48 +10,48 @@
 import java.util.Map;
 import java.util.HashMap;
 public class CLPLexer extends Lexer {
-    public static final int EXISTS=14;
-    public static final int DEFRULE=25;
+    public static final int EXISTS=15;
+    public static final int DEFRULE=5;
     public static final int HexDigit=30;
-    public static final int MISC=23;
-    public static final int FLOAT=20;
-    public static final int TILDE=19;
+    public static final int MISC=24;
+    public static final int FLOAT=21;
+    public static final int TILDE=20;
     public static final int T45=45;
-    public static final int OR=12;
-    public static final int PIPE=18;
-    public static final int AND=11;
+    public static final int OR=13;
+    public static final int PIPE=19;
+    public static final int AND=12;
     public static final int EscapeSequence=29;
-    public static final int INT=10;
-    public static final int MODULE=8;
-    public static final int SYMBOL=24;
+    public static final int INT=11;
+    public static final int MODULE=9;
+    public static final int SYMBOL=25;
     public static final int LEFT_SQUARE=35;
     public static final int SH_STYLE_SINGLE_LINE_COMMENT=33;
-    public static final int AMPERSAND=17;
+    public static final int AMPERSAND=18;
     public static final int DECLARE=28;
     public static final int T41=41;
     public static final int LEFT_CURLY=37;
-    public static final int ID=5;
+    public static final int ID=6;
     public static final int T44=44;
     public static final int LEFT_PAREN=4;
     public static final int RIGHT_CURLY=38;
-    public static final int BOOL=21;
+    public static final int BOOL=22;
     public static final int WS=27;
-    public static final int STRING=6;
+    public static final int STRING=7;
     public static final int T43=43;
     public static final int T42=42;
     public static final int T40=40;
-    public static final int VAR=16;
+    public static final int VAR=17;
     public static final int UnicodeEscape=31;
     public static final int EOF=-1;
     public static final int EOL=26;
-    public static final int NULL=22;
+    public static final int NULL=23;
     public static final int Tokens=46;
     public static final int OctalEscape=32;
-    public static final int SALIENCE=9;
+    public static final int SALIENCE=10;
     public static final int MULTI_LINE_COMMENT=39;
-    public static final int TEST=15;
-    public static final int RIGHT_PAREN=7;
-    public static final int NOT=13;
+    public static final int TEST=16;
+    public static final int RIGHT_PAREN=8;
+    public static final int NOT=14;
     public static final int RIGHT_SQUARE=36;
     public static final int C_STYLE_SINGLE_LINE_COMMENT=34;
     public CLPLexer() {;} 
@@ -265,8 +265,8 @@
             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:609:11: ( 'defrule' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:609:11: 'defrule'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:610:11: ( 'defrule' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:610:11: 'defrule'
             {
             match("defrule"); if (failed) return ;
 
@@ -298,8 +298,8 @@
             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:610:7: ( 'or' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:610:7: 'or'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:611:7: ( 'or' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:611:7: 'or'
             {
             match("or"); if (failed) return ;
 
@@ -331,8 +331,8 @@
             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:611:8: ( 'and' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:611:8: 'and'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:612:8: ( 'and' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:612:8: 'and'
             {
             match("and"); if (failed) return ;
 
@@ -364,8 +364,8 @@
             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:612:8: ( 'not' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:612:8: 'not'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:613:8: ( 'not' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:613:8: 'not'
             {
             match("not"); if (failed) return ;
 
@@ -397,8 +397,8 @@
             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:613:11: ( 'exists' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:613:11: 'exists'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:614:11: ( 'exists' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:614:11: 'exists'
             {
             match("exists"); if (failed) return ;
 
@@ -430,8 +430,8 @@
             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:614:9: ( 'test' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:614:9: 'test'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:615:9: ( 'test' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:615:9: 'test'
             {
             match("test"); if (failed) return ;
 
@@ -463,8 +463,8 @@
             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:616:8: ( 'null' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:616:8: 'null'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:617:8: ( 'null' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:617:8: 'null'
             {
             match("null"); if (failed) return ;
 
@@ -487,6 +487,69 @@
     }
     // $ANTLR end NULL
 
+    // $ANTLR start MODULE
+    public void mMODULE() throws RecognitionException {
+        try {
+            ruleNestingLevel++;
+            int _type = MODULE;
+            int _start = getCharIndex();
+            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:620:4: ( ( 'A' .. 'Z' )+ '::' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:620:4: ( 'A' .. 'Z' )+ '::'
+            {
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:620:4: ( 'A' .. 'Z' )+
+            int cnt1=0;
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+                if ( ((LA1_0>='A' && LA1_0<='Z')) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:620:5: 'A' .. 'Z'
+            	    {
+            	    matchRange('A','Z'); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt1 >= 1 ) break loop1;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(1, input);
+                        throw eee;
+                }
+                cnt1++;
+            } while (true);
+
+            match("::"); if (failed) return ;
+
+
+            }
+
+
+            if ( backtracking==0 ) {
+
+                      if ( token==null && ruleNestingLevel==1 ) {
+                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
+                      }
+
+                      
+            }
+        }
+        finally {
+            ruleNestingLevel--;
+        }
+    }
+    // $ANTLR end MODULE
+
     // $ANTLR start WS
     public void mWS() throws RecognitionException {
         try {
@@ -496,57 +559,57 @@
             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:618:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:618:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:17: ( ' ' | '\\t' | '\\f' | EOL )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:618:17: ( ' ' | '\\t' | '\\f' | EOL )
-            int alt1=4;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:17: ( ' ' | '\\t' | '\\f' | EOL )
+            int alt2=4;
             switch ( input.LA(1) ) {
             case ' ':
-                alt1=1;
+                alt2=1;
                 break;
             case '\t':
-                alt1=2;
+                alt2=2;
                 break;
             case '\f':
-                alt1=3;
+                alt2=3;
                 break;
             case '\n':
             case '\r':
-                alt1=4;
+                alt2=4;
                 break;
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("618:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
+                    new NoViableAltException("623:17: ( ' ' | '\\t' | '\\f' | EOL )", 2, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt1) {
+            switch (alt2) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:618:19: ' '
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:19: ' '
                     {
                     match(' '); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:619:19: '\\t'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:624:19: '\\t'
                     {
                     match('\t'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:620:19: '\\f'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:625:19: '\\f'
                     {
                     match('\f'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:621:19: EOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:626:19: EOL
                     {
                     mEOL(); if (failed) return ;
 
@@ -577,40 +640,6 @@
     }
     // $ANTLR end WS
 
-    // $ANTLR start MODULE
-    public void mMODULE() throws RecognitionException {
-        try {
-            ruleNestingLevel++;
-            int _type = MODULE;
-            int _start = getCharIndex();
-            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:627:4: ( ID '::' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:627:4: ID '::'
-            {
-            mID(); if (failed) return ;
-            match("::"); if (failed) return ;
-
-
-            }
-
-
-            if ( backtracking==0 ) {
-
-                      if ( token==null && ruleNestingLevel==1 ) {
-                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
-                      }
-
-                      
-            }
-        }
-        finally {
-            ruleNestingLevel--;
-        }
-    }
-    // $ANTLR end MODULE
-
     // $ANTLR start DECLARE
     public void mDECLARE() throws RecognitionException {
         try {
@@ -620,8 +649,8 @@
             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:631:4: ( 'declare' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:631:4: 'declare'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:632:4: ( 'declare' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:632:4: 'declare'
             {
             match("declare"); if (failed) return ;
 
@@ -653,8 +682,8 @@
             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:634:4: ( 'salience' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:4: 'salience'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:635:4: ( 'salience' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:635:4: 'salience'
             {
             match("salience"); if (failed) return ;
 
@@ -681,33 +710,33 @@
     public void mEOL() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
-            int alt2=3;
-            int LA2_0 = input.LA(1);
-            if ( (LA2_0=='\r') ) {
-                int LA2_1 = input.LA(2);
-                if ( (LA2_1=='\n') ) {
-                    alt2=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            int alt3=3;
+            int LA3_0 = input.LA(1);
+            if ( (LA3_0=='\r') ) {
+                int LA3_1 = input.LA(2);
+                if ( (LA3_1=='\n') ) {
+                    alt3=1;
                 }
                 else {
-                    alt2=2;}
+                    alt3=2;}
             }
-            else if ( (LA2_0=='\n') ) {
-                alt2=3;
+            else if ( (LA3_0=='\n') ) {
+                alt3=3;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("638:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+                    new NoViableAltException("639:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 3, 0, input);
 
                 throw nvae;
             }
-            switch (alt2) {
+            switch (alt3) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:14: ( '\\r\\n' )=> '\\r\\n'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (failed) return ;
 
@@ -715,14 +744,14 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:25: '\\r'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:640:25: '\\r'
                     {
                     match('\r'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:640:25: '\\n'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:641:25: '\\n'
                     {
                     match('\n'); if (failed) return ;
 
@@ -750,18 +779,18 @@
             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:645:4: ( ( '-' )? ( '0' .. '9' )+ )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:645:4: ( '-' )? ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:646:4: ( ( '-' )? ( '0' .. '9' )+ )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:646:4: ( '-' )? ( '0' .. '9' )+
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:645:4: ( '-' )?
-            int alt3=2;
-            int LA3_0 = input.LA(1);
-            if ( (LA3_0=='-') ) {
-                alt3=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:646:4: ( '-' )?
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+            if ( (LA4_0=='-') ) {
+                alt4=1;
             }
-            switch (alt3) {
+            switch (alt4) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:645:5: '-'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:646:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -770,20 +799,20 @@
 
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:645:10: ( '0' .. '9' )+
-            int cnt4=0;
-            loop4:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:646:10: ( '0' .. '9' )+
+            int cnt5=0;
+            loop5:
             do {
-                int alt4=2;
-                int LA4_0 = input.LA(1);
-                if ( ((LA4_0>='0' && LA4_0<='9')) ) {
-                    alt4=1;
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+                if ( ((LA5_0>='0' && LA5_0<='9')) ) {
+                    alt5=1;
                 }
 
 
-                switch (alt4) {
+                switch (alt5) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:645:11: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:646:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -791,13 +820,13 @@
             	    break;
 
             	default :
-            	    if ( cnt4 >= 1 ) break loop4;
+            	    if ( cnt5 >= 1 ) break loop5;
             	    if (backtracking>0) {failed=true; return ;}
                         EarlyExitException eee =
-                            new EarlyExitException(4, input);
+                            new EarlyExitException(5, input);
                         throw eee;
                 }
-                cnt4++;
+                cnt5++;
             } while (true);
 
 
@@ -828,18 +857,18 @@
             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:649:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:4: ( '-' )?
-            int alt5=2;
-            int LA5_0 = input.LA(1);
-            if ( (LA5_0=='-') ) {
-                alt5=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:4: ( '-' )?
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+            if ( (LA6_0=='-') ) {
+                alt6=1;
             }
-            switch (alt5) {
+            switch (alt6) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:5: '-'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -848,20 +877,20 @@
 
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:10: ( '0' .. '9' )+
-            int cnt6=0;
-            loop6:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:10: ( '0' .. '9' )+
+            int cnt7=0;
+            loop7:
             do {
-                int alt6=2;
-                int LA6_0 = input.LA(1);
-                if ( ((LA6_0>='0' && LA6_0<='9')) ) {
-                    alt6=1;
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+                if ( ((LA7_0>='0' && LA7_0<='9')) ) {
+                    alt7=1;
                 }
 
 
-                switch (alt6) {
+                switch (alt7) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:11: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -869,30 +898,30 @@
             	    break;
 
             	default :
-            	    if ( cnt6 >= 1 ) break loop6;
+            	    if ( cnt7 >= 1 ) break loop7;
             	    if (backtracking>0) {failed=true; return ;}
                         EarlyExitException eee =
-                            new EarlyExitException(6, input);
+                            new EarlyExitException(7, input);
                         throw eee;
                 }
-                cnt6++;
+                cnt7++;
             } while (true);
 
             match('.'); if (failed) return ;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:26: ( '0' .. '9' )+
-            int cnt7=0;
-            loop7:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:26: ( '0' .. '9' )+
+            int cnt8=0;
+            loop8:
             do {
-                int alt7=2;
-                int LA7_0 = input.LA(1);
-                if ( ((LA7_0>='0' && LA7_0<='9')) ) {
-                    alt7=1;
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+                if ( ((LA8_0>='0' && LA8_0<='9')) ) {
+                    alt8=1;
                 }
 
 
-                switch (alt7) {
+                switch (alt8) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:27: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:650:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -900,13 +929,13 @@
             	    break;
 
             	default :
-            	    if ( cnt7 >= 1 ) break loop7;
+            	    if ( cnt8 >= 1 ) break loop8;
             	    if (backtracking>0) {failed=true; return ;}
                         EarlyExitException eee =
-                            new EarlyExitException(7, input);
+                            new EarlyExitException(8, input);
                         throw eee;
                 }
-                cnt7++;
+                cnt8++;
             } while (true);
 
 
@@ -937,53 +966,53 @@
             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:653:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
-            int alt10=2;
-            int LA10_0 = input.LA(1);
-            if ( (LA10_0=='\"') ) {
-                alt10=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+            if ( (LA11_0=='\"') ) {
+                alt11=1;
             }
-            else if ( (LA10_0=='\'') ) {
-                alt10=2;
+            else if ( (LA11_0=='\'') ) {
+                alt11=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("652:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 10, 0, input);
+                    new NoViableAltException("653:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 11, 0, input);
 
                 throw nvae;
             }
-            switch (alt10) {
+            switch (alt11) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:653:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:653:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:653:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
                     {
                     match('\"'); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:653:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
-                    loop8:
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
+                    loop9:
                     do {
-                        int alt8=3;
-                        int LA8_0 = input.LA(1);
-                        if ( (LA8_0=='\\') ) {
-                            alt8=1;
+                        int alt9=3;
+                        int LA9_0 = input.LA(1);
+                        if ( (LA9_0=='\\') ) {
+                            alt9=1;
                         }
-                        else if ( ((LA8_0>='\u0000' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='[')||(LA8_0>=']' && LA8_0<='\uFFFE')) ) {
-                            alt8=2;
+                        else if ( ((LA9_0>='\u0000' && LA9_0<='!')||(LA9_0>='#' && LA9_0<='[')||(LA9_0>=']' && LA9_0<='\uFFFE')) ) {
+                            alt9=2;
                         }
 
 
-                        switch (alt8) {
+                        switch (alt9) {
                     	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:653:15: EscapeSequence
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:653:32: ~ ('\\\\'|'\"')
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:32: ~ ('\\\\'|'\"')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -1001,7 +1030,7 @@
                     	    break;
 
                     	default :
-                    	    break loop8;
+                    	    break loop9;
                         }
                     } while (true);
 
@@ -1013,35 +1042,35 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
                     {
                     match('\''); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
-                    loop9:
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
+                    loop10:
                     do {
-                        int alt9=3;
-                        int LA9_0 = input.LA(1);
-                        if ( (LA9_0=='\\') ) {
-                            alt9=1;
+                        int alt10=3;
+                        int LA10_0 = input.LA(1);
+                        if ( (LA10_0=='\\') ) {
+                            alt10=1;
                         }
-                        else if ( ((LA9_0>='\u0000' && LA9_0<='&')||(LA9_0>='(' && LA9_0<='[')||(LA9_0>=']' && LA9_0<='\uFFFE')) ) {
-                            alt9=2;
+                        else if ( ((LA10_0>='\u0000' && LA10_0<='&')||(LA10_0>='(' && LA10_0<='[')||(LA10_0>=']' && LA10_0<='\uFFFE')) ) {
+                            alt10=2;
                         }
 
 
-                        switch (alt9) {
+                        switch (alt10) {
                     	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:16: EscapeSequence
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:33: ~ ('\\\\'|'\\'')
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:33: ~ ('\\\\'|'\\'')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -1059,7 +1088,7 @@
                     	    break;
 
                     	default :
-                    	    break loop9;
+                    	    break loop10;
                         }
                     } while (true);
 
@@ -1092,8 +1121,8 @@
     public void mHexDigit() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:658:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:658:12: ('0'..'9'|'a'..'f'|'A'..'F')
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:659:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:659:12: ('0'..'9'|'a'..'f'|'A'..'F')
             {
             if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
                 input.consume();
@@ -1120,10 +1149,10 @@
     public void mEscapeSequence() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:662:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape )
-            int alt11=3;
-            int LA11_0 = input.LA(1);
-            if ( (LA11_0=='\\') ) {
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:663:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape )
+            int alt12=3;
+            int LA12_0 = input.LA(1);
+            if ( (LA12_0=='\\') ) {
                 switch ( input.LA(2) ) {
                 case '\"':
                 case '\'':
@@ -1133,10 +1162,10 @@
                 case 'n':
                 case 'r':
                 case 't':
-                    alt11=1;
+                    alt12=1;
                     break;
                 case 'u':
-                    alt11=2;
+                    alt12=2;
                     break;
                 case '0':
                 case '1':
@@ -1146,12 +1175,12 @@
                 case '5':
                 case '6':
                 case '7':
-                    alt11=3;
+                    alt12=3;
                     break;
                 default:
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("660:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 1, input);
+                        new NoViableAltException("661:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 12, 1, input);
 
                     throw nvae;
                 }
@@ -1160,13 +1189,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("660:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 0, input);
+                    new NoViableAltException("661:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 12, 0, input);
 
                 throw nvae;
             }
-            switch (alt11) {
+            switch (alt12) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:662:9: '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\')
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:663:9: '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\')
                     {
                     match('\\'); if (failed) return ;
                     if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
@@ -1184,14 +1213,14 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:663:9: UnicodeEscape
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:664:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:664:9: OctalEscape
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:665:9: OctalEscape
                     {
                     mOctalEscape(); if (failed) return ;
 
@@ -1210,36 +1239,36 @@
     public void mOctalEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
-            int alt12=3;
-            int LA12_0 = input.LA(1);
-            if ( (LA12_0=='\\') ) {
-                int LA12_1 = input.LA(2);
-                if ( ((LA12_1>='0' && LA12_1<='3')) ) {
-                    int LA12_2 = input.LA(3);
-                    if ( ((LA12_2>='0' && LA12_2<='7')) ) {
-                        int LA12_4 = input.LA(4);
-                        if ( ((LA12_4>='0' && LA12_4<='7')) ) {
-                            alt12=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            int alt13=3;
+            int LA13_0 = input.LA(1);
+            if ( (LA13_0=='\\') ) {
+                int LA13_1 = input.LA(2);
+                if ( ((LA13_1>='0' && LA13_1<='3')) ) {
+                    int LA13_2 = input.LA(3);
+                    if ( ((LA13_2>='0' && LA13_2<='7')) ) {
+                        int LA13_4 = input.LA(4);
+                        if ( ((LA13_4>='0' && LA13_4<='7')) ) {
+                            alt13=1;
                         }
                         else {
-                            alt12=2;}
+                            alt13=2;}
                     }
                     else {
-                        alt12=3;}
+                        alt13=3;}
                 }
-                else if ( ((LA12_1>='4' && LA12_1<='7')) ) {
-                    int LA12_3 = input.LA(3);
-                    if ( ((LA12_3>='0' && LA12_3<='7')) ) {
-                        alt12=2;
+                else if ( ((LA13_1>='4' && LA13_1<='7')) ) {
+                    int LA13_3 = input.LA(3);
+                    if ( ((LA13_3>='0' && LA13_3<='7')) ) {
+                        alt13=2;
                     }
                     else {
-                        alt12=3;}
+                        alt13=3;}
                 }
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("667:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+                        new NoViableAltException("668:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 13, 1, input);
 
                     throw nvae;
                 }
@@ -1247,31 +1276,31 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("667:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
+                    new NoViableAltException("668:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 13, 0, input);
 
                 throw nvae;
             }
-            switch (alt12) {
+            switch (alt13) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:14: ( '0' .. '3' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:15: '0' .. '3'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:14: ( '0' .. '3' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (failed) return ;
 
                     }
 
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:25: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:26: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:25: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:36: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:37: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:36: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1281,18 +1310,18 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:14: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:15: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:14: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:25: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:26: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:25: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1302,11 +1331,11 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:9: '\\\\' ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:14: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:15: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:14: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1328,8 +1357,8 @@
     public void mUnicodeEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:676:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:676:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:677:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:677:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (failed) return ;
             match('u'); if (failed) return ;
@@ -1356,28 +1385,28 @@
             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:680:4: ( ( 'true' | 'false' ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:680:4: ( 'true' | 'false' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:681:4: ( ( 'true' | 'false' ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:681:4: ( 'true' | 'false' )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:680:4: ( 'true' | 'false' )
-            int alt13=2;
-            int LA13_0 = input.LA(1);
-            if ( (LA13_0=='t') ) {
-                alt13=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:681:4: ( 'true' | 'false' )
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+            if ( (LA14_0=='t') ) {
+                alt14=1;
             }
-            else if ( (LA13_0=='f') ) {
-                alt13=2;
+            else if ( (LA14_0=='f') ) {
+                alt14=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("680:4: ( 'true' | 'false' )", 13, 0, input);
+                    new NoViableAltException("681:4: ( 'true' | 'false' )", 14, 0, input);
 
                 throw nvae;
             }
-            switch (alt13) {
+            switch (alt14) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:680:5: 'true'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:681:5: 'true'
                     {
                     match("true"); if (failed) return ;
 
@@ -1385,7 +1414,7 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:680:12: 'false'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:681:12: 'false'
                     {
                     match("false"); if (failed) return ;
 
@@ -1423,8 +1452,8 @@
             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'|'_'|'$') ( ('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'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:684: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:684: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') ) {
@@ -1438,19 +1467,19 @@
                 recover(mse);    throw mse;
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:38: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
-            loop14:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:684:38: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
+            loop15:
             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')) ) {
-                    alt14=1;
+                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')) ) {
+                    alt15=1;
                 }
 
 
-                switch (alt14) {
+                switch (alt15) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:683:39: ('a'..'z'|'A'..'Z'|'_'|'0'..'9')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:684: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.consume();
@@ -1468,7 +1497,7 @@
             	    break;
 
             	default :
-            	    break loop14;
+            	    break loop15;
                 }
             } while (true);
 
@@ -1500,8 +1529,8 @@
             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'|'_'|'$') ( ('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'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:688: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:688: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.consume();
@@ -1514,19 +1543,19 @@
                 recover(mse);    throw mse;
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:31: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
-            loop15:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:688:31: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'))*
+            loop16:
             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')) ) {
-                    alt15=1;
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+                if ( ((LA16_0>='0' && LA16_0<='9')||(LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z')) ) {
+                    alt16=1;
                 }
 
 
-                switch (alt15) {
+                switch (alt16) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:32: ('a'..'z'|'A'..'Z'|'_'|'0'..'9')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:688: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.consume();
@@ -1544,7 +1573,7 @@
             	    break;
 
             	default :
-            	    break loop15;
+            	    break loop16;
                 }
             } while (true);
 
@@ -1576,29 +1605,29 @@
             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:691:4: ( '#' ( options {greedy=false; } : . )* EOL )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:691:4: '#' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:4: ( '#' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (failed) return ;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:691:8: ( options {greedy=false; } : . )*
-            loop16:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:8: ( options {greedy=false; } : . )*
+            loop17:
             do {
-                int alt16=2;
-                int LA16_0 = input.LA(1);
-                if ( (LA16_0=='\r') ) {
-                    alt16=2;
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+                if ( (LA17_0=='\r') ) {
+                    alt17=2;
                 }
-                else if ( (LA16_0=='\n') ) {
-                    alt16=2;
+                else if ( (LA17_0=='\n') ) {
+                    alt17=2;
                 }
-                else if ( ((LA16_0>='\u0000' && LA16_0<='\t')||(LA16_0>='\u000B' && LA16_0<='\f')||(LA16_0>='\u000E' && LA16_0<='\uFFFE')) ) {
-                    alt16=1;
+                else if ( ((LA17_0>='\u0000' && LA17_0<='\t')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\uFFFE')) ) {
+                    alt17=1;
                 }
 
 
-                switch (alt16) {
+                switch (alt17) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:691:35: .
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1606,7 +1635,7 @@
             	    break;
 
             	default :
-            	    break loop16;
+            	    break loop17;
                 }
             } while (true);
 
@@ -1642,30 +1671,30 @@
             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:697:4: ( '//' ( options {greedy=false; } : . )* EOL )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:697:4: '//' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:698:4: ( '//' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:698:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (failed) return ;
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:697:9: ( options {greedy=false; } : . )*
-            loop17:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:698:9: ( options {greedy=false; } : . )*
+            loop18:
             do {
-                int alt17=2;
-                int LA17_0 = input.LA(1);
-                if ( (LA17_0=='\r') ) {
-                    alt17=2;
+                int alt18=2;
+                int LA18_0 = input.LA(1);
+                if ( (LA18_0=='\r') ) {
+                    alt18=2;
                 }
-                else if ( (LA17_0=='\n') ) {
-                    alt17=2;
+                else if ( (LA18_0=='\n') ) {
+                    alt18=2;
                 }
-                else if ( ((LA17_0>='\u0000' && LA17_0<='\t')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\uFFFE')) ) {
-                    alt17=1;
+                else if ( ((LA18_0>='\u0000' && LA18_0<='\t')||(LA18_0>='\u000B' && LA18_0<='\f')||(LA18_0>='\u000E' && LA18_0<='\uFFFE')) ) {
+                    alt18=1;
                 }
 
 
-                switch (alt17) {
+                switch (alt18) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:697:36: .
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:698:36: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1673,7 +1702,7 @@
             	    break;
 
             	default :
-            	    break loop17;
+            	    break loop18;
                 }
             } while (true);
 
@@ -1709,8 +1738,8 @@
             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:703:4: ( '(' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:703:4: '('
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:704:4: ( '(' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:704:4: '('
             {
             match('('); if (failed) return ;
 
@@ -1741,8 +1770,8 @@
             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:707:4: ( ')' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:707:4: ')'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:708:4: ( ')' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:708:4: ')'
             {
             match(')'); if (failed) return ;
 
@@ -1773,8 +1802,8 @@
             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:711:4: ( '[' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:711:4: '['
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:4: ( '[' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:4: '['
             {
             match('['); if (failed) return ;
 
@@ -1805,8 +1834,8 @@
             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:715:4: ( ']' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:715:4: ']'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:4: ( ']' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:4: ']'
             {
             match(']'); if (failed) return ;
 
@@ -1837,8 +1866,8 @@
             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:719:4: ( '{' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:719:4: '{'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:4: ( '{' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:4: '{'
             {
             match('{'); if (failed) return ;
 
@@ -1869,8 +1898,8 @@
             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:723:4: ( '}' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:723:4: '}'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:724:4: ( '}' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:724:4: '}'
             {
             match('}'); if (failed) return ;
 
@@ -1901,8 +1930,8 @@
             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:726:9: ( '~' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:726:9: '~'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:727:9: ( '~' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:727:9: '~'
             {
             match('~'); if (failed) return ;
 
@@ -1933,8 +1962,8 @@
             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:730:4: ( '&' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:730:4: '&'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:731:4: ( '&' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:731:4: '&'
             {
             match('&'); if (failed) return ;
 
@@ -1965,8 +1994,8 @@
             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:734:4: ( '|' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:734:4: '|'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:735:4: ( '|' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:735:4: '|'
             {
             match('|'); if (failed) return ;
 
@@ -1997,35 +2026,35 @@
             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:738:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:738:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:739:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:739:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (failed) return ;
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:738:9: ( options {greedy=false; } : . )*
-            loop18:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:739:9: ( options {greedy=false; } : . )*
+            loop19:
             do {
-                int alt18=2;
-                int LA18_0 = input.LA(1);
-                if ( (LA18_0=='*') ) {
-                    int LA18_1 = input.LA(2);
-                    if ( (LA18_1=='/') ) {
-                        alt18=2;
+                int alt19=2;
+                int LA19_0 = input.LA(1);
+                if ( (LA19_0=='*') ) {
+                    int LA19_1 = input.LA(2);
+                    if ( (LA19_1=='/') ) {
+                        alt19=2;
                     }
-                    else if ( ((LA18_1>='\u0000' && LA18_1<='.')||(LA18_1>='0' && LA18_1<='\uFFFE')) ) {
-                        alt18=1;
+                    else if ( ((LA19_1>='\u0000' && LA19_1<='.')||(LA19_1>='0' && LA19_1<='\uFFFE')) ) {
+                        alt19=1;
                     }
 
 
                 }
-                else if ( ((LA18_0>='\u0000' && LA18_0<=')')||(LA18_0>='+' && LA18_0<='\uFFFE')) ) {
-                    alt18=1;
+                else if ( ((LA19_0>='\u0000' && LA19_0<=')')||(LA19_0>='+' && LA19_0<='\uFFFE')) ) {
+                    alt19=1;
                 }
 
 
-                switch (alt18) {
+                switch (alt19) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:738:35: .
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:739:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -2033,7 +2062,7 @@
             	    break;
 
             	default :
-            	    break loop18;
+            	    break loop19;
                 }
             } while (true);
 
@@ -2070,200 +2099,200 @@
             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:743:3: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' )
-            int alt19=19;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:3: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' )
+            int alt20=19;
             switch ( input.LA(1) ) {
             case '!':
-                alt19=1;
+                alt20=1;
                 break;
             case '@':
-                alt19=2;
+                alt20=2;
                 break;
             case '$':
-                alt19=3;
+                alt20=3;
                 break;
             case '%':
-                alt19=4;
+                alt20=4;
                 break;
             case '^':
-                alt19=5;
+                alt20=5;
                 break;
             case '*':
-                alt19=6;
+                alt20=6;
                 break;
             case '_':
-                alt19=7;
+                alt20=7;
                 break;
             case '-':
-                alt19=8;
+                alt20=8;
                 break;
             case '+':
-                alt19=9;
+                alt20=9;
                 break;
             case '?':
-                alt19=10;
+                alt20=10;
                 break;
             case ',':
-                alt19=11;
+                alt20=11;
                 break;
             case '=':
-                alt19=12;
+                alt20=12;
                 break;
             case '/':
-                alt19=13;
+                alt20=13;
                 break;
             case '\'':
-                alt19=14;
+                alt20=14;
                 break;
             case '\\':
-                alt19=15;
+                alt20=15;
                 break;
             case '<':
-                int LA19_16 = input.LA(2);
-                if ( (LA19_16=='=') ) {
-                    alt19=18;
+                int LA20_16 = input.LA(2);
+                if ( (LA20_16=='=') ) {
+                    alt20=18;
                 }
                 else {
-                    alt19=16;}
+                    alt20=16;}
                 break;
             case '>':
-                int LA19_17 = input.LA(2);
-                if ( (LA19_17=='=') ) {
-                    alt19=19;
+                int LA20_17 = input.LA(2);
+                if ( (LA20_17=='=') ) {
+                    alt20=19;
                 }
                 else {
-                    alt19=17;}
+                    alt20=17;}
                 break;
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("742:1: MISC : ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' );", 19, 0, input);
+                    new NoViableAltException("743:1: MISC : ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' );", 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:743:3: '!'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:3: '!'
                     {
                     match('!'); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:9: '@'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:9: '@'
                     {
                     match('@'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:15: '$'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:15: '$'
                     {
                     match('$'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:21: '%'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:21: '%'
                     {
                     match('%'); if (failed) return ;
 
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:27: '^'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:27: '^'
                     {
                     match('^'); if (failed) return ;
 
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:33: '*'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:33: '*'
                     {
                     match('*'); if (failed) return ;
 
                     }
                     break;
                 case 7 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:39: '_'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:39: '_'
                     {
                     match('_'); if (failed) return ;
 
                     }
                     break;
                 case 8 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:45: '-'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:45: '-'
                     {
                     match('-'); if (failed) return ;
 
                     }
                     break;
                 case 9 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:51: '+'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:51: '+'
                     {
                     match('+'); if (failed) return ;
 
                     }
                     break;
                 case 10 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:58: '?'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:58: '?'
                     {
                     match('?'); if (failed) return ;
 
                     }
                     break;
                 case 11 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:64: ','
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:64: ','
                     {
                     match(','); if (failed) return ;
 
                     }
                     break;
                 case 12 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:70: '='
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:70: '='
                     {
                     match('='); if (failed) return ;
 
                     }
                     break;
                 case 13 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:76: '/'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:76: '/'
                     {
                     match('/'); if (failed) return ;
 
                     }
                     break;
                 case 14 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:82: '\\''
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:82: '\\''
                     {
                     match('\''); if (failed) return ;
 
                     }
                     break;
                 case 15 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:89: '\\\\'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:89: '\\\\'
                     {
                     match('\\'); if (failed) return ;
 
                     }
                     break;
                 case 16 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:3: '<'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:745:3: '<'
                     {
                     match('<'); if (failed) return ;
 
                     }
                     break;
                 case 17 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:9: '>'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:745:9: '>'
                     {
                     match('>'); if (failed) return ;
 
                     }
                     break;
                 case 18 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:15: '<='
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:745:15: '<='
                     {
                     match("<="); if (failed) return ;
 
@@ -2271,7 +2300,7 @@
                     }
                     break;
                 case 19 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:744:22: '>='
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:745:22: '>='
                     {
                     match(">="); if (failed) return ;
 
@@ -2305,31 +2334,31 @@
             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:748:4: ( ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))* )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:748:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:4: ( ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:748:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) )
-            int alt20=2;
-            int LA20_0 = input.LA(1);
-            if ( ((LA20_0>='\u0000' && LA20_0<='\b')||(LA20_0>='\u000B' && LA20_0<='\f')||(LA20_0>='\u000E' && LA20_0<='\u001F')||LA20_0=='!'||LA20_0=='#'||LA20_0=='%'||LA20_0=='\''||(LA20_0>='*' && LA20_0<=':')||(LA20_0>='<' && LA20_0<='>')||(LA20_0>='@' && LA20_0<='{')||LA20_0=='}'||(LA20_0>='\u007F' && LA20_0<='\uFFFE')) ) {
-                alt20=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) )
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+            if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='!'||LA21_0=='#'||LA21_0=='%'||LA21_0=='\''||(LA21_0>='*' && LA21_0<=':')||(LA21_0>='<' && LA21_0<='>')||(LA21_0>='@' && LA21_0<='{')||LA21_0=='}'||(LA21_0>='\u007F' && LA21_0<='\uFFFE')) ) {
+                alt21=1;
             }
-            else if ( (LA20_0=='$') ) {
-                alt20=2;
+            else if ( (LA21_0=='$') ) {
+                alt21=2;
             }
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("748:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) )", 20, 0, input);
+                    new NoViableAltException("749:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) )", 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:748:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:748:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:748:6: ~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:6: ~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')
                     {
                     if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||input.LA(1)=='#'||input.LA(1)=='%'||input.LA(1)=='\''||(input.LA(1)>='*' && input.LA(1)<=':')||(input.LA(1)>='<' && input.LA(1)<='>')||(input.LA(1)>='@' && input.LA(1)<='{')||input.LA(1)=='}'||(input.LA(1)>='\u007F' && input.LA(1)<='\uFFFE') ) {
                         input.consume();
@@ -2349,10 +2378,10 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:748:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:748:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:748:66: '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:66: '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')
                     {
                     match('$'); if (failed) return ;
                     if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||(input.LA(1)>='#' && input.LA(1)<='%')||input.LA(1)=='\''||(input.LA(1)>='*' && input.LA(1)<=':')||(input.LA(1)>='=' && input.LA(1)<='>')||(input.LA(1)>='@' && input.LA(1)<='{')||input.LA(1)=='}'||(input.LA(1)>='\u007F' && input.LA(1)<='\uFFFE') ) {
@@ -2375,19 +2404,19 @@
 
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:11: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
-            loop21:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:750:11: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
+            loop22:
             do {
-                int alt21=2;
-                int LA21_0 = input.LA(1);
-                if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='!'||(LA21_0>='#' && LA21_0<='%')||LA21_0=='\''||(LA21_0>='*' && LA21_0<=':')||(LA21_0>='=' && LA21_0<='>')||(LA21_0>='@' && LA21_0<='{')||LA21_0=='}'||(LA21_0>='\u007F' && LA21_0<='\uFFFE')) ) {
-                    alt21=1;
+                int alt22=2;
+                int LA22_0 = input.LA(1);
+                if ( ((LA22_0>='\u0000' && LA22_0<='\b')||(LA22_0>='\u000B' && LA22_0<='\f')||(LA22_0>='\u000E' && LA22_0<='\u001F')||LA22_0=='!'||(LA22_0>='#' && LA22_0<='%')||LA22_0=='\''||(LA22_0>='*' && LA22_0<=':')||(LA22_0>='=' && LA22_0<='>')||(LA22_0>='@' && LA22_0<='{')||LA22_0=='}'||(LA22_0>='\u007F' && LA22_0<='\uFFFE')) ) {
+                    alt22=1;
                 }
 
 
-                switch (alt21) {
+                switch (alt22) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:749:12: ~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:750:12: ~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?')
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||(input.LA(1)>='#' && input.LA(1)<='%')||input.LA(1)=='\''||(input.LA(1)>='*' && input.LA(1)<=':')||(input.LA(1)>='=' && input.LA(1)<='>')||(input.LA(1)>='@' && input.LA(1)<='{')||input.LA(1)=='}'||(input.LA(1)>='\u007F' && input.LA(1)<='\uFFFE') ) {
             	        input.consume();
@@ -2405,7 +2434,7 @@
             	    break;
 
             	default :
-            	    break loop21;
+            	    break loop22;
                 }
             } while (true);
 
@@ -2429,10 +2458,10 @@
     // $ANTLR end SYMBOL
 
     public void mTokens() throws RecognitionException {
-        // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: ( T40 | T41 | T42 | T43 | T44 | T45 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | WS | MODULE | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | TILDE | AMPERSAND | PIPE | MULTI_LINE_COMMENT | MISC | SYMBOL )
-        int alt22=37;
-        alt22 = dfa22.predict(input);
-        switch (alt22) {
+        // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: ( T40 | T41 | T42 | T43 | T44 | T45 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | MODULE | WS | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | TILDE | AMPERSAND | PIPE | MULTI_LINE_COMMENT | MISC | SYMBOL )
+        int alt23=37;
+        alt23 = dfa23.predict(input);
+        switch (alt23) {
             case 1 :
                 // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: T40
                 {
@@ -2525,16 +2554,16 @@
                 }
                 break;
             case 14 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:70: WS
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:70: MODULE
                 {
-                mWS(); if (failed) return ;
+                mMODULE(); if (failed) return ;
 
                 }
                 break;
             case 15 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:73: MODULE
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:77: WS
                 {
-                mMODULE(); if (failed) return ;
+                mWS(); if (failed) return ;
 
                 }
                 break;
@@ -2698,459 +2727,464 @@
     }
 
 
-    protected DFA22 dfa22 = new DFA22(this);
-    public static final String DFA22_eotS =
-        "\2\uffff\1\56\1\61\1\62\7\65\1\uffff\1\14\2\65\1\61\1\103\1\uffff"+
-        "\1\61\1\65\1\61\1\54\1\61\2\uffff\1\116\1\117\1\120\1\121\3\uffff"+
-        "\2\61\1\65\3\61\1\65\4\61\1\uffff\1\123\1\uffff\1\124\1\61\2\uffff"+
-        "\2\65\1\uffff\1\54\1\65\1\131\10\65\1\103\1\54\1\uffff\2\54\1\22"+
-        "\1\65\1\54\1\uffff\1\54\1\uffff\2\54\4\uffff\1\61\2\uffff\1\65\1"+
-        "\155\2\65\1\uffff\1\160\1\161\6\65\1\170\4\54\1\uffff\2\54\1\uffff"+
-        "\1\54\1\65\1\uffff\2\65\2\uffff\1\u0080\1\65\1\u0082\1\u0083\2\65"+
-        "\1\uffff\3\54\1\152\3\65\1\uffff\1\65\2\uffff\1\65\1\u0082\2\54"+
-        "\1\u008e\2\65\1\u0091\1\65\1\54\1\uffff\1\u0094\1\u0095\1\uffff"+
-        "\1\65\1\54\2\uffff\1\u0097\1\uffff";
-    public static final String DFA22_eofS =
-        "\u0098\uffff";
-    public static final String DFA22_minS =
-        "\1\0\1\uffff\12\0\1\uffff\5\0\1\uffff\2\0\1\44\2\0\2\uffff\4\0\3"+
-        "\uffff\13\0\1\uffff\1\0\1\uffff\2\0\2\uffff\2\0\1\uffff\1\72\13"+
-        "\0\1\60\1\uffff\1\42\3\0\1\72\1\uffff\1\0\1\uffff\2\0\4\uffff\1"+
-        "\0\2\uffff\4\0\1\uffff\12\0\1\60\2\0\1\uffff\2\0\1\uffff\2\0\1\uffff"+
-        "\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\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"+
-        "\uffff\4\ufffe\1\uffff\12\ufffe\1\146\2\ufffe\1\uffff\2\ufffe\1"+
-        "\uffff\2\ufffe\1\uffff\2\ufffe\2\uffff\6\ufffe\1\uffff\1\146\6\ufffe"+
-        "\1\uffff\1\ufffe\2\uffff\2\ufffe\1\146\6\ufffe\1\146\1\uffff\2\ufffe"+
-        "\1\uffff\2\ufffe\2\uffff\1\ufffe\1\uffff";
-    public static final String DFA22_acceptS =
-        "\1\uffff\1\1\12\uffff\1\16\5\uffff\1\24\5\uffff\1\32\1\33\4\uffff"+
+    protected DFA23 dfa23 = new DFA23(this);
+    public static final String DFA23_eotS =
+        "\2\uffff\1\57\1\62\1\63\10\66\1\uffff\1\15\1\66\1\62\1\104\1\uffff"+
+        "\1\62\1\66\1\62\1\66\1\55\1\62\2\uffff\1\117\1\120\1\121\1\122\3"+
+        "\uffff\2\62\1\66\3\62\1\66\4\62\1\uffff\1\124\1\uffff\1\62\1\125"+
+        "\2\uffff\2\66\1\uffff\1\66\1\131\7\66\1\55\1\66\1\104\1\55\1\uffff"+
+        "\2\55\1\22\1\66\1\uffff\1\66\1\55\1\uffff\2\55\4\uffff\1\62\2\uffff"+
+        "\3\66\1\uffff\1\160\1\66\1\162\3\66\1\166\1\66\1\170\4\55\1\66\1"+
+        "\55\1\uffff\1\55\1\uffff\1\55\3\66\1\uffff\1\u0081\1\uffff\1\66"+
+        "\1\u0083\1\u0084\1\uffff\1\66\1\uffff\3\55\1\66\1\153\3\66\1\uffff"+
+        "\1\66\2\uffff\1\66\2\55\1\u0084\1\u008f\2\66\1\u0092\1\66\1\55\1"+
+        "\uffff\1\u0095\1\u0096\1\uffff\1\66\1\55\2\uffff\1\u0098\1\uffff";
+    public static final String DFA23_eofS =
+        "\u0099\uffff";
+    public static final String DFA23_minS =
+        "\1\0\1\uffff\13\0\1\uffff\4\0\1\uffff\2\0\1\44\3\0\2\uffff\4\0\3"+
+        "\uffff\13\0\1\uffff\1\0\1\uffff\2\0\2\uffff\2\0\1\uffff\11\0\1\72"+
+        "\2\0\1\60\1\uffff\1\42\3\0\1\uffff\2\0\1\uffff\2\0\4\uffff\1\0\2"+
+        "\uffff\3\0\1\uffff\11\0\1\60\5\0\1\uffff\1\0\1\uffff\4\0\1\uffff"+
+        "\1\0\1\uffff\3\0\1\uffff\1\0\1\uffff\1\60\7\0\1\uffff\1\0\2\uffff"+
+        "\1\0\1\60\7\0\1\60\1\uffff\2\0\1\uffff\2\0\2\uffff\1\0\1\uffff";
+    public static final String DFA23_maxS =
+        "\1\ufffe\1\uffff\13\ufffe\1\uffff\4\ufffe\1\uffff\2\ufffe\1\172"+
+        "\3\ufffe\2\uffff\4\ufffe\3\uffff\13\ufffe\1\uffff\1\ufffe\1\uffff"+
+        "\2\ufffe\2\uffff\2\ufffe\1\uffff\11\ufffe\1\72\2\ufffe\1\71\1\uffff"+
+        "\1\165\3\ufffe\1\uffff\2\ufffe\1\uffff\2\ufffe\4\uffff\1\ufffe\2"+
+        "\uffff\3\ufffe\1\uffff\11\ufffe\1\146\5\ufffe\1\uffff\1\ufffe\1"+
+        "\uffff\4\ufffe\1\uffff\1\ufffe\1\uffff\3\ufffe\1\uffff\1\ufffe\1"+
+        "\uffff\1\146\7\ufffe\1\uffff\1\ufffe\2\uffff\1\ufffe\1\146\7\ufffe"+
+        "\1\146\1\uffff\2\ufffe\1\uffff\2\ufffe\2\uffff\1\ufffe\1\uffff";
+    public static final String DFA23_acceptS =
+        "\1\uffff\1\1\13\uffff\1\17\4\uffff\1\24\6\uffff\1\32\1\33\4\uffff"+
         "\1\40\1\41\1\42\13\uffff\1\45\1\uffff\1\5\2\uffff\1\44\1\4\2\uffff"+
-        "\1\27\15\uffff\1\22\5\uffff\1\26\1\uffff\1\30\2\uffff\1\34\1\35"+
-        "\1\36\1\37\1\uffff\1\2\1\3\4\uffff\1\10\15\uffff\1\31\2\uffff\1"+
-        "\43\2\uffff\1\17\2\uffff\1\11\1\12\6\uffff\1\23\7\uffff\1\15\1\uffff"+
-        "\1\25\1\14\12\uffff\1\6\2\uffff\1\13\2\uffff\1\20\1\7\1\uffff\1"+
-        "\21";
-    public static final String DFA22_specialS =
-        "\u0098\uffff}>";
-    public static final String[] DFA22_transition = {
-        "\11\54\2\14\1\54\1\15\1\14\22\54\1\14\1\41\1\22\1\26\1\24\1\44\1"+
-        "\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\uff80\54",
+        "\1\27\15\uffff\1\22\4\uffff\1\26\2\uffff\1\30\2\uffff\1\34\1\35"+
+        "\1\36\1\37\1\uffff\1\2\1\3\3\uffff\1\10\17\uffff\1\31\1\uffff\1"+
+        "\43\4\uffff\1\11\1\uffff\1\12\3\uffff\1\16\1\uffff\1\23\10\uffff"+
+        "\1\15\1\uffff\1\14\1\25\12\uffff\1\6\2\uffff\1\13\2\uffff\1\7\1"+
+        "\20\1\uffff\1\21";
+    public static final String DFA23_specialS =
+        "\u0099\uffff}>";
+    public static final String[] DFA23_transition = {
+        "\11\55\2\15\1\55\1\16\1\15\22\55\1\15\1\42\1\22\1\27\1\26\1\45\1"+
+        "\40\1\23\1\31\1\32\1\47\1\51\1\52\1\20\1\55\1\30\12\21\1\4\1\1\1"+
+        "\3\1\2\1\54\1\25\1\43\32\14\1\33\1\53\1\34\1\46\1\44\1\55\1\10\2"+
+        "\50\1\6\1\12\1\24\6\50\1\5\1\11\1\7\3\50\1\17\1\13\6\50\1\35\1\41"+
+        "\1\36\1\37\uff80\55",
         "",
-        "\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"+
-        "\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\3\54\1\57\15\54\2\uffff\1\60\1\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\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\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\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\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\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"+
-        "\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\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"+
-        "\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\1\55\1\56\1\uffff\74\55\1\uffff\1\55"+
+        "\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\3\55\1\61\15\55\2\uffff\1\60\1\55\1\uffff\74\55\1"+
+        "\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\16\65\1\64\13\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\67\25\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\21\65\1\70\10\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\15\65\1\71\14\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\16\65\1\73\5\65\1\72\5\65\1\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\27\65\1\74\2\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\75\14\65\1\76\10\65\1\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\100\2\uffff\2\55\1\uffff\1\55\32\77\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         "",
-        "\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\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\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",
-        "\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",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\1\101\31\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\102\1\55\2\uffff\2\55\1\uffff\74\55\1\uffff"+
+        "\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\4\55\1\103\1\55\12\102\1\55\2\uffff\2\55\1\uffff\74"+
+        "\55\1\uffff\1\55\1\uffff\uff80\55",
         "",
-        "\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\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\uff80\54",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\21\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22\1\106\1\22"+
+        "\uff80\106",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\1\110\31\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         "\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",
-        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
-        "\1\54\2\uffff\1\115\4\54\1\114\13\54\2\uffff\2\54\1\uffff\74\54"+
-        "\1\uffff\1\54\1\uffff\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\112\1\55\2\uffff\2\55\1\uffff\1\55\32\112"+
+        "\4\55\1\112\1\55\32\112\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\113\2\114\2\113\1\114\22\113\1\114\1\113\1\114\3\113\1\114\1"+
+        "\113\2\114\21\113\2\114\2\113\1\114\74\113\1\114\1\113\1\114\uff80"+
+        "\113",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\1\116\4\55\1\115\13\55\2\uffff\2\55\1\uffff\74\55"+
+        "\1\uffff\1\55\1\uffff\uff80\55",
         "",
         "",
-        "\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\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\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\21\54\2\uffff\2\54\1\uffff\74\54\1\uffff\1\54\1\uffff"+
-        "\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
         "",
         "",
         "",
-        "\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\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\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",
-        "\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\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\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",
-        "\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\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\21\54\2\uffff\1\122\1\54\1\uffff\74\54\1\uffff\1\54"+
-        "\1\uffff\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\1\123\1\55\1\uffff\74\55\1\uffff\1\55"+
+        "\1\uffff\uff80\55",
         "",
-        "\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\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
         "",
-        "\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\21\54\2\uffff\2\54\1\uffff\74\54\1\uffff\1\54\1\uffff"+
-        "\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
         "",
         "",
-        "\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\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\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\3\65\1\126\26\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         "",
-        "\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"+
-        "\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\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\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\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\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\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\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\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\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\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",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\2\65\1\130\2\65\1\127\24\65\1\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\3\65\1\132\26\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\13\65\1\133\16\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\23\65\1\134\6\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\10\65\1\135\21\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\22\65\1\136\7\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\24\65\1\137\5\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\100\2\uffff\2\55\1\uffff\1\55\32\77\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\1\140",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\13\65\1\141\16\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\4\55\1\103\1\55\12\102\1\55\2\uffff\2\55\1\uffff\74"+
+        "\55\1\uffff\1\55\1\uffff\uff80\55",
         "\12\142",
         "",
-        "\1\22\4\uffff\1\143\10\uffff\4\145\4\146\44\uffff\1\143\5\uffff"+
-        "\1\143\3\uffff\1\143\7\uffff\1\143\3\uffff\1\143\1\uffff\1\143\1"+
-        "\144",
-        "\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\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\32\64\1\54\1\uffff\1\54\1\uffff\uff80\54",
-        "\1\126",
+        "\1\22\4\uffff\1\144\10\uffff\4\145\4\146\44\uffff\1\144\5\uffff"+
+        "\1\144\3\uffff\1\144\7\uffff\1\144\3\uffff\1\144\1\uffff\1\144\1"+
+        "\143",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\21\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22\1\106\1\22"+
+        "\uff80\106",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\13\65\1\147\16\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
         "",
-        "\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",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\113\2\114\2\113\1\114\22\113\1\114\1\113\1\114\3\113\1\114\1"+
+        "\113\2\114\21\113\2\114\2\113\1\114\74\113\1\114\1\113\1\114\uff80"+
+        "\113",
         "",
-        "\11\150\2\147\2\150\1\147\22\150\1\147\1\150\1\147\3\150\1\147\1"+
-        "\150\2\147\21\150\2\147\2\150\1\147\74\150\1\147\1\150\1\147\uff80"+
+        "\11\150\2\151\2\150\1\151\22\150\1\151\1\150\1\151\3\150\1\151\1"+
+        "\150\2\151\21\150\2\151\2\150\1\151\74\150\1\151\1\150\1\151\uff80"+
         "\150",
-        "\11\153\2\152\2\153\1\152\22\153\1\152\1\153\1\152\3\153\1\152\1"+
-        "\153\2\152\1\151\20\153\2\152\2\153\1\152\74\153\1\152\1\153\1\152"+
-        "\uff80\153",
+        "\11\154\2\153\2\154\1\153\22\154\1\153\1\154\1\153\3\154\1\153\1"+
+        "\154\2\153\1\152\20\154\2\153\2\154\1\153\74\154\1\153\1\154\1\153"+
+        "\uff80\154",
         "",
         "",
         "",
         "",
-        "\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\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
         "",
         "",
-        "\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\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\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\uff80"+
-        "\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\10\65\1\155\21\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\21\65\1\156\10\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\13\65\1\157\16\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
         "",
-        "\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\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\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\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\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\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\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\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\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",
-        "\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\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\13\65\1\161\16\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\22\65\1\163\7\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\23\65\1\164\6\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\165\25\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\21\55\2\uffff\2\55\1\uffff\74\55\1\uffff\1\55\1\uffff"+
+        "\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\10\65\1\167\21\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\142\1\55\2\uffff\2\55\1\uffff\74\55\1\uffff"+
+        "\1\55\1\uffff\uff80\55",
         "\12\171\7\uffff\6\171\32\uffff\6\171",
-        "\11\105\2\22\2\105\1\22\22\105\1\22\1\105\1\22\3\105\1\22\1\106"+
-        "\2\22\6\105\10\172\3\105\2\22\2\105\1\22\34\105\1\104\37\105\1\22"+
-        "\1\105\1\22\uff80\105",
-        "\11\105\2\22\2\105\1\22\22\105\1\22\1\105\1\22\3\105\1\22\1\106"+
-        "\2\22\6\105\10\173\3\105\2\22\2\105\1\22\34\105\1\104\37\105\1\22"+
-        "\1\105\1\22\uff80\105",
-        "",
-        "\11\150\2\147\2\150\1\147\22\150\1\147\1\150\1\147\3\150\1\147\1"+
-        "\150\2\147\21\150\2\147\2\150\1\147\74\150\1\147\1\150\1\147\uff80"+
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\21\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22\1\106\1\22"+
+        "\uff80\106",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\6\106\10\172\3\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22"+
+        "\1\106\1\22\uff80\106",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\6\106\10\173\3\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22"+
+        "\1\106\1\22\uff80\106",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\22\65\1\174\7\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\150\2\151\2\150\1\151\22\150\1\151\1\150\1\151\3\150\1\151\1"+
+        "\150\2\151\21\150\2\151\2\150\1\151\74\150\1\151\1\150\1\151\uff80"+
         "\150",
-        "\11\153\2\152\2\153\1\152\22\153\1\152\1\153\1\152\3\153\1\152\1"+
-        "\153\2\152\1\151\4\153\1\174\13\153\2\152\2\153\1\152\74\153\1\152"+
-        "\1\153\1\152\uff80\153",
         "",
-        "\11\153\2\152\2\153\1\152\22\153\1\152\1\153\1\152\3\153\1\152\1"+
-        "\153\2\152\1\151\20\153\2\152\2\153\1\152\74\153\1\152\1\153\1\152"+
-        "\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\uff80\54",
+        "\11\154\2\153\2\154\1\153\22\154\1\153\1\154\1\153\3\154\1\153\1"+
+        "\154\2\153\1\152\4\154\1\175\13\154\2\153\2\154\1\153\74\154\1\153"+
+        "\1\154\1\153\uff80\154",
         "",
-        "\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\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\uff80\54",
+        "\11\154\2\153\2\154\1\153\22\154\1\153\1\154\1\153\3\154\1\153\1"+
+        "\154\2\153\1\152\20\154\2\153\2\154\1\153\74\154\1\153\1\154\1\153"+
+        "\uff80\154",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\5\65\1\176\24\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\24\65\1\177\5\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\1\u0080\31\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         "",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         "",
-        "\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\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\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\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\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\u0085\25\64\1\54\1\uffff\1\54\1\uffff\uff80"+
-        "\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\23\65\1\u0082\6\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         "",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\u0085\25\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "",
         "\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"+
-        "\2\22\6\105\10\u0087\3\105\2\22\2\105\1\22\34\105\1\104\37\105\1"+
-        "\22\1\105\1\22\uff80\105",
-        "\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\153\2\uffff\2\153\1\uffff\22\153\1\uffff\1\153\1\uffff\3\153"+
-        "\1\uffff\1\153\2\uffff\1\151\20\153\2\uffff\2\153\1\uffff\74\153"+
-        "\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\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\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\uff80"+
-        "\54",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\6\106\10\u0087\3\106\2\22\2\106\1\22\34\106\1\105\37\106\1"+
+        "\22\1\106\1\22\uff80\106",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\21\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22\1\106\1\22"+
+        "\uff80\106",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\u0088\25\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\154\2\uffff\2\154\1\uffff\22\154\1\uffff\1\154\1\uffff\3\154"+
+        "\1\uffff\1\154\2\uffff\1\152\20\154\2\uffff\2\154\1\uffff\74\154"+
+        "\1\uffff\1\154\1\uffff\uff80\154",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\30\65\1\u0089\1\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\13\65\1\u008a\16\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\21\65\1\u008b\10\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
         "",
-        "\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\uff80"+
-        "\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\22\65\1\u008c\7\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
         "",
         "",
-        "\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\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\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\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\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\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\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\uff80"+
-        "\54",
-        "\12\u0093\7\uffff\6\u0093\32\uffff\6\u0093",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\15\65\1\u008d\14\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\12\u008e\7\uffff\6\u008e\32\uffff\6\u008e",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\21\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22\1\106\1\22"+
+        "\uff80\106",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\u0090\25\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\u0091\25\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\2\65\1\u0093\27\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\12\u0094\7\uffff\6\u0094\32\uffff\6\u0094",
         "",
-        "\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\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\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         "",
-        "\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\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",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\4\65\1\u0097\25\65\1\55\1\uffff\1\55\1\uffff\uff80"+
+        "\55",
+        "\11\106\2\22\2\106\1\22\22\106\1\22\1\106\1\22\3\106\1\22\1\107"+
+        "\2\22\21\106\2\22\2\106\1\22\34\106\1\105\37\106\1\22\1\106\1\22"+
+        "\uff80\106",
         "",
         "",
-        "\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\uff80\54",
+        "\11\55\2\uffff\2\55\1\uffff\22\55\1\uffff\1\55\1\uffff\3\55\1\uffff"+
+        "\1\55\2\uffff\6\55\12\65\1\55\2\uffff\2\55\1\uffff\1\55\32\65\4"+
+        "\55\1\65\1\55\32\65\1\55\1\uffff\1\55\1\uffff\uff80\55",
         ""
     };
 
-    class DFA22 extends DFA {
-        public DFA22(BaseRecognizer recognizer) {
+    class DFA23 extends DFA {
+        public DFA23(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 22;
-            this.eot = DFA.unpackEncodedString(DFA22_eotS);
-            this.eof = DFA.unpackEncodedString(DFA22_eofS);
-            this.min = DFA.unpackEncodedStringToUnsignedChars(DFA22_minS);
-            this.max = DFA.unpackEncodedStringToUnsignedChars(DFA22_maxS);
-            this.accept = DFA.unpackEncodedString(DFA22_acceptS);
-            this.special = DFA.unpackEncodedString(DFA22_specialS);
-            int numStates = DFA22_transition.length;
+            this.decisionNumber = 23;
+            this.eot = DFA.unpackEncodedString(DFA23_eotS);
+            this.eof = DFA.unpackEncodedString(DFA23_eofS);
+            this.min = DFA.unpackEncodedStringToUnsignedChars(DFA23_minS);
+            this.max = DFA.unpackEncodedStringToUnsignedChars(DFA23_maxS);
+            this.accept = DFA.unpackEncodedString(DFA23_acceptS);
+            this.special = DFA.unpackEncodedString(DFA23_specialS);
+            int numStates = DFA23_transition.length;
             this.transition = new short[numStates][];
             for (int i=0; i<numStates; i++) {
-                transition[i] = DFA.unpackEncodedString(DFA22_transition[i]);
+                transition[i] = DFA.unpackEncodedString(DFA23_transition[i]);
             }
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T40 | T41 | T42 | T43 | T44 | T45 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | WS | MODULE | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | TILDE | AMPERSAND | PIPE | MULTI_LINE_COMMENT | MISC | SYMBOL );";
+            return "1:1: Tokens : ( T40 | T41 | T42 | T43 | T44 | T45 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | MODULE | WS | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | ID | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | TILDE | AMPERSAND | PIPE | MULTI_LINE_COMMENT | MISC | SYMBOL );";
         }
     }
  

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:43:07 UTC (rev 10212)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPParser.java	2007-03-15 04:41:39 UTC (rev 10213)
@@ -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:41:54
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-15 04:40:35
 
 	package org.drools.clp;
 	import java.util.List;
@@ -17,45 +17,45 @@
 
 public class CLPParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LEFT_PAREN", "ID", "STRING", "RIGHT_PAREN", "MODULE", "SALIENCE", "INT", "AND", "OR", "NOT", "EXISTS", "TEST", "VAR", "AMPERSAND", "PIPE", "TILDE", "FLOAT", "BOOL", "NULL", "MISC", "SYMBOL", "DEFRULE", "EOL", "WS", "DECLARE", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "LEFT_SQUARE", "RIGHT_SQUARE", "LEFT_CURLY", "RIGHT_CURLY", "MULTI_LINE_COMMENT", "';'", "'=>'", "'<-'", "':'", "'='", "'modify'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LEFT_PAREN", "DEFRULE", "ID", "STRING", "RIGHT_PAREN", "MODULE", "SALIENCE", "INT", "AND", "OR", "NOT", "EXISTS", "TEST", "VAR", "AMPERSAND", "PIPE", "TILDE", "FLOAT", "BOOL", "NULL", "MISC", "SYMBOL", "EOL", "WS", "DECLARE", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "LEFT_SQUARE", "RIGHT_SQUARE", "LEFT_CURLY", "RIGHT_CURLY", "MULTI_LINE_COMMENT", "';'", "'=>'", "'<-'", "':'", "'='", "'modify'"
     };
-    public static final int EXISTS=14;
+    public static final int EXISTS=15;
     public static final int LEFT_PAREN=4;
     public static final int RIGHT_CURLY=38;
-    public static final int BOOL=21;
-    public static final int DEFRULE=25;
+    public static final int BOOL=22;
+    public static final int DEFRULE=5;
     public static final int HexDigit=30;
     public static final int WS=27;
-    public static final int MISC=23;
-    public static final int STRING=6;
-    public static final int FLOAT=20;
-    public static final int TILDE=19;
-    public static final int OR=12;
-    public static final int PIPE=18;
-    public static final int VAR=16;
+    public static final int MISC=24;
+    public static final int STRING=7;
+    public static final int FLOAT=21;
+    public static final int TILDE=20;
+    public static final int OR=13;
+    public static final int PIPE=19;
+    public static final int VAR=17;
     public static final int UnicodeEscape=31;
-    public static final int AND=11;
+    public static final int AND=12;
     public static final int EscapeSequence=29;
-    public static final int INT=10;
+    public static final int INT=11;
     public static final int EOF=-1;
     public static final int EOL=26;
-    public static final int NULL=22;
-    public static final int MODULE=8;
-    public static final int SYMBOL=24;
+    public static final int NULL=23;
+    public static final int MODULE=9;
+    public static final int SYMBOL=25;
     public static final int LEFT_SQUARE=35;
     public static final int SH_STYLE_SINGLE_LINE_COMMENT=33;
     public static final int OctalEscape=32;
-    public static final int SALIENCE=9;
+    public static final int SALIENCE=10;
     public static final int MULTI_LINE_COMMENT=39;
-    public static final int TEST=15;
-    public static final int AMPERSAND=17;
+    public static final int TEST=16;
+    public static final int AMPERSAND=18;
     public static final int DECLARE=28;
-    public static final int RIGHT_PAREN=7;
-    public static final int NOT=13;
+    public static final int RIGHT_PAREN=8;
+    public static final int NOT=14;
     public static final int LEFT_CURLY=37;
     public static final int RIGHT_SQUARE=36;
     public static final int C_STYLE_SINGLE_LINE_COMMENT=34;
-    public static final int ID=5;
+    public static final int ID=6;
 
         public CLPParser(TokenStream input) {
             super(input);
@@ -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:211: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,13 +271,13 @@
         	        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:217: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:217: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 )?
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_rule65); 
+            match(input,DEFRULE,FOLLOW_DEFRULE_in_rule73); 
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:221:3: (module= agenda_group )?
             int alt2=2;
             int LA2_0 = input.LA(1);
             if ( (LA2_0==MODULE) ) {
@@ -285,10 +285,10 @@
             }
             switch (alt2) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:220:5: module= agenda_group
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:221:5: module= agenda_group
                     {
                      System.err.println( "before" ); 
-                    pushFollow(FOLLOW_agenda_group_in_rule87);
+                    pushFollow(FOLLOW_agenda_group_in_rule86);
                     module=agenda_group();
                     _fsp--;
 
@@ -299,8 +299,8 @@
             }
 
             ruleName=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_rule101); 
-             
+            match(input,ID,FOLLOW_ID_in_rule100); 
+             	  			  		
             	  		debug( "start rule: " + ruleName.getText() );
             	        rule = new RuleDescr( ruleName.getText(), null ); 
             	        
@@ -318,11 +318,11 @@
             			lhs.setStartCharacter( ((CommonToken)loc).getStartIndex() );				
             		
             documentation=(Token)input.LT(1);
-            match(input,STRING,FOLLOW_STRING_in_rule114); 
+            match(input,STRING,FOLLOW_STRING_in_rule112); 
             
             	    	// do nothing here for now
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:243:3: ( ruleAttribute[rule] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:244:3: ( ruleAttribute[rule] )*
             loop3:
             do {
                 int alt3=2;
@@ -339,9 +339,9 @@
 
                 switch (alt3) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:243:3: ruleAttribute[rule]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:244:3: ruleAttribute[rule]
             	    {
-            	    pushFollow(FOLLOW_ruleAttribute_in_rule120);
+            	    pushFollow(FOLLOW_ruleAttribute_in_rule118);
             	    ruleAttribute(rule);
             	    _fsp--;
 
@@ -354,7 +354,7 @@
                 }
             } while (true);
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:245:3: ( lhs[lhs] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:246:3: ( lhs[lhs] )*
             loop4:
             do {
                 int alt4=2;
@@ -366,9 +366,9 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:245:3: lhs[lhs]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:246:3: lhs[lhs]
             	    {
-            	    pushFollow(FOLLOW_lhs_in_rule129);
+            	    pushFollow(FOLLOW_lhs_in_rule127);
             	    lhs(lhs);
             	    _fsp--;
 
@@ -381,11 +381,11 @@
                 }
             } while (true);
 
-            pushFollow(FOLLOW_rhs_in_rule138);
+            pushFollow(FOLLOW_rhs_in_rule136);
             rhs(rule);
             _fsp--;
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_rule146); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_rule144); 
 
             }
 
@@ -402,7 +402,7 @@
 
 
     // $ANTLR start agenda_group
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:252:1: agenda_group returns [AttributeDescr d ] : t= MODULE ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:254:1: agenda_group returns [AttributeDescr d ] : t= MODULE ;
     public AttributeDescr agenda_group() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -413,11 +413,11 @@
         		System.out.println( "agenda group init" );
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:258:3: (t= MODULE )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:258:3: t= MODULE
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:260:3: (t= MODULE )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:260:3: t= MODULE
             {
             t=(Token)input.LT(1);
-            match(input,MODULE,FOLLOW_MODULE_in_agenda_group171); 
+            match(input,MODULE,FOLLOW_MODULE_in_agenda_group170); 
             
             			System.out.println( "agenda group body" );		
             			d = new AttributeDescr( "agenda-group", t.getText() );
@@ -441,25 +441,25 @@
 
 
     // $ANTLR start ruleAttribute
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:269:1: ruleAttribute[RuleDescr rule] : 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:1: ruleAttribute[RuleDescr rule] : LEFT_PAREN 'declare' LEFT_PAREN d= salience RIGHT_PAREN RIGHT_PAREN ;
     public void ruleAttribute(RuleDescr rule) throws RecognitionException {
         AttributeDescr d = null;
 
 
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:273: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:273:3: LEFT_PAREN 'declare' LEFT_PAREN d= salience RIGHT_PAREN RIGHT_PAREN
             {
-            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);
+            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);
             d=salience();
             _fsp--;
 
              rule.addAttribute( d ); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute209); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute213); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute208); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute212); 
 
             }
 
@@ -476,7 +476,7 @@
 
 
     // $ANTLR start salience
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:277:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:279:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
     public AttributeDescr salience() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -487,13 +487,13 @@
         		d = null;
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:282:3: (loc= SALIENCE i= INT )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:282:3: loc= SALIENCE i= INT
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:284:3: (loc= SALIENCE i= INT )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:284:3: loc= SALIENCE i= INT
             {
             loc=(Token)input.LT(1);
-            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience240); 
+            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience239); 
             i=(Token)input.LT(1);
-            match(input,INT,FOLLOW_INT_in_salience244); 
+            match(input,INT,FOLLOW_INT_in_salience243); 
             
             			d = new AttributeDescr( "salience", i.getText() );
             			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
@@ -516,13 +516,13 @@
 
 
     // $ANTLR start lhs
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:292:1: lhs[ConditionalElementDescr in_ce] : ( 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:294:1: lhs[ConditionalElementDescr in_ce] : ( 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] ) ;
     public void lhs(ConditionalElementDescr in_ce) throws RecognitionException {
         try {
-            // 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] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:295: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:295: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] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:295: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 alt5=7;
             int LA5_0 = input.LA(1);
             if ( (LA5_0==LEFT_PAREN) ) {
@@ -547,7 +547,7 @@
                     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] )", 5, 1, input);
+                        new NoViableAltException("295: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;
                 }
@@ -558,15 +558,15 @@
             }
             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] )", 5, 0, input);
+                    new NoViableAltException("295: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 (alt5) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:293:8: and_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:295:8: and_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_and_ce_in_lhs271);
+                    pushFollow(FOLLOW_and_ce_in_lhs270);
                     and_ce(in_ce);
                     _fsp--;
 
@@ -574,9 +574,9 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:294:7: or_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:296:7: or_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_or_ce_in_lhs281);
+                    pushFollow(FOLLOW_or_ce_in_lhs280);
                     or_ce(in_ce);
                     _fsp--;
 
@@ -584,9 +584,9 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:295:7: not_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:297:7: not_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_not_ce_in_lhs290);
+                    pushFollow(FOLLOW_not_ce_in_lhs289);
                     not_ce(in_ce);
                     _fsp--;
 
@@ -594,9 +594,9 @@
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:296:7: exists_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:298:7: exists_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_exists_ce_in_lhs299);
+                    pushFollow(FOLLOW_exists_ce_in_lhs298);
                     exists_ce(in_ce);
                     _fsp--;
 
@@ -604,9 +604,9 @@
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:297:8: eval_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:299:8: eval_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_eval_ce_in_lhs313);
+                    pushFollow(FOLLOW_eval_ce_in_lhs312);
                     eval_ce(in_ce);
                     _fsp--;
 
@@ -614,9 +614,9 @@
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:298:7: normal_pattern[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:300:7: normal_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_normal_pattern_in_lhs327);
+                    pushFollow(FOLLOW_normal_pattern_in_lhs326);
                     normal_pattern(in_ce);
                     _fsp--;
 
@@ -624,9 +624,9 @@
                     }
                     break;
                 case 7 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:299:7: bound_pattern[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:301:7: bound_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_bound_pattern_in_lhs336);
+                    pushFollow(FOLLOW_bound_pattern_in_lhs335);
                     bound_pattern(in_ce);
                     _fsp--;
 
@@ -652,18 +652,18 @@
 
 
     // $ANTLR start rhs
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:303:1: rhs[RuleDescr rule] : '=>' ( function[context] )* ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:305:1: rhs[RuleDescr rule] : '=>' ( function[context] )* ;
     public void rhs(RuleDescr rule) throws RecognitionException {
         
         	        ExecutionEngine engine = new BlockExecutionEngine();
         			ExecutionBuildContext context = new ExecutionBuildContext( engine );  	
         	
         try {
-            // 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] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:312:3: ( '=>' ( function[context] )* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:312:3: '=>' ( function[context] )*
             {
-            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] )*
+            match(input,41,FOLLOW_41_in_rhs362); 
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:313:4: ( function[context] )*
             loop6:
             do {
                 int alt6=2;
@@ -675,9 +675,9 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:311:4: function[context]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:313:4: function[context]
             	    {
-            	    pushFollow(FOLLOW_function_in_rhs368);
+            	    pushFollow(FOLLOW_function_in_rhs367);
             	    function(context);
             	    _fsp--;
 
@@ -707,13 +707,13 @@
 
 
     // $ANTLR start ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:314:1: ce[ConditionalElementDescr in_ce] : ( 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:316:1: ce[ConditionalElementDescr in_ce] : ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] ) ;
     public void ce(ConditionalElementDescr in_ce) throws RecognitionException {
         try {
-            // 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] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:317: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:317: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] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:317: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 alt7=6;
             int LA7_0 = input.LA(1);
             if ( (LA7_0==LEFT_PAREN) ) {
@@ -738,7 +738,7 @@
                     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] )", 7, 1, input);
+                        new NoViableAltException("317: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;
                 }
@@ -746,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] )", 7, 0, input);
+                    new NoViableAltException("317: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 (alt7) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:315:8: and_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:317:8: and_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_and_ce_in_ce392);
+                    pushFollow(FOLLOW_and_ce_in_ce391);
                     and_ce(in_ce);
                     _fsp--;
 
@@ -762,9 +762,9 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:316:10: or_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:318:10: or_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_or_ce_in_ce405);
+                    pushFollow(FOLLOW_or_ce_in_ce404);
                     or_ce(in_ce);
                     _fsp--;
 
@@ -772,9 +772,9 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:317:7: not_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:319:7: not_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_not_ce_in_ce414);
+                    pushFollow(FOLLOW_not_ce_in_ce413);
                     not_ce(in_ce);
                     _fsp--;
 
@@ -782,9 +782,9 @@
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:318:7: exists_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:320:7: exists_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_exists_ce_in_ce423);
+                    pushFollow(FOLLOW_exists_ce_in_ce422);
                     exists_ce(in_ce);
                     _fsp--;
 
@@ -792,9 +792,9 @@
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:319:8: eval_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:321:8: eval_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_eval_ce_in_ce437);
+                    pushFollow(FOLLOW_eval_ce_in_ce436);
                     eval_ce(in_ce);
                     _fsp--;
 
@@ -802,9 +802,9 @@
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:320:10: normal_pattern[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:322:10: normal_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_normal_pattern_in_ce461);
+                    pushFollow(FOLLOW_normal_pattern_in_ce460);
                     normal_pattern(in_ce);
                     _fsp--;
 
@@ -830,22 +830,22 @@
 
 
     // $ANTLR start and_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:325:1: and_ce[ConditionalElementDescr in_ce] : LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:327:1: and_ce[ConditionalElementDescr in_ce] : LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN ;
     public void and_ce(ConditionalElementDescr in_ce) throws RecognitionException {
         
                 AndDescr andDescr= null;        
             
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:331:4: ( LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:331:4: LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce493); 
-            match(input,AND,FOLLOW_AND_in_and_ce498); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce492); 
+            match(input,AND,FOLLOW_AND_in_and_ce497); 
             
             	    	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] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:336:3: ( ce[andDescr] )*
             loop8:
             do {
                 int alt8=2;
@@ -857,9 +857,9 @@
 
                 switch (alt8) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:334:3: ce[andDescr]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:336:3: ce[andDescr]
             	    {
-            	    pushFollow(FOLLOW_ce_in_and_ce504);
+            	    pushFollow(FOLLOW_ce_in_and_ce503);
             	    ce(andDescr);
             	    _fsp--;
 
@@ -872,7 +872,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_and_ce513); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_and_ce512); 
 
             }
 
@@ -889,22 +889,22 @@
 
 
     // $ANTLR start or_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:338:1: or_ce[ConditionalElementDescr in_ce] : LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:340:1: or_ce[ConditionalElementDescr in_ce] : LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN ;
     public void or_ce(ConditionalElementDescr in_ce) throws RecognitionException {
         
                 OrDescr orDescr= null;         
             
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:344:4: ( LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:344:4: LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce541); 
-            match(input,OR,FOLLOW_OR_in_or_ce546); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce540); 
+            match(input,OR,FOLLOW_OR_in_or_ce545); 
             
             	    	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] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:349:3: ( ce[orDescr] )*
             loop9:
             do {
                 int alt9=2;
@@ -916,9 +916,9 @@
 
                 switch (alt9) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:347:3: ce[orDescr]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:349:3: ce[orDescr]
             	    {
-            	    pushFollow(FOLLOW_ce_in_or_ce552);
+            	    pushFollow(FOLLOW_ce_in_or_ce551);
             	    ce(orDescr);
             	    _fsp--;
 
@@ -931,7 +931,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_or_ce561); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_or_ce560); 
 
             }
 
@@ -948,22 +948,22 @@
 
 
     // $ANTLR start not_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:351:1: not_ce[ConditionalElementDescr in_ce] : LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:353:1: not_ce[ConditionalElementDescr in_ce] : LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN ;
     public void not_ce(ConditionalElementDescr in_ce) throws RecognitionException {
         
                 NotDescr notDescr= null;         
             
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:357:4: ( LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:357:4: LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce589); 
-            match(input,NOT,FOLLOW_NOT_in_not_ce594); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce588); 
+            match(input,NOT,FOLLOW_NOT_in_not_ce593); 
             
             			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] )?
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:362:3: ( ce[notDescr] )?
             int alt10=2;
             int LA10_0 = input.LA(1);
             if ( (LA10_0==LEFT_PAREN) ) {
@@ -971,9 +971,9 @@
             }
             switch (alt10) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:3: ce[notDescr]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:362:3: ce[notDescr]
                     {
-                    pushFollow(FOLLOW_ce_in_not_ce600);
+                    pushFollow(FOLLOW_ce_in_not_ce599);
                     ce(notDescr);
                     _fsp--;
 
@@ -983,7 +983,7 @@
 
             }
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_not_ce609); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_not_ce608); 
 
             }
 
@@ -1000,22 +1000,22 @@
 
 
     // $ANTLR start exists_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:364:1: exists_ce[ConditionalElementDescr in_ce] : LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:366:1: exists_ce[ConditionalElementDescr in_ce] : LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN ;
     public void exists_ce(ConditionalElementDescr in_ce) throws RecognitionException {
         
                 ExistsDescr existsDescr= null;        
             
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:370:4: ( LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:370:4: LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce638); 
-            match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce643); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce637); 
+            match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce642); 
             
             		    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] )?
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:375:3: ( ce[existsDescr] )?
             int alt11=2;
             int LA11_0 = input.LA(1);
             if ( (LA11_0==LEFT_PAREN) ) {
@@ -1023,9 +1023,9 @@
             }
             switch (alt11) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:373:3: ce[existsDescr]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:375:3: ce[existsDescr]
                     {
-                    pushFollow(FOLLOW_ce_in_exists_ce649);
+                    pushFollow(FOLLOW_ce_in_exists_ce648);
                     ce(existsDescr);
                     _fsp--;
 
@@ -1035,7 +1035,7 @@
 
             }
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_exists_ce658); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_exists_ce657); 
 
             }
 
@@ -1052,7 +1052,7 @@
 
 
     // $ANTLR start eval_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:377:1: eval_ce[ConditionalElementDescr in_ce] : LEFT_PAREN TEST function[context] RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:379:1: eval_ce[ConditionalElementDescr in_ce] : LEFT_PAREN TEST function[context] RIGHT_PAREN ;
     public void eval_ce(ConditionalElementDescr in_ce) throws RecognitionException {
         
                 EvalDescr evalDescr= null;    
@@ -1060,23 +1060,23 @@
         		ExecutionBuildContext context = new ExecutionBuildContext( engine );   		         
             
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:385:4: ( LEFT_PAREN TEST function[context] RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:385:4: LEFT_PAREN TEST function[context] RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce686); 
-            match(input,TEST,FOLLOW_TEST_in_eval_ce691); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce685); 
+            match(input,TEST,FOLLOW_TEST_in_eval_ce690); 
             
             		    evalDescr = new EvalDescr();
             		    in_ce.addDescr( evalDescr );
             		
-            pushFollow(FOLLOW_function_in_eval_ce697);
+            pushFollow(FOLLOW_function_in_eval_ce696);
             function(context);
             _fsp--;
 
             					
             			evalDescr.setContent( engine );			
             		
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_eval_ce708); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_eval_ce707); 
 
             }
 
@@ -1093,7 +1093,7 @@
 
 
     // $ANTLR start normal_pattern
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:394:1: normal_pattern[ConditionalElementDescr in_ce] : LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:396:1: normal_pattern[ConditionalElementDescr in_ce] : LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN ;
     public void normal_pattern(ConditionalElementDescr in_ce) throws RecognitionException {
         Token name=null;
 
@@ -1101,17 +1101,17 @@
                 ColumnDescr column = null;
             
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:400:4: ( LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:400:4: LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern736); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern735); 
             name=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_normal_pattern743); 
+            match(input,ID,FOLLOW_ID_in_normal_pattern742); 
             
             			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] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:405:3: ( field_constriant[column] )*
             loop12:
             do {
                 int alt12=2;
@@ -1123,9 +1123,9 @@
 
                 switch (alt12) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:403:3: field_constriant[column]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:405:3: field_constriant[column]
             	    {
-            	    pushFollow(FOLLOW_field_constriant_in_normal_pattern749);
+            	    pushFollow(FOLLOW_field_constriant_in_normal_pattern748);
             	    field_constriant(column);
             	    _fsp--;
 
@@ -1138,7 +1138,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_normal_pattern759); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_normal_pattern758); 
 
             }
 
@@ -1155,7 +1155,7 @@
 
 
     // $ANTLR start bound_pattern
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:409:1: bound_pattern[ConditionalElementDescr in_ce] : var= VAR '<-' LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:411:1: bound_pattern[ConditionalElementDescr in_ce] : var= VAR '<-' LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN ;
     public void bound_pattern(ConditionalElementDescr in_ce) throws RecognitionException {
         Token var=null;
         Token name=null;
@@ -1165,24 +1165,24 @@
                 String identifier = null;
             
         try {
-            // 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 )
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:416:4: (var= VAR '<-' LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:416:4: var= VAR '<-' LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN
             {
             var=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_bound_pattern787); 
+            match(input,VAR,FOLLOW_VAR_in_bound_pattern786); 
             
             			identifier = var.getText();
             		
-            match(input,42,FOLLOW_42_in_bound_pattern793); 
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_bound_pattern798); 
+            match(input,42,FOLLOW_42_in_bound_pattern792); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_bound_pattern797); 
             name=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_bound_pattern805); 
+            match(input,ID,FOLLOW_ID_in_bound_pattern804); 
             
             			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] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:426:3: ( field_constriant[column] )*
             loop13:
             do {
                 int alt13=2;
@@ -1194,9 +1194,9 @@
 
                 switch (alt13) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:424:3: field_constriant[column]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:426:3: field_constriant[column]
             	    {
-            	    pushFollow(FOLLOW_field_constriant_in_bound_pattern811);
+            	    pushFollow(FOLLOW_field_constriant_in_bound_pattern810);
             	    field_constriant(column);
             	    _fsp--;
 
@@ -1209,7 +1209,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_bound_pattern818); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_bound_pattern817); 
 
             }
 
@@ -1226,7 +1226,7 @@
 
 
     // $ANTLR start field_constriant
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:428:1: field_constriant[ColumnDescr column] : 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:430:1: field_constriant[ColumnDescr column] : LEFT_PAREN f= ID restriction[fc, column] ( connective[fc] restriction[fc, column] )* RIGHT_PAREN ;
     public void field_constriant(ColumnDescr column) throws RecognitionException {
         Token f=null;
 
@@ -1237,23 +1237,23 @@
         		String op = "==";
         	
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:437: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:437:4: LEFT_PAREN f= ID restriction[fc, column] ( connective[fc] restriction[fc, column] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant846); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant845); 
             f=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_field_constriant853); 
+            match(input,ID,FOLLOW_ID_in_field_constriant852); 
             
             			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_constriant865);
+            pushFollow(FOLLOW_restriction_in_field_constriant864);
             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] )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:446:3: ( connective[fc] restriction[fc, column] )*
             loop14:
             do {
                 int alt14=2;
@@ -1265,13 +1265,13 @@
 
                 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]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:447:5: connective[fc] restriction[fc, column]
             	    {
-            	    pushFollow(FOLLOW_connective_in_field_constriant877);
+            	    pushFollow(FOLLOW_connective_in_field_constriant876);
             	    connective(fc);
             	    _fsp--;
 
-            	    pushFollow(FOLLOW_restriction_in_field_constriant894);
+            	    pushFollow(FOLLOW_restriction_in_field_constriant893);
             	    restriction(fc,  column);
             	    _fsp--;
 
@@ -1284,7 +1284,7 @@
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_field_constriant917); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_field_constriant916); 
 
             }
 
@@ -1301,13 +1301,13 @@
 
 
     // $ANTLR start connective
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:451:1: connective[FieldConstraintDescr fc] : ( AMPERSAND | PIPE ) ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:453:1: connective[FieldConstraintDescr fc] : ( AMPERSAND | PIPE ) ;
     public void connective(FieldConstraintDescr fc) throws RecognitionException {
         try {
-            // 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 )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:454:4: ( ( AMPERSAND | PIPE ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:454:4: ( AMPERSAND | PIPE )
             {
-            // 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:454:4: ( AMPERSAND | PIPE )
             int alt15=2;
             int LA15_0 = input.LA(1);
             if ( (LA15_0==AMPERSAND) ) {
@@ -1318,23 +1318,23 @@
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("452:4: ( AMPERSAND | PIPE )", 15, 0, input);
+                    new NoViableAltException("454:4: ( AMPERSAND | PIPE )", 15, 0, input);
 
                 throw nvae;
             }
             switch (alt15) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:452:6: AMPERSAND
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:454:6: AMPERSAND
                     {
-                    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_connective935); 
+                    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_connective934); 
                      fc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND)); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:453:9: PIPE
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:455:9: PIPE
                     {
-                    match(input,PIPE,FOLLOW_PIPE_in_connective947); 
+                    match(input,PIPE,FOLLOW_PIPE_in_connective946); 
                     fc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR)); 
 
                     }
@@ -1358,7 +1358,7 @@
 
 
     // $ANTLR start restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:457:1: restriction[FieldConstraintDescr fc, ColumnDescr column] : ( 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:459:1: restriction[FieldConstraintDescr fc, ColumnDescr column] : ( TILDE )? ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction ) ;
     public void restriction(FieldConstraintDescr fc, ColumnDescr column) throws RecognitionException {
         String lc = null;
 
@@ -1367,10 +1367,10 @@
         			String op = "==";
         	
         try {
-            // 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 )? ( 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:463: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:463: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 )?
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:463:4: ( TILDE )?
             int alt16=2;
             int LA16_0 = input.LA(1);
             if ( (LA16_0==TILDE) ) {
@@ -1378,9 +1378,9 @@
             }
             switch (alt16) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:461:5: TILDE
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:463:5: TILDE
                     {
-                    match(input,TILDE,FOLLOW_TILDE_in_restriction982); 
+                    match(input,TILDE,FOLLOW_TILDE_in_restriction981); 
                     op = "!=";
 
                     }
@@ -1388,7 +1388,7 @@
 
             }
 
-            // 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 )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:464:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )
             int alt17=4;
             switch ( input.LA(1) ) {
             case 43:
@@ -1410,16 +1410,16 @@
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("462:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )", 17, 0, input);
+                    new NoViableAltException("464:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )", 17, 0, input);
 
                 throw nvae;
             }
 
             switch (alt17) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:462:6: predicate_constraint[op, column]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:464:6: predicate_constraint[op, column]
                     {
-                    pushFollow(FOLLOW_predicate_constraint_in_restriction999);
+                    pushFollow(FOLLOW_predicate_constraint_in_restriction998);
                     predicate_constraint(op,  column);
                     _fsp--;
 
@@ -1427,9 +1427,9 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:463:11: return_value_restriction[op, fc]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:465:11: return_value_restriction[op, fc]
                     {
-                    pushFollow(FOLLOW_return_value_restriction_in_restriction1019);
+                    pushFollow(FOLLOW_return_value_restriction_in_restriction1018);
                     return_value_restriction(op,  fc);
                     _fsp--;
 
@@ -1437,9 +1437,9 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:464:10: variable_restriction[op, fc]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:466:10: variable_restriction[op, fc]
                     {
-                    pushFollow(FOLLOW_variable_restriction_in_restriction1031);
+                    pushFollow(FOLLOW_variable_restriction_in_restriction1030);
                     variable_restriction(op,  fc);
                     _fsp--;
 
@@ -1447,9 +1447,9 @@
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:465:12: lc= literal_restriction
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:467:12: lc= literal_restriction
                     {
-                    pushFollow(FOLLOW_literal_restriction_in_restriction1047);
+                    pushFollow(FOLLOW_literal_restriction_in_restriction1046);
                     lc=literal_restriction();
                     _fsp--;
 
@@ -1479,18 +1479,18 @@
 
 
     // $ANTLR start predicate_constraint
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:472:1: predicate_constraint[String op, ColumnDescr column] : ':' function[context] ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:474:1: predicate_constraint[String op, ColumnDescr column] : ':' function[context] ;
     public void predicate_constraint(String op, ColumnDescr column) throws RecognitionException {
         
            		ExecutionEngine engine = new CLPPredicate();
         		ExecutionBuildContext context = new ExecutionBuildContext( engine );    
             
         try {
-            // 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]
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:479:4: ( ':' function[context] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:479:4: ':' function[context]
             {
-            match(input,43,FOLLOW_43_in_predicate_constraint1089); 
-            pushFollow(FOLLOW_function_in_predicate_constraint1093);
+            match(input,43,FOLLOW_43_in_predicate_constraint1088); 
+            pushFollow(FOLLOW_function_in_predicate_constraint1092);
             function(context);
             _fsp--;
 
@@ -1513,18 +1513,18 @@
 
 
     // $ANTLR start return_value_restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:484:1: return_value_restriction[String op, FieldConstraintDescr fc] : '=' function[context] ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:486:1: return_value_restriction[String op, FieldConstraintDescr fc] : '=' function[context] ;
     public void return_value_restriction(String op, FieldConstraintDescr fc) throws RecognitionException {
         
         		ExecutionEngine engine = new CLPReturnValue();
         		ExecutionBuildContext context = new ExecutionBuildContext( engine );
         	
         try {
-            // 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]
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:491:4: ( '=' function[context] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:491:4: '=' function[context]
             {
-            match(input,44,FOLLOW_44_in_return_value_restriction1116); 
-            pushFollow(FOLLOW_function_in_return_value_restriction1121);
+            match(input,44,FOLLOW_44_in_return_value_restriction1115); 
+            pushFollow(FOLLOW_function_in_return_value_restriction1120);
             function(context);
             _fsp--;
 
@@ -1547,16 +1547,16 @@
 
 
     // $ANTLR start variable_restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:495:1: variable_restriction[String op, FieldConstraintDescr fc] : var= VAR ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:497:1: variable_restriction[String op, FieldConstraintDescr fc] : var= VAR ;
     public void variable_restriction(String op, FieldConstraintDescr fc) throws RecognitionException {
         Token var=null;
 
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:496:4: (var= VAR )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:496:4: var= VAR
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:498:4: (var= VAR )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:498:4: var= VAR
             {
             var=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_variable_restriction1142); 
+            match(input,VAR,FOLLOW_VAR_in_variable_restriction1141); 
             
             			fc.addRestriction( new VariableRestrictionDescr(op, var.getText()) );
             		
@@ -1576,7 +1576,7 @@
 
 
     // $ANTLR start literal_restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:502:1: literal_restriction returns [String text] : t= literal ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:504:1: literal_restriction returns [String text] : t= literal ;
     public String literal_restriction() throws RecognitionException {
         String text = null;
 
@@ -1587,10 +1587,10 @@
         		text = null;
         	
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:509:6: (t= literal )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:509:6: t= literal
             {
-            pushFollow(FOLLOW_literal_in_literal_restriction1175);
+            pushFollow(FOLLOW_literal_in_literal_restriction1174);
             t=literal();
             _fsp--;
 
@@ -1613,7 +1613,7 @@
 
 
     // $ANTLR start function
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:512:1: function[ExecutionBuildContext context] returns [Function f] : 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:514:1: function[ExecutionBuildContext context] returns [Function f] : LEFT_PAREN name= function_name ( function_params[context, f] )+ RIGHT_PAREN ;
     public Function function(ExecutionBuildContext context) throws RecognitionException {
         Function f = null;
 
@@ -1624,11 +1624,11 @@
         	    FunctionFactory factory = FunctionFactory.getInstance();
         	
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:518: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:518:4: LEFT_PAREN name= function_name ( function_params[context, f] )+ RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function1200); 
-            pushFollow(FOLLOW_function_name_in_function1206);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function1199); 
+            pushFollow(FOLLOW_function_name_in_function1205);
             name=function_name();
             _fsp--;
 
@@ -1638,22 +1638,22 @@
             			}
             		  	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] )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:526:3: ( function_params[context, f] )+
             int cnt18=0;
             loop18:
             do {
                 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)) ) {
+                if ( (LA18_0==LEFT_PAREN||(LA18_0>=ID && LA18_0<=STRING)||LA18_0==INT||LA18_0==VAR||(LA18_0>=FLOAT && LA18_0<=NULL)) ) {
                     alt18=1;
                 }
 
 
                 switch (alt18) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:524:3: function_params[context, f]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:526:3: function_params[context, f]
             	    {
-            	    pushFollow(FOLLOW_function_params_in_function1219);
+            	    pushFollow(FOLLOW_function_params_in_function1218);
             	    function_params(context,  f);
             	    _fsp--;
 
@@ -1670,7 +1670,7 @@
                 cnt18++;
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function1229); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function1228); 
              context.addFunction( f ); 
 
             }
@@ -1688,7 +1688,7 @@
 
 
     // $ANTLR start modify_function
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:530:1: modify_function[ExecutionBuildContext context] returns [Function f] : 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:532:1: modify_function[ExecutionBuildContext context] returns [Function f] : LEFT_PAREN 'modify' ( slot_name_value_pair[context, f] )+ RIGHT_PAREN ;
     public Function modify_function(ExecutionBuildContext context) throws RecognitionException {
         Function f = null;
 
@@ -1697,12 +1697,12 @@
         		f = factory.createFunction( "modify" );
         	
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:538: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:538:3: LEFT_PAREN 'modify' ( slot_name_value_pair[context, f] )+ RIGHT_PAREN
             {
-            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] )+
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_modify_function1259); 
+            match(input,45,FOLLOW_45_in_modify_function1264); 
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:540:4: ( slot_name_value_pair[context, f] )+
             int cnt19=0;
             loop19:
             do {
@@ -1715,9 +1715,9 @@
 
                 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]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:540:4: slot_name_value_pair[context, f]
             	    {
-            	    pushFollow(FOLLOW_slot_name_value_pair_in_modify_function1270);
+            	    pushFollow(FOLLOW_slot_name_value_pair_in_modify_function1269);
             	    slot_name_value_pair(context,  f);
             	    _fsp--;
 
@@ -1734,7 +1734,7 @@
                 cnt19++;
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_modify_function1276); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_modify_function1275); 
 
             }
 
@@ -1751,7 +1751,7 @@
 
 
     // $ANTLR start function_params
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:542:1: function_params[ExecutionBuildContext context, Function f] : (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:544:1: function_params[ExecutionBuildContext context, Function f] : (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] ) ;
     public void function_params(ExecutionBuildContext context, Function f) throws RecognitionException {
         Token t=null;
         Function nf = null;
@@ -1761,10 +1761,10 @@
         		ValueHandler value  =  null;		
         	
         try {
-            // 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] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:549: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:549: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] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:549:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )
             int alt20=8;
             switch ( input.LA(1) ) {
             case VAR:
@@ -1793,79 +1793,79 @@
                 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] )", 20, 0, input);
+                    new NoViableAltException("549:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 20, 0, input);
 
                 throw nvae;
             }
 
             switch (alt20) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:547:6: t= VAR
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:549:6: t= VAR
                     {
                     t=(Token)input.LT(1);
-                    match(input,VAR,FOLLOW_VAR_in_function_params1305); 
+                    match(input,VAR,FOLLOW_VAR_in_function_params1304); 
                      value = context.getVariableValueHandler(t.getText() ); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:548:6: t= STRING
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:550:6: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_function_params1317); 
+                    match(input,STRING,FOLLOW_STRING_in_function_params1316); 
                      value = new ObjectLiteralValue( getString( t ) ); 
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:549:7: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:551:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_function_params1332); 
+                    match(input,ID,FOLLOW_ID_in_function_params1331); 
                      value = new ObjectLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:550:6: t= FLOAT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:552:6: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_function_params1353); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_function_params1352); 
                      value = new DoubleLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:551:6: t= INT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:553:6: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_function_params1368); 
+                    match(input,INT,FOLLOW_INT_in_function_params1367); 
                      value = new LongLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:552:6: t= BOOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:6: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_function_params1388); 
+                    match(input,BOOL,FOLLOW_BOOL_in_function_params1387); 
                      value = new BooleanLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 7 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:553:6: t= NULL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:555:6: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_function_params1410); 
+                    match(input,NULL,FOLLOW_NULL_in_function_params1409); 
                      value = ObjectLiteralValue.NULL; 
 
                     }
                     break;
                 case 8 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:6: nf= function[context]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:556:6: nf= function[context]
                     {
-                    pushFollow(FOLLOW_function_in_function_params1426);
+                    pushFollow(FOLLOW_function_in_function_params1425);
                     nf=function(context);
                     _fsp--;
 
@@ -1893,7 +1893,7 @@
 
 
     // $ANTLR start slot_name_value_pair
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:560:1: slot_name_value_pair[ExecutionBuildContext context, Function f] : 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:562:1: slot_name_value_pair[ExecutionBuildContext context, Function f] : LEFT_PAREN id= ID (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] ) RIGHT_PAREN ;
     public void slot_name_value_pair(ExecutionBuildContext context, Function f) throws RecognitionException {
         Token id=null;
         Token t=null;
@@ -1905,16 +1905,16 @@
         		String name = null;
         	
         try {
-            // 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
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:568: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:568: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_pair1468); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_slot_name_value_pair1467); 
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_slot_name_value_pair1474); 
+            match(input,ID,FOLLOW_ID_in_slot_name_value_pair1473); 
             
             			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] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:572:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )
             int alt21=8;
             switch ( input.LA(1) ) {
             case VAR:
@@ -1943,79 +1943,79 @@
                 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] )", 21, 0, input);
+                    new NoViableAltException("572:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 21, 0, input);
 
                 throw nvae;
             }
 
             switch (alt21) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:570:6: t= VAR
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:572:6: t= VAR
                     {
                     t=(Token)input.LT(1);
-                    match(input,VAR,FOLLOW_VAR_in_slot_name_value_pair1485); 
+                    match(input,VAR,FOLLOW_VAR_in_slot_name_value_pair1484); 
                      nameValuePair = new SlotNameValuePair(name, context.getVariableValueHandler( t.getText() ) ); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:7: t= STRING
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:573:7: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_slot_name_value_pair1503); 
+                    match(input,STRING,FOLLOW_STRING_in_slot_name_value_pair1502); 
                      nameValuePair = new SlotNameValuePair(name, new ObjectLiteralValue( getString( t ) ) ); 
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:572:7: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:574:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_slot_name_value_pair1518); 
+                    match(input,ID,FOLLOW_ID_in_slot_name_value_pair1517); 
                      nameValuePair = new SlotNameValuePair(name, new ObjectLiteralValue( t.getText() ) ); 
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:573:6: t= FLOAT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:6: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_slot_name_value_pair1539); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_slot_name_value_pair1538); 
                      nameValuePair = new SlotNameValuePair(name, new DoubleLiteralValue( t.getText() ) ); 
 
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:574:6: t= INT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:576:6: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_slot_name_value_pair1554); 
+                    match(input,INT,FOLLOW_INT_in_slot_name_value_pair1553); 
                      nameValuePair = new SlotNameValuePair(name, new LongLiteralValue( t.getText() ) ); 
 
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:6: t= BOOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:577:6: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_slot_name_value_pair1574); 
+                    match(input,BOOL,FOLLOW_BOOL_in_slot_name_value_pair1573); 
                      nameValuePair = new SlotNameValuePair(name, new BooleanLiteralValue( t.getText() ) ) ; 
 
                     }
                     break;
                 case 7 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:576:6: t= NULL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:578:6: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_slot_name_value_pair1596); 
+                    match(input,NULL,FOLLOW_NULL_in_slot_name_value_pair1595); 
                      nameValuePair = new SlotNameValuePair(name, ObjectLiteralValue.NULL ); 
 
                     }
                     break;
                 case 8 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:577:6: nf= function[context]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:6: nf= function[context]
                     {
-                    pushFollow(FOLLOW_function_in_slot_name_value_pair1612);
+                    pushFollow(FOLLOW_function_in_slot_name_value_pair1611);
                     nf=function(context);
                     _fsp--;
 
@@ -2027,7 +2027,7 @@
             }
 
              f.addParameter( nameValuePair ); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1649); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1648); 
 
             }
 
@@ -2044,7 +2044,7 @@
 
 
     // $ANTLR start literal
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:584:1: literal returns [String text] : (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:586:1: literal returns [String text] : (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
     public String literal() throws RecognitionException {
         String text = null;
 
@@ -2054,10 +2054,10 @@
         		text = null;
         	
         try {
-            // 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 )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590: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:590: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 )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )
             int alt22=6;
             switch ( input.LA(1) ) {
             case STRING:
@@ -2080,62 +2080,62 @@
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("588:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )", 22, 0, input);
+                    new NoViableAltException("590:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )", 22, 0, input);
 
                 throw nvae;
             }
 
             switch (alt22) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:8: t= STRING
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590:8: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_literal1678); 
+                    match(input,STRING,FOLLOW_STRING_in_literal1677); 
                      text = getString( t ); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:589:7: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:591:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_literal1691); 
+                    match(input,ID,FOLLOW_ID_in_literal1690); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590:7: t= INT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:592:7: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_literal1707); 
+                    match(input,INT,FOLLOW_INT_in_literal1706); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:591:7: t= FLOAT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:593:7: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_literal1722); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_literal1721); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:592:7: t= BOOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:594:7: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_literal1735); 
+                    match(input,BOOL,FOLLOW_BOOL_in_literal1734); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:593:7: t= NULL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:7: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_literal1749); 
+                    match(input,NULL,FOLLOW_NULL_in_literal1748); 
                      text = null; 
 
                     }
@@ -2159,17 +2159,17 @@
 
 
     // $ANTLR start function_name
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:597:1: function_name returns [Token tok] : (t= ID | t= MISC | t= SYMBOL ) ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:599:1: function_name returns [Token tok] : (t= ID | t= MISC | t= SYMBOL ) ;
     public Token function_name() throws RecognitionException {
         Token tok = null;
 
         Token t=null;
 
         try {
-            // 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 )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601:2: ( (t= ID | t= MISC | t= SYMBOL ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601: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 )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601:2: (t= ID | t= MISC | t= SYMBOL )
             int alt23=3;
             switch ( input.LA(1) ) {
             case ID:
@@ -2183,33 +2183,33 @@
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("599:2: (t= ID | t= MISC | t= SYMBOL )", 23, 0, input);
+                    new NoViableAltException("601:2: (t= ID | t= MISC | t= SYMBOL )", 23, 0, input);
 
                 throw nvae;
             }
 
             switch (alt23) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:599:4: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601:4: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_function_name1778); 
+                    match(input,ID,FOLLOW_ID_in_function_name1777); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:600:4: t= MISC
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:602:4: t= MISC
                     {
                     t=(Token)input.LT(1);
-                    match(input,MISC,FOLLOW_MISC_in_function_name1786); 
+                    match(input,MISC,FOLLOW_MISC_in_function_name1785); 
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601:4: t= SYMBOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:603:4: t= SYMBOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,SYMBOL,FOLLOW_SYMBOL_in_function_name1793); 
+                    match(input,SYMBOL,FOLLOW_SYMBOL_in_function_name1792); 
 
                     }
                     break;
@@ -2237,123 +2237,123 @@
  
 
     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[]{0x0000000000000120L});
-    public static final BitSet FOLLOW_agenda_group_in_rule87 = new BitSet(new long[]{0x0000000000000020L});
-    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});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_rule65 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_DEFRULE_in_rule73 = new BitSet(new long[]{0x0000000000000240L});
+    public static final BitSet FOLLOW_agenda_group_in_rule86 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ID_in_rule100 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_STRING_in_rule112 = new BitSet(new long[]{0x0000020000020010L});
+    public static final BitSet FOLLOW_ruleAttribute_in_rule118 = new BitSet(new long[]{0x0000020000020010L});
+    public static final BitSet FOLLOW_lhs_in_rule127 = new BitSet(new long[]{0x0000020000020010L});
+    public static final BitSet FOLLOW_rhs_in_rule136 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_rule144 = 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[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_salience_in_ruleAttribute201 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute208 = new BitSet(new long[]{0x0000000000000100L});
+    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[]{0x0000000000000800L});
+    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[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_AND_in_and_ce497 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_and_ce503 = new BitSet(new long[]{0x0000000000000110L});
+    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[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_OR_in_or_ce545 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_or_ce551 = new BitSet(new long[]{0x0000000000000110L});
+    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[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_NOT_in_not_ce593 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_not_ce599 = new BitSet(new long[]{0x0000000000000100L});
+    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[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_EXISTS_in_exists_ce642 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_exists_ce648 = new BitSet(new long[]{0x0000000000000100L});
+    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[]{0x0000000000010000L});
+    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[]{0x0000000000000100L});
+    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[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ID_in_normal_pattern742 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_field_constriant_in_normal_pattern748 = new BitSet(new long[]{0x0000000000000110L});
+    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[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ID_in_bound_pattern804 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_field_constriant_in_bound_pattern810 = new BitSet(new long[]{0x0000000000000110L});
+    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[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ID_in_field_constriant852 = new BitSet(new long[]{0x0000180000F208C0L});
+    public static final BitSet FOLLOW_restriction_in_field_constriant864 = new BitSet(new long[]{0x00000000000C0100L});
+    public static final BitSet FOLLOW_connective_in_field_constriant876 = new BitSet(new long[]{0x0000180000F208C0L});
+    public static final BitSet FOLLOW_restriction_in_field_constriant893 = new BitSet(new long[]{0x00000000000C0100L});
+    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[]{0x0000180000E208C0L});
+    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[]{0x0000000003000040L});
+    public static final BitSet FOLLOW_function_name_in_function1205 = new BitSet(new long[]{0x0000000000E208D0L});
+    public static final BitSet FOLLOW_function_params_in_function1218 = new BitSet(new long[]{0x0000000000E209D0L});
+    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[]{0x0000000000000110L});
+    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[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1473 = new BitSet(new long[]{0x0000000000E208D0L});
+    public static final BitSet FOLLOW_VAR_in_slot_name_value_pair1484 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_STRING_in_slot_name_value_pair1502 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1517 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_FLOAT_in_slot_name_value_pair1538 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_INT_in_slot_name_value_pair1553 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_BOOL_in_slot_name_value_pair1573 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_NULL_in_slot_name_value_pair1595 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_function_in_slot_name_value_pair1611 = new BitSet(new long[]{0x0000000000000100L});
+    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});
 
 }
\ 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:43:07 UTC (rev 10212)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/CLP.g	2007-03-15 04:41:39 UTC (rev 10213)
@@ -207,6 +207,7 @@
 		}
 	;	
 */
+
 rule returns [RuleDescr rule]
 	@init { 
 	        rule = null; 
@@ -215,12 +216,12 @@
 	      }
 	:	loc=LEFT_PAREN 
 		
-		'defrule' 	
+		DEFRULE
 		
 		(	{ System.err.println( "before" ); } module=agenda_group )?
 		
-	  	ruleName=ID 
-	  	{ 
+	  	ruleName=ID
+	  	{ 	  			  		
 	  		debug( "start rule: " + ruleName.getText() );
 	        rule = new RuleDescr( ruleName.getText(), null ); 
 	        
@@ -249,6 +250,7 @@
 		RIGHT_PAREN
 	;
 
+
 agenda_group returns [AttributeDescr d ]
 	@init {
 		d = null;
@@ -605,7 +607,6 @@
 	}
 	;
 	
-	
 DEFRULE	:	'defrule';
 OR 	:	'or';
 AND 	:	'and';
@@ -615,18 +616,18 @@
 
 NULL	:	'null';
 
+MODULE
+	: ('A'..'Z')+'::'
+	;  	
+
 WS      :       (	' '
                 |	'\t'
                 |	'\f'
                 |	EOL
                 )
                 { $channel=HIDDEN; }
-        ;        
+        ;                      
         
-MODULE
-	: ID'::'
-	;        
-        
 DECLARE 
 	:	'declare';        		
 

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:43:07 UTC (rev 10212)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/clp/ClpParserTest.java	2007-03-15 04:41:39 UTC (rev 10213)
@@ -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 );




More information about the jboss-svn-commits mailing list