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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 14 17:59:47 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-03-14 17:59:47 -0400 (Wed, 14 Mar 2007)
New Revision: 10191

Removed:
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/clp.tokens
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/clp__.g
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
Log:
JBRULES-720 Clips Parser
-Adding salience and agenda groups

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-14 21:58:42 UTC (rev 10190)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPLexer.java	2007-03-14 21:59:47 UTC (rev 10191)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-13 02:48:08
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-14 21:57:04
 
 	package org.drools.clp;
 
@@ -10,58 +10,61 @@
 import java.util.Map;
 import java.util.HashMap;
 public class CLPLexer extends Lexer {
-    public static final int EXISTS=10;
+    public static final int EXISTS=13;
+    public static final int DEFRULE=24;
+    public static final int HexDigit=29;
+    public static final int MISC=22;
+    public static final int FLOAT=19;
+    public static final int TILDE=18;
+    public static final int OR=11;
+    public static final int PIPE=17;
+    public static final int AND=10;
+    public static final int EscapeSequence=28;
+    public static final int INT=9;
+    public static final int SYMBOL=23;
+    public static final int LEFT_SQUARE=34;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=32;
+    public static final int AMPERSAND=16;
+    public static final int DECLARE=27;
+    public static final int T41=41;
+    public static final int LEFT_CURLY=36;
+    public static final int T39=39;
+    public static final int ID=5;
+    public static final int T44=44;
     public static final int LEFT_PAREN=4;
-    public static final int RIGHT_CURLY=35;
-    public static final int BOOL=19;
-    public static final int DEFRULE=23;
-    public static final int HexDigit=27;
-    public static final int WS=25;
-    public static final int MISC=21;
-    public static final int STRING=16;
-    public static final int FLOAT=17;
+    public static final int RIGHT_CURLY=37;
+    public static final int BOOL=20;
+    public static final int WS=26;
+    public static final int STRING=6;
+    public static final int T43=43;
+    public static final int T42=42;
     public static final int T40=40;
-    public static final int TILDE=15;
-    public static final int OR=8;
-    public static final int PIPE=14;
-    public static final int VAR=12;
-    public static final int UnicodeEscape=28;
-    public static final int AND=7;
-    public static final int T37=37;
-    public static final int EscapeSequence=26;
-    public static final int INT=18;
+    public static final int VAR=15;
+    public static final int UnicodeEscape=30;
     public static final int EOF=-1;
-    public static final int NULL=20;
-    public static final int EOL=24;
-    public static final int SYMBOL=22;
-    public static final int LEFT_SQUARE=32;
-    public static final int Tokens=42;
-    public static final int OctalEscape=29;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=30;
-    public static final int MULTI_LINE_COMMENT=36;
-    public static final int AMPERSAND=13;
-    public static final int TEST=11;
-    public static final int T38=38;
-    public static final int T41=41;
-    public static final int NOT=9;
-    public static final int RIGHT_PAREN=6;
-    public static final int LEFT_CURLY=34;
-    public static final int T39=39;
-    public static final int RIGHT_SQUARE=33;
-    public static final int ID=5;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=31;
+    public static final int EOL=25;
+    public static final int NULL=21;
+    public static final int Tokens=45;
+    public static final int OctalEscape=31;
+    public static final int SALIENCE=8;
+    public static final int MULTI_LINE_COMMENT=38;
+    public static final int TEST=14;
+    public static final int RIGHT_PAREN=7;
+    public static final int NOT=12;
+    public static final int RIGHT_SQUARE=35;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=33;
     public CLPLexer() {;} 
     public CLPLexer(CharStream input) {
         super(input);
-        ruleMemo = new HashMap[40+1];
+        ruleMemo = new HashMap[43+1];
      }
     public String getGrammarFileName() { return "C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g"; }
 
-    // $ANTLR start T37
-    public void mT37() throws RecognitionException {
+    // $ANTLR start T39
+    public void mT39() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            int _type = T37;
+            int _type = T39;
             int _start = getCharIndex();
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
@@ -87,20 +90,53 @@
             ruleNestingLevel--;
         }
     }
-    // $ANTLR end T37
+    // $ANTLR end T39
 
-    // $ANTLR start T38
-    public void mT38() throws RecognitionException {
+    // $ANTLR start T40
+    public void mT40() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            int _type = T38;
+            int _type = T40;
             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:7:7: ( '<-' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:7:7: '<-'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:7:7: ( '=>' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:7:7: '=>'
             {
+            match("=>"); if (failed) return ;
+
+
+            }
+
+
+            if ( backtracking==0 ) {
+
+                      if ( token==null && ruleNestingLevel==1 ) {
+                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
+                      }
+
+                      
+            }
+        }
+        finally {
+            ruleNestingLevel--;
+        }
+    }
+    // $ANTLR end T40
+
+    // $ANTLR start T41
+    public void mT41() throws RecognitionException {
+        try {
+            ruleNestingLevel++;
+            int _type = T41;
+            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:8:7: ( '<-' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:8:7: '<-'
+            {
             match("<-"); if (failed) return ;
 
 
@@ -120,19 +156,19 @@
             ruleNestingLevel--;
         }
     }
-    // $ANTLR end T38
+    // $ANTLR end T41
 
-    // $ANTLR start T39
-    public void mT39() throws RecognitionException {
+    // $ANTLR start T42
+    public void mT42() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            int _type = T39;
+            int _type = T42;
             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:8:7: ( ':' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:8:7: ':'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:9:7: ( ':' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:9:7: ':'
             {
             match(':'); if (failed) return ;
 
@@ -152,19 +188,19 @@
             ruleNestingLevel--;
         }
     }
-    // $ANTLR end T39
+    // $ANTLR end T42
 
-    // $ANTLR start T40
-    public void mT40() throws RecognitionException {
+    // $ANTLR start T43
+    public void mT43() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            int _type = T40;
+            int _type = T43;
             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:9:7: ( '=' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:9:7: '='
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:10:7: ( '=' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:10:7: '='
             {
             match('='); if (failed) return ;
 
@@ -184,19 +220,19 @@
             ruleNestingLevel--;
         }
     }
-    // $ANTLR end T40
+    // $ANTLR end T43
 
-    // $ANTLR start T41
-    public void mT41() throws RecognitionException {
+    // $ANTLR start T44
+    public void mT44() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            int _type = T41;
+            int _type = T44;
             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:10:7: ( 'modify' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:10:7: 'modify'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:11:7: ( 'modify' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:11:7: 'modify'
             {
             match("modify"); if (failed) return ;
 
@@ -217,7 +253,7 @@
             ruleNestingLevel--;
         }
     }
-    // $ANTLR end T41
+    // $ANTLR end T44
 
     // $ANTLR start DEFRULE
     public void mDEFRULE() throws RecognitionException {
@@ -228,8 +264,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:545:11: ( 'defrule' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:545:11: 'defrule'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:598:11: ( 'defrule' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:598:11: 'defrule'
             {
             match("defrule"); if (failed) return ;
 
@@ -261,8 +297,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:546:7: ( 'or' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:546:7: 'or'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:599:7: ( 'or' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:599:7: 'or'
             {
             match("or"); if (failed) return ;
 
@@ -294,8 +330,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:547:8: ( 'and' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:547:8: 'and'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:600:8: ( 'and' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:600:8: 'and'
             {
             match("and"); if (failed) return ;
 
@@ -327,8 +363,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:548:8: ( 'not' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:548:8: 'not'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601:8: ( 'not' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:601:8: 'not'
             {
             match("not"); if (failed) return ;
 
@@ -360,8 +396,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:549:11: ( 'exists' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:549:11: 'exists'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:602:11: ( 'exists' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:602:11: 'exists'
             {
             match("exists"); if (failed) return ;
 
@@ -393,8 +429,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:550:9: ( 'test' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:550:9: 'test'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:603:9: ( 'test' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:603:9: 'test'
             {
             match("test"); if (failed) return ;
 
@@ -426,8 +462,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:552:8: ( 'null' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:552:8: 'null'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:605:8: ( 'null' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:605:8: 'null'
             {
             match("null"); if (failed) return ;
 
@@ -459,10 +495,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:607:17: ( ( ' ' | '\\t' | '\\f' | EOL ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:607:17: ( ' ' | '\\t' | '\\f' | EOL )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:607:17: ( ' ' | '\\t' | '\\f' | EOL )
             int alt1=4;
             switch ( input.LA(1) ) {
             case ' ':
@@ -481,35 +517,35 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("554:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
+                    new NoViableAltException("607:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
 
                 throw nvae;
             }
 
             switch (alt1) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:19: ' '
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:607:19: ' '
                     {
                     match(' '); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:555:19: '\\t'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:608:19: '\\t'
                     {
                     match('\t'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:556:19: '\\f'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:609:19: '\\f'
                     {
                     match('\f'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:557:19: EOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:610:19: EOL
                     {
                     mEOL(); if (failed) return ;
 
@@ -540,14 +576,80 @@
     }
     // $ANTLR end WS
 
+    // $ANTLR start DECLARE
+    public void mDECLARE() throws RecognitionException {
+        try {
+            ruleNestingLevel++;
+            int _type = DECLARE;
+            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:616:4: ( 'declare' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:616:4: 'declare'
+            {
+            match("declare"); if (failed) return ;
+
+
+            }
+
+
+            if ( backtracking==0 ) {
+
+                      if ( token==null && ruleNestingLevel==1 ) {
+                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
+                      }
+
+                      
+            }
+        }
+        finally {
+            ruleNestingLevel--;
+        }
+    }
+    // $ANTLR end DECLARE
+
+    // $ANTLR start SALIENCE
+    public void mSALIENCE() throws RecognitionException {
+        try {
+            ruleNestingLevel++;
+            int _type = SALIENCE;
+            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:619:4: ( 'salience' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:619:4: 'salience'
+            {
+            match("salience"); if (failed) return ;
+
+
+            }
+
+
+            if ( backtracking==0 ) {
+
+                      if ( token==null && ruleNestingLevel==1 ) {
+                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);
+                      }
+
+                      
+            }
+        }
+        finally {
+            ruleNestingLevel--;
+        }
+    }
+    // $ANTLR end SALIENCE
+
     // $ANTLR start EOL
     public void mEOL() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:564:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:564:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:564:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
             if ( (LA2_0=='\r') ) {
@@ -564,13 +666,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("564:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+                    new NoViableAltException("623:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
 
                 throw nvae;
             }
             switch (alt2) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:564:14: ( '\\r\\n' )=> '\\r\\n'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (failed) return ;
 
@@ -578,14 +680,14 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:565:25: '\\r'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:624:25: '\\r'
                     {
                     match('\r'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:566:25: '\\n'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:625:25: '\\n'
                     {
                     match('\n'); if (failed) return ;
 
@@ -613,10 +715,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:4: ( ( '-' )? ( '0' .. '9' )+ )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:4: ( '-' )? ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:630:4: ( ( '-' )? ( '0' .. '9' )+ )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:630:4: ( '-' )? ( '0' .. '9' )+
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:4: ( '-' )?
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:630:4: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
             if ( (LA3_0=='-') ) {
@@ -624,7 +726,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:5: '-'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:630:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -633,7 +735,7 @@
 
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:10: ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:630:10: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -646,7 +748,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:571:11: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:630:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -691,10 +793,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:4: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:4: ( '-' )?
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:4: ( '-' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
             if ( (LA5_0=='-') ) {
@@ -702,7 +804,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:5: '-'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -711,7 +813,7 @@
 
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:10: ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:10: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -724,7 +826,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:11: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -742,7 +844,7 @@
             } while (true);
 
             match('.'); if (failed) return ;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:26: ( '0' .. '9' )+
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:26: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -755,7 +857,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:27: '0' .. '9'
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:634:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -800,7 +902,7 @@
             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:579:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:8: ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
             if ( (LA10_0=='\"') ) {
@@ -812,19 +914,19 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("578:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 10, 0, input);
+                    new NoViableAltException("637:1: STRING : ( ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' ) | ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' ) );", 10, 0, input);
 
                 throw nvae;
             }
             switch (alt10) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:8: ( '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:9: '\"' ( EscapeSequence | ~ ('\\\\'|'\"'))* '\"'
                     {
                     match('\"'); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:13: ( EscapeSequence | ~ ('\\\\'|'\"'))*
                     loop8:
                     do {
                         int alt8=3;
@@ -839,14 +941,14 @@
 
                         switch (alt8) {
                     	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:15: EscapeSequence
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:32: ~ ('\\\\'|'\"')
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:638:32: ~ ('\\\\'|'\"')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -876,13 +978,13 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:8: ( '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\'' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:9: '\\'' ( EscapeSequence | ~ ('\\\\'|'\\''))* '\\''
                     {
                     match('\''); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:14: ( EscapeSequence | ~ ('\\\\'|'\\''))*
                     loop9:
                     do {
                         int alt9=3;
@@ -897,14 +999,14 @@
 
                         switch (alt9) {
                     	case 1 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:16: EscapeSequence
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:33: ~ ('\\\\'|'\\'')
+                    	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:639:33: ~ ('\\\\'|'\\'')
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -955,8 +1057,8 @@
     public void mHexDigit() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:584:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:584:12: ('0'..'9'|'a'..'f'|'A'..'F')
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:643:12: ( ('0'..'9'|'a'..'f'|'A'..'F'))
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:643: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();
@@ -983,14 +1085,11 @@
     public void mEscapeSequence() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:647:9: ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape )
             int alt11=3;
             int LA11_0 = input.LA(1);
             if ( (LA11_0=='\\') ) {
                 switch ( input.LA(2) ) {
-                case 'u':
-                    alt11=2;
-                    break;
                 case '\"':
                 case '\'':
                 case '\\':
@@ -1001,6 +1100,9 @@
                 case 't':
                     alt11=1;
                     break;
+                case 'u':
+                    alt11=2;
+                    break;
                 case '0':
                 case '1':
                 case '2':
@@ -1014,7 +1116,7 @@
                 default:
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("586:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 1, input);
+                        new NoViableAltException("645:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 1, input);
 
                     throw nvae;
                 }
@@ -1023,13 +1125,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("586:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 0, input);
+                    new NoViableAltException("645:1: fragment EscapeSequence : ( '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\') | UnicodeEscape | OctalEscape );", 11, 0, input);
 
                 throw nvae;
             }
             switch (alt11) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:9: '\\\\' ('b'|'t'|'n'|'f'|'r'|'\\\"'|'\\''|'\\\\')
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:647: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' ) {
@@ -1047,14 +1149,14 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:589:9: UnicodeEscape
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:648:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590:9: OctalEscape
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649:9: OctalEscape
                     {
                     mOctalEscape(); if (failed) return ;
 
@@ -1073,7 +1175,7 @@
     public void mOctalEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654: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=='\\') ) {
@@ -1081,8 +1183,8 @@
                 if ( ((LA12_1>='0' && LA12_1<='3')) ) {
                     int LA12_2 = input.LA(3);
                     if ( ((LA12_2>='0' && LA12_2<='7')) ) {
-                        int LA12_5 = input.LA(4);
-                        if ( ((LA12_5>='0' && LA12_5<='7')) ) {
+                        int LA12_4 = input.LA(4);
+                        if ( ((LA12_4>='0' && LA12_4<='7')) ) {
                             alt12=1;
                         }
                         else {
@@ -1102,7 +1204,7 @@
                 else {
                     if (backtracking>0) {failed=true; return ;}
                     NoViableAltException nvae =
-                        new NoViableAltException("593:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+                        new NoViableAltException("652:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
 
                     throw nvae;
                 }
@@ -1110,31 +1212,31 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("593:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
+                    new NoViableAltException("652:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
 
                 throw nvae;
             }
             switch (alt12) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654: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:595:14: ( '0' .. '3' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:15: '0' .. '3'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:14: ( '0' .. '3' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (failed) return ;
 
                     }
 
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:25: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:26: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:25: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:36: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:37: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:36: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:654:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1144,18 +1246,18 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:596:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:596:14: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:596:15: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:14: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:596:25: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:596:26: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:25: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1165,11 +1267,11 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:597:9: '\\\\' ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:656:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:597:14: ( '0' .. '7' )
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:597:15: '0' .. '7'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:656:14: ( '0' .. '7' )
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:656:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -1191,8 +1293,8 @@
     public void mUnicodeEscape() throws RecognitionException {
         try {
             ruleNestingLevel++;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:602:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:602:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:661:9: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:661:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (failed) return ;
             match('u'); if (failed) return ;
@@ -1219,10 +1321,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:4: ( ( 'true' | 'false' ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:4: ( 'true' | 'false' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:665:4: ( ( 'true' | 'false' ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:665:4: ( 'true' | 'false' )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:4: ( 'true' | 'false' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:665:4: ( 'true' | 'false' )
             int alt13=2;
             int LA13_0 = input.LA(1);
             if ( (LA13_0=='t') ) {
@@ -1234,13 +1336,13 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("606:4: ( 'true' | 'false' )", 13, 0, input);
+                    new NoViableAltException("665:4: ( 'true' | 'false' )", 13, 0, input);
 
                 throw nvae;
             }
             switch (alt13) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:5: 'true'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:665:5: 'true'
                     {
                     match("true"); if (failed) return ;
 
@@ -1248,7 +1350,7 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:12: 'false'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:665:12: 'false'
                     {
                     match("false"); if (failed) return ;
 
@@ -1286,8 +1388,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:8: ( '?' ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:609:8: '?' ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:668:8: ( '?' ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:668:8: '?' ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
             {
             match('?'); if (failed) return ;
             if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
@@ -1301,7 +1403,7 @@
                 recover(mse);    throw mse;
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:609:57: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:668:57: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
             loop14:
             do {
                 int alt14=2;
@@ -1313,7 +1415,7 @@
 
                 switch (alt14) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:609:58: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:668:58: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
             	    {
             	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
             	        input.consume();
@@ -1363,8 +1465,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:4: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:613:4: ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:4: ( ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:4: ('a'..'z'|'A'..'Z'|'_'|'$'|'\\u00c0'..'\\u00ff') ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
             {
             if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
                 input.consume();
@@ -1377,7 +1479,7 @@
                 recover(mse);    throw mse;
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:613:50: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:50: ( ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff'))*
             loop15:
             do {
                 int alt15=2;
@@ -1389,7 +1491,7 @@
 
                 switch (alt15) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:613:51: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:51: ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\\u00c0'..'\\u00ff')
             	    {
             	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
             	        input.consume();
@@ -1439,11 +1541,11 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:617:4: ( '#' ( options {greedy=false; } : . )* EOL )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:617:4: '#' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:676:4: ( '#' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:676:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (failed) return ;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:617:8: ( options {greedy=false; } : . )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:676:8: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -1461,7 +1563,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:617:35: .
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:676:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1505,12 +1607,12 @@
             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:623:4: ( '//' ( options {greedy=false; } : . )* EOL )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:4: '//' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:682:4: ( '//' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:682:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (failed) return ;
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:9: ( options {greedy=false; } : . )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:682:9: ( options {greedy=false; } : . )*
             loop17:
             do {
                 int alt17=2;
@@ -1528,7 +1630,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:623:36: .
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:682:36: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1572,8 +1674,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:629:4: ( '(' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:629:4: '('
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:688:4: ( '(' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:688:4: '('
             {
             match('('); if (failed) return ;
 
@@ -1604,8 +1706,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:633:4: ( ')' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:633:4: ')'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:4: ( ')' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:4: ')'
             {
             match(')'); if (failed) return ;
 
@@ -1636,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:637:4: ( '[' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:637:4: '['
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:696:4: ( '[' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:696:4: '['
             {
             match('['); if (failed) return ;
 
@@ -1668,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:641:4: ( ']' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:641:4: ']'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:700:4: ( ']' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:700:4: ']'
             {
             match(']'); if (failed) return ;
 
@@ -1700,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:645:4: ( '{' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:645: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 ;
 
@@ -1732,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:649:4: ( '}' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:649: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 ;
 
@@ -1764,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:652:9: ( '~' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:652:9: '~'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:711:9: ( '~' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:711:9: '~'
             {
             match('~'); if (failed) return ;
 
@@ -1796,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:656:4: ( '&' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:656: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:715:4: '&'
             {
             match('&'); if (failed) return ;
 
@@ -1828,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:660:4: ( '|' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:660: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:719:4: '|'
             {
             match('|'); if (failed) return ;
 
@@ -1860,12 +1962,12 @@
             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:664:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:664:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:723:4: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:723:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (failed) return ;
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:664:9: ( options {greedy=false; } : . )*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:723:9: ( options {greedy=false; } : . )*
             loop18:
             do {
                 int alt18=2;
@@ -1888,7 +1990,7 @@
 
                 switch (alt18) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:664:35: .
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:723:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1933,7 +2035,7 @@
             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:669:3: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:3: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' )
             int alt19=19;
             switch ( input.LA(1) ) {
             case '!':
@@ -2000,133 +2102,133 @@
             default:
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("668:1: MISC : ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' );", 19, 0, input);
+                    new NoViableAltException("727:1: MISC : ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | ',' | '=' | '/' | '\\'' | '\\\\' | '<' | '>' | '<=' | '>=' );", 19, 0, input);
 
                 throw nvae;
             }
 
             switch (alt19) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:3: '!'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:3: '!'
                     {
                     match('!'); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:9: '@'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:9: '@'
                     {
                     match('@'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:15: '$'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:15: '$'
                     {
                     match('$'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:21: '%'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:21: '%'
                     {
                     match('%'); if (failed) return ;
 
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:27: '^'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:27: '^'
                     {
                     match('^'); if (failed) return ;
 
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:33: '*'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:33: '*'
                     {
                     match('*'); if (failed) return ;
 
                     }
                     break;
                 case 7 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:39: '_'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:39: '_'
                     {
                     match('_'); if (failed) return ;
 
                     }
                     break;
                 case 8 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:45: '-'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:45: '-'
                     {
                     match('-'); if (failed) return ;
 
                     }
                     break;
                 case 9 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:51: '+'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:51: '+'
                     {
                     match('+'); if (failed) return ;
 
                     }
                     break;
                 case 10 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:58: '?'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:58: '?'
                     {
                     match('?'); if (failed) return ;
 
                     }
                     break;
                 case 11 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:64: ','
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:64: ','
                     {
                     match(','); if (failed) return ;
 
                     }
                     break;
                 case 12 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:70: '='
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:70: '='
                     {
                     match('='); if (failed) return ;
 
                     }
                     break;
                 case 13 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:76: '/'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:76: '/'
                     {
                     match('/'); if (failed) return ;
 
                     }
                     break;
                 case 14 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:82: '\\''
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:82: '\\''
                     {
                     match('\''); if (failed) return ;
 
                     }
                     break;
                 case 15 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:669:89: '\\\\'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:728:89: '\\\\'
                     {
                     match('\\'); if (failed) return ;
 
                     }
                     break;
                 case 16 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:3: '<'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:729:3: '<'
                     {
                     match('<'); if (failed) return ;
 
                     }
                     break;
                 case 17 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:9: '>'
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:729:9: '>'
                     {
                     match('>'); if (failed) return ;
 
                     }
                     break;
                 case 18 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:15: '<='
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:729:15: '<='
                     {
                     match("<="); if (failed) return ;
 
@@ -2134,7 +2236,7 @@
                     }
                     break;
                 case 19 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:22: '>='
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:729:22: '>='
                     {
                     match(">="); if (failed) return ;
 
@@ -2168,10 +2270,10 @@
             int _line = getLine();
             int _charPosition = getCharPositionInLine();
             int _channel = Token.DEFAULT_CHANNEL;
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:4: ( ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))* )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733:4: ( ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) ) (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733: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')) ) {
@@ -2183,16 +2285,16 @@
             else {
                 if (backtracking>0) {failed=true; return ;}
                 NoViableAltException nvae =
-                    new NoViableAltException("674:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) )", 20, 0, input);
+                    new NoViableAltException("733:4: ( (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')) | ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')) )", 20, 0, input);
 
                 throw nvae;
             }
             switch (alt20) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:6: ~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$')
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733:5: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733: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();
@@ -2212,10 +2314,10 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
                     {
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:66: '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<')
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733:65: ( '$' ~ ('?'|' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'))
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:733: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') ) {
@@ -2238,7 +2340,7 @@
 
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:675:11: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:734:11: (~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
             loop21:
             do {
                 int alt21=2;
@@ -2250,7 +2352,7 @@
 
                 switch (alt21) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:675:12: ~ (' '|'\\t'|'\\n'|'\\r'|'\"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?')
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:734: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();
@@ -2292,237 +2394,258 @@
     // $ANTLR end SYMBOL
 
     public void mTokens() throws RecognitionException {
-        // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: ( T37 | T38 | T39 | T40 | T41 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | WS | 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=33;
+        // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: ( T39 | T40 | T41 | T42 | T43 | T44 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | 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 alt22=36;
         alt22 = dfa22.predict(input);
         switch (alt22) {
             case 1 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: T37
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: T39
                 {
-                mT37(); if (failed) return ;
+                mT39(); if (failed) return ;
 
                 }
                 break;
             case 2 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:14: T38
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:14: T40
                 {
-                mT38(); if (failed) return ;
+                mT40(); if (failed) return ;
 
                 }
                 break;
             case 3 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:18: T39
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:18: T41
                 {
-                mT39(); if (failed) return ;
+                mT41(); if (failed) return ;
 
                 }
                 break;
             case 4 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:22: T40
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:22: T42
                 {
-                mT40(); if (failed) return ;
+                mT42(); if (failed) return ;
 
                 }
                 break;
             case 5 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:26: T41
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:26: T43
                 {
-                mT41(); if (failed) return ;
+                mT43(); if (failed) return ;
 
                 }
                 break;
             case 6 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:30: DEFRULE
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:30: T44
                 {
-                mDEFRULE(); if (failed) return ;
+                mT44(); if (failed) return ;
 
                 }
                 break;
             case 7 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:38: OR
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:34: DEFRULE
                 {
-                mOR(); if (failed) return ;
+                mDEFRULE(); if (failed) return ;
 
                 }
                 break;
             case 8 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:41: AND
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:42: OR
                 {
-                mAND(); if (failed) return ;
+                mOR(); if (failed) return ;
 
                 }
                 break;
             case 9 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:45: NOT
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:45: AND
                 {
-                mNOT(); if (failed) return ;
+                mAND(); if (failed) return ;
 
                 }
                 break;
             case 10 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:49: EXISTS
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:49: NOT
                 {
-                mEXISTS(); if (failed) return ;
+                mNOT(); if (failed) return ;
 
                 }
                 break;
             case 11 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:56: TEST
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:53: EXISTS
                 {
-                mTEST(); if (failed) return ;
+                mEXISTS(); if (failed) return ;
 
                 }
                 break;
             case 12 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:61: NULL
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:60: TEST
                 {
-                mNULL(); if (failed) return ;
+                mTEST(); if (failed) return ;
 
                 }
                 break;
             case 13 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:66: WS
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:65: NULL
                 {
-                mWS(); if (failed) return ;
+                mNULL(); if (failed) return ;
 
                 }
                 break;
             case 14 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:69: INT
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:70: WS
                 {
-                mINT(); if (failed) return ;
+                mWS(); if (failed) return ;
 
                 }
                 break;
             case 15 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:73: FLOAT
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:73: DECLARE
                 {
-                mFLOAT(); if (failed) return ;
+                mDECLARE(); if (failed) return ;
 
                 }
                 break;
             case 16 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:79: STRING
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:81: SALIENCE
                 {
-                mSTRING(); if (failed) return ;
+                mSALIENCE(); if (failed) return ;
 
                 }
                 break;
             case 17 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:86: BOOL
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:90: INT
                 {
-                mBOOL(); if (failed) return ;
+                mINT(); if (failed) return ;
 
                 }
                 break;
             case 18 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:91: VAR
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:94: FLOAT
                 {
-                mVAR(); if (failed) return ;
+                mFLOAT(); if (failed) return ;
 
                 }
                 break;
             case 19 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:95: ID
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:100: STRING
                 {
-                mID(); if (failed) return ;
+                mSTRING(); if (failed) return ;
 
                 }
                 break;
             case 20 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:98: SH_STYLE_SINGLE_LINE_COMMENT
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:107: BOOL
                 {
-                mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+                mBOOL(); if (failed) return ;
 
                 }
                 break;
             case 21 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:127: C_STYLE_SINGLE_LINE_COMMENT
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:112: VAR
                 {
-                mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+                mVAR(); if (failed) return ;
 
                 }
                 break;
             case 22 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:155: LEFT_PAREN
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:116: ID
                 {
-                mLEFT_PAREN(); if (failed) return ;
+                mID(); if (failed) return ;
 
                 }
                 break;
             case 23 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:166: RIGHT_PAREN
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:119: SH_STYLE_SINGLE_LINE_COMMENT
                 {
-                mRIGHT_PAREN(); if (failed) return ;
+                mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 24 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:178: LEFT_SQUARE
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:148: C_STYLE_SINGLE_LINE_COMMENT
                 {
-                mLEFT_SQUARE(); if (failed) return ;
+                mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 25 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:190: RIGHT_SQUARE
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:176: LEFT_PAREN
                 {
-                mRIGHT_SQUARE(); if (failed) return ;
+                mLEFT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 26 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:203: LEFT_CURLY
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:187: RIGHT_PAREN
                 {
-                mLEFT_CURLY(); if (failed) return ;
+                mRIGHT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 27 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:214: RIGHT_CURLY
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:199: LEFT_SQUARE
                 {
-                mRIGHT_CURLY(); if (failed) return ;
+                mLEFT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 28 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:226: TILDE
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:211: RIGHT_SQUARE
                 {
-                mTILDE(); if (failed) return ;
+                mRIGHT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 29 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:232: AMPERSAND
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:224: LEFT_CURLY
                 {
-                mAMPERSAND(); if (failed) return ;
+                mLEFT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 30 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:242: PIPE
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:235: RIGHT_CURLY
                 {
-                mPIPE(); if (failed) return ;
+                mRIGHT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 31 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:247: MULTI_LINE_COMMENT
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:247: TILDE
                 {
-                mMULTI_LINE_COMMENT(); if (failed) return ;
+                mTILDE(); if (failed) return ;
 
                 }
                 break;
             case 32 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:266: MISC
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:253: AMPERSAND
                 {
-                mMISC(); if (failed) return ;
+                mAMPERSAND(); if (failed) return ;
 
                 }
                 break;
             case 33 :
-                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:271: SYMBOL
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:263: PIPE
                 {
+                mPIPE(); if (failed) return ;
+
+                }
+                break;
+            case 34 :
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:268: MULTI_LINE_COMMENT
+                {
+                mMULTI_LINE_COMMENT(); if (failed) return ;
+
+                }
+                break;
+            case 35 :
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:287: MISC
+                {
+                mMISC(); if (failed) return ;
+
+                }
+                break;
+            case 36 :
+                // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:292: SYMBOL
+                {
                 mSYMBOL(); if (failed) return ;
 
                 }
@@ -2535,404 +2658,464 @@
 
     protected DFA22 dfa22 = new DFA22(this);
     public static final String DFA22_eotS =
-        "\2\uffff\1\56\1\57\1\60\7\63\1\uffff\1\14\1\56\1\76\1\uffff\1\56"+
-        "\1\63\1\56\1\63\1\53\1\56\2\uffff\1\111\1\112\1\113\1\114\3\uffff"+
-        "\2\56\1\63\3\56\1\63\4\56\1\uffff\1\116\1\56\3\uffff\2\63\1\uffff"+
-        "\1\63\1\121\6\63\1\76\1\53\1\uffff\2\53\1\20\1\63\1\uffff\1\63\1"+
-        "\53\1\uffff\2\53\4\uffff\1\56\1\uffff\2\63\1\uffff\1\145\1\146\4"+
-        "\63\1\153\4\53\1\63\2\53\2\uffff\1\53\2\63\2\uffff\1\163\1\63\1"+
-        "\165\1\166\1\uffff\3\53\1\63\1\140\2\63\1\uffff\1\63\2\uffff\2\53"+
-        "\1\166\1\176\1\63\1\u0080\1\53\1\uffff\1\u0082\1\uffff\1\53\1\uffff";
+        "\2\uffff\1\56\1\61\1\62\7\65\1\uffff\1\14\1\65\1\61\1\101\1\uffff"+
+        "\1\61\1\65\1\61\1\65\1\54\1\61\2\uffff\1\114\1\115\1\116\1\117\3"+
+        "\uffff\2\61\1\65\3\61\1\65\4\61\1\uffff\1\121\1\uffff\1\122\1\61"+
+        "\2\uffff\2\65\1\uffff\1\65\1\126\7\65\1\101\1\54\1\uffff\2\54\1"+
+        "\21\1\65\1\uffff\1\65\1\uffff\3\54\4\uffff\1\61\2\uffff\3\65\1\uffff"+
+        "\1\154\1\155\5\65\1\163\4\54\1\65\2\54\2\uffff\1\54\3\65\2\uffff"+
+        "\1\174\1\65\1\176\1\177\1\65\1\uffff\3\54\1\65\1\146\3\65\1\uffff"+
+        "\1\65\2\uffff\1\65\2\54\1\176\1\u008a\2\65\1\u008d\1\65\1\54\1\uffff"+
+        "\1\u0090\1\u0091\1\uffff\1\65\1\54\2\uffff\1\u0093\1\uffff";
     public static final String DFA22_eofS =
-        "\u0083\uffff";
+        "\u0094\uffff";
     public static final String DFA22_minS =
-        "\1\0\1\uffff\12\0\1\uffff\3\0\1\uffff\2\0\1\44\3\0\2\uffff\4\0\3"+
-        "\uffff\13\0\1\uffff\2\0\3\uffff\2\0\1\uffff\11\0\1\60\1\uffff\1"+
-        "\42\3\0\1\uffff\2\0\1\uffff\2\0\4\uffff\1\0\1\uffff\2\0\1\uffff"+
-        "\10\0\1\60\5\0\2\uffff\3\0\2\uffff\4\0\1\uffff\1\60\6\0\1\uffff"+
-        "\1\0\2\uffff\1\60\5\0\1\60\1\uffff\1\0\1\uffff\1\0\1\uffff";
+        "\1\0\1\uffff\12\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\12\0\1\60"+
+        "\1\uffff\1\42\3\0\1\uffff\1\0\1\uffff\3\0\4\uffff\1\0\2\uffff\3"+
+        "\0\1\uffff\11\0\1\60\5\0\2\uffff\4\0\2\uffff\5\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 DFA22_maxS =
-        "\1\ufffe\1\uffff\12\ufffe\1\uffff\3\ufffe\1\uffff\2\ufffe\1\u00ff"+
-        "\3\ufffe\2\uffff\4\ufffe\3\uffff\13\ufffe\1\uffff\2\ufffe\3\uffff"+
-        "\2\ufffe\1\uffff\11\ufffe\1\71\1\uffff\1\165\3\ufffe\1\uffff\2\ufffe"+
-        "\1\uffff\2\ufffe\4\uffff\1\ufffe\1\uffff\2\ufffe\1\uffff\10\ufffe"+
-        "\1\146\5\ufffe\2\uffff\3\ufffe\2\uffff\4\ufffe\1\uffff\1\146\6\ufffe"+
-        "\1\uffff\1\ufffe\2\uffff\1\146\5\ufffe\1\146\1\uffff\1\ufffe\1\uffff"+
-        "\1\ufffe\1\uffff";
+        "\1\ufffe\1\uffff\12\ufffe\1\uffff\4\ufffe\1\uffff\2\ufffe\1\u00ff"+
+        "\3\ufffe\2\uffff\4\ufffe\3\uffff\13\ufffe\1\uffff\1\ufffe\1\uffff"+
+        "\2\ufffe\2\uffff\2\ufffe\1\uffff\12\ufffe\1\71\1\uffff\1\165\3\ufffe"+
+        "\1\uffff\1\ufffe\1\uffff\3\ufffe\4\uffff\1\ufffe\2\uffff\3\ufffe"+
+        "\1\uffff\11\ufffe\1\146\5\ufffe\2\uffff\4\ufffe\2\uffff\5\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 DFA22_acceptS =
-        "\1\uffff\1\1\12\uffff\1\15\3\uffff\1\20\6\uffff\1\26\1\27\4\uffff"+
-        "\1\34\1\35\1\36\13\uffff\1\41\2\uffff\1\40\1\3\1\4\2\uffff\1\23"+
-        "\12\uffff\1\16\4\uffff\1\22\2\uffff\1\24\2\uffff\1\30\1\31\1\32"+
-        "\1\33\1\uffff\1\2\2\uffff\1\7\16\uffff\1\37\1\25\3\uffff\1\10\1"+
-        "\11\4\uffff\1\17\7\uffff\1\14\1\uffff\1\13\1\21\7\uffff\1\5\1\uffff"+
-        "\1\12\1\uffff\1\6";
+        "\1\uffff\1\1\12\uffff\1\16\4\uffff\1\23\6\uffff\1\31\1\32\4\uffff"+
+        "\1\37\1\40\1\41\13\uffff\1\44\1\uffff\1\5\2\uffff\1\43\1\4\2\uffff"+
+        "\1\26\13\uffff\1\21\4\uffff\1\25\1\uffff\1\27\3\uffff\1\33\1\34"+
+        "\1\35\1\36\1\uffff\1\2\1\3\3\uffff\1\10\17\uffff\1\42\1\30\4\uffff"+
+        "\1\11\1\12\5\uffff\1\22\10\uffff\1\15\1\uffff\1\24\1\14\12\uffff"+
+        "\1\6\2\uffff\1\13\2\uffff\1\17\1\7\1\uffff\1\20";
     public static final String DFA22_specialS =
-        "\u0083\uffff}>";
+        "\u0094\uffff}>";
     public static final String[] DFA22_transition = {
-        "\11\53\2\14\1\53\1\15\1\14\22\53\1\14\1\40\1\20\1\25\1\24\1\43\1"+
-        "\36\1\21\1\27\1\30\1\45\1\47\1\50\1\16\1\53\1\26\12\17\1\3\1\1\1"+
-        "\2\1\4\1\52\1\23\1\41\32\46\1\31\1\51\1\32\1\44\1\42\1\53\1\10\2"+
-        "\46\1\6\1\12\1\22\6\46\1\5\1\11\1\7\4\46\1\13\6\46\1\33\1\37\1\34"+
-        "\1\35\101\53\100\46\ufeff\53",
+        "\11\54\2\14\1\54\1\15\1\14\22\54\1\14\1\41\1\21\1\26\1\25\1\44\1"+
+        "\37\1\22\1\30\1\31\1\46\1\50\1\51\1\17\1\54\1\27\12\20\1\4\1\1\1"+
+        "\3\1\2\1\53\1\24\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\23\6\47\1\5\1\11\1\7\3\47\1\16\1\13\6\47\1\34\1\40"+
+        "\1\35\1\36\101\54\100\47\ufeff\54",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\3\53\1\54\15\53\2\uffff\1\55\1\53\1\uffff\74\53\1"+
-        "\uffff\1\53\1\uffff\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\16\62\1\61\13\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\4\62\1\64\25\62\1\53\1\uffff\1\53\1\uffff\101\53\100"+
-        "\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\21\62\1\65\10\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\15\62\1\66\14\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\16\62\1\67\5\62\1\70\5\62\1\53\1\uffff\1\53\1\uffff"+
-        "\101\53\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\27\62\1\71\2\62\1\53\1\uffff\1\53\1\uffff\101\53\100"+
-        "\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\4\62\1\72\14\62\1\73\10\62\1\53\1\uffff\1\53\1\uffff"+
-        "\101\53\100\62\ufeff\53",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\16\64\1\63\13\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\66\25\64\1\54\1\uffff\1\54\1\uffff\101\54\100"+
+        "\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\21\64\1\67\10\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\15\64\1\70\14\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\16\64\1\71\5\64\1\72\5\64\1\54\1\uffff\1\54\1\uffff"+
+        "\101\54\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\27\64\1\73\2\64\1\54\1\uffff\1\54\1\uffff\101\54\100"+
+        "\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\75\14\64\1\74\10\64\1\54\1\uffff\1\54\1\uffff"+
+        "\101\54\100\64\ufeff\54",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\74\1\53\2\uffff\2\53\1\uffff\74\53\1\uffff"+
-        "\1\53\1\uffff\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\4\53\1\75\1\53\12\74\1\53\2\uffff\2\53\1\uffff\74"+
-        "\53\1\uffff\1\53\1\uffff\uff80\53",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\1\76\31\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64"+
+        "\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\77\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\100\1\54\12\77\1\54\2\uffff\2\54\1\uffff\74"+
+        "\54\1\uffff\1\54\1\uffff\uff80\54",
         "",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\21\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20\1\100\1\20"+
-        "\uff80\100",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\1\102\31\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62"+
-        "\ufeff\53",
-        "\1\103\34\uffff\32\103\4\uffff\1\103\1\uffff\32\103\105\uffff\100"+
-        "\103",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\104\1\53\2\uffff\2\53\1\uffff\1\53\32\104"+
-        "\4\53\1\104\1\53\32\104\1\53\1\uffff\1\53\1\uffff\101\53\100\104"+
-        "\ufeff\53",
-        "\11\105\2\106\2\105\1\106\22\105\1\106\1\105\1\106\3\105\1\106\1"+
-        "\105\2\106\21\105\2\106\2\105\1\106\74\105\1\106\1\105\1\106\uff80"+
-        "\105",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\1\107\4\53\1\110\13\53\2\uffff\2\53\1\uffff\74\53"+
-        "\1\uffff\1\53\1\uffff\uff80\53",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\21\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21\1\103\1\21"+
+        "\uff80\103",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\1\105\31\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64"+
+        "\ufeff\54",
+        "\1\106\34\uffff\32\106\4\uffff\1\106\1\uffff\32\106\105\uffff\100"+
+        "\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\107\1\54\2\uffff\2\54\1\uffff\1\54\32\107"+
+        "\4\54\1\107\1\54\32\107\1\54\1\uffff\1\54\1\uffff\101\54\100\107"+
+        "\ufeff\54",
+        "\11\111\2\110\2\111\1\110\22\111\1\110\1\111\1\110\3\111\1\110\1"+
+        "\111\2\110\21\111\2\110\2\111\1\110\74\111\1\110\1\111\1\110\uff80"+
+        "\111",
+        "\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\112\4\54\1\113\13\54\2\uffff\2\54\1\uffff\74\54"+
+        "\1\uffff\1\54\1\uffff\uff80\54",
         "",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
+        "\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\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\1\115\1\53\1\uffff\74\53\1\uffff\1\53"+
-        "\1\uffff\uff80\53",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\120\1\54\1\uffff\74\54\1\uffff\1\54"+
+        "\1\uffff\uff80\54",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
+        "\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\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\3\62\1\117\26\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\3\64\1\123\26\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\5\62\1\120\24\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\3\62\1\122\26\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\23\62\1\123\6\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\13\62\1\124\16\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\10\62\1\125\21\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\22\62\1\126\7\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\24\62\1\127\5\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\4\53\1\75\1\53\12\74\1\53\2\uffff\2\53\1\uffff\74"+
-        "\53\1\uffff\1\53\1\uffff\uff80\53",
-        "\12\130",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\2\64\1\124\2\64\1\125\24\64\1\54\1\uffff\1\54\1\uffff"+
+        "\101\54\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\3\64\1\127\26\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\23\64\1\130\6\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\13\64\1\131\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\10\64\1\132\21\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\24\64\1\133\5\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\22\64\1\134\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\13\64\1\135\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\4\54\1\100\1\54\12\77\1\54\2\uffff\2\54\1\uffff\74"+
+        "\54\1\uffff\1\54\1\uffff\uff80\54",
+        "\12\136",
         "",
-        "\1\20\4\uffff\1\131\10\uffff\4\133\4\134\44\uffff\1\131\5\uffff"+
-        "\1\131\3\uffff\1\131\7\uffff\1\131\3\uffff\1\131\1\uffff\1\131\1"+
-        "\132",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\21\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20\1\100\1\20"+
-        "\uff80\100",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\13\62\1\135\16\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
+        "\1\21\4\uffff\1\137\10\uffff\4\141\4\142\44\uffff\1\137\5\uffff"+
+        "\1\137\3\uffff\1\137\7\uffff\1\137\3\uffff\1\137\1\uffff\1\137\1"+
+        "\140",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\21\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21\1\103\1\21"+
+        "\uff80\103",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\13\64\1\143\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\105\2\106\2\105\1\106\22\105\1\106\1\105\1\106\3\105\1\106\1"+
-        "\105\2\106\21\105\2\106\2\105\1\106\74\105\1\106\1\105\1\106\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
         "",
-        "\11\137\2\140\2\137\1\140\22\137\1\140\1\137\1\140\3\137\1\140\1"+
-        "\137\2\140\1\136\20\137\2\140\2\137\1\140\74\137\1\140\1\137\1\140"+
-        "\uff80\137",
-        "\11\142\2\141\2\142\1\141\22\142\1\141\1\142\1\141\3\142\1\141\1"+
-        "\142\2\141\21\142\2\141\2\142\1\141\74\142\1\141\1\142\1\141\uff80"+
-        "\142",
+        "\11\111\2\110\2\111\1\110\22\111\1\110\1\111\1\110\3\111\1\110\1"+
+        "\111\2\110\21\111\2\110\2\111\1\110\74\111\1\110\1\111\1\110\uff80"+
+        "\111",
+        "\11\145\2\146\2\145\1\146\22\145\1\146\1\145\1\146\3\145\1\146\1"+
+        "\145\2\146\1\144\20\145\2\146\2\145\1\146\74\145\1\146\1\145\1\146"+
+        "\uff80\145",
+        "\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"+
+        "\150",
         "",
         "",
         "",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\21\53\2\uffff\2\53\1\uffff\74\53\1\uffff\1\53\1\uffff"+
-        "\uff80\53",
+        "\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\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\10\62\1\143\21\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\21\62\1\144\10\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\13\62\1\147\16\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\22\62\1\150\7\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\23\62\1\151\6\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\4\62\1\152\25\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\130\1\53\2\uffff\2\53\1\uffff\74\53\1\uffff"+
-        "\1\53\1\uffff\uff80\53",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\21\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20\1\100\1\20"+
-        "\uff80\100",
-        "\12\154\7\uffff\6\154\32\uffff\6\154",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\6\100\10\155\3\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20"+
-        "\1\100\1\20\uff80\100",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\6\100\10\156\3\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20"+
-        "\1\100\1\20\uff80\100",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\22\62\1\157\7\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\137\2\140\2\137\1\140\22\137\1\140\1\137\1\140\3\137\1\140\1"+
-        "\137\2\140\1\136\4\137\1\160\13\137\2\140\2\137\1\140\74\137\1\140"+
-        "\1\137\1\140\uff80\137",
-        "\11\137\2\140\2\137\1\140\22\137\1\140\1\137\1\140\3\137\1\140\1"+
-        "\137\2\140\1\136\20\137\2\140\2\137\1\140\74\137\1\140\1\137\1\140"+
-        "\uff80\137",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\10\64\1\151\21\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\13\64\1\152\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\21\64\1\153\10\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
         "",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\13\64\1\156\16\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\22\64\1\157\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\160\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\23\64\1\161\6\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\10\64\1\162\21\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\136\1\54\2\uffff\2\54\1\uffff\74\54\1\uffff"+
+        "\1\54\1\uffff\uff80\54",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\21\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21\1\103\1\21"+
+        "\uff80\103",
+        "\12\164\7\uffff\6\164\32\uffff\6\164",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\6\103\10\165\3\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21"+
+        "\1\103\1\21\uff80\103",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\6\103\10\166\3\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21"+
+        "\1\103\1\21\uff80\103",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\22\64\1\167\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\145\2\146\2\145\1\146\22\145\1\146\1\145\1\146\3\145\1\146\1"+
+        "\145\2\146\1\144\4\145\1\170\13\145\2\146\2\145\1\146\74\145\1\146"+
+        "\1\145\1\146\uff80\145",
+        "\11\145\2\146\2\145\1\146\22\145\1\146\1\145\1\146\3\145\1\146\1"+
+        "\145\2\146\1\144\20\145\2\146\2\145\1\146\74\145\1\146\1\145\1\146"+
+        "\uff80\145",
         "",
-        "\11\142\2\141\2\142\1\141\22\142\1\141\1\142\1\141\3\142\1\141\1"+
-        "\142\2\141\21\142\2\141\2\142\1\141\74\142\1\141\1\142\1\141\uff80"+
-        "\142",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\5\62\1\161\24\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\24\62\1\162\5\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
         "",
+        "\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"+
+        "\150",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\5\64\1\171\24\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\1\172\31\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64"+
+        "\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\24\64\1\173\5\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\23\62\1\164\6\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
         "",
-        "\12\167\7\uffff\6\167\32\uffff\6\167",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\6\100\10\170\3\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20"+
-        "\1\100\1\20\uff80\100",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\21\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20\1\100\1\20"+
-        "\uff80\100",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\4\62\1\171\25\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\137\2\uffff\2\137\1\uffff\22\137\1\uffff\1\137\1\uffff\3\137"+
-        "\1\uffff\1\137\2\uffff\1\136\20\137\2\uffff\2\137\1\uffff\74\137"+
-        "\1\uffff\1\137\1\uffff\uff80\137",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\30\62\1\172\1\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\13\62\1\173\16\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\23\64\1\175\6\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\u0080\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\22\62\1\174\7\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
+        "\12\u0081\7\uffff\6\u0081\32\uffff\6\u0081",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\6\103\10\u0082\3\103\2\21\2\103\1\21\34\103\1\102\37\103\1"+
+        "\21\1\103\1\21\uff80\103",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\21\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21\1\103\1\21"+
+        "\uff80\103",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\u0083\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\145\2\uffff\2\145\1\uffff\22\145\1\uffff\1\145\1\uffff\3\145"+
+        "\1\uffff\1\145\2\uffff\1\144\20\145\2\uffff\2\145\1\uffff\74\145"+
+        "\1\uffff\1\145\1\uffff\uff80\145",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\30\64\1\u0084\1\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\21\64\1\u0085\10\64\1\54\1\uffff\1\54\1\uffff\101"+
+        "\54\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\13\64\1\u0086\16\64\1\54\1\uffff\1\54\1\uffff\101"+
+        "\54\100\64\ufeff\54",
         "",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\22\64\1\u0087\7\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
         "",
-        "\12\175\7\uffff\6\175\32\uffff\6\175",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\21\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20\1\100\1\20"+
-        "\uff80\100",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\4\62\1\177\25\62\1\53\1\uffff\1\53\1\uffff\101\53"+
-        "\100\62\ufeff\53",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
-        "\12\u0081\7\uffff\6\u0081\32\uffff\6\u0081",
         "",
-        "\11\53\2\uffff\2\53\1\uffff\22\53\1\uffff\1\53\1\uffff\3\53\1\uffff"+
-        "\1\53\2\uffff\6\53\12\62\1\53\2\uffff\2\53\1\uffff\1\53\32\62\4"+
-        "\53\1\62\1\53\32\62\1\53\1\uffff\1\53\1\uffff\101\53\100\62\ufeff"+
-        "\53",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\15\64\1\u0088\14\64\1\54\1\uffff\1\54\1\uffff\101"+
+        "\54\100\64\ufeff\54",
+        "\12\u0089\7\uffff\6\u0089\32\uffff\6\u0089",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\21\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21\1\103\1\21"+
+        "\uff80\103",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\u008b\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\u008c\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\54\2\uffff\2\54\1\uffff\22\54\1\uffff\1\54\1\uffff\3\54\1\uffff"+
+        "\1\54\2\uffff\6\54\12\64\1\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\2\64\1\u008e\27\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\12\u008f\7\uffff\6\u008f\32\uffff\6\u008f",
         "",
-        "\11\100\2\20\2\100\1\20\22\100\1\20\1\100\1\20\3\100\1\20\1\101"+
-        "\2\20\21\100\2\20\2\100\1\20\34\100\1\77\37\100\1\20\1\100\1\20"+
-        "\uff80\100",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
+        "",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\4\64\1\u0092\25\64\1\54\1\uffff\1\54\1\uffff\101\54"+
+        "\100\64\ufeff\54",
+        "\11\103\2\21\2\103\1\21\22\103\1\21\1\103\1\21\3\103\1\21\1\104"+
+        "\2\21\21\103\2\21\2\103\1\21\34\103\1\102\37\103\1\21\1\103\1\21"+
+        "\uff80\103",
+        "",
+        "",
+        "\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\54\2\uffff\2\54\1\uffff\1\54\32\64\4"+
+        "\54\1\64\1\54\32\64\1\54\1\uffff\1\54\1\uffff\101\54\100\64\ufeff"+
+        "\54",
         ""
     };
 
@@ -2953,7 +3136,7 @@
             }
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T37 | T38 | T39 | T40 | T41 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | WS | 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 : ( T39 | T40 | T41 | T42 | T43 | T44 | DEFRULE | OR | AND | NOT | EXISTS | TEST | NULL | 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-14 21:58:42 UTC (rev 10190)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/clp/CLPParser.java	2007-03-14 21:59:47 UTC (rev 10191)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-13 02:48:08
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-03-14 21:57:04
 
 	package org.drools.clp;
 	import java.util.List;
@@ -17,41 +17,43 @@
 
 public class CLPParser extends Parser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LEFT_PAREN", "ID", "RIGHT_PAREN", "AND", "OR", "NOT", "EXISTS", "TEST", "VAR", "AMPERSAND", "PIPE", "TILDE", "STRING", "FLOAT", "INT", "BOOL", "NULL", "MISC", "SYMBOL", "DEFRULE", "EOL", "WS", "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", "ID", "STRING", "RIGHT_PAREN", "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'"
     };
-    public static final int EXISTS=10;
+    public static final int EXISTS=13;
     public static final int LEFT_PAREN=4;
-    public static final int RIGHT_CURLY=35;
-    public static final int BOOL=19;
-    public static final int DEFRULE=23;
-    public static final int HexDigit=27;
-    public static final int WS=25;
-    public static final int MISC=21;
-    public static final int STRING=16;
-    public static final int FLOAT=17;
-    public static final int TILDE=15;
-    public static final int OR=8;
-    public static final int PIPE=14;
-    public static final int VAR=12;
-    public static final int UnicodeEscape=28;
-    public static final int AND=7;
-    public static final int EscapeSequence=26;
-    public static final int INT=18;
+    public static final int RIGHT_CURLY=37;
+    public static final int BOOL=20;
+    public static final int DEFRULE=24;
+    public static final int HexDigit=29;
+    public static final int WS=26;
+    public static final int MISC=22;
+    public static final int STRING=6;
+    public static final int FLOAT=19;
+    public static final int TILDE=18;
+    public static final int OR=11;
+    public static final int PIPE=17;
+    public static final int VAR=15;
+    public static final int UnicodeEscape=30;
+    public static final int AND=10;
+    public static final int EscapeSequence=28;
+    public static final int INT=9;
     public static final int EOF=-1;
-    public static final int EOL=24;
-    public static final int NULL=20;
-    public static final int SYMBOL=22;
-    public static final int LEFT_SQUARE=32;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=30;
-    public static final int OctalEscape=29;
-    public static final int MULTI_LINE_COMMENT=36;
-    public static final int TEST=11;
-    public static final int AMPERSAND=13;
-    public static final int RIGHT_PAREN=6;
-    public static final int NOT=9;
-    public static final int LEFT_CURLY=34;
-    public static final int RIGHT_SQUARE=33;
-    public static final int C_STYLE_SINGLE_LINE_COMMENT=31;
+    public static final int EOL=25;
+    public static final int NULL=21;
+    public static final int SYMBOL=23;
+    public static final int LEFT_SQUARE=34;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=32;
+    public static final int OctalEscape=31;
+    public static final int SALIENCE=8;
+    public static final int MULTI_LINE_COMMENT=38;
+    public static final int TEST=14;
+    public static final int AMPERSAND=16;
+    public static final int DECLARE=27;
+    public static final int RIGHT_PAREN=7;
+    public static final int NOT=12;
+    public static final int LEFT_CURLY=36;
+    public static final int RIGHT_SQUARE=35;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=33;
     public static final int ID=5;
 
         public CLPParser(TokenStream input) {
@@ -222,14 +224,14 @@
             // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:168:4: ( ';' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
-            if ( (LA1_0==37) ) {
+            if ( (LA1_0==39) ) {
                 alt1=1;
             }
             switch (alt1) {
                 case 1 :
                     // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:168:4: ';'
                     {
-                    match(input,37,FOLLOW_37_in_opt_semicolon38); 
+                    match(input,39,FOLLOW_39_in_opt_semicolon38); 
 
                     }
                     break;
@@ -252,29 +254,51 @@
 
 
     // $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' ruleName= ID ( lhs[lhs] )* ( function[context] )* RIGHT_PAREN ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:210:1: rule returns [RuleDescr rule] : loc= LEFT_PAREN 'defrule' (d= agenda_group )? ruleName= ID documentation= STRING ( ruleAttribute[rule] )* ( lhs[lhs] )* rhs[rule] RIGHT_PAREN ;
     public RuleDescr rule() throws RecognitionException {
         RuleDescr rule = null;
 
         Token loc=null;
         Token ruleName=null;
+        Token documentation=null;
+        AttributeDescr d = null;
 
+
          
         	        rule = null; 
         	        AndDescr lhs = null;
-        	        ColumnDescr colum = null;
-        	        ExecutionEngine engine = new BlockExecutionEngine();
-        			ExecutionBuildContext context = new ExecutionBuildContext( engine );  	        
+        	        ColumnDescr colum = null;	        
         	      
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:218:4: (loc= LEFT_PAREN 'defrule' ruleName= ID ( lhs[lhs] )* ( function[context] )* RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:218:4: loc= LEFT_PAREN 'defrule' ruleName= ID ( lhs[lhs] )* ( function[context] )* RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:216:4: (loc= LEFT_PAREN 'defrule' (d= 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' (d= 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_rule66); 
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:217:3: (d= agenda_group )?
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+            if ( (LA2_0==SALIENCE) ) {
+                alt2=1;
+            }
+            switch (alt2) {
+                case 1 :
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:217:5: d= agenda_group
+                    {
+                    pushFollow(FOLLOW_agenda_group_in_rule76);
+                    d=agenda_group();
+                    _fsp--;
+
+                      rule.addAttribute( d ); 
+
+                    }
+                    break;
+
+            }
+
             ruleName=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_rule74); 
+            match(input,ID,FOLLOW_ID_in_rule92); 
              
             	  		debug( "start rule: " + ruleName.getText() );
             	        rule = new RuleDescr( ruleName.getText(), null ); 
@@ -286,18 +310,33 @@
               	        rule.setLhs( lhs ); 
                	        lhs.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
             			lhs.setStartCharacter( ((CommonToken)loc).getStartIndex() );				
-            	  
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:232:4: ( lhs[lhs] )*
-            loop2:
+            		
+            documentation=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_rule105); 
+            
+            	    	// do nothing here for now
+            		
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:235:3: ( ruleAttribute[rule] )*
+            loop3:
             do {
-                int alt2=2;
-                alt2 = dfa2.predict(input);
-                switch (alt2) {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+                if ( (LA3_0==LEFT_PAREN) ) {
+                    int LA3_1 = input.LA(2);
+                    if ( (LA3_1==DECLARE) ) {
+                        alt3=1;
+                    }
+
+
+                }
+
+
+                switch (alt3) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:232:4: lhs[lhs]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:235:3: ruleAttribute[rule]
             	    {
-            	    pushFollow(FOLLOW_lhs_in_rule85);
-            	    lhs(lhs);
+            	    pushFollow(FOLLOW_ruleAttribute_in_rule111);
+            	    ruleAttribute(rule);
             	    _fsp--;
 
 
@@ -305,26 +344,26 @@
             	    break;
 
             	default :
-            	    break loop2;
+            	    break loop3;
                 }
             } while (true);
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:233:4: ( function[context] )*
-            loop3:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:237:3: ( lhs[lhs] )*
+            loop4:
             do {
-                int alt3=2;
-                int LA3_0 = input.LA(1);
-                if ( (LA3_0==LEFT_PAREN) ) {
-                    alt3=1;
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+                if ( (LA4_0==LEFT_PAREN||LA4_0==VAR) ) {
+                    alt4=1;
                 }
 
 
-                switch (alt3) {
+                switch (alt4) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:233:4: function[context]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:237:3: lhs[lhs]
             	    {
-            	    pushFollow(FOLLOW_function_in_rule92);
-            	    function(context);
+            	    pushFollow(FOLLOW_lhs_in_rule120);
+            	    lhs(lhs);
             	    _fsp--;
 
 
@@ -332,13 +371,16 @@
             	    break;
 
             	default :
-            	    break loop3;
+            	    break loop4;
                 }
             } while (true);
 
-             rule.setConsequence( engine ); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_rule101); 
+            pushFollow(FOLLOW_rhs_in_rule129);
+            rhs(rule);
+            _fsp--;
 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_rule137); 
+
             }
 
         }
@@ -353,58 +395,173 @@
     // $ANTLR end rule
 
 
+    // $ANTLR start ruleAttribute
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:244: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:246: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:246:3: LEFT_PAREN 'declare' LEFT_PAREN d= salience RIGHT_PAREN RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute151); 
+            match(input,DECLARE,FOLLOW_DECLARE_in_ruleAttribute153); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute158); 
+            pushFollow(FOLLOW_salience_in_ruleAttribute162);
+            d=salience();
+            _fsp--;
+
+             rule.addAttribute( d ); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute169); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute173); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end ruleAttribute
+
+
+    // $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 ] : loc= SALIENCE i= INT ;
+    public AttributeDescr agenda_group() throws RecognitionException {
+        AttributeDescr d = null;
+
+        Token loc=null;
+        Token i=null;
+
+        
+        		d = null;
+        	
+        try {
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:257:3: (loc= SALIENCE i= INT )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:257:3: loc= SALIENCE i= INT
+            {
+            loc=(Token)input.LT(1);
+            match(input,SALIENCE,FOLLOW_SALIENCE_in_agenda_group198); 
+            i=(Token)input.LT(1);
+            match(input,INT,FOLLOW_INT_in_agenda_group202); 
+            
+            			d = new AttributeDescr( "agenda-group", i.getText() );
+            			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+            			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+            			d.setEndCharacter( ((CommonToken)i).getStopIndex() );
+            		
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return d;
+    }
+    // $ANTLR end agenda_group
+
+
+    // $ANTLR start salience
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:266:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
+    public AttributeDescr salience() throws RecognitionException {
+        AttributeDescr d = null;
+
+        Token loc=null;
+        Token i=null;
+
+        
+        		d = null;
+        	
+        try {
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:271:3: (loc= SALIENCE i= INT )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:271:3: loc= SALIENCE i= INT
+            {
+            loc=(Token)input.LT(1);
+            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience237); 
+            i=(Token)input.LT(1);
+            match(input,INT,FOLLOW_INT_in_salience241); 
+            
+            			d = new AttributeDescr( "salience", i.getText() );
+            			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+            			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+            			d.setEndCharacter( ((CommonToken)i).getStopIndex() );
+            		
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return d;
+    }
+    // $ANTLR end salience
+
+
     // $ANTLR start lhs
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:239: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:281: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:240: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:240: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:282: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:282: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:240:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )
-            int alt4=7;
-            int LA4_0 = input.LA(1);
-            if ( (LA4_0==LEFT_PAREN) ) {
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:282: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) ) {
                 switch ( input.LA(2) ) {
+                case OR:
+                    alt5=2;
+                    break;
                 case AND:
-                    alt4=1;
+                    alt5=1;
                     break;
-                case ID:
-                    alt4=6;
-                    break;
                 case NOT:
-                    alt4=3;
+                    alt5=3;
                     break;
                 case TEST:
-                    alt4=5;
+                    alt5=5;
                     break;
-                case OR:
-                    alt4=2;
-                    break;
                 case EXISTS:
-                    alt4=4;
+                    alt5=4;
                     break;
+                case ID:
+                    alt5=6;
+                    break;
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("240:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 4, 1, input);
+                        new NoViableAltException("282:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 5, 1, input);
 
                     throw nvae;
                 }
 
             }
-            else if ( (LA4_0==VAR) ) {
-                alt4=7;
+            else if ( (LA5_0==VAR) ) {
+                alt5=7;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("240:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 4, 0, input);
+                    new NoViableAltException("282:4: ( and_ce[in_ce] | or_ce[in_ce] | not_ce[in_ce] | exists_ce[in_ce] | eval_ce[in_ce] | normal_pattern[in_ce] | bound_pattern[in_ce] )", 5, 0, input);
 
                 throw nvae;
             }
-            switch (alt4) {
+            switch (alt5) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:240:8: and_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:282:8: and_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_and_ce_in_lhs120);
+                    pushFollow(FOLLOW_and_ce_in_lhs268);
                     and_ce(in_ce);
                     _fsp--;
 
@@ -412,9 +569,9 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:241:7: or_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:283:7: or_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_or_ce_in_lhs130);
+                    pushFollow(FOLLOW_or_ce_in_lhs278);
                     or_ce(in_ce);
                     _fsp--;
 
@@ -422,9 +579,9 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:242:7: not_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:284:7: not_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_not_ce_in_lhs139);
+                    pushFollow(FOLLOW_not_ce_in_lhs287);
                     not_ce(in_ce);
                     _fsp--;
 
@@ -432,9 +589,9 @@
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:243:7: exists_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:285:7: exists_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_exists_ce_in_lhs148);
+                    pushFollow(FOLLOW_exists_ce_in_lhs296);
                     exists_ce(in_ce);
                     _fsp--;
 
@@ -442,9 +599,9 @@
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:244:8: eval_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:286:8: eval_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_eval_ce_in_lhs162);
+                    pushFollow(FOLLOW_eval_ce_in_lhs310);
                     eval_ce(in_ce);
                     _fsp--;
 
@@ -452,9 +609,9 @@
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:245:7: normal_pattern[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:287:7: normal_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_normal_pattern_in_lhs176);
+                    pushFollow(FOLLOW_normal_pattern_in_lhs324);
                     normal_pattern(in_ce);
                     _fsp--;
 
@@ -462,9 +619,9 @@
                     }
                     break;
                 case 7 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:246:7: bound_pattern[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:288:7: bound_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_bound_pattern_in_lhs185);
+                    pushFollow(FOLLOW_bound_pattern_in_lhs333);
                     bound_pattern(in_ce);
                     _fsp--;
 
@@ -489,39 +646,94 @@
     // $ANTLR end lhs
 
 
+    // $ANTLR start rhs
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:292: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:299:3: ( '=>' ( function[context] )* )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:299:3: '=>' ( function[context] )*
+            {
+            match(input,40,FOLLOW_40_in_rhs360); 
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:300:4: ( function[context] )*
+            loop6:
+            do {
+                int alt6=2;
+                int LA6_0 = input.LA(1);
+                if ( (LA6_0==LEFT_PAREN) ) {
+                    alt6=1;
+                }
+
+
+                switch (alt6) {
+            	case 1 :
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:300:4: function[context]
+            	    {
+            	    pushFollow(FOLLOW_function_in_rhs365);
+            	    function(context);
+            	    _fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop6;
+                }
+            } while (true);
+
+             rule.setConsequence( engine ); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end rhs
+
+
     // $ANTLR start ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:250: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:303: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:251: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:251: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:304: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:304: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:251: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 alt5=6;
-            int LA5_0 = input.LA(1);
-            if ( (LA5_0==LEFT_PAREN) ) {
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:304: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) ) {
                 switch ( input.LA(2) ) {
-                case NOT:
-                    alt5=3;
+                case EXISTS:
+                    alt7=4;
                     break;
-                case ID:
-                    alt5=6;
+                case TEST:
+                    alt7=5;
                     break;
-                case AND:
-                    alt5=1;
-                    break;
                 case OR:
-                    alt5=2;
+                    alt7=2;
                     break;
-                case EXISTS:
-                    alt5=4;
+                case NOT:
+                    alt7=3;
                     break;
-                case TEST:
-                    alt5=5;
+                case AND:
+                    alt7=1;
                     break;
+                case ID:
+                    alt7=6;
+                    break;
                 default:
                     NoViableAltException nvae =
-                        new NoViableAltException("251: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] )", 5, 1, input);
+                        new NoViableAltException("304: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;
                 }
@@ -529,15 +741,15 @@
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("251: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] )", 5, 0, input);
+                    new NoViableAltException("304: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 (alt5) {
+            switch (alt7) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:251:8: and_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:304:8: and_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_and_ce_in_ce207);
+                    pushFollow(FOLLOW_and_ce_in_ce389);
                     and_ce(in_ce);
                     _fsp--;
 
@@ -545,9 +757,9 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:252:10: or_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:305:10: or_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_or_ce_in_ce220);
+                    pushFollow(FOLLOW_or_ce_in_ce402);
                     or_ce(in_ce);
                     _fsp--;
 
@@ -555,9 +767,9 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:253:7: not_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:306:7: not_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_not_ce_in_ce229);
+                    pushFollow(FOLLOW_not_ce_in_ce411);
                     not_ce(in_ce);
                     _fsp--;
 
@@ -565,9 +777,9 @@
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:254:7: exists_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:307:7: exists_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_exists_ce_in_ce238);
+                    pushFollow(FOLLOW_exists_ce_in_ce420);
                     exists_ce(in_ce);
                     _fsp--;
 
@@ -575,9 +787,9 @@
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:255:8: eval_ce[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:308:8: eval_ce[in_ce]
                     {
-                    pushFollow(FOLLOW_eval_ce_in_ce252);
+                    pushFollow(FOLLOW_eval_ce_in_ce434);
                     eval_ce(in_ce);
                     _fsp--;
 
@@ -585,9 +797,9 @@
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:256:10: normal_pattern[in_ce]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:309:10: normal_pattern[in_ce]
                     {
-                    pushFollow(FOLLOW_normal_pattern_in_ce276);
+                    pushFollow(FOLLOW_normal_pattern_in_ce458);
                     normal_pattern(in_ce);
                     _fsp--;
 
@@ -613,36 +825,36 @@
 
 
     // $ANTLR start and_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:261: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:314: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:265:4: ( LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:265:4: LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:318:4: ( LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:318:4: LEFT_PAREN AND ( ce[andDescr] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce308); 
-            match(input,AND,FOLLOW_AND_in_and_ce313); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce490); 
+            match(input,AND,FOLLOW_AND_in_and_ce495); 
             
             	    	andDescr = new AndDescr();
             			in_ce.addDescr( andDescr );
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:270:3: ( ce[andDescr] )*
-            loop6:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:323:3: ( ce[andDescr] )*
+            loop8:
             do {
-                int alt6=2;
-                int LA6_0 = input.LA(1);
-                if ( (LA6_0==LEFT_PAREN) ) {
-                    alt6=1;
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+                if ( (LA8_0==LEFT_PAREN) ) {
+                    alt8=1;
                 }
 
 
-                switch (alt6) {
+                switch (alt8) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:270:3: ce[andDescr]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:323:3: ce[andDescr]
             	    {
-            	    pushFollow(FOLLOW_ce_in_and_ce319);
+            	    pushFollow(FOLLOW_ce_in_and_ce501);
             	    ce(andDescr);
             	    _fsp--;
 
@@ -651,11 +863,11 @@
             	    break;
 
             	default :
-            	    break loop6;
+            	    break loop8;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_and_ce328); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_and_ce510); 
 
             }
 
@@ -672,36 +884,36 @@
 
 
     // $ANTLR start or_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:274: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:327: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:278:4: ( LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:278:4: LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:331:4: ( LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:331:4: LEFT_PAREN OR ( ce[orDescr] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce356); 
-            match(input,OR,FOLLOW_OR_in_or_ce361); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce538); 
+            match(input,OR,FOLLOW_OR_in_or_ce543); 
             
             	    	orDescr = new OrDescr();
             			in_ce.addDescr( orDescr );
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:283:3: ( ce[orDescr] )*
-            loop7:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:336:3: ( ce[orDescr] )*
+            loop9:
             do {
-                int alt7=2;
-                int LA7_0 = input.LA(1);
-                if ( (LA7_0==LEFT_PAREN) ) {
-                    alt7=1;
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+                if ( (LA9_0==LEFT_PAREN) ) {
+                    alt9=1;
                 }
 
 
-                switch (alt7) {
+                switch (alt9) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:283:3: ce[orDescr]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:336:3: ce[orDescr]
             	    {
-            	    pushFollow(FOLLOW_ce_in_or_ce367);
+            	    pushFollow(FOLLOW_ce_in_or_ce549);
             	    ce(orDescr);
             	    _fsp--;
 
@@ -710,11 +922,11 @@
             	    break;
 
             	default :
-            	    break loop7;
+            	    break loop9;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_or_ce376); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_or_ce558); 
 
             }
 
@@ -731,32 +943,32 @@
 
 
     // $ANTLR start not_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:287: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:340: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:291:4: ( LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:291:4: LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:344:4: ( LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:344:4: LEFT_PAREN NOT ( ce[notDescr] )? RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce404); 
-            match(input,NOT,FOLLOW_NOT_in_not_ce409); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce586); 
+            match(input,NOT,FOLLOW_NOT_in_not_ce591); 
             
             			notDescr = new NotDescr();
             		    in_ce.addDescr( notDescr );
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:296:3: ( ce[notDescr] )?
-            int alt8=2;
-            int LA8_0 = input.LA(1);
-            if ( (LA8_0==LEFT_PAREN) ) {
-                alt8=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:349:3: ( ce[notDescr] )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+            if ( (LA10_0==LEFT_PAREN) ) {
+                alt10=1;
             }
-            switch (alt8) {
+            switch (alt10) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:296:3: ce[notDescr]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:349:3: ce[notDescr]
                     {
-                    pushFollow(FOLLOW_ce_in_not_ce415);
+                    pushFollow(FOLLOW_ce_in_not_ce597);
                     ce(notDescr);
                     _fsp--;
 
@@ -766,7 +978,7 @@
 
             }
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_not_ce424); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_not_ce606); 
 
             }
 
@@ -783,32 +995,32 @@
 
 
     // $ANTLR start exists_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:300: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:353: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:304:4: ( LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:304:4: LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:357:4: ( LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:357:4: LEFT_PAREN EXISTS ( ce[existsDescr] )? RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce453); 
-            match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce458); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce635); 
+            match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce640); 
             
             		    existsDescr = new ExistsDescr();
             		    in_ce.addDescr( existsDescr );
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:309:3: ( ce[existsDescr] )?
-            int alt9=2;
-            int LA9_0 = input.LA(1);
-            if ( (LA9_0==LEFT_PAREN) ) {
-                alt9=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:362:3: ( ce[existsDescr] )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+            if ( (LA11_0==LEFT_PAREN) ) {
+                alt11=1;
             }
-            switch (alt9) {
+            switch (alt11) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:309:3: ce[existsDescr]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:362:3: ce[existsDescr]
                     {
-                    pushFollow(FOLLOW_ce_in_exists_ce464);
+                    pushFollow(FOLLOW_ce_in_exists_ce646);
                     ce(existsDescr);
                     _fsp--;
 
@@ -818,7 +1030,7 @@
 
             }
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_exists_ce473); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_exists_ce655); 
 
             }
 
@@ -835,7 +1047,7 @@
 
 
     // $ANTLR start eval_ce
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:313: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:366: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;    
@@ -843,23 +1055,23 @@
         		ExecutionBuildContext context = new ExecutionBuildContext( engine );   		         
             
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:319:4: ( LEFT_PAREN TEST function[context] RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:319:4: LEFT_PAREN TEST function[context] RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:372:4: ( LEFT_PAREN TEST function[context] RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:372:4: LEFT_PAREN TEST function[context] RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce501); 
-            match(input,TEST,FOLLOW_TEST_in_eval_ce506); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce683); 
+            match(input,TEST,FOLLOW_TEST_in_eval_ce688); 
             
             		    evalDescr = new EvalDescr();
             		    in_ce.addDescr( evalDescr );
             		
-            pushFollow(FOLLOW_function_in_eval_ce512);
+            pushFollow(FOLLOW_function_in_eval_ce694);
             function(context);
             _fsp--;
 
             					
             			evalDescr.setContent( engine );			
             		
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_eval_ce523); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_eval_ce705); 
 
             }
 
@@ -876,7 +1088,7 @@
 
 
     // $ANTLR start normal_pattern
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:330: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:383: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;
 
@@ -884,31 +1096,31 @@
                 ColumnDescr column = null;
             
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:334:4: ( LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:334:4: LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:387:4: ( LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:387:4: LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern551); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern733); 
             name=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_normal_pattern558); 
+            match(input,ID,FOLLOW_ID_in_normal_pattern740); 
             
             			column = new ColumnDescr(name.getText());
             			in_ce.addDescr( column );
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:339:3: ( field_constriant[column] )*
-            loop10:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:392:3: ( field_constriant[column] )*
+            loop12:
             do {
-                int alt10=2;
-                int LA10_0 = input.LA(1);
-                if ( (LA10_0==LEFT_PAREN) ) {
-                    alt10=1;
+                int alt12=2;
+                int LA12_0 = input.LA(1);
+                if ( (LA12_0==LEFT_PAREN) ) {
+                    alt12=1;
                 }
 
 
-                switch (alt10) {
+                switch (alt12) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:339:3: field_constriant[column]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:392:3: field_constriant[column]
             	    {
-            	    pushFollow(FOLLOW_field_constriant_in_normal_pattern564);
+            	    pushFollow(FOLLOW_field_constriant_in_normal_pattern746);
             	    field_constriant(column);
             	    _fsp--;
 
@@ -917,11 +1129,11 @@
             	    break;
 
             	default :
-            	    break loop10;
+            	    break loop12;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_normal_pattern574); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_normal_pattern756); 
 
             }
 
@@ -938,7 +1150,7 @@
 
 
     // $ANTLR start bound_pattern
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:345: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:398: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;
@@ -948,38 +1160,38 @@
                 String identifier = null;
             
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:350: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:350: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:403: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:403:4: var= VAR '<-' LEFT_PAREN name= ID ( field_constriant[column] )* RIGHT_PAREN
             {
             var=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_bound_pattern602); 
+            match(input,VAR,FOLLOW_VAR_in_bound_pattern784); 
             
             			identifier = var.getText();
             		
-            match(input,38,FOLLOW_38_in_bound_pattern608); 
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_bound_pattern613); 
+            match(input,41,FOLLOW_41_in_bound_pattern790); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_bound_pattern795); 
             name=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_bound_pattern620); 
+            match(input,ID,FOLLOW_ID_in_bound_pattern802); 
             
             			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:360:3: ( field_constriant[column] )*
-            loop11:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:413:3: ( field_constriant[column] )*
+            loop13:
             do {
-                int alt11=2;
-                int LA11_0 = input.LA(1);
-                if ( (LA11_0==LEFT_PAREN) ) {
-                    alt11=1;
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+                if ( (LA13_0==LEFT_PAREN) ) {
+                    alt13=1;
                 }
 
 
-                switch (alt11) {
+                switch (alt13) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:3: field_constriant[column]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:413:3: field_constriant[column]
             	    {
-            	    pushFollow(FOLLOW_field_constriant_in_bound_pattern626);
+            	    pushFollow(FOLLOW_field_constriant_in_bound_pattern808);
             	    field_constriant(column);
             	    _fsp--;
 
@@ -988,11 +1200,11 @@
             	    break;
 
             	default :
-            	    break loop11;
+            	    break loop13;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_bound_pattern633); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_bound_pattern815); 
 
             }
 
@@ -1009,7 +1221,7 @@
 
 
     // $ANTLR start field_constriant
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:364: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:417: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;
 
@@ -1020,41 +1232,41 @@
         		String op = "==";
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:371: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:371: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:424: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:424:4: LEFT_PAREN f= ID restriction[fc, column] ( connective[fc] restriction[fc, column] )* RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant661); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant843); 
             f=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_field_constriant668); 
+            match(input,ID,FOLLOW_ID_in_field_constriant850); 
             
             			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_constriant680);
+            pushFollow(FOLLOW_restriction_in_field_constriant862);
             restriction(fc,  column);
             _fsp--;
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:380:3: ( connective[fc] restriction[fc, column] )*
-            loop12:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:433:3: ( connective[fc] restriction[fc, column] )*
+            loop14:
             do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
-                if ( ((LA12_0>=AMPERSAND && LA12_0<=PIPE)) ) {
-                    alt12=1;
+                int alt14=2;
+                int LA14_0 = input.LA(1);
+                if ( ((LA14_0>=AMPERSAND && LA14_0<=PIPE)) ) {
+                    alt14=1;
                 }
 
 
-                switch (alt12) {
+                switch (alt14) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:381:5: connective[fc] restriction[fc, column]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:434:5: connective[fc] restriction[fc, column]
             	    {
-            	    pushFollow(FOLLOW_connective_in_field_constriant692);
+            	    pushFollow(FOLLOW_connective_in_field_constriant874);
             	    connective(fc);
             	    _fsp--;
 
-            	    pushFollow(FOLLOW_restriction_in_field_constriant709);
+            	    pushFollow(FOLLOW_restriction_in_field_constriant891);
             	    restriction(fc,  column);
             	    _fsp--;
 
@@ -1063,11 +1275,11 @@
             	    break;
 
             	default :
-            	    break loop12;
+            	    break loop14;
                 }
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_field_constriant732); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_field_constriant914); 
 
             }
 
@@ -1084,40 +1296,40 @@
 
 
     // $ANTLR start connective
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:387:1: connective[FieldConstraintDescr fc] : ( AMPERSAND | PIPE ) ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:440: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:388:4: ( ( AMPERSAND | PIPE ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:388:4: ( AMPERSAND | PIPE )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:441:4: ( ( AMPERSAND | PIPE ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:441:4: ( AMPERSAND | PIPE )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:388:4: ( AMPERSAND | PIPE )
-            int alt13=2;
-            int LA13_0 = input.LA(1);
-            if ( (LA13_0==AMPERSAND) ) {
-                alt13=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:441:4: ( AMPERSAND | PIPE )
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+            if ( (LA15_0==AMPERSAND) ) {
+                alt15=1;
             }
-            else if ( (LA13_0==PIPE) ) {
-                alt13=2;
+            else if ( (LA15_0==PIPE) ) {
+                alt15=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("388:4: ( AMPERSAND | PIPE )", 13, 0, input);
+                    new NoViableAltException("441:4: ( AMPERSAND | PIPE )", 15, 0, input);
 
                 throw nvae;
             }
-            switch (alt13) {
+            switch (alt15) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:388:6: AMPERSAND
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:441:6: AMPERSAND
                     {
-                    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_connective750); 
+                    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_connective932); 
                      fc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND)); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:389:9: PIPE
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:442:9: PIPE
                     {
-                    match(input,PIPE,FOLLOW_PIPE_in_connective762); 
+                    match(input,PIPE,FOLLOW_PIPE_in_connective944); 
                     fc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR)); 
 
                     }
@@ -1141,7 +1353,7 @@
 
 
     // $ANTLR start restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:393: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:446: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;
 
@@ -1150,20 +1362,20 @@
         			String op = "==";
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:397: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:397: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:450: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:450: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:397:4: ( TILDE )?
-            int alt14=2;
-            int LA14_0 = input.LA(1);
-            if ( (LA14_0==TILDE) ) {
-                alt14=1;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:450:4: ( TILDE )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+            if ( (LA16_0==TILDE) ) {
+                alt16=1;
             }
-            switch (alt14) {
+            switch (alt16) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:397:5: TILDE
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:450:5: TILDE
                     {
-                    match(input,TILDE,FOLLOW_TILDE_in_restriction797); 
+                    match(input,TILDE,FOLLOW_TILDE_in_restriction979); 
                     op = "!=";
 
                     }
@@ -1171,38 +1383,38 @@
 
             }
 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:398:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )
-            int alt15=4;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:451: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 39:
-                alt15=1;
+            case 42:
+                alt17=1;
                 break;
-            case 40:
-                alt15=2;
+            case 43:
+                alt17=2;
                 break;
             case VAR:
-                alt15=3;
+                alt17=3;
                 break;
             case ID:
             case STRING:
+            case INT:
             case FLOAT:
-            case INT:
             case BOOL:
             case NULL:
-                alt15=4;
+                alt17=4;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("398:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )", 15, 0, input);
+                    new NoViableAltException("451:3: ( predicate_constraint[op, column] | return_value_restriction[op, fc] | variable_restriction[op, fc] | lc= literal_restriction )", 17, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt15) {
+            switch (alt17) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:398:6: predicate_constraint[op, column]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:451:6: predicate_constraint[op, column]
                     {
-                    pushFollow(FOLLOW_predicate_constraint_in_restriction814);
+                    pushFollow(FOLLOW_predicate_constraint_in_restriction996);
                     predicate_constraint(op,  column);
                     _fsp--;
 
@@ -1210,9 +1422,9 @@
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:399:11: return_value_restriction[op, fc]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:452:11: return_value_restriction[op, fc]
                     {
-                    pushFollow(FOLLOW_return_value_restriction_in_restriction834);
+                    pushFollow(FOLLOW_return_value_restriction_in_restriction1016);
                     return_value_restriction(op,  fc);
                     _fsp--;
 
@@ -1220,9 +1432,9 @@
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:400:10: variable_restriction[op, fc]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:453:10: variable_restriction[op, fc]
                     {
-                    pushFollow(FOLLOW_variable_restriction_in_restriction846);
+                    pushFollow(FOLLOW_variable_restriction_in_restriction1028);
                     variable_restriction(op,  fc);
                     _fsp--;
 
@@ -1230,9 +1442,9 @@
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:401:12: lc= literal_restriction
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:454:12: lc= literal_restriction
                     {
-                    pushFollow(FOLLOW_literal_restriction_in_restriction862);
+                    pushFollow(FOLLOW_literal_restriction_in_restriction1044);
                     lc=literal_restriction();
                     _fsp--;
 
@@ -1262,18 +1474,18 @@
 
 
     // $ANTLR start predicate_constraint
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:408:1: predicate_constraint[String op, ColumnDescr column] : ':' function[context] ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:461: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:413:4: ( ':' function[context] )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:413:4: ':' function[context]
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:466:4: ( ':' function[context] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:466:4: ':' function[context]
             {
-            match(input,39,FOLLOW_39_in_predicate_constraint904); 
-            pushFollow(FOLLOW_function_in_predicate_constraint908);
+            match(input,42,FOLLOW_42_in_predicate_constraint1086); 
+            pushFollow(FOLLOW_function_in_predicate_constraint1090);
             function(context);
             _fsp--;
 
@@ -1296,18 +1508,18 @@
 
 
     // $ANTLR start return_value_restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:420:1: return_value_restriction[String op, FieldConstraintDescr fc] : '=' function[context] ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:473: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:425:4: ( '=' function[context] )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:425:4: '=' function[context]
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:478:4: ( '=' function[context] )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:478:4: '=' function[context]
             {
-            match(input,40,FOLLOW_40_in_return_value_restriction931); 
-            pushFollow(FOLLOW_function_in_return_value_restriction936);
+            match(input,43,FOLLOW_43_in_return_value_restriction1113); 
+            pushFollow(FOLLOW_function_in_return_value_restriction1118);
             function(context);
             _fsp--;
 
@@ -1330,16 +1542,16 @@
 
 
     // $ANTLR start variable_restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:431:1: variable_restriction[String op, FieldConstraintDescr fc] : var= VAR ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:484: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:432:4: (var= VAR )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:432:4: var= VAR
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:485:4: (var= VAR )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:485:4: var= VAR
             {
             var=(Token)input.LT(1);
-            match(input,VAR,FOLLOW_VAR_in_variable_restriction957); 
+            match(input,VAR,FOLLOW_VAR_in_variable_restriction1139); 
             
             			fc.addRestriction( new VariableRestrictionDescr(op, var.getText()) );
             		
@@ -1359,7 +1571,7 @@
 
 
     // $ANTLR start literal_restriction
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:438:1: literal_restriction returns [String text] : t= literal ;
+    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:491:1: literal_restriction returns [String text] : t= literal ;
     public String literal_restriction() throws RecognitionException {
         String text = null;
 
@@ -1370,10 +1582,10 @@
         		text = null;
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:443:6: (t= literal )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:443:6: t= literal
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:496:6: (t= literal )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:496:6: t= literal
             {
-            pushFollow(FOLLOW_literal_in_literal_restriction990);
+            pushFollow(FOLLOW_literal_in_literal_restriction1172);
             t=literal();
             _fsp--;
 
@@ -1396,7 +1608,7 @@
 
 
     // $ANTLR start function
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:448: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:501: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;
 
@@ -1407,11 +1619,11 @@
         	    FunctionFactory factory = FunctionFactory.getInstance();
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:452: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:452: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:505: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:505:4: LEFT_PAREN name= function_name ( function_params[context, f] )+ RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function1015); 
-            pushFollow(FOLLOW_function_name_in_function1021);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function1197); 
+            pushFollow(FOLLOW_function_name_in_function1203);
             name=function_name();
             _fsp--;
 
@@ -1421,22 +1633,22 @@
             			}
             		  	f = factory.createFunction( name.getText() );		  
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:460:3: ( function_params[context, f] )+
-            int cnt16=0;
-            loop16:
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:513:3: ( function_params[context, f] )+
+            int cnt18=0;
+            loop18:
             do {
-                int alt16=2;
-                int LA16_0 = input.LA(1);
-                if ( ((LA16_0>=LEFT_PAREN && LA16_0<=ID)||LA16_0==VAR||(LA16_0>=STRING && LA16_0<=NULL)) ) {
-                    alt16=1;
+                int alt18=2;
+                int LA18_0 = input.LA(1);
+                if ( ((LA18_0>=LEFT_PAREN && LA18_0<=STRING)||LA18_0==INT||LA18_0==VAR||(LA18_0>=FLOAT && LA18_0<=NULL)) ) {
+                    alt18=1;
                 }
 
 
-                switch (alt16) {
+                switch (alt18) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:460:3: function_params[context, f]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:513:3: function_params[context, f]
             	    {
-            	    pushFollow(FOLLOW_function_params_in_function1034);
+            	    pushFollow(FOLLOW_function_params_in_function1216);
             	    function_params(context,  f);
             	    _fsp--;
 
@@ -1445,15 +1657,15 @@
             	    break;
 
             	default :
-            	    if ( cnt16 >= 1 ) break loop16;
+            	    if ( cnt18 >= 1 ) break loop18;
                         EarlyExitException eee =
-                            new EarlyExitException(16, input);
+                            new EarlyExitException(18, input);
                         throw eee;
                 }
-                cnt16++;
+                cnt18++;
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function1044); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function1226); 
              context.addFunction( f ); 
 
             }
@@ -1471,7 +1683,7 @@
 
 
     // $ANTLR start modify_function
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:466: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:519: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;
 
@@ -1480,27 +1692,27 @@
         		f = factory.createFunction( "modify" );
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:472: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:472: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:525: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:525:3: LEFT_PAREN 'modify' ( slot_name_value_pair[context, f] )+ RIGHT_PAREN
             {
-            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_modify_function1075); 
-            match(input,41,FOLLOW_41_in_modify_function1080); 
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:474:4: ( slot_name_value_pair[context, f] )+
-            int cnt17=0;
-            loop17:
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_modify_function1257); 
+            match(input,44,FOLLOW_44_in_modify_function1262); 
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:527:4: ( slot_name_value_pair[context, f] )+
+            int cnt19=0;
+            loop19:
             do {
-                int alt17=2;
-                int LA17_0 = input.LA(1);
-                if ( (LA17_0==LEFT_PAREN) ) {
-                    alt17=1;
+                int alt19=2;
+                int LA19_0 = input.LA(1);
+                if ( (LA19_0==LEFT_PAREN) ) {
+                    alt19=1;
                 }
 
 
-                switch (alt17) {
+                switch (alt19) {
             	case 1 :
-            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:474:4: slot_name_value_pair[context, f]
+            	    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:527:4: slot_name_value_pair[context, f]
             	    {
-            	    pushFollow(FOLLOW_slot_name_value_pair_in_modify_function1085);
+            	    pushFollow(FOLLOW_slot_name_value_pair_in_modify_function1267);
             	    slot_name_value_pair(context,  f);
             	    _fsp--;
 
@@ -1509,15 +1721,15 @@
             	    break;
 
             	default :
-            	    if ( cnt17 >= 1 ) break loop17;
+            	    if ( cnt19 >= 1 ) break loop19;
                         EarlyExitException eee =
-                            new EarlyExitException(17, input);
+                            new EarlyExitException(19, input);
                         throw eee;
                 }
-                cnt17++;
+                cnt19++;
             } while (true);
 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_modify_function1091); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_modify_function1273); 
 
             }
 
@@ -1534,7 +1746,7 @@
 
 
     // $ANTLR start function_params
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:478: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:531: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;
@@ -1544,111 +1756,111 @@
         		ValueHandler value  =  null;		
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:483: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:483: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:536: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:536: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:483:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )
-            int alt18=8;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:536: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:
-                alt18=1;
+                alt20=1;
                 break;
             case STRING:
-                alt18=2;
+                alt20=2;
                 break;
             case ID:
-                alt18=3;
+                alt20=3;
                 break;
             case FLOAT:
-                alt18=4;
+                alt20=4;
                 break;
             case INT:
-                alt18=5;
+                alt20=5;
                 break;
             case BOOL:
-                alt18=6;
+                alt20=6;
                 break;
             case NULL:
-                alt18=7;
+                alt20=7;
                 break;
             case LEFT_PAREN:
-                alt18=8;
+                alt20=8;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("483:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 18, 0, input);
+                    new NoViableAltException("536:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 20, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt18) {
+            switch (alt20) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:483:6: t= VAR
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:536:6: t= VAR
                     {
                     t=(Token)input.LT(1);
-                    match(input,VAR,FOLLOW_VAR_in_function_params1120); 
+                    match(input,VAR,FOLLOW_VAR_in_function_params1302); 
                      value = context.getVariableValueHandler(t.getText() ); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:484:6: t= STRING
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:537:6: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_function_params1132); 
+                    match(input,STRING,FOLLOW_STRING_in_function_params1314); 
                      value = new ObjectLiteralValue( getString( t ) ); 
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:485:7: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:538:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_function_params1147); 
+                    match(input,ID,FOLLOW_ID_in_function_params1329); 
                      value = new ObjectLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:486:6: t= FLOAT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:539:6: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_function_params1168); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_function_params1350); 
                      value = new DoubleLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:487:6: t= INT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:540:6: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_function_params1183); 
+                    match(input,INT,FOLLOW_INT_in_function_params1365); 
                      value = new LongLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:488:6: t= BOOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:541:6: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_function_params1203); 
+                    match(input,BOOL,FOLLOW_BOOL_in_function_params1385); 
                      value = new BooleanLiteralValue( t.getText() ); 
 
                     }
                     break;
                 case 7 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:489:6: t= NULL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:542:6: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_function_params1225); 
+                    match(input,NULL,FOLLOW_NULL_in_function_params1407); 
                      value = ObjectLiteralValue.NULL; 
 
                     }
                     break;
                 case 8 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:490:6: nf= function[context]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:543:6: nf= function[context]
                     {
-                    pushFollow(FOLLOW_function_in_function_params1241);
+                    pushFollow(FOLLOW_function_in_function_params1423);
                     nf=function(context);
                     _fsp--;
 
@@ -1676,7 +1888,7 @@
 
 
     // $ANTLR start slot_name_value_pair
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:496: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:549: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;
@@ -1688,117 +1900,117 @@
         		String name = null;
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:502: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:502: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:555: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:555: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_pair1283); 
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_slot_name_value_pair1465); 
             id=(Token)input.LT(1);
-            match(input,ID,FOLLOW_ID_in_slot_name_value_pair1289); 
+            match(input,ID,FOLLOW_ID_in_slot_name_value_pair1471); 
             
             			name = id.getText();
             		
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:506:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )
-            int alt19=8;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:559: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:
-                alt19=1;
+                alt21=1;
                 break;
             case STRING:
-                alt19=2;
+                alt21=2;
                 break;
             case ID:
-                alt19=3;
+                alt21=3;
                 break;
             case FLOAT:
-                alt19=4;
+                alt21=4;
                 break;
             case INT:
-                alt19=5;
+                alt21=5;
                 break;
             case BOOL:
-                alt19=6;
+                alt21=6;
                 break;
             case NULL:
-                alt19=7;
+                alt21=7;
                 break;
             case LEFT_PAREN:
-                alt19=8;
+                alt21=8;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("506:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 19, 0, input);
+                    new NoViableAltException("559:3: (t= VAR | t= STRING | t= ID | t= FLOAT | t= INT | t= BOOL | t= NULL | nf= function[context] )", 21, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt19) {
+            switch (alt21) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:506:6: t= VAR
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:559:6: t= VAR
                     {
                     t=(Token)input.LT(1);
-                    match(input,VAR,FOLLOW_VAR_in_slot_name_value_pair1300); 
+                    match(input,VAR,FOLLOW_VAR_in_slot_name_value_pair1482); 
                      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:507:7: t= STRING
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:560:7: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_slot_name_value_pair1318); 
+                    match(input,STRING,FOLLOW_STRING_in_slot_name_value_pair1500); 
                      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:508:7: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:561:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_slot_name_value_pair1333); 
+                    match(input,ID,FOLLOW_ID_in_slot_name_value_pair1515); 
                      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:509:6: t= FLOAT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:562:6: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_slot_name_value_pair1354); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_slot_name_value_pair1536); 
                      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:510:6: t= INT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:563:6: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_slot_name_value_pair1369); 
+                    match(input,INT,FOLLOW_INT_in_slot_name_value_pair1551); 
                      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:511:6: t= BOOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:564:6: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_slot_name_value_pair1389); 
+                    match(input,BOOL,FOLLOW_BOOL_in_slot_name_value_pair1571); 
                      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:512:6: t= NULL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:565:6: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_slot_name_value_pair1411); 
+                    match(input,NULL,FOLLOW_NULL_in_slot_name_value_pair1593); 
                      nameValuePair = new SlotNameValuePair(name, ObjectLiteralValue.NULL ); 
 
                     }
                     break;
                 case 8 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:513:6: nf= function[context]
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:566:6: nf= function[context]
                     {
-                    pushFollow(FOLLOW_function_in_slot_name_value_pair1427);
+                    pushFollow(FOLLOW_function_in_slot_name_value_pair1609);
                     nf=function(context);
                     _fsp--;
 
@@ -1810,7 +2022,7 @@
             }
 
              f.addParameter( nameValuePair ); 
-            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1464); 
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1646); 
 
             }
 
@@ -1827,7 +2039,7 @@
 
 
     // $ANTLR start literal
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:520: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:573: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;
 
@@ -1837,88 +2049,88 @@
         		text = null;
         	
         try {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:524: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:524: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:577: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:577: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:524:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )
-            int alt20=6;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:577:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )
+            int alt22=6;
             switch ( input.LA(1) ) {
             case STRING:
-                alt20=1;
+                alt22=1;
                 break;
             case ID:
-                alt20=2;
+                alt22=2;
                 break;
             case INT:
-                alt20=3;
+                alt22=3;
                 break;
             case FLOAT:
-                alt20=4;
+                alt22=4;
                 break;
             case BOOL:
-                alt20=5;
+                alt22=5;
                 break;
             case NULL:
-                alt20=6;
+                alt22=6;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("524:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )", 20, 0, input);
+                    new NoViableAltException("577:4: (t= STRING | t= ID | t= INT | t= FLOAT | t= BOOL | t= NULL )", 22, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt20) {
+            switch (alt22) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:524:8: t= STRING
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:577:8: t= STRING
                     {
                     t=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_literal1493); 
+                    match(input,STRING,FOLLOW_STRING_in_literal1675); 
                      text = getString( t ); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:525:7: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:578:7: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_literal1506); 
+                    match(input,ID,FOLLOW_ID_in_literal1688); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:526:7: t= INT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:7: t= INT
                     {
                     t=(Token)input.LT(1);
-                    match(input,INT,FOLLOW_INT_in_literal1522); 
+                    match(input,INT,FOLLOW_INT_in_literal1704); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 4 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:527:7: t= FLOAT
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:7: t= FLOAT
                     {
                     t=(Token)input.LT(1);
-                    match(input,FLOAT,FOLLOW_FLOAT_in_literal1537); 
+                    match(input,FLOAT,FOLLOW_FLOAT_in_literal1719); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 5 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:528:7: t= BOOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:581:7: t= BOOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,BOOL,FOLLOW_BOOL_in_literal1550); 
+                    match(input,BOOL,FOLLOW_BOOL_in_literal1732); 
                      text = t.getText(); 
 
                     }
                     break;
                 case 6 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:529:7: t= NULL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:582:7: t= NULL
                     {
                     t=(Token)input.LT(1);
-                    match(input,NULL,FOLLOW_NULL_in_literal1564); 
+                    match(input,NULL,FOLLOW_NULL_in_literal1746); 
                      text = null; 
 
                     }
@@ -1942,57 +2154,57 @@
 
 
     // $ANTLR start function_name
-    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:533: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:586: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:535:2: ( (t= ID | t= MISC | t= SYMBOL ) )
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:535:2: (t= ID | t= MISC | t= SYMBOL )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:2: ( (t= ID | t= MISC | t= SYMBOL ) )
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:2: (t= ID | t= MISC | t= SYMBOL )
             {
-            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:535:2: (t= ID | t= MISC | t= SYMBOL )
-            int alt21=3;
+            // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:2: (t= ID | t= MISC | t= SYMBOL )
+            int alt23=3;
             switch ( input.LA(1) ) {
             case ID:
-                alt21=1;
+                alt23=1;
                 break;
             case MISC:
-                alt21=2;
+                alt23=2;
                 break;
             case SYMBOL:
-                alt21=3;
+                alt23=3;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("535:2: (t= ID | t= MISC | t= SYMBOL )", 21, 0, input);
+                    new NoViableAltException("588:2: (t= ID | t= MISC | t= SYMBOL )", 23, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt21) {
+            switch (alt23) {
                 case 1 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:535:4: t= ID
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:588:4: t= ID
                     {
                     t=(Token)input.LT(1);
-                    match(input,ID,FOLLOW_ID_in_function_name1593); 
+                    match(input,ID,FOLLOW_ID_in_function_name1775); 
 
                     }
                     break;
                 case 2 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:536:4: t= MISC
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:589:4: t= MISC
                     {
                     t=(Token)input.LT(1);
-                    match(input,MISC,FOLLOW_MISC_in_function_name1601); 
+                    match(input,MISC,FOLLOW_MISC_in_function_name1783); 
 
                     }
                     break;
                 case 3 :
-                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:537:4: t= SYMBOL
+                    // C:\\dev\\jbossrules\\trunk\\drools-compiler\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590:4: t= SYMBOL
                     {
                     t=(Token)input.LT(1);
-                    match(input,SYMBOL,FOLLOW_SYMBOL_in_function_name1608); 
+                    match(input,SYMBOL,FOLLOW_SYMBOL_in_function_name1790); 
 
                     }
                     break;
@@ -2017,165 +2229,127 @@
     // $ANTLR end function_name
 
 
-    protected DFA2 dfa2 = new DFA2(this);
-    public static final String DFA2_eotS =
-        "\20\uffff";
-    public static final String DFA2_eofS =
-        "\20\uffff";
-    public static final String DFA2_minS =
-        "\1\4\1\5\2\uffff\1\4\1\5\11\4\1\uffff";
-    public static final String DFA2_maxS =
-        "\1\14\1\26\2\uffff\1\24\1\26\1\50\10\24\1\uffff";
-    public static final String DFA2_acceptS =
-        "\2\uffff\1\2\1\1\13\uffff\1\1";
-    public static final String DFA2_specialS =
-        "\20\uffff}>";
-    public static final String[] DFA2_transition = {
-        "\1\1\1\uffff\1\2\5\uffff\1\3",
-        "\1\4\1\uffff\5\3\11\uffff\2\2",
-        "",
-        "",
-        "\1\5\1\2\1\3\5\uffff\1\2\3\uffff\5\2",
-        "\1\6\17\uffff\2\2",
-        "\1\2\1\11\6\uffff\1\7\2\uffff\1\3\1\10\1\13\1\12\1\14\1\15\22\uffff"+
-        "\2\3",
-        "\2\2\1\16\5\uffff\1\2\2\3\1\uffff\5\2",
-        "\2\2\1\16\5\uffff\1\2\2\3\1\uffff\5\2",
-        "\2\2\1\16\5\uffff\1\2\2\3\1\uffff\5\2",
-        "\2\2\1\16\5\uffff\1\2\2\3\1\uffff\5\2",
-        "\2\2\1\16\5\uffff\1\2\2\3\1\uffff\5\2",
-        "\2\2\1\16\5\uffff\1\2\2\3\1\uffff\5\2",
-        "\2\2\1\16\5\uffff\1\2\2\3\1\uffff\5\2",
-        "\1\5\1\2\1\17\5\uffff\1\2\3\uffff\5\2",
-        ""
-    };
-
-    class DFA2 extends DFA {
-        public DFA2(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 2;
-            this.eot = DFA.unpackEncodedString(DFA2_eotS);
-            this.eof = DFA.unpackEncodedString(DFA2_eofS);
-            this.min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
-            this.max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
-            this.accept = DFA.unpackEncodedString(DFA2_acceptS);
-            this.special = DFA.unpackEncodedString(DFA2_specialS);
-            int numStates = DFA2_transition.length;
-            this.transition = new short[numStates][];
-            for (int i=0; i<numStates; i++) {
-                transition[i] = DFA.unpackEncodedString(DFA2_transition[i]);
-            }
-        }
-        public String getDescription() {
-            return "()* loopback of 232:4: ( lhs[lhs] )*";
-        }
-    }
  
 
-    public static final BitSet FOLLOW_37_in_opt_semicolon38 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_rule64 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_DEFRULE_in_rule66 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_rule74 = new BitSet(new long[]{0x0000000000001050L});
-    public static final BitSet FOLLOW_lhs_in_rule85 = new BitSet(new long[]{0x0000000000001050L});
-    public static final BitSet FOLLOW_function_in_rule92 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_rule101 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_ce_in_lhs120 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_or_ce_in_lhs130 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_ce_in_lhs139 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_exists_ce_in_lhs148 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_eval_ce_in_lhs162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_normal_pattern_in_lhs176 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_bound_pattern_in_lhs185 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_and_ce_in_ce207 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_or_ce_in_ce220 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_not_ce_in_ce229 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_exists_ce_in_ce238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_eval_ce_in_ce252 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_normal_pattern_in_ce276 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_and_ce308 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_AND_in_and_ce313 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_ce_in_and_ce319 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_and_ce328 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_or_ce356 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_OR_in_or_ce361 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_ce_in_or_ce367 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_or_ce376 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_not_ce404 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_NOT_in_not_ce409 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_ce_in_not_ce415 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_not_ce424 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_exists_ce453 = new BitSet(new long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_EXISTS_in_exists_ce458 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_ce_in_exists_ce464 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_exists_ce473 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_eval_ce501 = new BitSet(new long[]{0x0000000000000800L});
-    public static final BitSet FOLLOW_TEST_in_eval_ce506 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_function_in_eval_ce512 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_eval_ce523 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_normal_pattern551 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_normal_pattern558 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_field_constriant_in_normal_pattern564 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_normal_pattern574 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_bound_pattern602 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_38_in_bound_pattern608 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_bound_pattern613 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_bound_pattern620 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_field_constriant_in_bound_pattern626 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_bound_pattern633 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_field_constriant661 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_field_constriant668 = new BitSet(new long[]{0x00000180001F9020L});
-    public static final BitSet FOLLOW_restriction_in_field_constriant680 = new BitSet(new long[]{0x0000000000006040L});
-    public static final BitSet FOLLOW_connective_in_field_constriant692 = new BitSet(new long[]{0x00000180001F9020L});
-    public static final BitSet FOLLOW_restriction_in_field_constriant709 = new BitSet(new long[]{0x0000000000006040L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_field_constriant732 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_AMPERSAND_in_connective750 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_PIPE_in_connective762 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_TILDE_in_restriction797 = new BitSet(new long[]{0x00000180001F1020L});
-    public static final BitSet FOLLOW_predicate_constraint_in_restriction814 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_return_value_restriction_in_restriction834 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_variable_restriction_in_restriction846 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_restriction_in_restriction862 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_39_in_predicate_constraint904 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_function_in_predicate_constraint908 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_return_value_restriction931 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_function_in_return_value_restriction936 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_variable_restriction957 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_literal_in_literal_restriction990 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_function1015 = new BitSet(new long[]{0x0000000000600020L});
-    public static final BitSet FOLLOW_function_name_in_function1021 = new BitSet(new long[]{0x00000000001F1030L});
-    public static final BitSet FOLLOW_function_params_in_function1034 = new BitSet(new long[]{0x00000000001F1070L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_function1044 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_modify_function1075 = new BitSet(new long[]{0x0000020000000000L});
-    public static final BitSet FOLLOW_41_in_modify_function1080 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_slot_name_value_pair_in_modify_function1085 = new BitSet(new long[]{0x0000000000000050L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_modify_function1091 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_VAR_in_function_params1120 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_function_params1132 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_params1147 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_function_params1168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_function_params1183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_function_params1203 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_function_params1225 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_function_in_function_params1241 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_LEFT_PAREN_in_slot_name_value_pair1283 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1289 = new BitSet(new long[]{0x00000000001F1030L});
-    public static final BitSet FOLLOW_VAR_in_slot_name_value_pair1300 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_STRING_in_slot_name_value_pair1318 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1333 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_FLOAT_in_slot_name_value_pair1354 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_INT_in_slot_name_value_pair1369 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_BOOL_in_slot_name_value_pair1389 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_NULL_in_slot_name_value_pair1411 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_function_in_slot_name_value_pair1427 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1464 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_literal1493 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_literal1506 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_INT_in_literal1522 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_FLOAT_in_literal1537 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_BOOL_in_literal1550 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NULL_in_literal1564 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ID_in_function_name1593 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MISC_in_function_name1601 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SYMBOL_in_function_name1608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_39_in_opt_semicolon38 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_rule64 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_DEFRULE_in_rule66 = new BitSet(new long[]{0x0000000000000120L});
+    public static final BitSet FOLLOW_agenda_group_in_rule76 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_rule92 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_STRING_in_rule105 = new BitSet(new long[]{0x0000010000008010L});
+    public static final BitSet FOLLOW_ruleAttribute_in_rule111 = new BitSet(new long[]{0x0000010000008010L});
+    public static final BitSet FOLLOW_lhs_in_rule120 = new BitSet(new long[]{0x0000010000008010L});
+    public static final BitSet FOLLOW_rhs_in_rule129 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_rule137 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute151 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_DECLARE_in_ruleAttribute153 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute158 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_salience_in_ruleAttribute162 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute169 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute173 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_agenda_group198 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_INT_in_agenda_group202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_salience237 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_INT_in_salience241 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_ce_in_lhs268 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_ce_in_lhs278 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_ce_in_lhs287 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_exists_ce_in_lhs296 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_ce_in_lhs310 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_normal_pattern_in_lhs324 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_bound_pattern_in_lhs333 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rhs360 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_function_in_rhs365 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_and_ce_in_ce389 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_ce_in_ce402 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_ce_in_ce411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_exists_ce_in_ce420 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_ce_in_ce434 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_normal_pattern_in_ce458 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_and_ce490 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_AND_in_and_ce495 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_and_ce501 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_and_ce510 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_or_ce538 = new BitSet(new long[]{0x0000000000000800L});
+    public static final BitSet FOLLOW_OR_in_or_ce543 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_or_ce549 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_or_ce558 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_not_ce586 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_NOT_in_not_ce591 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_not_ce597 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_not_ce606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_exists_ce635 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_EXISTS_in_exists_ce640 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_ce_in_exists_ce646 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_exists_ce655 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_eval_ce683 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_TEST_in_eval_ce688 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_function_in_eval_ce694 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_eval_ce705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_normal_pattern733 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_normal_pattern740 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_field_constriant_in_normal_pattern746 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_normal_pattern756 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_bound_pattern784 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_41_in_bound_pattern790 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_bound_pattern795 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_bound_pattern802 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_field_constriant_in_bound_pattern808 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_bound_pattern815 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_field_constriant843 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_field_constriant850 = new BitSet(new long[]{0x00000C00003C8260L});
+    public static final BitSet FOLLOW_restriction_in_field_constriant862 = new BitSet(new long[]{0x0000000000030080L});
+    public static final BitSet FOLLOW_connective_in_field_constriant874 = new BitSet(new long[]{0x00000C00003C8260L});
+    public static final BitSet FOLLOW_restriction_in_field_constriant891 = new BitSet(new long[]{0x0000000000030080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_field_constriant914 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_AMPERSAND_in_connective932 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_PIPE_in_connective944 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_TILDE_in_restriction979 = new BitSet(new long[]{0x00000C0000388260L});
+    public static final BitSet FOLLOW_predicate_constraint_in_restriction996 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_return_value_restriction_in_restriction1016 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variable_restriction_in_restriction1028 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_restriction_in_restriction1044 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_predicate_constraint1086 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_function_in_predicate_constraint1090 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_43_in_return_value_restriction1113 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_function_in_return_value_restriction1118 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_variable_restriction1139 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_in_literal_restriction1172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_function1197 = new BitSet(new long[]{0x0000000000C00020L});
+    public static final BitSet FOLLOW_function_name_in_function1203 = new BitSet(new long[]{0x0000000000388270L});
+    public static final BitSet FOLLOW_function_params_in_function1216 = new BitSet(new long[]{0x00000000003882F0L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_function1226 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_modify_function1257 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_modify_function1262 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_slot_name_value_pair_in_modify_function1267 = new BitSet(new long[]{0x0000000000000090L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_modify_function1273 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_function_params1302 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_function_params1314 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_params1329 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_function_params1350 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_function_params1365 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_function_params1385 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_function_params1407 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_function_in_function_params1423 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_slot_name_value_pair1465 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1471 = new BitSet(new long[]{0x0000000000388270L});
+    public static final BitSet FOLLOW_VAR_in_slot_name_value_pair1482 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_STRING_in_slot_name_value_pair1500 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_ID_in_slot_name_value_pair1515 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_FLOAT_in_slot_name_value_pair1536 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_INT_in_slot_name_value_pair1551 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_BOOL_in_slot_name_value_pair1571 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_NULL_in_slot_name_value_pair1593 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_function_in_slot_name_value_pair1609 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_slot_name_value_pair1646 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal1675 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_literal1688 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal1704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal1719 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal1732 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_literal1746 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ID_in_function_name1775 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MISC_in_function_name1783 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SYMBOL_in_function_name1790 = 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-14 21:58:42 UTC (rev 10190)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/CLP.g	2007-03-14 21:59:47 UTC (rev 10191)
@@ -211,13 +211,13 @@
 	@init { 
 	        rule = null; 
 	        AndDescr lhs = null;
-	        ColumnDescr colum = null;
-	        ExecutionEngine engine = new BlockExecutionEngine();
-			ExecutionBuildContext context = new ExecutionBuildContext( engine );  	        
+	        ColumnDescr colum = null;	        
 	      }
-	: loc=LEFT_PAREN 'defrule' 
-	  ruleName=ID 
-	  { 
+	:	loc=LEFT_PAREN 'defrule' 	
+		(	d=agenda_group {  rule.addAttribute( d ); } )?
+		
+	  	ruleName=ID 
+	  	{ 
 	  		debug( "start rule: " + ruleName.getText() );
 	        rule = new RuleDescr( ruleName.getText(), null ); 
 			rule.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
@@ -228,13 +228,55 @@
   	        rule.setLhs( lhs ); 
    	        lhs.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
 			lhs.setStartCharacter( ((CommonToken)loc).getStartIndex() );				
-	  }
-	  lhs[lhs]*
-	  function[context]* { rule.setConsequence( engine ); }
-	  RIGHT_PAREN
+		}
+		documentation=STRING {
+	    	// do nothing here for now
+		}
+		ruleAttribute[rule]*
+		
+		lhs[lhs]*
+		
+		rhs[rule]
+		
+		RIGHT_PAREN
 	;
 
+ruleAttribute[RuleDescr rule]
+	:
+		LEFT_PAREN 'declare'
+			LEFT_PAREN d=salience { rule.addAttribute( d ); }
+			RIGHT_PAREN
+		RIGHT_PAREN
+	;
 
+agenda_group returns [AttributeDescr d ]
+	@init {
+		d = null;
+	}
+	:
+		loc=SALIENCE i=INT   
+		{
+			d = new AttributeDescr( "agenda-group", i.getText() );
+			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+			d.setEndCharacter( ((CommonToken)i).getStopIndex() );
+		}	
+	;	
+
+salience returns [AttributeDescr d ]
+	@init {
+		d = null;
+	}
+	:	
+		loc=SALIENCE i=INT   
+		{
+			d = new AttributeDescr( "salience", i.getText() );
+			d.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+			d.setStartCharacter( ((CommonToken)loc).getStartIndex() );
+			d.setEndCharacter( ((CommonToken)i).getStopIndex() );
+		}
+	;
+		
 /* lhs is slightly different to ce as lhs allows pattern bindings, ce doesn't */
 lhs[ConditionalElementDescr in_ce]
 	:	(   and_ce[in_ce]	
@@ -246,7 +288,18 @@
 		  | bound_pattern[in_ce]
 		)
 	;
+
+rhs[RuleDescr rule]
+	@init {
+	        ExecutionEngine engine = new BlockExecutionEngine();
+			ExecutionBuildContext context = new ExecutionBuildContext( engine );  	
+	}
 	
+	:
+		'=>'
+	  function[context]* { rule.setConsequence( engine ); }		
+	;	
+	
 ce[ConditionalElementDescr in_ce]
 	:	(   and_ce[in_ce]	
 	      | or_ce[in_ce]
@@ -557,8 +610,14 @@
                 |	EOL
                 )
                 { $channel=HIDDEN; }
-        ;
+        ;        
+        
+DECLARE 
+	:	'declare';        		
 
+SALIENCE 
+	:	'salience';
+
 fragment
 EOL 	:	     
    		(       ( '\r\n' )=> '\r\n'  // Evil DOS

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/clp.tokens
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/clp.tokens	2007-03-14 21:58:42 UTC (rev 10190)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/clp.tokens	2007-03-14 21:59:47 UTC (rev 10191)
@@ -1,39 +0,0 @@
-EXISTS=10
-LEFT_PAREN=4
-RIGHT_CURLY=35
-BOOL=19
-DEFRULE=23
-HexDigit=27
-WS=25
-MISC=21
-STRING=16
-FLOAT=17
-TILDE=15
-OR=8
-PIPE=14
-VAR=12
-UnicodeEscape=28
-AND=7
-EscapeSequence=26
-INT=18
-EOL=24
-NULL=20
-SYMBOL=22
-LEFT_SQUARE=32
-SH_STYLE_SINGLE_LINE_COMMENT=30
-OctalEscape=29
-MULTI_LINE_COMMENT=36
-TEST=11
-AMPERSAND=13
-RIGHT_PAREN=6
-NOT=9
-LEFT_CURLY=34
-RIGHT_SQUARE=33
-C_STYLE_SINGLE_LINE_COMMENT=31
-ID=5
-':'=39
-'modify'=41
-'='=40
-'<-'=38
-'defrule'=23
-';'=37

Deleted: 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-14 21:58:42 UTC (rev 10190)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/clp/clp__.g	2007-03-14 21:59:47 UTC (rev 10191)
@@ -1,177 +0,0 @@
-lexer grammar CLP;
- at header {
-	package org.drools.clp;
-}
-
-T37 : ';' ;
-T38 : '<-' ;
-T39 : ':' ;
-T40 : '=' ;
-T41 : 'modify' ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 545
-DEFRULE	:	'defrule';
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 546
-OR 	:	'or';
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 547
-AND 	:	'and';
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 548
-NOT 	:	'not';
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 549
-EXISTS 	:	'exists';
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 550
-TEST 	:	'test';
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 552
-NULL	:	'null';
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 554
-WS      :       (	' '
-                |	'\t'
-                |	'\f'
-                |	EOL
-                )
-                { $channel=HIDDEN; }
-        ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 562
-fragment
-EOL 	:	     
-   		(       ( '\r\n' )=> '\r\n'  // Evil DOS
-                |       '\r'    // Macintosh
-                |       '\n'    // Unix (the right way)
-                )
-        ;  
-        
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 570
-INT	
-	:	('-')?('0'..'9')+
-	;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 574
-FLOAT
-	:	('-')?('0'..'9')+ '.' ('0'..'9')+
-	;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 578
-STRING
-    :  ('"' ( EscapeSequence | ~('\\'|'"') )* '"')
-     | ('\'' ( EscapeSequence | ~('\\'|'\'') )* '\'')
-    ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 583
-fragment
-HexDigit : ('0'..'9'|'a'..'f'|'A'..'F') ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 586
-fragment
-EscapeSequence
-    :   '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
-    |   UnicodeEscape
-    |   OctalEscape
-    ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 593
-fragment
-OctalEscape
-    :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
-    |   '\\' ('0'..'7') ('0'..'7')
-    |   '\\' ('0'..'7')
-    ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 600
-fragment
-UnicodeEscape
-    :   '\\' 'u' HexDigit HexDigit HexDigit HexDigit
-    ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 605
-BOOL
-	:	('true'|'false') 
-	;
-	
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 609
-VAR 	: '?'('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff')('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff')* 
-        ;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 612
-ID	
-	:	('a'..'z'|'A'..'Z'|'_'|'$'|'\u00c0'..'\u00ff')('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00c0'..'\u00ff')* 
-	;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 616
-SH_STYLE_SINGLE_LINE_COMMENT	
-	:	'#' ( options{greedy=false;} : .)* EOL /* ('\r')? '\n'  */
-                { $channel=HIDDEN; }
-	;
-        
-        
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 622
-C_STYLE_SINGLE_LINE_COMMENT	
-	:	'//' ( options{greedy=false;} : .)* EOL // ('\r')? '\n' 
-                { $channel=HIDDEN; }
-	;
-
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 628
-LEFT_PAREN
-	:	'('
-	;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 632
-RIGHT_PAREN
-	:	')'
-	;
-        
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 636
-LEFT_SQUARE
-	:	'['
-	;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 640
-RIGHT_SQUARE
-	:	']'
-	;        
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 644
-LEFT_CURLY
-	:	'{'
-	;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 648
-RIGHT_CURLY
-	:	'}'
-	;
-	
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 652
-TILDE	:	'~'
-	;	
-	
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 655
-AMPERSAND 
-	:	'&'
-	;
-	
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 659
-PIPE
-	:	'|'
-	;		
-        
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 663
-MULTI_LINE_COMMENT
-	:	'/*' (options{greedy=false;} : .)* '*/'
-                { $channel=HIDDEN; }
-	;
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 668
-MISC 	:
-		'!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+'  | '?' | ',' | '=' | '/' | '\'' | '\\' | 
-		'<' | '>' | '<=' | '>=' 
-	;		
-
-// $ANTLR src "C:\dev\jbossrules\trunk\drools-compiler\src\main\resources\org\drools\clp\CLP.g" 673
-SYMBOL
-	:	((~(' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))|('$' ~('?'|' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'<'))) 
-	         (~(' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
-	;
-




More information about the jboss-svn-commits mailing list