[jboss-svn-commits] JBL Code SVN: r18081 - in labs/jbossrules/trunk/drools-clips: src/main/java/org/drools/clp and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jan 24 14:11:56 EST 2008


Author: mark.proctor at jboss.com
Date: 2008-01-24 14:11:56 -0500 (Thu, 24 Jan 2008)
New Revision: 18081

Added:
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELLexer.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELParser.java
   labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLPMVEL.g
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Appendable.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BaseInfixFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BoolLispAtom2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/CreateListFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrLessThanFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrMoreThanFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FloatLispAtom2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Function.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FunctionHandlers.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IfFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IntLispAtom2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LessThanFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispAtom2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispForm2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/ModifyFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MoreThanFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MultiplyFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/NullLispAtom2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PlusFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrintoutFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrognFunction.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SExpression.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringBuilderAppendable.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringLispAtom2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SymbolLispAtom2.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/TestMVEL.java
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/VariableLispAtom2.java
Modified:
   labs/jbossrules/trunk/drools-clips/.classpath
   labs/jbossrules/trunk/drools-clips/.project
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/BlockExecutionEngine.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPLexer.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPParser.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/LispForm.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Shell.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClipsDialect.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClpConsequenceBuilder.java
Log:
JBRULES-720 Clips Parser

Modified: labs/jbossrules/trunk/drools-clips/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-clips/.classpath	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/.classpath	2008-01-24 19:11:56 UTC (rev 18081)
@@ -5,13 +5,11 @@
   <classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
   <classpathentry kind="output" path="target/classes"/>
   <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/4.1.0.SNAPSHOT/drools-compiler-4.1.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-compiler/4.1.0.SNAPSHOT/drools-compiler-4.1.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/4.1.0.SNAPSHOT/drools-core-4.1.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-core/4.1.0.SNAPSHOT/drools-core-4.1.0.SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel14/1.2.8/mvel14-1.2.8.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0.jar" sourcepath="M2_REPO/xerces/xercesImpl/2.4.0/xercesImpl-2.4.0-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel/1.2.17/mvel-1.2.17.jar"/>
+  <classpathentry kind="src" path="/drools-core"/>
+  <classpathentry kind="src" path="/drools-compiler"/>
   <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
 </classpath>
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-clips/.project
===================================================================
--- labs/jbossrules/trunk/drools-clips/.project	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/.project	2008-01-24 19:11:56 UTC (rev 18081)
@@ -1,7 +1,10 @@
 <projectDescription>
   <name>drools-clips</name>
   <comment>A rule production system</comment>
-  <projects/>
+  <projects>
+    <project>drools-core</project>
+    <project>drools-compiler</project>
+  </projects>
   <buildSpec>
     <buildCommand>
       <name>org.eclipse.jdt.core.javabuilder</name>


Property changes on: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp
___________________________________________________________________
Name: svn:ignore
   + CLP__.g
CLP.tokens


Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/BlockExecutionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/BlockExecutionEngine.java	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/BlockExecutionEngine.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -43,17 +43,25 @@
                         ReteTuple tuple,
                         Object object) {
         execute( new ExecutionContextImpl( workingMemory,
-                                       tuple,
-                                       object,
-                                       this.index - 1 ) );
+                                           tuple,
+                                           object,
+                                           this.index - 1 ) );
     }
 
     public void execute(InternalWorkingMemory workingMemory,
                         ReteTuple tuple) {
         execute( new ExecutionContextImpl( workingMemory,
-                                       tuple,
-                                       this.index - 1 ) );
+                                           tuple,
+                                           this.index - 1 ) );
     }
+    
+    public void evaluate(KnowledgeHelper knowledgeHelper,
+                         WorkingMemory workingMemory) throws Exception {
+        ExecutionContext context = new ExecutionContextImpl( (InternalWorkingMemory) workingMemory,
+                                                             (ReteTuple) knowledgeHelper.getTuple(),
+                                                             this.index );
+        execute( context );
+    }    
 
     public void execute(ExecutionContext context) {
         if ( this.functions == null ) {
@@ -65,14 +73,6 @@
         }
     }
 
-    public void evaluate(KnowledgeHelper knowledgeHelper,
-                         WorkingMemory workingMemory) throws Exception {
-        ExecutionContext context = new ExecutionContextImpl( (InternalWorkingMemory) workingMemory,
-                                                         (ReteTuple) knowledgeHelper.getTuple(),
-                                                         this.index );
-        execute( context );
-    }
-
     public void replaceTempTokens(Map variables) {
         for ( int i = 0, length = functions.length; i < length; i++ ) {
             this.functions[i].replaceTempTokens( variables );

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPLexer.java	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPLexer.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g 2007-10-10 14:29:00
+// $ANTLR 3.0.1 C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2008-01-20 20:25:48
 
 	package org.drools.clp;
 
@@ -10,61 +10,61 @@
 import java.util.Map;
 import java.util.HashMap;
 public class CLPLexer extends Lexer {
-    public static final int EXISTS=16;
-    public static final int DEFRULE=9;
-    public static final int HexDigit=31;
+    public static final int RIGHT_SQUARE=38;
+    public static final int RIGHT_CURLY=40;
+    public static final int EQUALS=23;
     public static final int FLOAT=24;
+    public static final int NOT=15;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=35;
+    public static final int AND=13;
+    public static final int EOF=-1;
+    public static final int HexDigit=31;
+    public static final int DEFFUNCTION=7;
+    public static final int ASSIGN_OP=18;
+    public static final int RIGHT_PAREN=6;
+    public static final int NAME=5;
+    public static final int EOL=27;
+    public static final int DEFRULE=9;
     public static final int TILDE=21;
-    public static final int OR=14;
     public static final int PIPE=19;
-    public static final int ASSIGN_OP=18;
-    public static final int AND=13;
-    public static final int EscapeSequence=30;
-    public static final int INT=12;
+    public static final int VAR=8;
+    public static final int EXISTS=16;
     public static final int SYMBOL=34;
-    public static final int LEFT_SQUARE=37;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=35;
-    public static final int AMPERSAND=20;
-    public static final int DECLARE=29;
-    public static final int LEFT_CURLY=39;
-    public static final int LEFT_PAREN=4;
-    public static final int RIGHT_CURLY=40;
+    public static final int NULL=26;
     public static final int BOOL=25;
-    public static final int DEFFUNCTION=7;
-    public static final int WS=28;
-    public static final int STRING=10;
+    public static final int SALIENCE=11;
+    public static final int AMPERSAND=20;
+    public static final int INT=12;
     public static final int T43=43;
-    public static final int T42=42;
-    public static final int VAR=8;
-    public static final int EQUALS=23;
-    public static final int UnicodeEscape=32;
-    public static final int EOF=-1;
-    public static final int EOL=27;
-    public static final int NULL=26;
     public static final int Tokens=44;
-    public static final int COLON=22;
-    public static final int OctalEscape=33;
-    public static final int SALIENCE=11;
+    public static final int T42=42;
     public static final int MULTI_LINE_COMMENT=41;
+    public static final int COLON=22;
+    public static final int WS=28;
+    public static final int UnicodeEscape=32;
+    public static final int LEFT_CURLY=39;
+    public static final int OR=14;
     public static final int TEST=17;
-    public static final int NAME=5;
-    public static final int RIGHT_PAREN=6;
-    public static final int NOT=15;
-    public static final int RIGHT_SQUARE=38;
+    public static final int LEFT_PAREN=4;
+    public static final int DECLARE=29;
+    public static final int LEFT_SQUARE=37;
+    public static final int OctalEscape=33;
+    public static final int EscapeSequence=30;
     public static final int C_STYLE_SINGLE_LINE_COMMENT=36;
+    public static final int STRING=10;
     public CLPLexer() {;} 
     public CLPLexer(CharStream input) {
         super(input);
         ruleMemo = new HashMap[42+1];
      }
-    public String getGrammarFileName() { return "/home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g"; }
+    public String getGrammarFileName() { return "C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g"; }
 
     // $ANTLR start T42
     public final void mT42() throws RecognitionException {
         try {
             int _type = T42;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:6:5: ( 'import' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:6:7: 'import'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:6:5: ( 'import' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:6:7: 'import'
             {
             match("import"); if (failed) return ;
 
@@ -82,8 +82,8 @@
     public final void mT43() throws RecognitionException {
         try {
             int _type = T43;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:7:5: ( '=>' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:7:7: '=>'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:7:5: ( '=>' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:7:7: '=>'
             {
             match("=>"); if (failed) return ;
 
@@ -101,10 +101,10 @@
     public final void mWS() throws RecognitionException {
         try {
             int _type = WS;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:679:9: ( ( ' ' | '\\t' | '\\f' | EOL ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:679:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:679:9: ( ( ' ' | '\\t' | '\\f' | EOL ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:679:17: ( ' ' | '\\t' | '\\f' | EOL )
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:679:17: ( ' ' | '\\t' | '\\f' | EOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:679:17: ( ' ' | '\\t' | '\\f' | EOL )
             int alt1=4;
             switch ( input.LA(1) ) {
             case ' ':
@@ -138,28 +138,28 @@
 
             switch (alt1) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:679:19: ' '
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:679:19: ' '
                     {
                     match(' '); if (failed) return ;
 
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:680:19: '\\t'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:680:19: '\\t'
                     {
                     match('\t'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:681:19: '\\f'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:681:19: '\\f'
                     {
                     match('\f'); if (failed) return ;
 
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:682:19: EOL
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:682:19: EOL
                     {
                     mEOL(); if (failed) return ;
 
@@ -185,8 +185,8 @@
     public final void mDEFRULE() throws RecognitionException {
         try {
             int _type = DEFRULE;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:687:10: ( 'defrule' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:687:12: 'defrule'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:10: ( 'defrule' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:687:12: 'defrule'
             {
             match("defrule"); if (failed) return ;
 
@@ -204,8 +204,8 @@
     public final void mDEFFUNCTION() throws RecognitionException {
         try {
             int _type = DEFFUNCTION;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:688:13: ( 'deffunction' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:688:15: 'deffunction'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:688:13: ( 'deffunction' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:688:15: 'deffunction'
             {
             match("deffunction"); if (failed) return ;
 
@@ -223,8 +223,8 @@
     public final void mOR() throws RecognitionException {
         try {
             int _type = OR;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:689:7: ( 'or' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:689:9: 'or'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:689:7: ( 'or' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:689:9: 'or'
             {
             match("or"); if (failed) return ;
 
@@ -242,8 +242,8 @@
     public final void mAND() throws RecognitionException {
         try {
             int _type = AND;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:690:7: ( 'and' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:690:9: 'and'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:690:7: ( 'and' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:690:9: 'and'
             {
             match("and"); if (failed) return ;
 
@@ -261,8 +261,8 @@
     public final void mNOT() throws RecognitionException {
         try {
             int _type = NOT;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:691:7: ( 'not' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:691:9: 'not'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:691:7: ( 'not' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:691:9: 'not'
             {
             match("not"); if (failed) return ;
 
@@ -280,8 +280,8 @@
     public final void mEXISTS() throws RecognitionException {
         try {
             int _type = EXISTS;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:692:10: ( 'exists' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:692:12: 'exists'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:10: ( 'exists' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:692:12: 'exists'
             {
             match("exists"); if (failed) return ;
 
@@ -299,8 +299,8 @@
     public final void mTEST() throws RecognitionException {
         try {
             int _type = TEST;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:693:8: ( 'test' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:693:10: 'test'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:693:8: ( 'test' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:693:10: 'test'
             {
             match("test"); if (failed) return ;
 
@@ -318,8 +318,8 @@
     public final void mNULL() throws RecognitionException {
         try {
             int _type = NULL;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:695:7: ( 'null' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:695:9: 'null'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:695:7: ( 'null' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:695:9: 'null'
             {
             match("null"); if (failed) return ;
 
@@ -337,8 +337,8 @@
     public final void mDECLARE() throws RecognitionException {
         try {
             int _type = DECLARE;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:697:10: ( 'declare' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:697:12: 'declare'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:697:10: ( 'declare' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:697:12: 'declare'
             {
             match("declare"); if (failed) return ;
 
@@ -356,8 +356,8 @@
     public final void mSALIENCE() throws RecognitionException {
         try {
             int _type = SALIENCE;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:699:10: ( 'salience' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:699:12: 'salience'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:699:10: ( 'salience' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:699:12: 'salience'
             {
             match("salience"); if (failed) return ;
 
@@ -374,10 +374,10 @@
     // $ANTLR start EOL
     public final void mEOL() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:704:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:705:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:704:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:705:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:705:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:705:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
             int alt2=3;
             int LA2_0 = input.LA(1);
 
@@ -402,7 +402,7 @@
             }
             switch (alt2) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:705:14: ( '\\r\\n' )=> '\\r\\n'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:705:14: ( '\\r\\n' )=> '\\r\\n'
                     {
                     match("\r\n"); if (failed) return ;
 
@@ -410,14 +410,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:706:25: '\\r'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:706:25: '\\r'
                     {
                     match('\r'); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:707:25: '\\n'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:707:25: '\\n'
                     {
                     match('\n'); if (failed) return ;
 
@@ -439,10 +439,10 @@
     public final void mINT() throws RecognitionException {
         try {
             int _type = INT;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:712:2: ( ( '-' )? ( '0' .. '9' )+ )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:712:4: ( '-' )? ( '0' .. '9' )+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:2: ( ( '-' )? ( '0' .. '9' )+ )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:4: ( '-' )? ( '0' .. '9' )+
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:712:4: ( '-' )?
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:4: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -451,7 +451,7 @@
             }
             switch (alt3) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:712:5: '-'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -460,7 +460,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:712:10: ( '0' .. '9' )+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:10: ( '0' .. '9' )+
             int cnt4=0;
             loop4:
             do {
@@ -474,7 +474,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:712:11: '0' .. '9'
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:712:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -505,10 +505,10 @@
     public final void mFLOAT() throws RecognitionException {
         try {
             int _type = FLOAT;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:4: ( '-' )?
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:4: ( '-' )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -517,7 +517,7 @@
             }
             switch (alt5) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:5: '-'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:5: '-'
                     {
                     match('-'); if (failed) return ;
 
@@ -526,7 +526,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:10: ( '0' .. '9' )+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:10: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -540,7 +540,7 @@
 
                 switch (alt6) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:11: '0' .. '9'
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:11: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -558,7 +558,7 @@
             } while (true);
 
             match('.'); if (failed) return ;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:26: ( '0' .. '9' )+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:26: ( '0' .. '9' )+
             int cnt7=0;
             loop7:
             do {
@@ -572,7 +572,7 @@
 
                 switch (alt7) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:716:27: '0' .. '9'
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:716:27: '0' .. '9'
             	    {
             	    matchRange('0','9'); if (failed) return ;
 
@@ -603,7 +603,7 @@
     public final void mSTRING() throws RecognitionException {
         try {
             int _type = STRING;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:720:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -622,13 +622,13 @@
             }
             switch (alt10) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:720:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
                     {
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:720:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:720:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
                     {
                     match('\"'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:720:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
                     loop8:
                     do {
                         int alt8=3;
@@ -644,14 +644,14 @@
 
                         switch (alt8) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:720:15: EscapeSequence
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:15: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:720:32: ~ ( '\\\\' | '\"' )
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:720:32: ~ ( '\\\\' | '\"' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -681,13 +681,13 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:721:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:721:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
                     {
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:721:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:721:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:721:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:721:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
                     {
                     match('\''); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:721:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:721:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
                     loop9:
                     do {
                         int alt9=3;
@@ -703,14 +703,14 @@
 
                         switch (alt9) {
                     	case 1 :
-                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:721:16: EscapeSequence
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:721:16: EscapeSequence
                     	    {
                     	    mEscapeSequence(); if (failed) return ;
 
                     	    }
                     	    break;
                     	case 2 :
-                    	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:721:33: ~ ( '\\\\' | '\\'' )
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:721:33: ~ ( '\\\\' | '\\'' )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
                     	        input.consume();
@@ -751,8 +751,8 @@
     // $ANTLR start HexDigit
     public final void mHexDigit() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:725:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:725:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:725:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:725: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();
@@ -777,12 +777,17 @@
     // $ANTLR start EscapeSequence
     public final void mEscapeSequence() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:729:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:729:5: ( '\\\\' ( '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 '\\':
@@ -795,11 +800,6 @@
                     alt11=1;
                     }
                     break;
-                case 'u':
-                    {
-                    alt11=2;
-                    }
-                    break;
                 case '0':
                 case '1':
                 case '2':
@@ -830,7 +830,7 @@
             }
             switch (alt11) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:729:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:729: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' ) {
@@ -848,14 +848,14 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:730:9: UnicodeEscape
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:730:9: UnicodeEscape
                     {
                     mUnicodeEscape(); if (failed) return ;
 
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:731:9: OctalEscape
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:731:9: OctalEscape
                     {
                     mOctalEscape(); if (failed) return ;
 
@@ -872,7 +872,7 @@
     // $ANTLR start OctalEscape
     public final void mOctalEscape() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
             int alt12=3;
             int LA12_0 = input.LA(1);
 
@@ -883,9 +883,9 @@
                     int LA12_2 = input.LA(3);
 
                     if ( ((LA12_2>='0' && LA12_2<='7')) ) {
-                        int LA12_4 = input.LA(4);
+                        int LA12_5 = input.LA(4);
 
-                        if ( ((LA12_4>='0' && LA12_4<='7')) ) {
+                        if ( ((LA12_5>='0' && LA12_5<='7')) ) {
                             alt12=1;
                         }
                         else {
@@ -920,25 +920,25 @@
             }
             switch (alt12) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:14: ( '0' .. '3' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:15: '0' .. '3'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:14: ( '0' .. '3' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:15: '0' .. '3'
                     {
                     matchRange('0','3'); if (failed) return ;
 
                     }
 
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:25: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:26: '0' .. '7'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:25: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:36: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:736:37: '0' .. '7'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:36: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:736:37: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -948,18 +948,18 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:737:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:737:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:737:14: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:737:15: '0' .. '7'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:737:14: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:737:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
                     }
 
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:737:25: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:737:26: '0' .. '7'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:737:25: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:737:26: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -969,11 +969,11 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:738:9: '\\\\' ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:738:9: '\\\\' ( '0' .. '7' )
                     {
                     match('\\'); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:738:14: ( '0' .. '7' )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:738:15: '0' .. '7'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:738:14: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:738:15: '0' .. '7'
                     {
                     matchRange('0','7'); if (failed) return ;
 
@@ -993,8 +993,8 @@
     // $ANTLR start UnicodeEscape
     public final void mUnicodeEscape() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:743:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:743:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:743:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
             match('\\'); if (failed) return ;
             match('u'); if (failed) return ;
@@ -1015,10 +1015,10 @@
     public final void mBOOL() throws RecognitionException {
         try {
             int _type = BOOL;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:747:2: ( ( 'true' | 'false' ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:747:4: ( 'true' | 'false' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:747:2: ( ( 'true' | 'false' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:747:4: ( 'true' | 'false' )
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:747:4: ( 'true' | 'false' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:747:4: ( 'true' | 'false' )
             int alt13=2;
             int LA13_0 = input.LA(1);
 
@@ -1037,7 +1037,7 @@
             }
             switch (alt13) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:747:5: 'true'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:747:5: 'true'
                     {
                     match("true"); if (failed) return ;
 
@@ -1045,7 +1045,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:747:12: 'false'
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:747:12: 'false'
                     {
                     match("false"); if (failed) return ;
 
@@ -1069,8 +1069,8 @@
     public final void mVAR() throws RecognitionException {
         try {
             int _type = VAR;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:750:6: ( '?' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( SYMBOL )* )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:750:8: '?' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( SYMBOL )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:750:6: ( '?' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( SYMBOL )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:750:8: '?' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( SYMBOL )*
             {
             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') ) {
@@ -1084,7 +1084,7 @@
                 recover(mse);    throw mse;
             }
 
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:750:38: ( SYMBOL )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:750:38: ( SYMBOL )*
             loop14:
             do {
                 int alt14=2;
@@ -1097,7 +1097,7 @@
 
                 switch (alt14) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:750:38: SYMBOL
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:750:38: SYMBOL
             	    {
             	    mSYMBOL(); if (failed) return ;
 
@@ -1123,11 +1123,11 @@
     public final void mSH_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
         try {
             int _type = SH_STYLE_SINGLE_LINE_COMMENT;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:754:2: ( '#' ( options {greedy=false; } : . )* EOL )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:754:4: '#' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:754:2: ( '#' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:754:4: '#' ( options {greedy=false; } : . )* EOL
             {
             match('#'); if (failed) return ;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:754:8: ( options {greedy=false; } : . )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:754:8: ( options {greedy=false; } : . )*
             loop15:
             do {
                 int alt15=2;
@@ -1146,7 +1146,7 @@
 
                 switch (alt15) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:754:35: .
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:754:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1176,12 +1176,12 @@
     public final void mC_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
         try {
             int _type = C_STYLE_SINGLE_LINE_COMMENT;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:760:2: ( '//' ( options {greedy=false; } : . )* EOL )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:760:4: '//' ( options {greedy=false; } : . )* EOL
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:760:2: ( '//' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:760:4: '//' ( options {greedy=false; } : . )* EOL
             {
             match("//"); if (failed) return ;
 
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:760:9: ( options {greedy=false; } : . )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:760:9: ( options {greedy=false; } : . )*
             loop16:
             do {
                 int alt16=2;
@@ -1200,7 +1200,7 @@
 
                 switch (alt16) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:760:36: .
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:760:36: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1230,8 +1230,8 @@
     public final void mLEFT_PAREN() throws RecognitionException {
         try {
             int _type = LEFT_PAREN;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:766:2: ( '(' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:766:4: '('
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:766:2: ( '(' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:766:4: '('
             {
             match('('); if (failed) return ;
 
@@ -1248,8 +1248,8 @@
     public final void mRIGHT_PAREN() throws RecognitionException {
         try {
             int _type = RIGHT_PAREN;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:770:2: ( ')' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:770:4: ')'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:770:2: ( ')' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:770:4: ')'
             {
             match(')'); if (failed) return ;
 
@@ -1266,8 +1266,8 @@
     public final void mLEFT_SQUARE() throws RecognitionException {
         try {
             int _type = LEFT_SQUARE;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:774:2: ( '[' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:774:4: '['
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:774:2: ( '[' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:774:4: '['
             {
             match('['); if (failed) return ;
 
@@ -1284,8 +1284,8 @@
     public final void mRIGHT_SQUARE() throws RecognitionException {
         try {
             int _type = RIGHT_SQUARE;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:778:2: ( ']' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:778:4: ']'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:778:2: ( ']' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:778:4: ']'
             {
             match(']'); if (failed) return ;
 
@@ -1302,8 +1302,8 @@
     public final void mLEFT_CURLY() throws RecognitionException {
         try {
             int _type = LEFT_CURLY;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:782:2: ( '{' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:782:4: '{'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:782:2: ( '{' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:782:4: '{'
             {
             match('{'); if (failed) return ;
 
@@ -1320,8 +1320,8 @@
     public final void mRIGHT_CURLY() throws RecognitionException {
         try {
             int _type = RIGHT_CURLY;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:786:2: ( '}' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:786:4: '}'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:786:2: ( '}' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:786:4: '}'
             {
             match('}'); if (failed) return ;
 
@@ -1338,8 +1338,8 @@
     public final void mTILDE() throws RecognitionException {
         try {
             int _type = TILDE;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:789:7: ( '~' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:789:9: '~'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:789:7: ( '~' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:789:9: '~'
             {
             match('~'); if (failed) return ;
 
@@ -1356,8 +1356,8 @@
     public final void mAMPERSAND() throws RecognitionException {
         try {
             int _type = AMPERSAND;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:793:2: ( '&' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:793:4: '&'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:793:2: ( '&' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:793:4: '&'
             {
             match('&'); if (failed) return ;
 
@@ -1374,8 +1374,8 @@
     public final void mPIPE() throws RecognitionException {
         try {
             int _type = PIPE;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:797:2: ( '|' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:797:4: '|'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:797:2: ( '|' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:797:4: '|'
             {
             match('|'); if (failed) return ;
 
@@ -1392,8 +1392,8 @@
     public final void mASSIGN_OP() throws RecognitionException {
         try {
             int _type = ASSIGN_OP;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:801:2: ( '<-' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:801:4: '<-'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:801:2: ( '<-' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:801:4: '<-'
             {
             match("<-"); if (failed) return ;
 
@@ -1411,8 +1411,8 @@
     public final void mCOLON() throws RecognitionException {
         try {
             int _type = COLON;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:804:7: ( ':' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:804:9: ':'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:804:7: ( ':' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:804:9: ':'
             {
             match(':'); if (failed) return ;
 
@@ -1429,8 +1429,8 @@
     public final void mEQUALS() throws RecognitionException {
         try {
             int _type = EQUALS;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:806:8: ( '=' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:806:10: '='
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:806:8: ( '=' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:806:10: '='
             {
             match('='); if (failed) return ;
 
@@ -1447,12 +1447,12 @@
     public final void mMULTI_LINE_COMMENT() throws RecognitionException {
         try {
             int _type = MULTI_LINE_COMMENT;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:809:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:809:4: '/*' ( options {greedy=false; } : . )* '*/'
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:809:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:809:4: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); if (failed) return ;
 
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:809:9: ( options {greedy=false; } : . )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:809:9: ( options {greedy=false; } : . )*
             loop17:
             do {
                 int alt17=2;
@@ -1477,7 +1477,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:809:35: .
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:809:35: .
             	    {
             	    matchAny(); if (failed) return ;
 
@@ -1508,8 +1508,8 @@
     public final void mNAME() throws RecognitionException {
         try {
             int _type = NAME;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:813:6: ( SYMBOL )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:813:8: SYMBOL
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:813:6: ( SYMBOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:813:8: SYMBOL
             {
             mSYMBOL(); if (failed) return ;
 
@@ -1525,10 +1525,10 @@
     // $ANTLR start SYMBOL
     public final void mSYMBOL() throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:2: ( ( (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) ) | ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) ) ) (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' | '?' ) )* )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:4: ( (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) ) | ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) ) ) (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' | '?' ) )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817:2: ( ( (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) ) | ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) ) ) (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' | '?' ) )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817:4: ( (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) ) | ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) ) ) (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' | '?' ) )*
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:4: ( (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) ) | ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817:4: ( (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) ) | ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) ) )
             int alt18=2;
             int LA18_0 = input.LA(1);
 
@@ -1547,10 +1547,10 @@
             }
             switch (alt18) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:5: (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817:5: (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) )
                     {
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:5: (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:6: ~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817:5: (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' | '$' ) )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817: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();
@@ -1570,10 +1570,10 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:65: ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817:65: ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) )
                     {
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:65: ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) )
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:817:66: '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817:65: ( '$' ~ ( '?' | ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' ) )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:817: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') ) {
@@ -1596,7 +1596,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:818:11: (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' | '?' ) )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:818:11: (~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' | '?' ) )*
             loop19:
             do {
                 int alt19=2;
@@ -1609,7 +1609,7 @@
 
                 switch (alt19) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:818:12: ~ ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' | '?' )
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:818: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();
@@ -1641,243 +1641,243 @@
     // $ANTLR end SYMBOL
 
     public void mTokens() throws RecognitionException {
-        // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:8: ( T42 | T43 | WS | DEFRULE | DEFFUNCTION | OR | AND | NOT | EXISTS | TEST | NULL | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | 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 | ASSIGN_OP | COLON | EQUALS | MULTI_LINE_COMMENT | NAME )
+        // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:8: ( T42 | T43 | WS | DEFRULE | DEFFUNCTION | OR | AND | NOT | EXISTS | TEST | NULL | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | 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 | ASSIGN_OP | COLON | EQUALS | MULTI_LINE_COMMENT | NAME )
         int alt20=34;
         alt20 = dfa20.predict(input);
         switch (alt20) {
             case 1 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:10: T42
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:10: T42
                 {
                 mT42(); if (failed) return ;
 
                 }
                 break;
             case 2 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:14: T43
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:14: T43
                 {
                 mT43(); if (failed) return ;
 
                 }
                 break;
             case 3 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:18: WS
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:18: WS
                 {
                 mWS(); if (failed) return ;
 
                 }
                 break;
             case 4 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:21: DEFRULE
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:21: DEFRULE
                 {
                 mDEFRULE(); if (failed) return ;
 
                 }
                 break;
             case 5 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:29: DEFFUNCTION
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:29: DEFFUNCTION
                 {
                 mDEFFUNCTION(); if (failed) return ;
 
                 }
                 break;
             case 6 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:41: OR
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:41: OR
                 {
                 mOR(); if (failed) return ;
 
                 }
                 break;
             case 7 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:44: AND
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:44: AND
                 {
                 mAND(); if (failed) return ;
 
                 }
                 break;
             case 8 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:48: NOT
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:48: NOT
                 {
                 mNOT(); if (failed) return ;
 
                 }
                 break;
             case 9 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:52: EXISTS
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:52: EXISTS
                 {
                 mEXISTS(); if (failed) return ;
 
                 }
                 break;
             case 10 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:59: TEST
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:59: TEST
                 {
                 mTEST(); if (failed) return ;
 
                 }
                 break;
             case 11 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:64: NULL
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:64: NULL
                 {
                 mNULL(); if (failed) return ;
 
                 }
                 break;
             case 12 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:69: DECLARE
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:69: DECLARE
                 {
                 mDECLARE(); if (failed) return ;
 
                 }
                 break;
             case 13 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:77: SALIENCE
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:77: SALIENCE
                 {
                 mSALIENCE(); if (failed) return ;
 
                 }
                 break;
             case 14 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:86: INT
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:86: INT
                 {
                 mINT(); if (failed) return ;
 
                 }
                 break;
             case 15 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:90: FLOAT
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:90: FLOAT
                 {
                 mFLOAT(); if (failed) return ;
 
                 }
                 break;
             case 16 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:96: STRING
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:96: STRING
                 {
                 mSTRING(); if (failed) return ;
 
                 }
                 break;
             case 17 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:103: BOOL
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:103: BOOL
                 {
                 mBOOL(); if (failed) return ;
 
                 }
                 break;
             case 18 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:108: VAR
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:108: VAR
                 {
                 mVAR(); if (failed) return ;
 
                 }
                 break;
             case 19 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:112: SH_STYLE_SINGLE_LINE_COMMENT
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:112: SH_STYLE_SINGLE_LINE_COMMENT
                 {
                 mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 20 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:141: C_STYLE_SINGLE_LINE_COMMENT
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:141: C_STYLE_SINGLE_LINE_COMMENT
                 {
                 mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 21 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:169: LEFT_PAREN
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:169: LEFT_PAREN
                 {
                 mLEFT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 22 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:180: RIGHT_PAREN
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:180: RIGHT_PAREN
                 {
                 mRIGHT_PAREN(); if (failed) return ;
 
                 }
                 break;
             case 23 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:192: LEFT_SQUARE
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:192: LEFT_SQUARE
                 {
                 mLEFT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 24 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:204: RIGHT_SQUARE
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:204: RIGHT_SQUARE
                 {
                 mRIGHT_SQUARE(); if (failed) return ;
 
                 }
                 break;
             case 25 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:217: LEFT_CURLY
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:217: LEFT_CURLY
                 {
                 mLEFT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 26 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:228: RIGHT_CURLY
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:228: RIGHT_CURLY
                 {
                 mRIGHT_CURLY(); if (failed) return ;
 
                 }
                 break;
             case 27 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:240: TILDE
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:240: TILDE
                 {
                 mTILDE(); if (failed) return ;
 
                 }
                 break;
             case 28 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:246: AMPERSAND
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:246: AMPERSAND
                 {
                 mAMPERSAND(); if (failed) return ;
 
                 }
                 break;
             case 29 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:256: PIPE
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:256: PIPE
                 {
                 mPIPE(); if (failed) return ;
 
                 }
                 break;
             case 30 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:261: ASSIGN_OP
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:261: ASSIGN_OP
                 {
                 mASSIGN_OP(); if (failed) return ;
 
                 }
                 break;
             case 31 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:271: COLON
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:271: COLON
                 {
                 mCOLON(); if (failed) return ;
 
                 }
                 break;
             case 32 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:277: EQUALS
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:277: EQUALS
                 {
                 mEQUALS(); if (failed) return ;
 
                 }
                 break;
             case 33 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:284: MULTI_LINE_COMMENT
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:284: MULTI_LINE_COMMENT
                 {
                 mMULTI_LINE_COMMENT(); if (failed) return ;
 
                 }
                 break;
             case 34 :
-                // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:1:303: NAME
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:1:303: NAME
                 {
                 mNAME(); if (failed) return ;
 
@@ -1890,8 +1890,8 @@
 
     // $ANTLR start synpred1
     public final void synpred1_fragment() throws RecognitionException {   
-        // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:705:14: ( '\\r\\n' )
-        // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:705:16: '\\r\\n'
+        // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:705:14: ( '\\r\\n' )
+        // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:705:16: '\\r\\n'
         {
         match("\r\n"); if (failed) return ;
 
@@ -1918,13 +1918,13 @@
 
     protected DFA20 dfa20 = new DFA20(this);
     static final String DFA20_eotS =
-        "\1\uffff\1\37\1\42\1\uffff\1\3\10\37\1\56\1\uffff\2\37\1\uffff\2"+
+        "\1\uffff\1\37\1\42\1\uffff\1\3\10\37\1\55\1\uffff\2\37\1\uffff\2"+
         "\37\2\uffff\1\67\1\70\1\71\1\72\3\uffff\1\37\1\74\1\uffff\1\37\1"+
-        "\76\1\uffff\1\37\1\101\7\37\1\56\1\37\1\uffff\2\37\1\16\1\37\1\uffff"+
-        "\3\37\4\uffff\1\124\1\uffff\1\37\1\uffff\2\37\1\uffff\1\131\1\37"+
-        "\1\133\4\37\1\140\5\37\1\uffff\3\37\2\uffff\4\37\1\uffff\1\152\1"+
-        "\uffff\1\37\1\154\1\155\1\37\1\uffff\4\37\1\123\4\37\1\uffff\1\37"+
-        "\2\uffff\3\37\1\155\1\171\3\37\1\175\2\37\1\uffff\1\37\1\u0081\1"+
+        "\76\1\uffff\1\37\1\101\7\37\1\55\1\uffff\3\37\1\16\1\37\1\uffff"+
+        "\3\37\4\uffff\1\124\1\uffff\1\37\1\uffff\2\37\1\uffff\1\131\1\132"+
+        "\5\37\1\140\5\37\1\uffff\2\37\1\uffff\1\37\1\uffff\4\37\2\uffff"+
+        "\1\152\1\37\1\154\1\155\1\37\1\uffff\4\37\1\122\4\37\1\uffff\1\37"+
+        "\2\uffff\3\37\1\154\1\171\3\37\1\175\2\37\1\uffff\1\37\1\u0081\1"+
         "\u0082\1\uffff\3\37\2\uffff\1\u0085\1\37\1\uffff\1\37\1\u0088\1"+
         "\uffff";
     static final String DFA20_eofS =
@@ -1932,34 +1932,33 @@
     static final String DFA20_minS =
         "\1\0\1\155\1\0\1\uffff\1\0\1\145\1\162\1\156\1\157\1\170\1\145\1"+
         "\141\1\60\1\0\1\uffff\1\0\1\141\1\uffff\1\0\1\52\2\uffff\4\0\3\uffff"+
-        "\1\55\1\0\1\uffff\1\160\1\0\1\uffff\1\143\1\0\1\144\1\154\1\164"+
-        "\1\151\1\163\1\165\1\154\1\0\1\60\1\uffff\1\42\2\0\1\154\1\uffff"+
-        "\3\0\4\uffff\1\0\1\uffff\1\157\1\uffff\1\146\1\154\1\uffff\1\0\1"+
-        "\154\1\0\1\163\1\164\1\145\1\151\1\0\1\60\3\0\1\163\1\uffff\3\0"+
-        "\2\uffff\1\162\2\165\1\141\1\uffff\1\0\1\uffff\1\164\2\0\1\145\1"+
-        "\uffff\1\60\2\0\1\145\1\0\1\164\1\156\1\154\1\162\1\uffff\1\163"+
-        "\2\uffff\1\156\1\60\3\0\1\143\2\145\1\0\1\143\1\60\1\uffff\1\164"+
-        "\2\0\1\uffff\1\145\1\0\1\151\2\uffff\1\0\1\157\1\uffff\1\156\1\0"+
-        "\1\uffff";
+        "\1\55\1\0\1\uffff\1\160\1\0\1\uffff\1\143\1\0\1\144\1\164\1\154"+
+        "\1\151\1\165\1\163\1\154\1\0\1\uffff\1\60\1\42\2\0\1\154\1\uffff"+
+        "\3\0\4\uffff\1\0\1\uffff\1\157\1\uffff\1\146\1\154\1\uffff\2\0\1"+
+        "\154\1\163\1\145\1\164\1\151\2\0\1\60\2\0\1\163\1\uffff\2\0\1\uffff"+
+        "\1\0\1\uffff\1\162\2\165\1\141\2\uffff\1\0\1\164\2\0\1\145\1\uffff"+
+        "\1\60\2\0\1\145\1\0\1\164\1\156\1\154\1\162\1\uffff\1\163\2\uffff"+
+        "\1\156\1\60\3\0\1\143\2\145\1\0\1\143\1\60\1\uffff\1\164\2\0\1\uffff"+
+        "\1\145\1\0\1\151\2\uffff\1\0\1\157\1\uffff\1\156\1\0\1\uffff";
     static final String DFA20_maxS =
         "\1\ufffe\1\155\1\ufffe\1\uffff\1\ufffe\1\145\1\162\1\156\1\165\1"+
         "\170\1\162\1\141\1\71\1\ufffe\1\uffff\1\ufffe\1\141\1\uffff\1\ufffe"+
         "\1\57\2\uffff\4\ufffe\3\uffff\1\55\1\ufffe\1\uffff\1\160\1\ufffe"+
-        "\1\uffff\1\146\1\ufffe\1\144\1\154\1\164\1\151\1\163\1\165\1\154"+
-        "\1\ufffe\1\71\1\uffff\1\165\2\ufffe\1\154\1\uffff\3\ufffe\4\uffff"+
-        "\1\ufffe\1\uffff\1\157\1\uffff\1\162\1\154\1\uffff\1\ufffe\1\154"+
-        "\1\ufffe\1\163\1\164\1\145\1\151\1\ufffe\1\146\3\ufffe\1\163\1\uffff"+
-        "\3\ufffe\2\uffff\1\162\2\165\1\141\1\uffff\1\ufffe\1\uffff\1\164"+
+        "\1\uffff\1\146\1\ufffe\1\144\1\164\1\154\1\151\1\165\1\163\1\154"+
+        "\1\ufffe\1\uffff\1\71\1\165\2\ufffe\1\154\1\uffff\3\ufffe\4\uffff"+
+        "\1\ufffe\1\uffff\1\157\1\uffff\1\162\1\154\1\uffff\2\ufffe\1\154"+
+        "\1\163\1\145\1\164\1\151\2\ufffe\1\146\2\ufffe\1\163\1\uffff\2\ufffe"+
+        "\1\uffff\1\ufffe\1\uffff\1\162\2\165\1\141\2\uffff\1\ufffe\1\164"+
         "\2\ufffe\1\145\1\uffff\1\146\2\ufffe\1\145\1\ufffe\1\164\1\156\1"+
         "\154\1\162\1\uffff\1\163\2\uffff\1\156\1\146\3\ufffe\1\143\2\145"+
         "\1\ufffe\1\143\1\146\1\uffff\1\164\2\ufffe\1\uffff\1\145\1\ufffe"+
         "\1\151\2\uffff\1\ufffe\1\157\1\uffff\1\156\1\ufffe\1\uffff";
     static final String DFA20_acceptS =
         "\3\uffff\1\3\12\uffff\1\20\2\uffff\1\22\2\uffff\1\25\1\26\4\uffff"+
-        "\1\33\1\34\1\35\2\uffff\1\42\2\uffff\1\40\13\uffff\1\16\4\uffff"+
+        "\1\33\1\34\1\35\2\uffff\1\42\2\uffff\1\40\12\uffff\1\16\5\uffff"+
         "\1\23\3\uffff\1\27\1\30\1\31\1\32\1\uffff\1\37\1\uffff\1\2\2\uffff"+
-        "\1\6\15\uffff\1\24\3\uffff\1\41\1\36\4\uffff\1\7\1\uffff\1\10\4"+
-        "\uffff\1\17\11\uffff\1\13\1\uffff\1\12\1\21\13\uffff\1\1\3\uffff"+
+        "\1\6\15\uffff\1\24\2\uffff\1\41\1\uffff\1\36\4\uffff\1\7\1\10\5"+
+        "\uffff\1\17\11\uffff\1\13\1\uffff\1\21\1\12\13\uffff\1\1\3\uffff"+
         "\1\11\3\uffff\1\4\1\14\2\uffff\1\15\2\uffff\1\5";
     static final String DFA20_specialS =
         "\u0089\uffff}>";
@@ -1980,13 +1979,13 @@
             "\1\43",
             "\1\44",
             "\1\45",
-            "\1\47\5\uffff\1\46",
+            "\1\46\5\uffff\1\47",
             "\1\50",
-            "\1\51\14\uffff\1\52",
+            "\1\52\14\uffff\1\51",
             "\1\53",
             "\12\54",
             "\11\37\2\uffff\2\37\1\uffff\22\37\1\uffff\1\37\1\uffff\3\37"+
-            "\1\uffff\1\37\2\uffff\4\37\1\55\1\37\12\54\1\37\2\uffff\2\37"+
+            "\1\uffff\1\37\2\uffff\4\37\1\56\1\37\12\54\1\37\2\uffff\2\37"+
             "\1\uffff\74\37\1\uffff\1\37\1\uffff\uff80\37",
             "",
             "\11\60\2\16\2\60\1\16\22\60\1\16\1\60\1\16\3\60\1\16\1\61\2"+
@@ -2036,13 +2035,13 @@
             "\1\107",
             "\1\110",
             "\11\37\2\uffff\2\37\1\uffff\22\37\1\uffff\1\37\1\uffff\3\37"+
-            "\1\uffff\1\37\2\uffff\4\37\1\55\1\37\12\54\1\37\2\uffff\2\37"+
+            "\1\uffff\1\37\2\uffff\4\37\1\56\1\37\12\54\1\37\2\uffff\2\37"+
             "\1\uffff\74\37\1\uffff\1\37\1\uffff\uff80\37",
-            "\12\111",
             "",
-            "\1\16\4\uffff\1\113\10\uffff\4\114\4\115\44\uffff\1\113\5\uffff"+
-            "\1\113\3\uffff\1\113\7\uffff\1\113\3\uffff\1\113\1\uffff\1\113"+
-            "\1\112",
+            "\12\111",
+            "\1\16\4\uffff\1\112\10\uffff\4\114\4\115\44\uffff\1\112\5\uffff"+
+            "\1\112\3\uffff\1\112\7\uffff\1\112\3\uffff\1\112\1\uffff\1\112"+
+            "\1\113",
             "\11\60\2\16\2\60\1\16\22\60\1\16\1\60\1\16\3\60\1\16\1\61\2"+
             "\16\21\60\2\16\2\60\1\16\34\60\1\57\37\60\1\16\1\60\1\16\uff80"+
             "\60",
@@ -2056,9 +2055,9 @@
             "\11\120\2\117\2\120\1\117\22\120\1\117\1\120\1\117\3\120\1\117"+
             "\1\120\2\117\21\120\2\117\2\120\1\117\74\120\1\117\1\120\1\117"+
             "\uff80\120",
-            "\11\122\2\123\2\122\1\123\22\122\1\123\1\122\1\123\3\122\1\123"+
-            "\1\122\2\123\1\121\20\122\2\123\2\122\1\123\74\122\1\123\1\122"+
-            "\1\123\uff80\122",
+            "\11\123\2\122\2\123\1\122\22\123\1\122\1\123\1\122\3\123\1\122"+
+            "\1\123\2\122\1\121\20\123\2\122\2\123\1\122\74\123\1\122\1\123"+
+            "\1\122\uff80\123",
             "",
             "",
             "",
@@ -2075,10 +2074,10 @@
             "\11\37\2\uffff\2\37\1\uffff\22\37\1\uffff\1\37\1\uffff\3\37"+
             "\1\uffff\1\37\2\uffff\21\37\2\uffff\2\37\1\uffff\74\37\1\uffff"+
             "\1\37\1\uffff\uff80\37",
-            "\1\132",
             "\11\37\2\uffff\2\37\1\uffff\22\37\1\uffff\1\37\1\uffff\3\37"+
             "\1\uffff\1\37\2\uffff\21\37\2\uffff\2\37\1\uffff\74\37\1\uffff"+
             "\1\37\1\uffff\uff80\37",
+            "\1\133",
             "\1\134",
             "\1\135",
             "\1\136",
@@ -2086,10 +2085,10 @@
             "\11\37\2\uffff\2\37\1\uffff\22\37\1\uffff\1\37\1\uffff\3\37"+
             "\1\uffff\1\37\2\uffff\6\37\12\111\1\37\2\uffff\2\37\1\uffff"+
             "\74\37\1\uffff\1\37\1\uffff\uff80\37",
-            "\12\141\7\uffff\6\141\32\uffff\6\141",
             "\11\60\2\16\2\60\1\16\22\60\1\16\1\60\1\16\3\60\1\16\1\61\2"+
             "\16\21\60\2\16\2\60\1\16\34\60\1\57\37\60\1\16\1\60\1\16\uff80"+
             "\60",
+            "\12\141\7\uffff\6\141\32\uffff\6\141",
             "\11\60\2\16\2\60\1\16\22\60\1\16\1\60\1\16\3\60\1\16\1\61\2"+
             "\16\6\60\10\142\3\60\2\16\2\60\1\16\34\60\1\57\37\60\1\16\1"+
             "\60\1\16\uff80\60",
@@ -2101,23 +2100,23 @@
             "\11\120\2\117\2\120\1\117\22\120\1\117\1\120\1\117\3\120\1\117"+
             "\1\120\2\117\21\120\2\117\2\120\1\117\74\120\1\117\1\120\1\117"+
             "\uff80\120",
-            "\11\122\2\123\2\122\1\123\22\122\1\123\1\122\1\123\3\122\1\123"+
-            "\1\122\2\123\1\121\4\122\1\145\13\122\2\123\2\122\1\123\74\122"+
-            "\1\123\1\122\1\123\uff80\122",
-            "\11\122\2\123\2\122\1\123\22\122\1\123\1\122\1\123\3\122\1\123"+
-            "\1\122\2\123\1\121\20\122\2\123\2\122\1\123\74\122\1\123\1\122"+
-            "\1\123\uff80\122",
+            "\11\123\2\122\2\123\1\122\22\123\1\122\1\123\1\122\3\123\1\122"+
+            "\1\123\2\122\1\121\4\123\1\145\13\123\2\122\2\123\1\122\74\123"+
+            "\1\122\1\123\1\122\uff80\123",
             "",
+            "\11\123\2\122\2\123\1\122\22\123\1\122\1\123\1\122\3\123\1\122"+
+            "\1\123\2\122\1\121\20\123\2\122\2\123\1\122\74\123\1\122\1\123"+
+            "\1\122\uff80\123",
             "",
             "\1\146",
             "\1\147",
             "\1\150",
             "\1\151",
             "",
+            "",
             "\11\37\2\uffff\2\37\1\uffff\22\37\1\uffff\1\37\1\uffff\3\37"+
             "\1\uffff\1\37\2\uffff\21\37\2\uffff\2\37\1\uffff\74\37\1\uffff"+
             "\1\37\1\uffff\uff80\37",
-            "",
             "\1\153",
             "\11\37\2\uffff\2\37\1\uffff\22\37\1\uffff\1\37\1\uffff\3\37"+
             "\1\uffff\1\37\2\uffff\21\37\2\uffff\2\37\1\uffff\74\37\1\uffff"+
@@ -2135,9 +2134,9 @@
             "\16\21\60\2\16\2\60\1\16\34\60\1\57\37\60\1\16\1\60\1\16\uff80"+
             "\60",
             "\1\161",
-            "\11\122\2\uffff\2\122\1\uffff\22\122\1\uffff\1\122\1\uffff\3"+
-            "\122\1\uffff\1\122\2\uffff\1\121\20\122\2\uffff\2\122\1\uffff"+
-            "\74\122\1\uffff\1\122\1\uffff\uff80\122",
+            "\11\123\2\uffff\2\123\1\uffff\22\123\1\uffff\1\123\1\uffff\3"+
+            "\123\1\uffff\1\123\2\uffff\1\121\20\123\2\uffff\2\123\1\uffff"+
+            "\74\123\1\uffff\1\123\1\uffff\uff80\123",
             "\1\162",
             "\1\163",
             "\1\164",

Added: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELLexer.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELLexer.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,2022 @@
+// $ANTLR 3.0.1 C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g 2008-01-24 19:05:12
+
+	package org.drools.clp;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+public class CLPMVELLexer extends Lexer {
+    public static final int RIGHT_SQUARE=40;
+    public static final int RIGHT_CURLY=42;
+    public static final int EQUALS=23;
+    public static final int FLOAT=25;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=37;
+    public static final int NOT=15;
+    public static final int DELIM=36;
+    public static final int AND=13;
+    public static final int EOF=-1;
+    public static final int HexDigit=33;
+    public static final int DEFFUNCTION=7;
+    public static final int ASSIGN_OP=18;
+    public static final int RIGHT_PAREN=6;
+    public static final int NAME=5;
+    public static final int EOL=29;
+    public static final int DEFRULE=9;
+    public static final int TILDE=21;
+    public static final int PIPE=19;
+    public static final int VAR=8;
+    public static final int EXISTS=16;
+    public static final int SYMBOL=28;
+    public static final int START_DELIM=44;
+    public static final int NULL=27;
+    public static final int BOOL=26;
+    public static final int SALIENCE=11;
+    public static final int AMPERSAND=20;
+    public static final int INT=12;
+    public static final int Tokens=47;
+    public static final int MULTI_LINE_COMMENT=43;
+    public static final int T46=46;
+    public static final int T45=45;
+    public static final int COLON=22;
+    public static final int WS=30;
+    public static final int UnicodeEscape=34;
+    public static final int LEFT_CURLY=41;
+    public static final int OR=14;
+    public static final int TEST=17;
+    public static final int LEFT_PAREN=4;
+    public static final int DECLARE=31;
+    public static final int FUNC_NAME=24;
+    public static final int LEFT_SQUARE=39;
+    public static final int EscapeSequence=32;
+    public static final int OctalEscape=35;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=38;
+    public static final int STRING=10;
+    public CLPMVELLexer() {;} 
+    public CLPMVELLexer(CharStream input) {
+        super(input);
+        ruleMemo = new HashMap[45+1];
+     }
+    public String getGrammarFileName() { return "C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g"; }
+
+    // $ANTLR start T45
+    public final void mT45() throws RecognitionException {
+        try {
+            int _type = T45;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:6:5: ( 'import' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:6:7: 'import'
+            {
+            match("import"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T45
+
+    // $ANTLR start T46
+    public final void mT46() throws RecognitionException {
+        try {
+            int _type = T46;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:7:5: ( '=>' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:7:7: '=>'
+            {
+            match("=>"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end T46
+
+    // $ANTLR start WS
+    public final void mWS() throws RecognitionException {
+        try {
+            int _type = WS;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:732:9: ( ( ' ' | '\\t' | '\\f' | EOL ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:732:17: ( ' ' | '\\t' | '\\f' | EOL )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:732:17: ( ' ' | '\\t' | '\\f' | EOL )
+            int alt1=4;
+            switch ( input.LA(1) ) {
+            case ' ':
+                {
+                alt1=1;
+                }
+                break;
+            case '\t':
+                {
+                alt1=2;
+                }
+                break;
+            case '\f':
+                {
+                alt1=3;
+                }
+                break;
+            case '\n':
+            case '\r':
+                {
+                alt1=4;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("732:17: ( ' ' | '\\t' | '\\f' | EOL )", 1, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt1) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:732:19: ' '
+                    {
+                    match(' '); if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:733:19: '\\t'
+                    {
+                    match('\t'); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:734:19: '\\f'
+                    {
+                    match('\f'); if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:735:19: EOL
+                    {
+                    mEOL(); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( backtracking==0 ) {
+               channel=HIDDEN; 
+            }
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end WS
+
+    // $ANTLR start DEFRULE
+    public final void mDEFRULE() throws RecognitionException {
+        try {
+            int _type = DEFRULE;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:740:10: ( 'defrule' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:740:12: 'defrule'
+            {
+            match("defrule"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end DEFRULE
+
+    // $ANTLR start DEFFUNCTION
+    public final void mDEFFUNCTION() throws RecognitionException {
+        try {
+            int _type = DEFFUNCTION;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:741:13: ( 'deffunction' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:741:15: 'deffunction'
+            {
+            match("deffunction"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end DEFFUNCTION
+
+    // $ANTLR start OR
+    public final void mOR() throws RecognitionException {
+        try {
+            int _type = OR;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:742:7: ( 'or' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:742:9: 'or'
+            {
+            match("or"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end OR
+
+    // $ANTLR start AND
+    public final void mAND() throws RecognitionException {
+        try {
+            int _type = AND;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:743:7: ( 'and' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:743:9: 'and'
+            {
+            match("and"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end AND
+
+    // $ANTLR start NOT
+    public final void mNOT() throws RecognitionException {
+        try {
+            int _type = NOT;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:744:7: ( 'not' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:744:9: 'not'
+            {
+            match("not"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end NOT
+
+    // $ANTLR start EXISTS
+    public final void mEXISTS() throws RecognitionException {
+        try {
+            int _type = EXISTS;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:745:10: ( 'exists' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:745:12: 'exists'
+            {
+            match("exists"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end EXISTS
+
+    // $ANTLR start TEST
+    public final void mTEST() throws RecognitionException {
+        try {
+            int _type = TEST;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:746:8: ( 'test' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:746:10: 'test'
+            {
+            match("test"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end TEST
+
+    // $ANTLR start NULL
+    public final void mNULL() throws RecognitionException {
+        try {
+            int _type = NULL;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:748:7: ( 'null' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:748:9: 'null'
+            {
+            match("null"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end NULL
+
+    // $ANTLR start DECLARE
+    public final void mDECLARE() throws RecognitionException {
+        try {
+            int _type = DECLARE;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:750:10: ( 'declare' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:750:12: 'declare'
+            {
+            match("declare"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end DECLARE
+
+    // $ANTLR start SALIENCE
+    public final void mSALIENCE() throws RecognitionException {
+        try {
+            int _type = SALIENCE;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:752:10: ( 'salience' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:752:12: 'salience'
+            {
+            match("salience"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end SALIENCE
+
+    // $ANTLR start EOL
+    public final void mEOL() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:757:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:758:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:758:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+            int alt2=3;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0=='\r') ) {
+                int LA2_1 = input.LA(2);
+
+                if ( (LA2_1=='\n') && (synpred1())) {
+                    alt2=1;
+                }
+                else {
+                    alt2=2;}
+            }
+            else if ( (LA2_0=='\n') ) {
+                alt2=3;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("758:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+
+                throw nvae;
+            }
+            switch (alt2) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:758:14: ( '\\r\\n' )=> '\\r\\n'
+                    {
+                    match("\r\n"); if (failed) return ;
+
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:759:25: '\\r'
+                    {
+                    match('\r'); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:760:25: '\\n'
+                    {
+                    match('\n'); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end EOL
+
+    // $ANTLR start INT
+    public final void mINT() throws RecognitionException {
+        try {
+            int _type = INT;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:765:2: ( ( '-' )? ( '0' .. '9' )+ )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:765:4: ( '-' )? ( '0' .. '9' )+
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:765:4: ( '-' )?
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0=='-') ) {
+                alt3=1;
+            }
+            switch (alt3) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:765:5: '-'
+                    {
+                    match('-'); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:765:10: ( '0' .. '9' )+
+            int cnt4=0;
+            loop4:
+            do {
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+
+                if ( ((LA4_0>='0' && LA4_0<='9')) ) {
+                    alt4=1;
+                }
+
+
+                switch (alt4) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:765:11: '0' .. '9'
+            	    {
+            	    matchRange('0','9'); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt4 >= 1 ) break loop4;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(4, input);
+                        throw eee;
+                }
+                cnt4++;
+            } while (true);
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end INT
+
+    // $ANTLR start FLOAT
+    public final void mFLOAT() throws RecognitionException {
+        try {
+            int _type = FLOAT;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:4: ( '-' )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0=='-') ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:5: '-'
+                    {
+                    match('-'); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:10: ( '0' .. '9' )+
+            int cnt6=0;
+            loop6:
+            do {
+                int alt6=2;
+                int LA6_0 = input.LA(1);
+
+                if ( ((LA6_0>='0' && LA6_0<='9')) ) {
+                    alt6=1;
+                }
+
+
+                switch (alt6) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:11: '0' .. '9'
+            	    {
+            	    matchRange('0','9'); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt6 >= 1 ) break loop6;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(6, input);
+                        throw eee;
+                }
+                cnt6++;
+            } while (true);
+
+            match('.'); if (failed) return ;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:26: ( '0' .. '9' )+
+            int cnt7=0;
+            loop7:
+            do {
+                int alt7=2;
+                int LA7_0 = input.LA(1);
+
+                if ( ((LA7_0>='0' && LA7_0<='9')) ) {
+                    alt7=1;
+                }
+
+
+                switch (alt7) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:769:27: '0' .. '9'
+            	    {
+            	    matchRange('0','9'); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt7 >= 1 ) break loop7;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(7, input);
+                        throw eee;
+                }
+                cnt7++;
+            } while (true);
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end FLOAT
+
+    // $ANTLR start STRING
+    public final void mSTRING() throws RecognitionException {
+        try {
+            int _type = STRING;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:773:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0=='\"') ) {
+                alt10=1;
+            }
+            else if ( (LA10_0=='\'') ) {
+                alt10=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("772:1: STRING : ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) );", 10, 0, input);
+
+                throw nvae;
+            }
+            switch (alt10) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:773:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    {
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:773:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:773:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+                    {
+                    match('\"'); if (failed) return ;
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:773:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+                    loop8:
+                    do {
+                        int alt8=3;
+                        int LA8_0 = input.LA(1);
+
+                        if ( (LA8_0=='\\') ) {
+                            alt8=1;
+                        }
+                        else if ( ((LA8_0>='\u0000' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='[')||(LA8_0>=']' && LA8_0<='\uFFFE')) ) {
+                            alt8=2;
+                        }
+
+
+                        switch (alt8) {
+                    	case 1 :
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:773:15: EscapeSequence
+                    	    {
+                    	    mEscapeSequence(); if (failed) return ;
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:773:32: ~ ( '\\\\' | '\"' )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+                    	        input.consume();
+                    	    failed=false;
+                    	    }
+                    	    else {
+                    	        if (backtracking>0) {failed=true; return ;}
+                    	        MismatchedSetException mse =
+                    	            new MismatchedSetException(null,input);
+                    	        recover(mse);    throw mse;
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop8;
+                        }
+                    } while (true);
+
+                    match('\"'); if (failed) return ;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:774:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    {
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:774:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:774:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
+                    {
+                    match('\''); if (failed) return ;
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:774:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
+                    loop9:
+                    do {
+                        int alt9=3;
+                        int LA9_0 = input.LA(1);
+
+                        if ( (LA9_0=='\\') ) {
+                            alt9=1;
+                        }
+                        else if ( ((LA9_0>='\u0000' && LA9_0<='&')||(LA9_0>='(' && LA9_0<='[')||(LA9_0>=']' && LA9_0<='\uFFFE')) ) {
+                            alt9=2;
+                        }
+
+
+                        switch (alt9) {
+                    	case 1 :
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:774:16: EscapeSequence
+                    	    {
+                    	    mEscapeSequence(); if (failed) return ;
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:774:33: ~ ( '\\\\' | '\\'' )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+                    	        input.consume();
+                    	    failed=false;
+                    	    }
+                    	    else {
+                    	        if (backtracking>0) {failed=true; return ;}
+                    	        MismatchedSetException mse =
+                    	            new MismatchedSetException(null,input);
+                    	        recover(mse);    throw mse;
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop9;
+                        }
+                    } while (true);
+
+                    match('\''); if (failed) return ;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end STRING
+
+    // $ANTLR start HexDigit
+    public final void mHexDigit() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:778:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:778: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();
+            failed=false;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end HexDigit
+
+    // $ANTLR start EscapeSequence
+    public final void mEscapeSequence() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:782:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
+            int alt11=3;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0=='\\') ) {
+                switch ( input.LA(2) ) {
+                case '\"':
+                case '\'':
+                case '\\':
+                case 'b':
+                case 'f':
+                case 'n':
+                case 'r':
+                case 't':
+                    {
+                    alt11=1;
+                    }
+                    break;
+                case 'u':
+                    {
+                    alt11=2;
+                    }
+                    break;
+                case '0':
+                case '1':
+                case '2':
+                case '3':
+                case '4':
+                case '5':
+                case '6':
+                case '7':
+                    {
+                    alt11=3;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("780:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 11, 1, input);
+
+                    throw nvae;
+                }
+
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("780:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape );", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:782: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' ) {
+                        input.consume();
+                    failed=false;
+                    }
+                    else {
+                        if (backtracking>0) {failed=true; return ;}
+                        MismatchedSetException mse =
+                            new MismatchedSetException(null,input);
+                        recover(mse);    throw mse;
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:783:9: UnicodeEscape
+                    {
+                    mUnicodeEscape(); if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:784:9: OctalEscape
+                    {
+                    mOctalEscape(); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+        }
+        finally {
+        }
+    }
+    // $ANTLR end EscapeSequence
+
+    // $ANTLR start OctalEscape
+    public final void mOctalEscape() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            int alt12=3;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0=='\\') ) {
+                int LA12_1 = input.LA(2);
+
+                if ( ((LA12_1>='0' && LA12_1<='3')) ) {
+                    int LA12_2 = input.LA(3);
+
+                    if ( ((LA12_2>='0' && LA12_2<='7')) ) {
+                        int LA12_4 = input.LA(4);
+
+                        if ( ((LA12_4>='0' && LA12_4<='7')) ) {
+                            alt12=1;
+                        }
+                        else {
+                            alt12=2;}
+                    }
+                    else {
+                        alt12=3;}
+                }
+                else if ( ((LA12_1>='4' && LA12_1<='7')) ) {
+                    int LA12_3 = input.LA(3);
+
+                    if ( ((LA12_3>='0' && LA12_3<='7')) ) {
+                        alt12=2;
+                    }
+                    else {
+                        alt12=3;}
+                }
+                else {
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("787:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("787: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\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+                    {
+                    match('\\'); if (failed) return ;
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:14: ( '0' .. '3' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:15: '0' .. '3'
+                    {
+                    matchRange('0','3'); if (failed) return ;
+
+                    }
+
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:25: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:26: '0' .. '7'
+                    {
+                    matchRange('0','7'); if (failed) return ;
+
+                    }
+
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:36: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:789:37: '0' .. '7'
+                    {
+                    matchRange('0','7'); if (failed) return ;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:790:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+                    {
+                    match('\\'); if (failed) return ;
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:790:14: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:790:15: '0' .. '7'
+                    {
+                    matchRange('0','7'); if (failed) return ;
+
+                    }
+
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:790:25: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:790:26: '0' .. '7'
+                    {
+                    matchRange('0','7'); if (failed) return ;
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:791:9: '\\\\' ( '0' .. '7' )
+                    {
+                    match('\\'); if (failed) return ;
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:791:14: ( '0' .. '7' )
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:791:15: '0' .. '7'
+                    {
+                    matchRange('0','7'); if (failed) return ;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        finally {
+        }
+    }
+    // $ANTLR end OctalEscape
+
+    // $ANTLR start UnicodeEscape
+    public final void mUnicodeEscape() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:796:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:796:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            {
+            match('\\'); if (failed) return ;
+            match('u'); if (failed) return ;
+            mHexDigit(); if (failed) return ;
+            mHexDigit(); if (failed) return ;
+            mHexDigit(); if (failed) return ;
+            mHexDigit(); if (failed) return ;
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end UnicodeEscape
+
+    // $ANTLR start BOOL
+    public final void mBOOL() throws RecognitionException {
+        try {
+            int _type = BOOL;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:800:2: ( ( 'true' | 'false' ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:800:4: ( 'true' | 'false' )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:800:4: ( 'true' | 'false' )
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0=='t') ) {
+                alt13=1;
+            }
+            else if ( (LA13_0=='f') ) {
+                alt13=2;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("800:4: ( 'true' | 'false' )", 13, 0, input);
+
+                throw nvae;
+            }
+            switch (alt13) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:800:5: 'true'
+                    {
+                    match("true"); if (failed) return ;
+
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:800:12: 'false'
+                    {
+                    match("false"); if (failed) return ;
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end BOOL
+
+    // $ANTLR start VAR
+    public final void mVAR() throws RecognitionException {
+        try {
+            int _type = VAR;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:803:6: ( '?' (~ DELIM )+ )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:803:8: '?' (~ DELIM )+
+            {
+            match('?'); if (failed) return ;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:803:11: (~ DELIM )+
+            int cnt14=0;
+            loop14:
+            do {
+                int alt14=2;
+                int LA14_0 = input.LA(1);
+
+                if ( ((LA14_0>='\u0000' && LA14_0<='\b')||(LA14_0>='\u000B' && LA14_0<='\f')||(LA14_0>='\u000E' && LA14_0<='\u001F')||LA14_0=='!'||(LA14_0>='#' && LA14_0<='%')||LA14_0=='\''||(LA14_0>='*' && LA14_0<=':')||(LA14_0>='=' && LA14_0<='{')||LA14_0=='}'||(LA14_0>='\u007F' && LA14_0<='\uFFFE')) ) {
+                    alt14=1;
+                }
+
+
+                switch (alt14) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:803:11: ~ DELIM
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='#')||(input.LA(1)>='%' && input.LA(1)<='\uFFFE') ) {
+            	        input.consume();
+            	    failed=false;
+            	    }
+            	    else {
+            	        if (backtracking>0) {failed=true; return ;}
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recover(mse);    throw mse;
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt14 >= 1 ) break loop14;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(14, input);
+                        throw eee;
+                }
+                cnt14++;
+            } while (true);
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end VAR
+
+    // $ANTLR start SH_STYLE_SINGLE_LINE_COMMENT
+    public final void mSH_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
+        try {
+            int _type = SH_STYLE_SINGLE_LINE_COMMENT;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:807:2: ( '#' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:807:4: '#' ( options {greedy=false; } : . )* EOL
+            {
+            match('#'); if (failed) return ;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:807:8: ( options {greedy=false; } : . )*
+            loop15:
+            do {
+                int alt15=2;
+                int LA15_0 = input.LA(1);
+
+                if ( (LA15_0=='\r') ) {
+                    alt15=2;
+                }
+                else if ( (LA15_0=='\n') ) {
+                    alt15=2;
+                }
+                else if ( ((LA15_0>='\u0000' && LA15_0<='\t')||(LA15_0>='\u000B' && LA15_0<='\f')||(LA15_0>='\u000E' && LA15_0<='\uFFFE')) ) {
+                    alt15=1;
+                }
+
+
+                switch (alt15) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:807:35: .
+            	    {
+            	    matchAny(); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop15;
+                }
+            } while (true);
+
+            mEOL(); if (failed) return ;
+            if ( backtracking==0 ) {
+               channel=HIDDEN; 
+            }
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end SH_STYLE_SINGLE_LINE_COMMENT
+
+    // $ANTLR start C_STYLE_SINGLE_LINE_COMMENT
+    public final void mC_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
+        try {
+            int _type = C_STYLE_SINGLE_LINE_COMMENT;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:813:2: ( '//' ( options {greedy=false; } : . )* EOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:813:4: '//' ( options {greedy=false; } : . )* EOL
+            {
+            match("//"); if (failed) return ;
+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:813:9: ( options {greedy=false; } : . )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0=='\r') ) {
+                    alt16=2;
+                }
+                else if ( (LA16_0=='\n') ) {
+                    alt16=2;
+                }
+                else if ( ((LA16_0>='\u0000' && LA16_0<='\t')||(LA16_0>='\u000B' && LA16_0<='\f')||(LA16_0>='\u000E' && LA16_0<='\uFFFE')) ) {
+                    alt16=1;
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:813:36: .
+            	    {
+            	    matchAny(); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } while (true);
+
+            mEOL(); if (failed) return ;
+            if ( backtracking==0 ) {
+               channel=HIDDEN; 
+            }
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end C_STYLE_SINGLE_LINE_COMMENT
+
+    // $ANTLR start LEFT_PAREN
+    public final void mLEFT_PAREN() throws RecognitionException {
+        try {
+            int _type = LEFT_PAREN;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:819:2: ( '(' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:819:4: '('
+            {
+            match('('); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end LEFT_PAREN
+
+    // $ANTLR start RIGHT_PAREN
+    public final void mRIGHT_PAREN() throws RecognitionException {
+        try {
+            int _type = RIGHT_PAREN;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:823:2: ( ')' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:823:4: ')'
+            {
+            match(')'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end RIGHT_PAREN
+
+    // $ANTLR start LEFT_SQUARE
+    public final void mLEFT_SQUARE() throws RecognitionException {
+        try {
+            int _type = LEFT_SQUARE;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:827:2: ( '[' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:827:4: '['
+            {
+            match('['); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end LEFT_SQUARE
+
+    // $ANTLR start RIGHT_SQUARE
+    public final void mRIGHT_SQUARE() throws RecognitionException {
+        try {
+            int _type = RIGHT_SQUARE;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:831:2: ( ']' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:831:4: ']'
+            {
+            match(']'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end RIGHT_SQUARE
+
+    // $ANTLR start LEFT_CURLY
+    public final void mLEFT_CURLY() throws RecognitionException {
+        try {
+            int _type = LEFT_CURLY;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:835:2: ( '{' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:835:4: '{'
+            {
+            match('{'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end LEFT_CURLY
+
+    // $ANTLR start RIGHT_CURLY
+    public final void mRIGHT_CURLY() throws RecognitionException {
+        try {
+            int _type = RIGHT_CURLY;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:839:2: ( '}' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:839:4: '}'
+            {
+            match('}'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end RIGHT_CURLY
+
+    // $ANTLR start TILDE
+    public final void mTILDE() throws RecognitionException {
+        try {
+            int _type = TILDE;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:842:7: ( '~' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:842:9: '~'
+            {
+            match('~'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end TILDE
+
+    // $ANTLR start AMPERSAND
+    public final void mAMPERSAND() throws RecognitionException {
+        try {
+            int _type = AMPERSAND;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:846:2: ( '&' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:846:4: '&'
+            {
+            match('&'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end AMPERSAND
+
+    // $ANTLR start PIPE
+    public final void mPIPE() throws RecognitionException {
+        try {
+            int _type = PIPE;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:850:2: ( '|' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:850:4: '|'
+            {
+            match('|'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end PIPE
+
+    // $ANTLR start ASSIGN_OP
+    public final void mASSIGN_OP() throws RecognitionException {
+        try {
+            int _type = ASSIGN_OP;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:854:2: ( '<-' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:854:4: '<-'
+            {
+            match("<-"); if (failed) return ;
+
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end ASSIGN_OP
+
+    // $ANTLR start COLON
+    public final void mCOLON() throws RecognitionException {
+        try {
+            int _type = COLON;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:857:7: ( ':' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:857:9: ':'
+            {
+            match(':'); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end COLON
+
+    // $ANTLR start EQUALS
+    public final void mEQUALS() throws RecognitionException {
+        try {
+            int _type = EQUALS;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:859:8: ( '=' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:859:10: '='
+            {
+            match('='); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end EQUALS
+
+    // $ANTLR start MULTI_LINE_COMMENT
+    public final void mMULTI_LINE_COMMENT() throws RecognitionException {
+        try {
+            int _type = MULTI_LINE_COMMENT;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:862:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:862:4: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); if (failed) return ;
+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:862:9: ( options {greedy=false; } : . )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( (LA17_0=='*') ) {
+                    int LA17_1 = input.LA(2);
+
+                    if ( (LA17_1=='/') ) {
+                        alt17=2;
+                    }
+                    else if ( ((LA17_1>='\u0000' && LA17_1<='.')||(LA17_1>='0' && LA17_1<='\uFFFE')) ) {
+                        alt17=1;
+                    }
+
+
+                }
+                else if ( ((LA17_0>='\u0000' && LA17_0<=')')||(LA17_0>='+' && LA17_0<='\uFFFE')) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:862:35: .
+            	    {
+            	    matchAny(); if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop17;
+                }
+            } while (true);
+
+            match("*/"); if (failed) return ;
+
+            if ( backtracking==0 ) {
+               channel=HIDDEN; 
+            }
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end MULTI_LINE_COMMENT
+
+    // $ANTLR start NAME
+    public final void mNAME() throws RecognitionException {
+        try {
+            int _type = NAME;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:866:6: ( SYMBOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:866:8: SYMBOL
+            {
+            mSYMBOL(); if (failed) return ;
+
+            }
+
+            this.type = _type;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end NAME
+
+    // $ANTLR start FUNC_NAME
+    public final void mFUNC_NAME() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:871:11: ( SYMBOL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:871:14: SYMBOL
+            {
+            mSYMBOL(); if (failed) return ;
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end FUNC_NAME
+
+    // $ANTLR start SYMBOL
+    public final void mSYMBOL() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:874:8: (~ START_DELIM (~ DELIM )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:874:10: ~ START_DELIM (~ DELIM )*
+            {
+            if ( (input.LA(1)>='\u0000' && input.LA(1)<='+')||(input.LA(1)>='-' && input.LA(1)<='\uFFFE') ) {
+                input.consume();
+            failed=false;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:874:23: (~ DELIM )*
+            loop18:
+            do {
+                int alt18=2;
+                int LA18_0 = input.LA(1);
+
+                if ( ((LA18_0>='\u0000' && LA18_0<='\b')||(LA18_0>='\u000B' && LA18_0<='\f')||(LA18_0>='\u000E' && LA18_0<='\u001F')||LA18_0=='!'||(LA18_0>='#' && LA18_0<='%')||LA18_0=='\''||(LA18_0>='*' && LA18_0<=':')||(LA18_0>='=' && LA18_0<='{')||LA18_0=='}'||(LA18_0>='\u007F' && LA18_0<='\uFFFE')) ) {
+                    alt18=1;
+                }
+
+
+                switch (alt18) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:874:23: ~ DELIM
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='#')||(input.LA(1)>='%' && input.LA(1)<='\uFFFE') ) {
+            	        input.consume();
+            	    failed=false;
+            	    }
+            	    else {
+            	        if (backtracking>0) {failed=true; return ;}
+            	        MismatchedSetException mse =
+            	            new MismatchedSetException(null,input);
+            	        recover(mse);    throw mse;
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop18;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end SYMBOL
+
+    // $ANTLR start START_DELIM
+    public final void mSTART_DELIM() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:877:13: ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '?' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:
+            {
+            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' '||input.LA(1)=='\"'||input.LA(1)=='&'||(input.LA(1)>='(' && input.LA(1)<=')')||input.LA(1)==';'||input.LA(1)=='?'||input.LA(1)=='|'||input.LA(1)=='~' ) {
+                input.consume();
+            failed=false;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end START_DELIM
+
+    // $ANTLR start DELIM
+    public final void mDELIM() throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:880:11: ( ' ' | '\\t' | '\\n' | '\\r' | '\"' | '(' | ')' | ';' | '&' | '|' | '~' | '<' )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:
+            {
+            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' '||input.LA(1)=='\"'||input.LA(1)=='&'||(input.LA(1)>='(' && input.LA(1)<=')')||(input.LA(1)>=';' && input.LA(1)<='<')||input.LA(1)=='|'||input.LA(1)=='~' ) {
+                input.consume();
+            failed=false;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                MismatchedSetException mse =
+                    new MismatchedSetException(null,input);
+                recover(mse);    throw mse;
+            }
+
+
+            }
+
+        }
+        finally {
+        }
+    }
+    // $ANTLR end DELIM
+
+    public void mTokens() throws RecognitionException {
+        // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:8: ( T45 | T46 | WS | DEFRULE | DEFFUNCTION | OR | AND | NOT | EXISTS | TEST | NULL | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | 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 | ASSIGN_OP | COLON | EQUALS | MULTI_LINE_COMMENT | NAME )
+        int alt19=34;
+        alt19 = dfa19.predict(input);
+        switch (alt19) {
+            case 1 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:10: T45
+                {
+                mT45(); if (failed) return ;
+
+                }
+                break;
+            case 2 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:14: T46
+                {
+                mT46(); if (failed) return ;
+
+                }
+                break;
+            case 3 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:18: WS
+                {
+                mWS(); if (failed) return ;
+
+                }
+                break;
+            case 4 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:21: DEFRULE
+                {
+                mDEFRULE(); if (failed) return ;
+
+                }
+                break;
+            case 5 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:29: DEFFUNCTION
+                {
+                mDEFFUNCTION(); if (failed) return ;
+
+                }
+                break;
+            case 6 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:41: OR
+                {
+                mOR(); if (failed) return ;
+
+                }
+                break;
+            case 7 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:44: AND
+                {
+                mAND(); if (failed) return ;
+
+                }
+                break;
+            case 8 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:48: NOT
+                {
+                mNOT(); if (failed) return ;
+
+                }
+                break;
+            case 9 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:52: EXISTS
+                {
+                mEXISTS(); if (failed) return ;
+
+                }
+                break;
+            case 10 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:59: TEST
+                {
+                mTEST(); if (failed) return ;
+
+                }
+                break;
+            case 11 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:64: NULL
+                {
+                mNULL(); if (failed) return ;
+
+                }
+                break;
+            case 12 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:69: DECLARE
+                {
+                mDECLARE(); if (failed) return ;
+
+                }
+                break;
+            case 13 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:77: SALIENCE
+                {
+                mSALIENCE(); if (failed) return ;
+
+                }
+                break;
+            case 14 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:86: INT
+                {
+                mINT(); if (failed) return ;
+
+                }
+                break;
+            case 15 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:90: FLOAT
+                {
+                mFLOAT(); if (failed) return ;
+
+                }
+                break;
+            case 16 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:96: STRING
+                {
+                mSTRING(); if (failed) return ;
+
+                }
+                break;
+            case 17 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:103: BOOL
+                {
+                mBOOL(); if (failed) return ;
+
+                }
+                break;
+            case 18 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:108: VAR
+                {
+                mVAR(); if (failed) return ;
+
+                }
+                break;
+            case 19 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:112: SH_STYLE_SINGLE_LINE_COMMENT
+                {
+                mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+
+                }
+                break;
+            case 20 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:141: C_STYLE_SINGLE_LINE_COMMENT
+                {
+                mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+
+                }
+                break;
+            case 21 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:169: LEFT_PAREN
+                {
+                mLEFT_PAREN(); if (failed) return ;
+
+                }
+                break;
+            case 22 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:180: RIGHT_PAREN
+                {
+                mRIGHT_PAREN(); if (failed) return ;
+
+                }
+                break;
+            case 23 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:192: LEFT_SQUARE
+                {
+                mLEFT_SQUARE(); if (failed) return ;
+
+                }
+                break;
+            case 24 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:204: RIGHT_SQUARE
+                {
+                mRIGHT_SQUARE(); if (failed) return ;
+
+                }
+                break;
+            case 25 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:217: LEFT_CURLY
+                {
+                mLEFT_CURLY(); if (failed) return ;
+
+                }
+                break;
+            case 26 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:228: RIGHT_CURLY
+                {
+                mRIGHT_CURLY(); if (failed) return ;
+
+                }
+                break;
+            case 27 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:240: TILDE
+                {
+                mTILDE(); if (failed) return ;
+
+                }
+                break;
+            case 28 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:246: AMPERSAND
+                {
+                mAMPERSAND(); if (failed) return ;
+
+                }
+                break;
+            case 29 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:256: PIPE
+                {
+                mPIPE(); if (failed) return ;
+
+                }
+                break;
+            case 30 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:261: ASSIGN_OP
+                {
+                mASSIGN_OP(); if (failed) return ;
+
+                }
+                break;
+            case 31 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:271: COLON
+                {
+                mCOLON(); if (failed) return ;
+
+                }
+                break;
+            case 32 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:277: EQUALS
+                {
+                mEQUALS(); if (failed) return ;
+
+                }
+                break;
+            case 33 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:284: MULTI_LINE_COMMENT
+                {
+                mMULTI_LINE_COMMENT(); if (failed) return ;
+
+                }
+                break;
+            case 34 :
+                // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:1:303: NAME
+                {
+                mNAME(); if (failed) return ;
+
+                }
+                break;
+
+        }
+
+    }
+
+    // $ANTLR start synpred1
+    public final void synpred1_fragment() throws RecognitionException {   
+        // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:758:14: ( '\\r\\n' )
+        // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:758:16: '\\r\\n'
+        {
+        match("\r\n"); if (failed) return ;
+
+
+        }
+    }
+    // $ANTLR end synpred1
+
+    public final boolean synpred1() {
+        backtracking++;
+        int start = input.mark();
+        try {
+            synpred1_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !failed;
+        input.rewind(start);
+        backtracking--;
+        failed=false;
+        return success;
+    }
+
+
+    protected DFA19 dfa19 = new DFA19(this);
+    static final String DFA19_eotS =
+        "\1\uffff\1\37\1\42\1\uffff\1\3\10\37\1\55\1\uffff\2\37\1\uffff\2"+
+        "\37\2\uffff\1\67\1\70\1\71\1\72\3\uffff\1\37\1\74\1\uffff\1\37\1"+
+        "\76\1\uffff\1\37\1\101\7\37\1\55\1\uffff\3\37\1\16\1\37\1\uffff"+
+        "\3\37\4\uffff\1\124\1\uffff\1\37\1\uffff\2\37\1\uffff\1\131\1\132"+
+        "\5\37\1\140\5\37\1\uffff\3\37\2\uffff\4\37\2\uffff\1\152\1\37\1"+
+        "\154\1\155\1\37\1\uffff\4\37\1\123\4\37\1\uffff\1\37\2\uffff\3\37"+
+        "\1\154\1\171\3\37\1\175\2\37\1\uffff\1\u0080\1\37\1\u0082\1\uffff"+
+        "\2\37\1\uffff\1\37\1\uffff\1\u0085\1\37\1\uffff\1\37\1\u0088\1\uffff";
+    static final String DFA19_eofS =
+        "\u0089\uffff";
+    static final String DFA19_minS =
+        "\1\0\1\155\1\0\1\uffff\1\0\1\145\1\162\1\156\1\157\1\170\1\145\1"+
+        "\141\1\60\1\0\1\uffff\1\0\1\141\1\uffff\1\0\1\52\2\uffff\4\0\3\uffff"+
+        "\1\55\1\0\1\uffff\1\160\1\0\1\uffff\1\143\1\0\1\144\1\164\1\154"+
+        "\1\151\1\165\1\163\1\154\1\0\1\uffff\1\60\1\42\2\0\1\154\1\uffff"+
+        "\3\0\4\uffff\1\0\1\uffff\1\157\1\uffff\1\154\1\146\1\uffff\2\0\1"+
+        "\154\1\163\1\145\1\164\1\151\2\0\1\60\2\0\1\163\1\uffff\3\0\2\uffff"+
+        "\1\162\1\141\2\165\2\uffff\1\0\1\164\2\0\1\145\1\uffff\1\60\2\0"+
+        "\1\145\1\0\1\164\1\162\1\156\1\154\1\uffff\1\163\2\uffff\1\156\1"+
+        "\60\3\0\1\145\1\143\1\145\1\0\1\143\1\60\1\uffff\1\0\1\164\1\0\1"+
+        "\uffff\1\145\1\0\1\uffff\1\151\1\uffff\1\0\1\157\1\uffff\1\156\1"+
+        "\0\1\uffff";
+    static final String DFA19_maxS =
+        "\1\ufffe\1\155\1\ufffe\1\uffff\1\ufffe\1\145\1\162\1\156\1\165\1"+
+        "\170\1\162\1\141\1\71\1\ufffe\1\uffff\1\ufffe\1\141\1\uffff\1\ufffe"+
+        "\1\57\2\uffff\4\ufffe\3\uffff\1\55\1\ufffe\1\uffff\1\160\1\ufffe"+
+        "\1\uffff\1\146\1\ufffe\1\144\1\164\1\154\1\151\1\165\1\163\1\154"+
+        "\1\ufffe\1\uffff\1\71\1\165\2\ufffe\1\154\1\uffff\3\ufffe\4\uffff"+
+        "\1\ufffe\1\uffff\1\157\1\uffff\1\154\1\162\1\uffff\2\ufffe\1\154"+
+        "\1\163\1\145\1\164\1\151\2\ufffe\1\146\2\ufffe\1\163\1\uffff\3\ufffe"+
+        "\2\uffff\1\162\1\141\2\165\2\uffff\1\ufffe\1\164\2\ufffe\1\145\1"+
+        "\uffff\1\146\2\ufffe\1\145\1\ufffe\1\164\1\162\1\156\1\154\1\uffff"+
+        "\1\163\2\uffff\1\156\1\146\3\ufffe\1\145\1\143\1\145\1\ufffe\1\143"+
+        "\1\146\1\uffff\1\ufffe\1\164\1\ufffe\1\uffff\1\145\1\ufffe\1\uffff"+
+        "\1\151\1\uffff\1\ufffe\1\157\1\uffff\1\156\1\ufffe\1\uffff";
+    static final String DFA19_acceptS =
+        "\3\uffff\1\3\12\uffff\1\20\2\uffff\1\22\2\uffff\1\25\1\26\4\uffff"+
+        "\1\33\1\34\1\35\2\uffff\1\42\2\uffff\1\40\12\uffff\1\16\5\uffff"+
+        "\1\23\3\uffff\1\27\1\30\1\31\1\32\1\uffff\1\37\1\uffff\1\2\2\uffff"+
+        "\1\6\15\uffff\1\24\3\uffff\1\41\1\36\4\uffff\1\7\1\10\5\uffff\1"+
+        "\17\11\uffff\1\13\1\uffff\1\21\1\12\13\uffff\1\1\3\uffff\1\11\2"+
+        "\uffff\1\14\1\uffff\1\4\2\uffff\1\15\2\uffff\1\5";
+    static final String DFA19_specialS =
+        "\u0089\uffff}>";
+    static final String[] DFA19_transitionS = {
+    };
+
+    static final short[] DFA19_eot = DFA.unpackEncodedString(DFA19_eotS);
+    static final short[] DFA19_eof = DFA.unpackEncodedString(DFA19_eofS);
+    static final char[] DFA19_min = DFA.unpackEncodedStringToUnsignedChars(DFA19_minS);
+    static final char[] DFA19_max = DFA.unpackEncodedStringToUnsignedChars(DFA19_maxS);
+    static final short[] DFA19_accept = DFA.unpackEncodedString(DFA19_acceptS);
+    static final short[] DFA19_special = DFA.unpackEncodedString(DFA19_specialS);
+    static final short[][] DFA19_transition;
+
+    static {
+        int numStates = DFA19_transitionS.length;
+        DFA19_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA19_transition[i] = DFA.unpackEncodedString(DFA19_transitionS[i]);
+        }
+    }
+
+    class DFA19 extends DFA {
+
+        public DFA19(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 19;
+            this.eot = DFA19_eot;
+            this.eof = DFA19_eof;
+            this.min = DFA19_min;
+            this.max = DFA19_max;
+            this.accept = DFA19_accept;
+            this.special = DFA19_special;
+            this.transition = DFA19_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T45 | T46 | WS | DEFRULE | DEFFUNCTION | OR | AND | NOT | EXISTS | TEST | NULL | DECLARE | SALIENCE | INT | FLOAT | STRING | BOOL | VAR | 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 | ASSIGN_OP | COLON | EQUALS | MULTI_LINE_COMMENT | NAME );";
+        }
+    }
+ 
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELParser.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELParser.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPMVELParser.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,2638 @@
+// $ANTLR 3.0.1 C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g 2008-01-24 19:05:12
+
+	package org.drools.clp;
+	
+    import org.drools.clp.mvel.*;	
+    
+	import org.drools.clp.valuehandlers.*;
+	import java.util.List;
+	import java.util.ArrayList;
+	import java.util.Iterator;
+	import java.util.HashMap;	
+	import java.util.Set;	
+	import java.util.HashSet;			
+	import java.util.StringTokenizer;
+	import org.drools.lang.descr.*;
+	import org.drools.lang.Location;	
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+public class CLPMVELParser extends Parser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LEFT_PAREN", "NAME", "RIGHT_PAREN", "DEFFUNCTION", "VAR", "DEFRULE", "STRING", "SALIENCE", "INT", "AND", "OR", "NOT", "EXISTS", "TEST", "ASSIGN_OP", "PIPE", "AMPERSAND", "TILDE", "COLON", "EQUALS", "FUNC_NAME", "FLOAT", "BOOL", "NULL", "SYMBOL", "EOL", "WS", "DECLARE", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "DELIM", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "LEFT_SQUARE", "RIGHT_SQUARE", "LEFT_CURLY", "RIGHT_CURLY", "MULTI_LINE_COMMENT", "START_DELIM", "'import'", "'=>'"
+    };
+    public static final int RIGHT_SQUARE=40;
+    public static final int RIGHT_CURLY=42;
+    public static final int EQUALS=23;
+    public static final int FLOAT=25;
+    public static final int NOT=15;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=37;
+    public static final int AND=13;
+    public static final int DELIM=36;
+    public static final int EOF=-1;
+    public static final int HexDigit=33;
+    public static final int DEFFUNCTION=7;
+    public static final int ASSIGN_OP=18;
+    public static final int RIGHT_PAREN=6;
+    public static final int NAME=5;
+    public static final int EOL=29;
+    public static final int DEFRULE=9;
+    public static final int TILDE=21;
+    public static final int PIPE=19;
+    public static final int VAR=8;
+    public static final int EXISTS=16;
+    public static final int SYMBOL=28;
+    public static final int START_DELIM=44;
+    public static final int NULL=27;
+    public static final int BOOL=26;
+    public static final int SALIENCE=11;
+    public static final int AMPERSAND=20;
+    public static final int INT=12;
+    public static final int MULTI_LINE_COMMENT=43;
+    public static final int COLON=22;
+    public static final int WS=30;
+    public static final int UnicodeEscape=34;
+    public static final int LEFT_CURLY=41;
+    public static final int OR=14;
+    public static final int TEST=17;
+    public static final int LEFT_PAREN=4;
+    public static final int DECLARE=31;
+    public static final int FUNC_NAME=24;
+    public static final int LEFT_SQUARE=39;
+    public static final int EscapeSequence=32;
+    public static final int OctalEscape=35;
+    public static final int C_STYLE_SINGLE_LINE_COMMENT=38;
+    public static final int STRING=10;
+
+        public CLPMVELParser(TokenStream input) {
+            super(input);
+            ruleMemo = new HashMap[30+1];
+         }
+        
+
+    public String[] getTokenNames() { return tokenNames; }
+    public String getGrammarFileName() { return "C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g"; }
+
+    
+    	private PackageDescr packageDescr;
+    	private List errors = new ArrayList();
+    	private String source = "unknown";
+    	private int lineOffset = 0;
+    	private DescrFactory factory = new DescrFactory();
+    	private boolean parserDebug = false;
+    	private FunctionRegistry functionRegistry;	
+    	private Location location = new Location( Location.LOCATION_UNKNOWN );	
+    	
+    	public void setFunctionRegistry(FunctionRegistry functionRegistry) {
+    		this.functionRegistry = functionRegistry;
+    	}
+    	
+    	public void setParserDebug(boolean parserDebug) {
+    		this.parserDebug = parserDebug;
+    	}		
+    	
+    	public void debug(String message) {
+    		if ( parserDebug ) 
+    			System.err.println( "drl parser: " + message );
+    	}
+    	
+    	public void setSource(String source) {
+    		this.source = source;
+    	}
+    	public DescrFactory getFactory() {
+    		return factory;
+    	}	
+    
+    	public String getSource() {
+    		return this.source;
+    	}
+    	
+    	public PackageDescr getPackageDescr() {
+    		return packageDescr;
+    	}
+    	
+    	private int offset(int line) {
+    		return line + lineOffset;
+    	}
+    	
+    	/**
+    	 * This will set the offset to record when reparsing. Normally is zero of course 
+    	 */
+    	public void setLineOffset(int i) {
+    	 	this.lineOffset = i;
+    	}
+    	
+    	private String getString(Token token) {
+    		String orig = token.getText();
+    		return orig.substring( 1, orig.length() -1 );
+    	}
+    	
+    	public void reportError(RecognitionException ex) {
+    	        // if we've already reported an error and have not matched a token
+                    // yet successfully, don't report any errors.
+                    if ( errorRecovery ) {
+                            return;
+                    }
+                    errorRecovery = true;
+    
+    		ex.line = offset(ex.line); //add the offset if there is one
+    		errors.add( ex ); 
+    	}
+         	
+         	/** return the raw RecognitionException errors */
+         	public List getErrors() {
+         		return errors;
+         	}
+         	
+         	/** Return a list of pretty strings summarising the errors */
+         	public List getErrorMessages() {
+         		List messages = new ArrayList();
+     		for ( Iterator errorIter = errors.iterator() ; errorIter.hasNext() ; ) {
+         	     		messages.add( createErrorMessage( (RecognitionException) errorIter.next() ) );
+         	     	}
+         	     	return messages;
+         	}
+         	
+         	/** return true if any parser errors were accumulated */
+         	public boolean hasErrors() {
+      		return ! errors.isEmpty();
+         	}
+         	
+         	/** This will take a RecognitionException, and create a sensible error message out of it */
+         	public String createErrorMessage(RecognitionException e)
+            {
+    		StringBuffer message = new StringBuffer();		
+                    message.append( source + ":"+e.line+":"+e.charPositionInLine+" ");
+                    if ( e instanceof MismatchedTokenException ) {
+                            MismatchedTokenException mte = (MismatchedTokenException)e;
+                            message.append("mismatched token: "+
+                                                               e.token+
+                                                               "; expecting type "+
+                                                               tokenNames[mte.expecting]);
+                    }
+                    else if ( e instanceof MismatchedTreeNodeException ) {
+                            MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e;
+                            message.append("mismatched tree node: "+
+                                                               //mtne.foundNode+ FIXME
+                                                               "; expecting type "+
+                                                               tokenNames[mtne.expecting]);
+                    }
+                    else if ( e instanceof NoViableAltException ) {
+                            NoViableAltException nvae = (NoViableAltException)e;
+    			message.append( "Unexpected token '" + e.token.getText() + "'" );
+                            /*
+                            message.append("decision=<<"+nvae.grammarDecisionDescription+">>"+
+                                                               " state "+nvae.stateNumber+
+                                                               " (decision="+nvae.decisionNumber+
+                                                               ") no viable alt; token="+
+                                                               e.token);
+                                                               */
+                    }
+                    else if ( e instanceof EarlyExitException ) {
+                            EarlyExitException eee = (EarlyExitException)e;
+                            message.append("required (...)+ loop (decision="+
+                                                               eee.decisionNumber+
+                                                               ") did not match anything; token="+
+                                                               e.token);
+                    }
+                    else if ( e instanceof MismatchedSetException ) {
+                            MismatchedSetException mse = (MismatchedSetException)e;
+                            message.append("mismatched token '"+
+                                                               e.token+
+                                                               "' expecting set "+mse.expecting);
+                    }
+                    else if ( e instanceof MismatchedNotSetException ) {
+                            MismatchedNotSetException mse = (MismatchedNotSetException)e;
+                            message.append("mismatched token '"+
+                                                               e.token+
+                                                               "' expecting set "+mse.expecting);
+                    }
+                    else if ( e instanceof FailedPredicateException ) {
+                            FailedPredicateException fpe = (FailedPredicateException)e;
+                            message.append("rule "+fpe.ruleName+" failed predicate: {"+
+                                                               fpe.predicateText+"}?");
+                    } else if (e instanceof GeneralParseException) {
+    			message.append(" " + e.getMessage());
+    		}
+                   	return message.toString();
+            }   
+            
+            void checkTrailingSemicolon(String text, int line) {
+            	if (text.trim().endsWith( ";" ) ) {
+            		this.errors.add( new GeneralParseException( "Trailing semi-colon not allowed", offset(line) ) );
+            	}
+            }
+          
+
+
+
+    // $ANTLR start eval_script
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:228:1: eval_script[Shell shell] : (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )* ;
+    public final void eval_script(Shell  shell) throws RecognitionException {
+        ImportDescr i = null;
+
+        RuleDescr r = null;
+
+        ValueHandler fc = null;
+
+
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:229:2: ( (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:229:4: (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )*
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:229:4: (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )*
+            loop1:
+            do {
+                int alt1=4;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==LEFT_PAREN) ) {
+                    switch ( input.LA(2) ) {
+                    case DEFRULE:
+                        {
+                        alt1=2;
+                        }
+                        break;
+                    case 45:
+                        {
+                        alt1=1;
+                        }
+                        break;
+                    case LEFT_PAREN:
+                    case NAME:
+                    case RIGHT_PAREN:
+                    case VAR:
+                    case STRING:
+                    case INT:
+                    case FLOAT:
+                    case BOOL:
+                    case NULL:
+                        {
+                        alt1=3;
+                        }
+                        break;
+
+                    }
+
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:229:9: i= importDescr
+            	    {
+            	    pushFollow(FOLLOW_importDescr_in_eval_script55);
+            	    i=importDescr();
+            	    _fsp--;
+            	    if (failed) return ;
+            	    if ( backtracking==0 ) {
+            	       shell.importDescrHandler( i ); 
+            	    }
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:230:7: r= defrule
+            	    {
+            	    pushFollow(FOLLOW_defrule_in_eval_script66);
+            	    r=defrule();
+            	    _fsp--;
+            	    if (failed) return ;
+            	    if ( backtracking==0 ) {
+            	       shell.ruleDescrHandler( r ); 
+            	    }
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:232:7: fc= lisp_list[shell, new LispForm(shell) ]
+            	    {
+            	    pushFollow(FOLLOW_lisp_list_in_eval_script83);
+            	    fc=lisp_list(shell,  new LispForm(shell) );
+            	    _fsp--;
+            	    if (failed) return ;
+            	    if ( backtracking==0 ) {
+            	       shell.lispFormHandler(fc); 
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end eval_script
+
+
+    // $ANTLR start importDescr
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:236:1: importDescr returns [ImportDescr importDescr] : LEFT_PAREN 'import' importName= NAME RIGHT_PAREN ;
+    public final ImportDescr importDescr() throws RecognitionException {
+        ImportDescr importDescr = null;
+
+        Token importName=null;
+
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:237:2: ( LEFT_PAREN 'import' importName= NAME RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:237:4: LEFT_PAREN 'import' importName= NAME RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_importDescr106); if (failed) return importDescr;
+            match(input,45,FOLLOW_45_in_importDescr108); if (failed) return importDescr;
+            importName=(Token)input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_importDescr112); if (failed) return importDescr;
+            if ( backtracking==0 ) {
+               importDescr = new ImportDescr( importName.getText() ); 
+            }
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_importDescr115); if (failed) return importDescr;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return importDescr;
+    }
+    // $ANTLR end importDescr
+
+
+    // $ANTLR start deffunction
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:252:1: deffunction returns [Deffunction function] : loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN ;
+    public final Deffunction deffunction() throws RecognitionException {
+        Deffunction function = null;
+
+        Token loc=null;
+        Token ruleName=null;
+        Token v=null;
+        ValueHandler fc = null;
+
+
+        
+        			BuildContext context = null;  	
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:256:2: (loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:256:4: loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN
+            {
+            loc=(Token)input.LT(1);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_deffunction141); if (failed) return function;
+            match(input,DEFFUNCTION,FOLLOW_DEFFUNCTION_in_deffunction149); if (failed) return function;
+            ruleName=(Token)input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_deffunction158); if (failed) return function;
+            if ( backtracking==0 ) {
+              
+              	    	function = new Deffunction( ruleName.getText() );
+              			functionRegistry.addFunction( function );
+              	      	context = new ExecutionBuildContext( function, functionRegistry );
+              	  	
+            }
+            loc=(Token)input.LT(1);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_deffunction166); if (failed) return function;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:264:4: (v= VAR )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0==VAR) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:264:5: v= VAR
+            	    {
+            	    v=(Token)input.LT(1);
+            	    match(input,VAR,FOLLOW_VAR_in_deffunction176); if (failed) return function;
+            	    if ( backtracking==0 ) {
+            	      
+            	      			context.addVariable( function.addParameter( v.getText() ) );
+            	      		 
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_deffunction189); if (failed) return function;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:268:5: (fc= lisp_list[context, new LispForm(context) ] )*
+            loop3:
+            do {
+                int alt3=2;
+                int LA3_0 = input.LA(1);
+
+                if ( (LA3_0==LEFT_PAREN) ) {
+                    alt3=1;
+                }
+
+
+                switch (alt3) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:268:6: fc= lisp_list[context, new LispForm(context) ]
+            	    {
+            	    pushFollow(FOLLOW_lisp_list_in_deffunction198);
+            	    fc=lisp_list(context,  new LispForm(context) );
+            	    _fsp--;
+            	    if (failed) return function;
+            	    if ( backtracking==0 ) {
+            	       context.addFunction( (FunctionCaller) fc ); 
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop3;
+                }
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_deffunction209); if (failed) return function;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return function;
+    }
+    // $ANTLR end deffunction
+
+
+    // $ANTLR start defrule
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:282:1: defrule returns [RuleDescr rule] : loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN ;
+    public final RuleDescr defrule() throws RecognitionException {
+        RuleDescr rule = null;
+
+        Token loc=null;
+        Token ruleName=null;
+        Token documentation=null;
+        ExecutionEngine engine = null;
+
+
+         
+        	        rule = null; 
+        	        AndDescr lhs = null;
+        	        PatternDescr colum = null;
+        	        AttributeDescr module = null;	      
+                    Set declarations = null;  
+        	      
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:290:2: (loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:290:4: loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN
+            {
+            loc=(Token)input.LT(1);
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_defrule235); if (failed) return rule;
+            match(input,DEFRULE,FOLLOW_DEFRULE_in_defrule243); if (failed) return rule;
+            ruleName=(Token)input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_defrule247); if (failed) return rule;
+            if ( backtracking==0 ) {
+               	  			  		
+              	  		debug( "start rule: " + ruleName.getText() );
+              	  		String ruleStr = ruleName.getText();
+              
+              	        if ( ruleStr.indexOf("::") >= 0 ) {
+              	            String mod = ruleStr.substring(0, ruleStr.indexOf("::"));
+              	            ruleStr = ruleStr.substring(ruleStr.indexOf("::")+2);
+              				module = new AttributeDescr( "agenda-group", mod );
+              				module.setLocation( offset(ruleName.getLine()), ruleName.getCharPositionInLine() );
+              				module.setStartCharacter( ((CommonToken)ruleName).getStartIndex() );
+              				module.setEndCharacter( ((CommonToken)ruleName).getStopIndex() );
+              			}
+              		    
+              		    rule = new RuleDescr( ruleStr, null ); 
+              		    if( module != null ) {
+              		    	rule.addAttribute( module );
+              		    }
+              		        
+              			rule.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+              			rule.setStartCharacter( ((CommonToken)loc).getStartIndex() ); 
+              		
+              			// not sure how you define where a LHS starts in clips, so just putting it here for now
+                      	lhs = new AndDescr(); 
+                	        rule.setLhs( lhs ); 
+              	        lhs.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+              			lhs.setStartCharacter( ((CommonToken)loc).getStartIndex() );	
+              			
+              			rule.addAttribute( new AttributeDescr( "dialect", "clips") );	
+              			
+              			declarations = new HashSet();  											
+              		
+            }
+            documentation=(Token)input.LT(1);
+            match(input,STRING,FOLLOW_STRING_in_defrule259); if (failed) return rule;
+            if ( backtracking==0 ) {
+              
+              	    	// do nothing here for now
+              		
+            }
+            pushFollow(FOLLOW_ruleAttribute_in_defrule265);
+            ruleAttribute(rule);
+            _fsp--;
+            if (failed) return rule;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:329:3: ( ce[lhs, declarations] )*
+            loop4:
+            do {
+                int alt4=2;
+                int LA4_0 = input.LA(1);
+
+                if ( (LA4_0==LEFT_PAREN||LA4_0==VAR) ) {
+                    alt4=1;
+                }
+
+
+                switch (alt4) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:329:3: ce[lhs, declarations]
+            	    {
+            	    pushFollow(FOLLOW_ce_in_defrule273);
+            	    ce(lhs,  declarations);
+            	    _fsp--;
+            	    if (failed) return rule;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop4;
+                }
+            } while (true);
+
+            match(input,46,FOLLOW_46_in_defrule282); if (failed) return rule;
+            pushFollow(FOLLOW_execution_block_in_defrule291);
+            engine=execution_block();
+            _fsp--;
+            if (failed) return rule;
+            if ( backtracking==0 ) {
+               rule.setConsequence( engine ); 
+            }
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_defrule300); if (failed) return rule;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return rule;
+    }
+    // $ANTLR end defrule
+
+
+    // $ANTLR start ruleAttribute
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:339:1: ruleAttribute[RuleDescr rule] : ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )? ;
+    public final void ruleAttribute(RuleDescr rule) throws RecognitionException {
+        AttributeDescr d = null;
+
+
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:340:2: ( ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )? )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:341:3: ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )?
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:341:3: ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )?
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0==LEFT_PAREN) ) {
+                int LA6_1 = input.LA(2);
+
+                if ( (LA6_1==DECLARE) ) {
+                    alt6=1;
+                }
+            }
+            switch (alt6) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:341:5: LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN
+                    {
+                    match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute317); if (failed) return ;
+                    match(input,DECLARE,FOLLOW_DECLARE_in_ruleAttribute319); if (failed) return ;
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:342:4: ( LEFT_PAREN d= salience RIGHT_PAREN )?
+                    int alt5=2;
+                    int LA5_0 = input.LA(1);
+
+                    if ( (LA5_0==LEFT_PAREN) ) {
+                        alt5=1;
+                    }
+                    switch (alt5) {
+                        case 1 :
+                            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:342:6: LEFT_PAREN d= salience RIGHT_PAREN
+                            {
+                            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute326); if (failed) return ;
+                            pushFollow(FOLLOW_salience_in_ruleAttribute330);
+                            d=salience();
+                            _fsp--;
+                            if (failed) return ;
+                            if ( backtracking==0 ) {
+                               rule.addAttribute( d ); 
+                            }
+                            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute334); if (failed) return ;
+
+                            }
+                            break;
+
+                    }
+
+                    match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_ruleAttribute341); if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end ruleAttribute
+
+
+    // $ANTLR start salience
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:346:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
+    public final AttributeDescr salience() throws RecognitionException {
+        AttributeDescr d = null;
+
+        Token loc=null;
+        Token i=null;
+
+        
+        		d = null;
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:350:2: (loc= SALIENCE i= INT )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:351:3: loc= SALIENCE i= INT
+            {
+            loc=(Token)input.LT(1);
+            match(input,SALIENCE,FOLLOW_SALIENCE_in_salience371); if (failed) return d;
+            i=(Token)input.LT(1);
+            match(input,INT,FOLLOW_INT_in_salience375); if (failed) return d;
+            if ( backtracking==0 ) {
+              
+              			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 ce
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:361:1: ce[ConditionalElementDescr in_ce, Set declarations] : ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] ) ;
+    public final void ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:362:2: ( ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:362:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:362:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )
+            int alt7=7;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==LEFT_PAREN) ) {
+                switch ( input.LA(2) ) {
+                case NAME:
+                    {
+                    alt7=6;
+                    }
+                    break;
+                case TEST:
+                    {
+                    alt7=5;
+                    }
+                    break;
+                case AND:
+                    {
+                    alt7=1;
+                    }
+                    break;
+                case EXISTS:
+                    {
+                    alt7=4;
+                    }
+                    break;
+                case NOT:
+                    {
+                    alt7=3;
+                    }
+                    break;
+                case OR:
+                    {
+                    alt7=2;
+                    }
+                    break;
+                default:
+                    if (backtracking>0) {failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("362:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )", 7, 1, input);
+
+                    throw nvae;
+                }
+
+            }
+            else if ( (LA7_0==VAR) ) {
+                alt7=7;
+            }
+            else {
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("362:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )", 7, 0, input);
+
+                throw nvae;
+            }
+            switch (alt7) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:362:8: and_ce[in_ce, declarations]
+                    {
+                    pushFollow(FOLLOW_and_ce_in_ce401);
+                    and_ce(in_ce,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:363:7: or_ce[in_ce, declarations]
+                    {
+                    pushFollow(FOLLOW_or_ce_in_ce411);
+                    or_ce(in_ce,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:364:7: not_ce[in_ce, declarations]
+                    {
+                    pushFollow(FOLLOW_not_ce_in_ce420);
+                    not_ce(in_ce,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:365:7: exists_ce[in_ce, declarations]
+                    {
+                    pushFollow(FOLLOW_exists_ce_in_ce429);
+                    exists_ce(in_ce,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 5 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:366:8: eval_ce[in_ce, declarations]
+                    {
+                    pushFollow(FOLLOW_eval_ce_in_ce443);
+                    eval_ce(in_ce,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 6 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:367:7: normal_pattern[in_ce, declarations]
+                    {
+                    pushFollow(FOLLOW_normal_pattern_in_ce457);
+                    normal_pattern(in_ce,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 7 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:368:7: bound_pattern[in_ce, declarations]
+                    {
+                    pushFollow(FOLLOW_bound_pattern_in_ce466);
+                    bound_pattern(in_ce,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end ce
+
+
+    // $ANTLR start execution_block
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:372:1: execution_block returns [ExecutionEngine engine] : (fc= lisp_list[context, new LispForm(context) ] )* ;
+    public final ExecutionEngine execution_block() throws RecognitionException {
+        ExecutionEngine engine = null;
+
+        ValueHandler fc = null;
+
+
+        
+        	        engine = new BlockExecutionEngine();
+        			BuildContext context = new ExecutionBuildContext( engine, functionRegistry );  	
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:378:2: ( (fc= lisp_list[context, new LispForm(context) ] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:379:3: (fc= lisp_list[context, new LispForm(context) ] )*
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:379:3: (fc= lisp_list[context, new LispForm(context) ] )*
+            loop8:
+            do {
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+
+                if ( (LA8_0==LEFT_PAREN) ) {
+                    alt8=1;
+                }
+
+
+                switch (alt8) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:379:4: fc= lisp_list[context, new LispForm(context) ]
+            	    {
+            	    pushFollow(FOLLOW_lisp_list_in_execution_block498);
+            	    fc=lisp_list(context,  new LispForm(context) );
+            	    _fsp--;
+            	    if (failed) return engine;
+            	    if ( backtracking==0 ) {
+            	       context.addFunction( (FunctionCaller) fc ); 
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop8;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return engine;
+    }
+    // $ANTLR end execution_block
+
+
+    // $ANTLR start and_ce
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:382:1: and_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN ;
+    public final void and_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        
+                AndDescr andDescr= null;        
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:386:2: ( LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:386:4: LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce526); if (failed) return ;
+            match(input,AND,FOLLOW_AND_in_and_ce531); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              	    	andDescr = new AndDescr();
+              			in_ce.addDescr( andDescr );
+              		
+            }
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:391:3: ( ce[andDescr, declarations] )+
+            int cnt9=0;
+            loop9:
+            do {
+                int alt9=2;
+                int LA9_0 = input.LA(1);
+
+                if ( (LA9_0==LEFT_PAREN||LA9_0==VAR) ) {
+                    alt9=1;
+                }
+
+
+                switch (alt9) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:391:3: ce[andDescr, declarations]
+            	    {
+            	    pushFollow(FOLLOW_ce_in_and_ce537);
+            	    ce(andDescr,  declarations);
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt9 >= 1 ) break loop9;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(9, input);
+                        throw eee;
+                }
+                cnt9++;
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_and_ce546); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end and_ce
+
+
+    // $ANTLR start or_ce
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:395:1: or_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN ;
+    public final void or_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        
+                OrDescr orDescr= null;         
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:399:2: ( LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:399:4: LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce574); if (failed) return ;
+            match(input,OR,FOLLOW_OR_in_or_ce579); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              	    	orDescr = new OrDescr();
+              			in_ce.addDescr( orDescr );
+              		
+            }
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:404:3: ( ce[orDescr, declarations] )+
+            int cnt10=0;
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( (LA10_0==LEFT_PAREN||LA10_0==VAR) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:404:3: ce[orDescr, declarations]
+            	    {
+            	    pushFollow(FOLLOW_ce_in_or_ce585);
+            	    ce(orDescr,  declarations);
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt10 >= 1 ) break loop10;
+            	    if (backtracking>0) {failed=true; return ;}
+                        EarlyExitException eee =
+                            new EarlyExitException(10, input);
+                        throw eee;
+                }
+                cnt10++;
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_or_ce594); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end or_ce
+
+
+    // $ANTLR start not_ce
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:408:1: not_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN ;
+    public final void not_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        
+                NotDescr notDescr= null;         
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:412:2: ( LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:412:4: LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce622); if (failed) return ;
+            match(input,NOT,FOLLOW_NOT_in_not_ce627); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              			notDescr = new NotDescr();
+              		    in_ce.addDescr( notDescr );
+              		
+            }
+            pushFollow(FOLLOW_ce_in_not_ce633);
+            ce(notDescr,  declarations);
+            _fsp--;
+            if (failed) return ;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_not_ce641); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end not_ce
+
+
+    // $ANTLR start exists_ce
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:421:1: exists_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN ;
+    public final void exists_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        
+                ExistsDescr existsDescr= null;        
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:425:2: ( LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:425:4: LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce670); if (failed) return ;
+            match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce675); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              		    existsDescr = new ExistsDescr();
+              		    in_ce.addDescr( existsDescr );
+              		
+            }
+            pushFollow(FOLLOW_ce_in_exists_ce681);
+            ce(existsDescr,  declarations);
+            _fsp--;
+            if (failed) return ;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_exists_ce689); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end exists_ce
+
+
+    // $ANTLR start eval_ce
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:434:1: eval_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN ;
+    public final void eval_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        ValueHandler fc = null;
+
+
+        
+                EvalDescr evalDescr= null;    
+           		ExecutionEngine engine = new CLPEval();     
+        		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );   		         
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:440:2: ( LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:440:4: LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce717); if (failed) return ;
+            match(input,TEST,FOLLOW_TEST_in_eval_ce722); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              		    evalDescr = new EvalDescr();
+              		    in_ce.addDescr( evalDescr );
+              		
+            }
+            pushFollow(FOLLOW_lisp_list_in_eval_ce730);
+            fc=lisp_list(context,  new LispForm(context));
+            _fsp--;
+            if (failed) return ;
+            if ( backtracking==0 ) {
+              					
+              		    engine.addFunction( (FunctionCaller) fc );		
+              			evalDescr.setContent( engine );			
+              		
+            }
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_eval_ce741); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end eval_ce
+
+
+    // $ANTLR start normal_pattern
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:452:1: normal_pattern[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN ;
+    public final void normal_pattern(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        Token name=null;
+
+        
+                PatternDescr pattern = null;
+                ConditionalElementDescr top = null;
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:457:2: ( LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:457:4: LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern769); if (failed) return ;
+            name=(Token)input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_normal_pattern776); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              			pattern = new PatternDescr(name.getText());
+              			in_ce.addDescr( pattern );
+              			top = pattern.getConstraint();
+              			
+              		
+            }
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:464:3: ( field_constriant[top, declarations] )*
+            loop11:
+            do {
+                int alt11=2;
+                int LA11_0 = input.LA(1);
+
+                if ( (LA11_0==LEFT_PAREN) ) {
+                    alt11=1;
+                }
+
+
+                switch (alt11) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:464:3: field_constriant[top, declarations]
+            	    {
+            	    pushFollow(FOLLOW_field_constriant_in_normal_pattern782);
+            	    field_constriant(top,  declarations);
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop11;
+                }
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_normal_pattern792); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end normal_pattern
+
+
+    // $ANTLR start bound_pattern
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:470:1: bound_pattern[ConditionalElementDescr in_ce, Set declarations] : var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN ;
+    public final void bound_pattern(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
+        Token var=null;
+        Token name=null;
+
+        
+                PatternDescr pattern = null;
+                String identifier = null;
+                ConditionalElementDescr top = null;        
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:476:2: (var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:476:4: var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN
+            {
+            var=(Token)input.LT(1);
+            match(input,VAR,FOLLOW_VAR_in_bound_pattern820); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              			identifier = var.getText();
+              		
+            }
+            match(input,ASSIGN_OP,FOLLOW_ASSIGN_OP_in_bound_pattern826); if (failed) return ;
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_bound_pattern828); if (failed) return ;
+            name=(Token)input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_bound_pattern832); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              			pattern = new PatternDescr(name.getText());
+              			pattern.setIdentifier( identifier );
+              			in_ce.addDescr( pattern );
+              			top = pattern.getConstraint();				    
+              		
+            }
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:486:3: ( field_constriant[top, declarations] )*
+            loop12:
+            do {
+                int alt12=2;
+                int LA12_0 = input.LA(1);
+
+                if ( (LA12_0==LEFT_PAREN) ) {
+                    alt12=1;
+                }
+
+
+                switch (alt12) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:486:3: field_constriant[top, declarations]
+            	    {
+            	    pushFollow(FOLLOW_field_constriant_in_bound_pattern841);
+            	    field_constriant(top,  declarations);
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop12;
+                }
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_bound_pattern848); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end bound_pattern
+
+
+    // $ANTLR start field_constriant
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:490:1: field_constriant[ConditionalElementDescr base, Set declarations] : LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN ;
+    public final void field_constriant(ConditionalElementDescr base, Set declarations) throws RecognitionException {
+        Token f=null;
+
+        
+             	List list = new ArrayList();
+        		FieldBindingDescr fbd = null;
+        		FieldConstraintDescr fc = null;
+        		RestrictionConnectiveDescr top = null;		
+        		String op = "==";
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:498:2: ( LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:499:3: LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant879); if (failed) return ;
+            f=(Token)input.LT(1);
+            match(input,NAME,FOLLOW_NAME_in_field_constriant883); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              			fc = new FieldConstraintDescr(f.getText());
+              			fc.setLocation( offset(f.getLine()), f.getCharPositionInLine() );
+              			fc.setStartCharacter( ((CommonToken)f).getStartIndex() );
+              			base.addDescr( fc );	
+              			top = fc.getRestriction();		
+              		
+            }
+            pushFollow(FOLLOW_or_restr_connective_in_field_constriant898);
+            or_restr_connective(top,  base,  fc,  declarations);
+            _fsp--;
+            if (failed) return ;
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_field_constriant904); if (failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end field_constriant
+
+
+    // $ANTLR start or_restr_connective
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:526:1: or_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] options {backtrack=true; } : and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )* ;
+    public final void or_restr_connective(RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
+        
+        		RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR);
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:533:2: ( and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:534:3: and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )*
+            {
+            pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective943);
+            and_restr_connective(or,  ceBase,  fcBase,  declarations);
+            _fsp--;
+            if (failed) return ;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:535:3: ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )*
+            loop13:
+            do {
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+
+                if ( (LA13_0==PIPE) ) {
+                    alt13=1;
+                }
+
+
+                switch (alt13) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:537:6: PIPE and_restr_connective[or, ceBase, fcBase, declarations]
+            	    {
+            	    match(input,PIPE,FOLLOW_PIPE_in_or_restr_connective967); if (failed) return ;
+            	    if ( backtracking==0 ) {
+            	      
+            	      				location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
+            	      			
+            	    }
+            	    pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective977);
+            	    and_restr_connective(or,  ceBase,  fcBase,  declarations);
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop13;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            
+            	        if( or.getRestrictions().size() == 1 ) {
+            	                rcBase.addOrMerge( (RestrictionDescr) or.getRestrictions().get( 0 ) );
+            	        } else if ( or.getRestrictions().size() > 1 ) {
+            	        	rcBase.addRestriction( or );
+            	        }
+            	
+        }
+        return ;
+    }
+    // $ANTLR end or_restr_connective
+
+
+    // $ANTLR start and_restr_connective
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:552:1: and_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] : restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )* ;
+    public final void and_restr_connective(RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
+        
+        		RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND);
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:556:2: ( restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:557:3: restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )*
+            {
+            pushFollow(FOLLOW_restriction_in_and_restr_connective1009);
+            restriction(and,  ceBase,  fcBase,  declarations);
+            _fsp--;
+            if (failed) return ;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:558:3: ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )*
+            loop14:
+            do {
+                int alt14=2;
+                int LA14_0 = input.LA(1);
+
+                if ( (LA14_0==AMPERSAND) ) {
+                    alt14=1;
+                }
+
+
+                switch (alt14) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:558:5: AMPERSAND restriction[and, ceBase, fcBase, declarations]
+            	    {
+            	    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_and_restr_connective1017); if (failed) return ;
+            	    pushFollow(FOLLOW_restriction_in_and_restr_connective1019);
+            	    restriction(and,  ceBase,  fcBase,  declarations);
+            	    _fsp--;
+            	    if (failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop14;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+            
+            	        if( and.getRestrictions().size() == 1) {
+            	                rcBase.addOrMerge( (RestrictionDescr) and.getRestrictions().get( 0 ) );
+            	        } else if ( and.getRestrictions().size() > 1 ) {
+            	        	rcBase.addRestriction( and );
+            	        }
+            	
+        }
+        return ;
+    }
+    // $ANTLR end and_restr_connective
+
+
+    // $ANTLR start restriction
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:577:1: restriction[RestrictionConnectiveDescr rc, ConditionalElementDescr base, FieldConstraintDescr fcBase, Set declarations ] : ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction ) ;
+    public final void restriction(RestrictionConnectiveDescr rc, ConditionalElementDescr base, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
+        String lc = null;
+
+
+        
+        			String op = "==";
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:581:2: ( ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:581:4: ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:581:4: ( TILDE )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==TILDE) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:581:5: TILDE
+                    {
+                    match(input,TILDE,FOLLOW_TILDE_in_restriction1052); if (failed) return ;
+                    if ( backtracking==0 ) {
+                      op = "!=";
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:582:3: ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction )
+            int alt16=4;
+            switch ( input.LA(1) ) {
+            case COLON:
+                {
+                alt16=1;
+                }
+                break;
+            case EQUALS:
+                {
+                alt16=2;
+                }
+                break;
+            case VAR:
+                {
+                alt16=3;
+                }
+                break;
+            case NAME:
+            case STRING:
+            case INT:
+            case FLOAT:
+            case BOOL:
+            case NULL:
+                {
+                alt16=4;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("582:3: ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction )", 16, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt16) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:582:5: predicate_constraint[rc, op, base]
+                    {
+                    pushFollow(FOLLOW_predicate_constraint_in_restriction1068);
+                    predicate_constraint(rc,  op,  base);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:583:7: return_value_restriction[op, rc]
+                    {
+                    pushFollow(FOLLOW_return_value_restriction_in_restriction1084);
+                    return_value_restriction(op,  rc);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:584:7: variable_restriction[op, rc, base, fcBase, declarations]
+                    {
+                    pushFollow(FOLLOW_variable_restriction_in_restriction1093);
+                    variable_restriction(op,  rc,  base,  fcBase,  declarations);
+                    _fsp--;
+                    if (failed) return ;
+
+                    }
+                    break;
+                case 4 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:585:8: lc= literal_restriction
+                    {
+                    pushFollow(FOLLOW_literal_restriction_in_restriction1105);
+                    lc=literal_restriction();
+                    _fsp--;
+                    if (failed) return ;
+                    if ( backtracking==0 ) {
+                      
+                           	    			rc.addRestriction( new LiteralRestrictionDescr(op, lc) );
+                      		      		op = "==";
+                      		        
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end restriction
+
+
+    // $ANTLR start predicate_constraint
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:592:1: predicate_constraint[RestrictionConnectiveDescr rc, String op, ConditionalElementDescr base] : COLON fc= lisp_list[context, new LispForm(context)] ;
+    public final void predicate_constraint(RestrictionConnectiveDescr rc, String op, ConditionalElementDescr base) throws RecognitionException {
+        ValueHandler fc = null;
+
+
+        
+           		ExecutionEngine engine = new CLPPredicate();
+        		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );    
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:597:2: ( COLON fc= lisp_list[context, new LispForm(context)] )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:597:4: COLON fc= lisp_list[context, new LispForm(context)]
+            {
+            match(input,COLON,FOLLOW_COLON_in_predicate_constraint1147); if (failed) return ;
+            pushFollow(FOLLOW_lisp_list_in_predicate_constraint1153);
+            fc=lisp_list(context,  new LispForm(context));
+            _fsp--;
+            if (failed) return ;
+            if ( backtracking==0 ) {
+              	
+              		        engine.addFunction( (FunctionCaller) fc );
+              			rc.addRestriction( new PredicateDescr( engine ) );
+              		
+            }
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end predicate_constraint
+
+
+    // $ANTLR start return_value_restriction
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:606:1: return_value_restriction[String op, RestrictionConnectiveDescr rc] : EQUALS func= lisp_list[context, new LispForm(context)] ;
+    public final void return_value_restriction(String op, RestrictionConnectiveDescr rc) throws RecognitionException {
+        ValueHandler func = null;
+
+
+        
+        		ExecutionEngine engine = new CLPReturnValue();
+        		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:611:2: ( EQUALS func= lisp_list[context, new LispForm(context)] )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:611:4: EQUALS func= lisp_list[context, new LispForm(context)]
+            {
+            match(input,EQUALS,FOLLOW_EQUALS_in_return_value_restriction1179); if (failed) return ;
+            pushFollow(FOLLOW_lisp_list_in_return_value_restriction1186);
+            func=lisp_list(context,  new LispForm(context));
+            _fsp--;
+            if (failed) return ;
+            if ( backtracking==0 ) {
+              					
+                 		    engine.addFunction( (FunctionCaller) func );
+              			rc.addRestriction( new ReturnValueRestrictionDescr (op, engine ) );
+              		
+            }
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end return_value_restriction
+
+
+    // $ANTLR start variable_restriction
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:619:1: variable_restriction[String op, RestrictionConnectiveDescr rc, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] : VAR ;
+    public final void variable_restriction(String op, RestrictionConnectiveDescr rc, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
+        Token VAR1=null;
+
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:620:2: ( VAR )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:620:4: VAR
+            {
+            VAR1=(Token)input.LT(1);
+            match(input,VAR,FOLLOW_VAR_in_variable_restriction1206); if (failed) return ;
+            if ( backtracking==0 ) {
+              
+              	        if ( declarations.contains( VAR1.getText() ) ) {
+              				rc.addRestriction( new VariableRestrictionDescr(op, VAR1.getText()) );
+              		 	} else {
+              		 		FieldBindingDescr fbd = new FieldBindingDescr();
+              		 		fbd.setIdentifier( VAR1.getText() );		
+              		 		fbd.setFieldName( fcBase.getFieldName() ); 		
+              		 		ceBase.insertBeforeLast( FieldConstraintDescr.class, fbd );
+              		 		declarations.add( VAR1.getText() );
+              		 	}
+              		
+            }
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end variable_restriction
+
+
+    // $ANTLR start literal_restriction
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:634:1: literal_restriction returns [String text] : t= literal ;
+    public final String literal_restriction() throws RecognitionException {
+        String text = null;
+
+        String t = null;
+
+
+        
+        		text = null;
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:638:2: (t= literal )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:639:6: t= literal
+            {
+            pushFollow(FOLLOW_literal_in_literal_restriction1239);
+            t=literal();
+            _fsp--;
+            if (failed) return text;
+            if ( backtracking==0 ) {
+              
+              	    	text = t;
+              	    
+            }
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return text;
+    }
+    // $ANTLR end literal_restriction
+
+
+    // $ANTLR start eval_sExpressions
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:645:1: eval_sExpressions returns [List<SExpression> list] : (a= lisp_list2 )* ;
+    public final List<SExpression> eval_sExpressions() throws RecognitionException {
+        List<SExpression> list = null;
+
+        SExpression a = null;
+
+
+        
+        		list = new ArrayList<SExpression>();
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:649:2: ( (a= lisp_list2 )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:650:3: (a= lisp_list2 )*
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:650:3: (a= lisp_list2 )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( (LA17_0==LEFT_PAREN) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:650:4: a= lisp_list2
+            	    {
+            	    pushFollow(FOLLOW_lisp_list2_in_eval_sExpressions1271);
+            	    a=lisp_list2();
+            	    _fsp--;
+            	    if (failed) return list;
+            	    if ( backtracking==0 ) {
+            	       list.add( a ); 
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop17;
+                }
+            } while (true);
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return list;
+    }
+    // $ANTLR end eval_sExpressions
+
+
+    // $ANTLR start lisp_list2
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:654:1: lisp_list2 returns [SExpression sExpression] : LEFT_PAREN t= FUNC_NAME (a= lisp_atom2 | a= lisp_list2 )+ RIGHT_PAREN ;
+    public final SExpression lisp_list2() throws RecognitionException {
+        SExpression sExpression = null;
+
+        Token t=null;
+        SExpression a = null;
+
+
+        
+                List list = new ArrayList();
+                sExpression = null;
+            
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:659:2: ( LEFT_PAREN t= FUNC_NAME (a= lisp_atom2 | a= lisp_list2 )+ RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:659:4: LEFT_PAREN t= FUNC_NAME (a= lisp_atom2 | a= lisp_list2 )+ RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lisp_list21300); if (failed) return sExpression;
+            t=(Token)input.LT(1);
+            match(input,FUNC_NAME,FOLLOW_FUNC_NAME_in_lisp_list21310); if (failed) return sExpression;
+            if ( backtracking==0 ) {
+               list.add( new SymbolLispAtom2(  t.getText() ) ); 
+            }
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:661:3: (a= lisp_atom2 | a= lisp_list2 )+
+            int cnt18=0;
+            loop18:
+            do {
+                int alt18=3;
+                int LA18_0 = input.LA(1);
+
+                if ( (LA18_0==VAR||LA18_0==STRING||LA18_0==INT||(LA18_0>=FLOAT && LA18_0<=SYMBOL)) ) {
+                    alt18=1;
+                }
+                else if ( (LA18_0==LEFT_PAREN) ) {
+                    alt18=2;
+                }
+
+
+                switch (alt18) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:661:6: a= lisp_atom2
+            	    {
+            	    pushFollow(FOLLOW_lisp_atom2_in_lisp_list21321);
+            	    a=lisp_atom2();
+            	    _fsp--;
+            	    if (failed) return sExpression;
+            	    if ( backtracking==0 ) {
+            	       list.add( a ); 
+            	    }
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:662:6: a= lisp_list2
+            	    {
+            	    pushFollow(FOLLOW_lisp_list2_in_lisp_list21332);
+            	    a=lisp_list2();
+            	    _fsp--;
+            	    if (failed) return sExpression;
+            	    if ( backtracking==0 ) {
+            	       list.add( a ); 
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt18 >= 1 ) break loop18;
+            	    if (backtracking>0) {failed=true; return sExpression;}
+                        EarlyExitException eee =
+                            new EarlyExitException(18, input);
+                        throw eee;
+                }
+                cnt18++;
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lisp_list21360); if (failed) return sExpression;
+            if ( backtracking==0 ) {
+               sExpression = new LispForm2( ( SExpression[] ) list.toArray( new SExpression[ list.size () ] ) ); 
+            }
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return sExpression;
+    }
+    // $ANTLR end lisp_list2
+
+
+    // $ANTLR start lisp_atom2
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:668:1: lisp_atom2 returns [SExpression sExpression] : (t= VAR | t= STRING | t= FLOAT | t= INT | t= BOOL | t= NULL | t= SYMBOL ) ;
+    public final SExpression lisp_atom2() throws RecognitionException {
+        SExpression sExpression = null;
+
+        Token t=null;
+
+        
+        		sExpression  =  null;		
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:672:2: ( (t= VAR | t= STRING | t= FLOAT | t= INT | t= BOOL | t= NULL | t= SYMBOL ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:683:3: (t= VAR | t= STRING | t= FLOAT | t= INT | t= BOOL | t= NULL | t= SYMBOL )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:683:3: (t= VAR | t= STRING | t= FLOAT | t= INT | t= BOOL | t= NULL | t= SYMBOL )
+            int alt19=7;
+            switch ( input.LA(1) ) {
+            case VAR:
+                {
+                alt19=1;
+                }
+                break;
+            case STRING:
+                {
+                alt19=2;
+                }
+                break;
+            case FLOAT:
+                {
+                alt19=3;
+                }
+                break;
+            case INT:
+                {
+                alt19=4;
+                }
+                break;
+            case BOOL:
+                {
+                alt19=5;
+                }
+                break;
+            case NULL:
+                {
+                alt19=6;
+                }
+                break;
+            case SYMBOL:
+                {
+                alt19=7;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return sExpression;}
+                NoViableAltException nvae =
+                    new NoViableAltException("683:3: (t= VAR | t= STRING | t= FLOAT | t= INT | t= BOOL | t= NULL | t= SYMBOL )", 19, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt19) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:684:6: t= VAR
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,VAR,FOLLOW_VAR_in_lisp_atom21410); if (failed) return sExpression;
+                    if ( backtracking==0 ) {
+                       sExpression = new VariableLispAtom2( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:685:6: t= STRING
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,STRING,FOLLOW_STRING_in_lisp_atom21422); if (failed) return sExpression;
+                    if ( backtracking==0 ) {
+                       sExpression = new StringLispAtom2( getString( t ) ); 
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:686:6: t= FLOAT
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,FLOAT,FOLLOW_FLOAT_in_lisp_atom21444); if (failed) return sExpression;
+                    if ( backtracking==0 ) {
+                       sExpression = new FloatLispAtom2( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:687:6: t= INT
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,INT,FOLLOW_INT_in_lisp_atom21456); if (failed) return sExpression;
+                    if ( backtracking==0 ) {
+                       sExpression = new IntLispAtom2( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:688:7: t= BOOL
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,BOOL,FOLLOW_BOOL_in_lisp_atom21469); if (failed) return sExpression;
+                    if ( backtracking==0 ) {
+                       sExpression = new BoolLispAtom2( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:689:7: t= NULL
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,NULL,FOLLOW_NULL_in_lisp_atom21485); if (failed) return sExpression;
+                    if ( backtracking==0 ) {
+                       sExpression = new NullLispAtom2( null ); 
+                    }
+
+                    }
+                    break;
+                case 7 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:690:12: t= SYMBOL
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,SYMBOL,FOLLOW_SYMBOL_in_lisp_atom21509); if (failed) return sExpression;
+                    if ( backtracking==0 ) {
+                       sExpression = new SymbolLispAtom2( t.getText() ); 
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return sExpression;
+    }
+    // $ANTLR end lisp_atom2
+
+
+    // $ANTLR start lisp_list
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:695:1: lisp_list[BuildContext context, LispList list] returns [ValueHandler valueHandler] : LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN ;
+    public final ValueHandler lisp_list(BuildContext context, LispList list) throws RecognitionException {
+        ValueHandler valueHandler = null;
+
+        ValueHandler a = null;
+
+
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:696:2: ( LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:696:4: LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN
+            {
+            match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lisp_list1539); if (failed) return valueHandler;
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:697:3: (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )*
+            loop20:
+            do {
+                int alt20=3;
+                int LA20_0 = input.LA(1);
+
+                if ( (LA20_0==NAME||LA20_0==VAR||LA20_0==STRING||LA20_0==INT||(LA20_0>=FLOAT && LA20_0<=NULL)) ) {
+                    alt20=1;
+                }
+                else if ( (LA20_0==LEFT_PAREN) ) {
+                    alt20=2;
+                }
+
+
+                switch (alt20) {
+            	case 1 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:697:6: a= lisp_atom[context]
+            	    {
+            	    pushFollow(FOLLOW_lisp_atom_in_lisp_list1549);
+            	    a=lisp_atom(context);
+            	    _fsp--;
+            	    if (failed) return valueHandler;
+            	    if ( backtracking==0 ) {
+            	       list.add( a ); 
+            	    }
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:698:6: a= lisp_list[context, list.createList()]
+            	    {
+            	    pushFollow(FOLLOW_lisp_list_in_lisp_list1565);
+            	    a=lisp_list(context,  list.createList());
+            	    _fsp--;
+            	    if (failed) return valueHandler;
+            	    if ( backtracking==0 ) {
+            	       list.add( a ); 
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop20;
+                }
+            } while (true);
+
+            match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lisp_list1595); if (failed) return valueHandler;
+            if ( backtracking==0 ) {
+               valueHandler = list.getValueHandler(); 
+            }
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return valueHandler;
+    }
+    // $ANTLR end lisp_list
+
+
+    // $ANTLR start lisp_atom
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:704:1: lisp_atom[BuildContext context] returns [ValueHandler value] : (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL ) ;
+    public final ValueHandler lisp_atom(BuildContext context) throws RecognitionException {
+        ValueHandler value = null;
+
+        Token t=null;
+
+        
+        		value  =  null;		
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:708:2: ( (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:709:3: (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:709:3: (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL )
+            int alt21=7;
+            switch ( input.LA(1) ) {
+            case VAR:
+                {
+                alt21=1;
+                }
+                break;
+            case STRING:
+                {
+                alt21=2;
+                }
+                break;
+            case NAME:
+                {
+                alt21=3;
+                }
+                break;
+            case FLOAT:
+                {
+                alt21=4;
+                }
+                break;
+            case INT:
+                {
+                alt21=5;
+                }
+                break;
+            case BOOL:
+                {
+                alt21=6;
+                }
+                break;
+            case NULL:
+                {
+                alt21=7;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return value;}
+                NoViableAltException nvae =
+                    new NoViableAltException("709:3: (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL )", 21, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt21) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:709:6: t= VAR
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,VAR,FOLLOW_VAR_in_lisp_atom1632); if (failed) return value;
+                    if ( backtracking==0 ) {
+                       value = context.getVariableValueHandler(t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:710:6: t= STRING
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,STRING,FOLLOW_STRING_in_lisp_atom1644); if (failed) return value;
+                    if ( backtracking==0 ) {
+                       value = new ObjectValueHandler( getString( t ) ); 
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:711:7: t= NAME
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_lisp_atom1656); if (failed) return value;
+                    if ( backtracking==0 ) {
+                       value = new ObjectValueHandler( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:712:6: t= FLOAT
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,FLOAT,FOLLOW_FLOAT_in_lisp_atom1671); if (failed) return value;
+                    if ( backtracking==0 ) {
+                       value = new DoubleValueHandler( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:713:6: t= INT
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,INT,FOLLOW_INT_in_lisp_atom1683); if (failed) return value;
+                    if ( backtracking==0 ) {
+                       value = new LongValueHandler( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:714:6: t= BOOL
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,BOOL,FOLLOW_BOOL_in_lisp_atom1699); if (failed) return value;
+                    if ( backtracking==0 ) {
+                       value = new BooleanValueHandler( t.getText() ); 
+                    }
+
+                    }
+                    break;
+                case 7 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:715:6: t= NULL
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,NULL,FOLLOW_NULL_in_lisp_atom1717); if (failed) return value;
+                    if ( backtracking==0 ) {
+                       value = ObjectValueHandler.NULL; 
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return value;
+    }
+    // $ANTLR end lisp_atom
+
+
+    // $ANTLR start literal
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:719:1: literal returns [String text] : (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
+    public final String literal() throws RecognitionException {
+        String text = null;
+
+        Token t=null;
+
+        
+        		text = null;
+        	
+        try {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:723:2: ( (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:723:4: (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL )
+            {
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:723:4: (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL )
+            int alt22=6;
+            switch ( input.LA(1) ) {
+            case STRING:
+                {
+                alt22=1;
+                }
+                break;
+            case NAME:
+                {
+                alt22=2;
+                }
+                break;
+            case INT:
+                {
+                alt22=3;
+                }
+                break;
+            case FLOAT:
+                {
+                alt22=4;
+                }
+                break;
+            case BOOL:
+                {
+                alt22=5;
+                }
+                break;
+            case NULL:
+                {
+                alt22=6;
+                }
+                break;
+            default:
+                if (backtracking>0) {failed=true; return text;}
+                NoViableAltException nvae =
+                    new NoViableAltException("723:4: (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL )", 22, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt22) {
+                case 1 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:723:8: t= STRING
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,STRING,FOLLOW_STRING_in_literal1753); if (failed) return text;
+                    if ( backtracking==0 ) {
+                       text = getString( t ); 
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:724:7: t= NAME
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,NAME,FOLLOW_NAME_in_literal1766); if (failed) return text;
+                    if ( backtracking==0 ) {
+                       text = t.getText(); 
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:725:7: t= INT
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,INT,FOLLOW_INT_in_literal1782); if (failed) return text;
+                    if ( backtracking==0 ) {
+                       text = t.getText(); 
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:726:7: t= FLOAT
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,FLOAT,FOLLOW_FLOAT_in_literal1797); if (failed) return text;
+                    if ( backtracking==0 ) {
+                       text = t.getText(); 
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:727:7: t= BOOL
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,BOOL,FOLLOW_BOOL_in_literal1810); if (failed) return text;
+                    if ( backtracking==0 ) {
+                       text = t.getText(); 
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLPMVEL.g:728:7: t= NULL
+                    {
+                    t=(Token)input.LT(1);
+                    match(input,NULL,FOLLOW_NULL_in_literal1824); if (failed) return text;
+                    if ( backtracking==0 ) {
+                       text = null; 
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return text;
+    }
+    // $ANTLR end literal
+
+
+ 
+
+    public static final BitSet FOLLOW_importDescr_in_eval_script55 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_defrule_in_eval_script66 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_lisp_list_in_eval_script83 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_importDescr106 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_45_in_importDescr108 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_NAME_in_importDescr112 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_importDescr115 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_deffunction141 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_DEFFUNCTION_in_deffunction149 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_NAME_in_deffunction158 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_deffunction166 = new BitSet(new long[]{0x0000000000000140L});
+    public static final BitSet FOLLOW_VAR_in_deffunction176 = new BitSet(new long[]{0x0000000000000140L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_deffunction189 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_lisp_list_in_deffunction198 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_deffunction209 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_defrule235 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_DEFRULE_in_defrule243 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_NAME_in_defrule247 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_STRING_in_defrule259 = new BitSet(new long[]{0x0000400000000110L});
+    public static final BitSet FOLLOW_ruleAttribute_in_defrule265 = new BitSet(new long[]{0x0000400000000110L});
+    public static final BitSet FOLLOW_ce_in_defrule273 = new BitSet(new long[]{0x0000400000000110L});
+    public static final BitSet FOLLOW_46_in_defrule282 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_execution_block_in_defrule291 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_defrule300 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute317 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_DECLARE_in_ruleAttribute319 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_ruleAttribute326 = new BitSet(new long[]{0x0000000000000800L});
+    public static final BitSet FOLLOW_salience_in_ruleAttribute330 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute334 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_ruleAttribute341 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SALIENCE_in_salience371 = new BitSet(new long[]{0x0000000000001000L});
+    public static final BitSet FOLLOW_INT_in_salience375 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_ce_in_ce401 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_or_ce_in_ce411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_not_ce_in_ce420 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_exists_ce_in_ce429 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_eval_ce_in_ce443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_normal_pattern_in_ce457 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_bound_pattern_in_ce466 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lisp_list_in_execution_block498 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_and_ce526 = new BitSet(new long[]{0x0000000000002000L});
+    public static final BitSet FOLLOW_AND_in_and_ce531 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_and_ce537 = new BitSet(new long[]{0x0000000000000150L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_and_ce546 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_or_ce574 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_OR_in_or_ce579 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_or_ce585 = new BitSet(new long[]{0x0000000000000150L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_or_ce594 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_not_ce622 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_NOT_in_not_ce627 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_not_ce633 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_not_ce641 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_exists_ce670 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_EXISTS_in_exists_ce675 = new BitSet(new long[]{0x0000000000000110L});
+    public static final BitSet FOLLOW_ce_in_exists_ce681 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_exists_ce689 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_eval_ce717 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_TEST_in_eval_ce722 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_lisp_list_in_eval_ce730 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_eval_ce741 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_normal_pattern769 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_NAME_in_normal_pattern776 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_field_constriant_in_normal_pattern782 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_normal_pattern792 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_bound_pattern820 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_ASSIGN_OP_in_bound_pattern826 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_bound_pattern828 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_NAME_in_bound_pattern832 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_field_constriant_in_bound_pattern841 = new BitSet(new long[]{0x0000000000000050L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_bound_pattern848 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_field_constriant879 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_NAME_in_field_constriant883 = new BitSet(new long[]{0x000000000EE01520L});
+    public static final BitSet FOLLOW_or_restr_connective_in_field_constriant898 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_field_constriant904 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective943 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_PIPE_in_or_restr_connective967 = new BitSet(new long[]{0x000000000EE01520L});
+    public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective977 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_restriction_in_and_restr_connective1009 = new BitSet(new long[]{0x0000000000100002L});
+    public static final BitSet FOLLOW_AMPERSAND_in_and_restr_connective1017 = new BitSet(new long[]{0x000000000EE01520L});
+    public static final BitSet FOLLOW_restriction_in_and_restr_connective1019 = new BitSet(new long[]{0x0000000000100002L});
+    public static final BitSet FOLLOW_TILDE_in_restriction1052 = new BitSet(new long[]{0x000000000EC01520L});
+    public static final BitSet FOLLOW_predicate_constraint_in_restriction1068 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_return_value_restriction_in_restriction1084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_variable_restriction_in_restriction1093 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_restriction_in_restriction1105 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_COLON_in_predicate_constraint1147 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_lisp_list_in_predicate_constraint1153 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_EQUALS_in_return_value_restriction1179 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_lisp_list_in_return_value_restriction1186 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_variable_restriction1206 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_literal_in_literal_restriction1239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_lisp_list2_in_eval_sExpressions1271 = new BitSet(new long[]{0x0000000000000012L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lisp_list21300 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_FUNC_NAME_in_lisp_list21310 = new BitSet(new long[]{0x000000001E001510L});
+    public static final BitSet FOLLOW_lisp_atom2_in_lisp_list21321 = new BitSet(new long[]{0x000000001E001550L});
+    public static final BitSet FOLLOW_lisp_list2_in_lisp_list21332 = new BitSet(new long[]{0x000000001E001550L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lisp_list21360 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_lisp_atom21410 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_lisp_atom21422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_lisp_atom21444 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_lisp_atom21456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_lisp_atom21469 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_lisp_atom21485 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SYMBOL_in_lisp_atom21509 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LEFT_PAREN_in_lisp_list1539 = new BitSet(new long[]{0x000000000E001570L});
+    public static final BitSet FOLLOW_lisp_atom_in_lisp_list1549 = new BitSet(new long[]{0x000000000E001570L});
+    public static final BitSet FOLLOW_lisp_list_in_lisp_list1565 = new BitSet(new long[]{0x000000000E001570L});
+    public static final BitSet FOLLOW_RIGHT_PAREN_in_lisp_list1595 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_VAR_in_lisp_atom1632 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_lisp_atom1644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NAME_in_lisp_atom1656 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_lisp_atom1671 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_lisp_atom1683 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_lisp_atom1699 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_lisp_atom1717 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_literal1753 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NAME_in_literal1766 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_INT_in_literal1782 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_FLOAT_in_literal1797 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_BOOL_in_literal1810 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NULL_in_literal1824 = new BitSet(new long[]{0x0000000000000002L});
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPParser.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPParser.java	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPParser.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g 2007-10-10 14:28:59
+// $ANTLR 3.0.1 C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2008-01-20 20:25:48
 
 	package org.drools.clp;
 	
@@ -24,45 +24,45 @@
     public static final String[] tokenNames = new String[] {
         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LEFT_PAREN", "NAME", "RIGHT_PAREN", "DEFFUNCTION", "VAR", "DEFRULE", "STRING", "SALIENCE", "INT", "AND", "OR", "NOT", "EXISTS", "TEST", "ASSIGN_OP", "PIPE", "AMPERSAND", "TILDE", "COLON", "EQUALS", "FLOAT", "BOOL", "NULL", "EOL", "WS", "DECLARE", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SYMBOL", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "LEFT_SQUARE", "RIGHT_SQUARE", "LEFT_CURLY", "RIGHT_CURLY", "MULTI_LINE_COMMENT", "'import'", "'=>'"
     };
-    public static final int EXISTS=16;
-    public static final int LEFT_PAREN=4;
+    public static final int RIGHT_SQUARE=38;
     public static final int RIGHT_CURLY=40;
+    public static final int SYMBOL=34;
+    public static final int NULL=26;
     public static final int BOOL=25;
-    public static final int DEFRULE=9;
+    public static final int AMPERSAND=20;
+    public static final int SALIENCE=11;
+    public static final int FLOAT=24;
+    public static final int EQUALS=23;
+    public static final int INT=12;
+    public static final int SH_STYLE_SINGLE_LINE_COMMENT=35;
+    public static final int NOT=15;
+    public static final int AND=13;
+    public static final int EOF=-1;
     public static final int HexDigit=31;
+    public static final int MULTI_LINE_COMMENT=41;
     public static final int DEFFUNCTION=7;
+    public static final int COLON=22;
+    public static final int ASSIGN_OP=18;
+    public static final int RIGHT_PAREN=6;
+    public static final int NAME=5;
     public static final int WS=28;
-    public static final int STRING=10;
-    public static final int FLOAT=24;
+    public static final int EOL=27;
+    public static final int UnicodeEscape=32;
+    public static final int LEFT_CURLY=39;
+    public static final int DEFRULE=9;
+    public static final int OR=14;
     public static final int TILDE=21;
-    public static final int OR=14;
+    public static final int TEST=17;
+    public static final int LEFT_PAREN=4;
+    public static final int DECLARE=29;
     public static final int PIPE=19;
-    public static final int EQUALS=23;
     public static final int VAR=8;
-    public static final int ASSIGN_OP=18;
-    public static final int UnicodeEscape=32;
-    public static final int AND=13;
-    public static final int EscapeSequence=30;
-    public static final int INT=12;
-    public static final int EOF=-1;
-    public static final int EOL=27;
-    public static final int NULL=26;
-    public static final int SYMBOL=34;
+    public static final int EXISTS=16;
     public static final int LEFT_SQUARE=37;
-    public static final int COLON=22;
-    public static final int SH_STYLE_SINGLE_LINE_COMMENT=35;
     public static final int OctalEscape=33;
-    public static final int SALIENCE=11;
-    public static final int MULTI_LINE_COMMENT=41;
-    public static final int AMPERSAND=20;
-    public static final int TEST=17;
-    public static final int NAME=5;
-    public static final int DECLARE=29;
-    public static final int RIGHT_PAREN=6;
-    public static final int NOT=15;
-    public static final int LEFT_CURLY=39;
-    public static final int RIGHT_SQUARE=38;
+    public static final int EscapeSequence=30;
     public static final int C_STYLE_SINGLE_LINE_COMMENT=36;
+    public static final int STRING=10;
 
         public CLPParser(TokenStream input) {
             super(input);
@@ -71,7 +71,7 @@
         
 
     public String[] getTokenNames() { return tokenNames; }
-    public String getGrammarFileName() { return "/home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g"; }
+    public String getGrammarFileName() { return "C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g"; }
 
 
     	private PackageDescr packageDescr;
@@ -227,7 +227,7 @@
 
 
     // $ANTLR start eval_script
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:226:1: eval_script[Shell shell] : (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )* ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:226:1: eval_script[Shell shell] : (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )* ;
     public final void eval_script(Shell  shell) throws RecognitionException {
         ImportDescr i = null;
 
@@ -237,10 +237,10 @@
 
 
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:227:2: ( (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )* )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:227:4: (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:227:2: ( (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:227:4: (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )*
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:227:4: (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:227:4: (i= importDescr | r= defrule | fc= lisp_list[shell, new LispForm(shell) ] )*
             loop1:
             do {
                 int alt1=4;
@@ -248,14 +248,14 @@
 
                 if ( (LA1_0==LEFT_PAREN) ) {
                     switch ( input.LA(2) ) {
-                    case 42:
+                    case DEFRULE:
                         {
-                        alt1=1;
+                        alt1=2;
                         }
                         break;
-                    case DEFRULE:
+                    case 42:
                         {
-                        alt1=2;
+                        alt1=1;
                         }
                         break;
                     case LEFT_PAREN:
@@ -279,7 +279,7 @@
 
                 switch (alt1) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:227:9: i= importDescr
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:227:9: i= importDescr
             	    {
             	    pushFollow(FOLLOW_importDescr_in_eval_script55);
             	    i=importDescr();
@@ -292,7 +292,7 @@
             	    }
             	    break;
             	case 2 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:228:7: r= defrule
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:228:7: r= defrule
             	    {
             	    pushFollow(FOLLOW_defrule_in_eval_script66);
             	    r=defrule();
@@ -305,7 +305,7 @@
             	    }
             	    break;
             	case 3 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:230:7: fc= lisp_list[shell, new LispForm(shell) ]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:230:7: fc= lisp_list[shell, new LispForm(shell) ]
             	    {
             	    pushFollow(FOLLOW_lisp_list_in_eval_script83);
             	    fc=lisp_list(shell,  new LispForm(shell) );
@@ -339,15 +339,15 @@
 
 
     // $ANTLR start importDescr
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:234:1: importDescr returns [ImportDescr importDescr] : LEFT_PAREN 'import' importName= NAME RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:234:1: importDescr returns [ImportDescr importDescr] : LEFT_PAREN 'import' importName= NAME RIGHT_PAREN ;
     public final ImportDescr importDescr() throws RecognitionException {
         ImportDescr importDescr = null;
 
         Token importName=null;
 
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:235:2: ( LEFT_PAREN 'import' importName= NAME RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:235:4: LEFT_PAREN 'import' importName= NAME RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:235:2: ( LEFT_PAREN 'import' importName= NAME RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:235:4: LEFT_PAREN 'import' importName= NAME RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_importDescr106); if (failed) return importDescr;
             match(input,42,FOLLOW_42_in_importDescr108); if (failed) return importDescr;
@@ -373,7 +373,7 @@
 
 
     // $ANTLR start deffunction
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:250:1: deffunction returns [Deffunction function] : loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:250:1: deffunction returns [Deffunction function] : loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN ;
     public final Deffunction deffunction() throws RecognitionException {
         Deffunction function = null;
 
@@ -387,8 +387,8 @@
         			BuildContext context = null;  	
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:254:2: (loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:254:4: loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:254:2: (loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:254:4: loc= LEFT_PAREN DEFFUNCTION ruleName= NAME loc= LEFT_PAREN (v= VAR )* RIGHT_PAREN (fc= lisp_list[context, new LispForm(context) ] )* RIGHT_PAREN
             {
             loc=(Token)input.LT(1);
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_deffunction141); if (failed) return function;
@@ -404,7 +404,7 @@
             }
             loc=(Token)input.LT(1);
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_deffunction166); if (failed) return function;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:262:4: (v= VAR )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:262:4: (v= VAR )*
             loop2:
             do {
                 int alt2=2;
@@ -417,7 +417,7 @@
 
                 switch (alt2) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:262:5: v= VAR
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:262:5: v= VAR
             	    {
             	    v=(Token)input.LT(1);
             	    match(input,VAR,FOLLOW_VAR_in_deffunction176); if (failed) return function;
@@ -436,7 +436,7 @@
             } while (true);
 
             match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_deffunction189); if (failed) return function;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:266:5: (fc= lisp_list[context, new LispForm(context) ] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:266:5: (fc= lisp_list[context, new LispForm(context) ] )*
             loop3:
             do {
                 int alt3=2;
@@ -449,7 +449,7 @@
 
                 switch (alt3) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:266:6: fc= lisp_list[context, new LispForm(context) ]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:266:6: fc= lisp_list[context, new LispForm(context) ]
             	    {
             	    pushFollow(FOLLOW_lisp_list_in_deffunction198);
             	    fc=lisp_list(context,  new LispForm(context) );
@@ -484,7 +484,7 @@
 
 
     // $ANTLR start defrule
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:280:1: defrule returns [RuleDescr rule] : loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:280:1: defrule returns [RuleDescr rule] : loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN ;
     public final RuleDescr defrule() throws RecognitionException {
         RuleDescr rule = null;
 
@@ -502,8 +502,8 @@
                     Set declarations = null;  
         	      
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:288:2: (loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:288:4: loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:288:2: (loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:288:4: loc= LEFT_PAREN DEFRULE ruleName= NAME documentation= STRING ruleAttribute[rule] ( ce[lhs, declarations] )* '=>' engine= execution_block RIGHT_PAREN
             {
             loc=(Token)input.LT(1);
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_defrule235); if (failed) return rule;
@@ -554,7 +554,7 @@
             ruleAttribute(rule);
             _fsp--;
             if (failed) return rule;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:327:3: ( ce[lhs, declarations] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:327:3: ( ce[lhs, declarations] )*
             loop4:
             do {
                 int alt4=2;
@@ -567,7 +567,7 @@
 
                 switch (alt4) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:327:3: ce[lhs, declarations]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:327:3: ce[lhs, declarations]
             	    {
             	    pushFollow(FOLLOW_ce_in_defrule273);
             	    ce(lhs,  declarations);
@@ -607,16 +607,16 @@
 
 
     // $ANTLR start ruleAttribute
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:337:1: ruleAttribute[RuleDescr rule] : ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )? ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:337:1: ruleAttribute[RuleDescr rule] : ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )? ;
     public final void ruleAttribute(RuleDescr rule) throws RecognitionException {
         AttributeDescr d = null;
 
 
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:338:2: ( ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )? )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:339:3: ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )?
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:338:2: ( ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )? )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:339:3: ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )?
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:339:3: ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )?
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:339:3: ( LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN )?
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -629,11 +629,11 @@
             }
             switch (alt6) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:339:5: LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:339:5: LEFT_PAREN 'declare' ( LEFT_PAREN d= salience RIGHT_PAREN )? RIGHT_PAREN
                     {
                     match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute317); if (failed) return ;
                     match(input,DECLARE,FOLLOW_DECLARE_in_ruleAttribute319); if (failed) return ;
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:340:4: ( LEFT_PAREN d= salience RIGHT_PAREN )?
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:340:4: ( LEFT_PAREN d= salience RIGHT_PAREN )?
                     int alt5=2;
                     int LA5_0 = input.LA(1);
 
@@ -642,7 +642,7 @@
                     }
                     switch (alt5) {
                         case 1 :
-                            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:340:6: LEFT_PAREN d= salience RIGHT_PAREN
+                            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:340:6: LEFT_PAREN d= salience RIGHT_PAREN
                             {
                             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_ruleAttribute326); if (failed) return ;
                             pushFollow(FOLLOW_salience_in_ruleAttribute330);
@@ -682,7 +682,7 @@
 
 
     // $ANTLR start salience
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:344:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:344:1: salience returns [AttributeDescr d ] : loc= SALIENCE i= INT ;
     public final AttributeDescr salience() throws RecognitionException {
         AttributeDescr d = null;
 
@@ -693,8 +693,8 @@
         		d = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:348:2: (loc= SALIENCE i= INT )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:349:3: loc= SALIENCE i= INT
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:348:2: (loc= SALIENCE i= INT )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:349:3: loc= SALIENCE i= INT
             {
             loc=(Token)input.LT(1);
             match(input,SALIENCE,FOLLOW_SALIENCE_in_salience371); if (failed) return d;
@@ -724,46 +724,46 @@
 
 
     // $ANTLR start ce
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:359:1: ce[ConditionalElementDescr in_ce, Set declarations] : ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] ) ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:359:1: ce[ConditionalElementDescr in_ce, Set declarations] : ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] ) ;
     public final void ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:360:2: ( ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:360:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:2: ( ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:360:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:4: ( and_ce[in_ce, declarations] | or_ce[in_ce, declarations] | not_ce[in_ce, declarations] | exists_ce[in_ce, declarations] | eval_ce[in_ce, declarations] | normal_pattern[in_ce, declarations] | bound_pattern[in_ce, declarations] )
             int alt7=7;
             int LA7_0 = input.LA(1);
 
             if ( (LA7_0==LEFT_PAREN) ) {
                 switch ( input.LA(2) ) {
-                case TEST:
+                case NAME:
                     {
-                    alt7=5;
+                    alt7=6;
                     }
                     break;
-                case EXISTS:
+                case OR:
                     {
-                    alt7=4;
+                    alt7=2;
                     }
                     break;
-                case NAME:
+                case AND:
                     {
-                    alt7=6;
+                    alt7=1;
                     }
                     break;
-                case NOT:
+                case TEST:
                     {
-                    alt7=3;
+                    alt7=5;
                     }
                     break;
-                case AND:
+                case EXISTS:
                     {
-                    alt7=1;
+                    alt7=4;
                     }
                     break;
-                case OR:
+                case NOT:
                     {
-                    alt7=2;
+                    alt7=3;
                     }
                     break;
                 default:
@@ -787,7 +787,7 @@
             }
             switch (alt7) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:360:8: and_ce[in_ce, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:360:8: and_ce[in_ce, declarations]
                     {
                     pushFollow(FOLLOW_and_ce_in_ce401);
                     and_ce(in_ce,  declarations);
@@ -797,7 +797,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:361:7: or_ce[in_ce, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:361:7: or_ce[in_ce, declarations]
                     {
                     pushFollow(FOLLOW_or_ce_in_ce411);
                     or_ce(in_ce,  declarations);
@@ -807,7 +807,7 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:362:7: not_ce[in_ce, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:362:7: not_ce[in_ce, declarations]
                     {
                     pushFollow(FOLLOW_not_ce_in_ce420);
                     not_ce(in_ce,  declarations);
@@ -817,7 +817,7 @@
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:363:7: exists_ce[in_ce, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:363:7: exists_ce[in_ce, declarations]
                     {
                     pushFollow(FOLLOW_exists_ce_in_ce429);
                     exists_ce(in_ce,  declarations);
@@ -827,7 +827,7 @@
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:364:8: eval_ce[in_ce, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:364:8: eval_ce[in_ce, declarations]
                     {
                     pushFollow(FOLLOW_eval_ce_in_ce443);
                     eval_ce(in_ce,  declarations);
@@ -837,7 +837,7 @@
                     }
                     break;
                 case 6 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:365:7: normal_pattern[in_ce, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:365:7: normal_pattern[in_ce, declarations]
                     {
                     pushFollow(FOLLOW_normal_pattern_in_ce457);
                     normal_pattern(in_ce,  declarations);
@@ -847,7 +847,7 @@
                     }
                     break;
                 case 7 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:366:7: bound_pattern[in_ce, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:366:7: bound_pattern[in_ce, declarations]
                     {
                     pushFollow(FOLLOW_bound_pattern_in_ce466);
                     bound_pattern(in_ce,  declarations);
@@ -875,7 +875,7 @@
 
 
     // $ANTLR start execution_block
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:370:1: execution_block returns [ExecutionEngine engine] : (fc= lisp_list[context, new LispForm(context) ] )* ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:370:1: execution_block returns [ExecutionEngine engine] : (fc= lisp_list[context, new LispForm(context) ] )* ;
     public final ExecutionEngine execution_block() throws RecognitionException {
         ExecutionEngine engine = null;
 
@@ -887,10 +887,10 @@
         			BuildContext context = new ExecutionBuildContext( engine, functionRegistry );  	
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:376:2: ( (fc= lisp_list[context, new LispForm(context) ] )* )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:377:3: (fc= lisp_list[context, new LispForm(context) ] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:376:2: ( (fc= lisp_list[context, new LispForm(context) ] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:377:3: (fc= lisp_list[context, new LispForm(context) ] )*
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:377:3: (fc= lisp_list[context, new LispForm(context) ] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:377:3: (fc= lisp_list[context, new LispForm(context) ] )*
             loop8:
             do {
                 int alt8=2;
@@ -903,7 +903,7 @@
 
                 switch (alt8) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:377:4: fc= lisp_list[context, new LispForm(context) ]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:377:4: fc= lisp_list[context, new LispForm(context) ]
             	    {
             	    pushFollow(FOLLOW_lisp_list_in_execution_block498);
             	    fc=lisp_list(context,  new LispForm(context) );
@@ -937,14 +937,14 @@
 
 
     // $ANTLR start and_ce
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:380:1: and_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:380:1: and_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN ;
     public final void and_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
 
                 AndDescr andDescr= null;        
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:384:2: ( LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:384:4: LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:384:2: ( LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:384:4: LEFT_PAREN AND ( ce[andDescr, declarations] )+ RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_and_ce526); if (failed) return ;
             match(input,AND,FOLLOW_AND_in_and_ce531); if (failed) return ;
@@ -954,7 +954,7 @@
               			in_ce.addDescr( andDescr );
               		
             }
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:389:3: ( ce[andDescr, declarations] )+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:389:3: ( ce[andDescr, declarations] )+
             int cnt9=0;
             loop9:
             do {
@@ -968,7 +968,7 @@
 
                 switch (alt9) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:389:3: ce[andDescr, declarations]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:389:3: ce[andDescr, declarations]
             	    {
             	    pushFollow(FOLLOW_ce_in_and_ce537);
             	    ce(andDescr,  declarations);
@@ -1005,14 +1005,14 @@
 
 
     // $ANTLR start or_ce
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:393:1: or_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:393:1: or_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN ;
     public final void or_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
 
                 OrDescr orDescr= null;         
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:397:2: ( LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:397:4: LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:397:2: ( LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:397:4: LEFT_PAREN OR ( ce[orDescr, declarations] )+ RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_or_ce574); if (failed) return ;
             match(input,OR,FOLLOW_OR_in_or_ce579); if (failed) return ;
@@ -1022,7 +1022,7 @@
               			in_ce.addDescr( orDescr );
               		
             }
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:402:3: ( ce[orDescr, declarations] )+
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:402:3: ( ce[orDescr, declarations] )+
             int cnt10=0;
             loop10:
             do {
@@ -1036,7 +1036,7 @@
 
                 switch (alt10) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:402:3: ce[orDescr, declarations]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:402:3: ce[orDescr, declarations]
             	    {
             	    pushFollow(FOLLOW_ce_in_or_ce585);
             	    ce(orDescr,  declarations);
@@ -1073,14 +1073,14 @@
 
 
     // $ANTLR start not_ce
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:406:1: not_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:406:1: not_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN ;
     public final void not_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
 
                 NotDescr notDescr= null;         
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:410:2: ( LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:410:4: LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:410:2: ( LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:410:4: LEFT_PAREN NOT ce[notDescr, declarations] RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_not_ce622); if (failed) return ;
             match(input,NOT,FOLLOW_NOT_in_not_ce627); if (failed) return ;
@@ -1111,14 +1111,14 @@
 
 
     // $ANTLR start exists_ce
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:419:1: exists_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:419:1: exists_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN ;
     public final void exists_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
 
                 ExistsDescr existsDescr= null;        
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:423:2: ( LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:423:4: LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:423:2: ( LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:423:4: LEFT_PAREN EXISTS ce[existsDescr, declarations] RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_exists_ce670); if (failed) return ;
             match(input,EXISTS,FOLLOW_EXISTS_in_exists_ce675); if (failed) return ;
@@ -1149,7 +1149,7 @@
 
 
     // $ANTLR start eval_ce
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:432:1: eval_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:432:1: eval_ce[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN ;
     public final void eval_ce(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
         ValueHandler fc = null;
 
@@ -1160,8 +1160,8 @@
         		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );   		         
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:438:2: ( LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:438:4: LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:438:2: ( LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:438:4: LEFT_PAREN TEST fc= lisp_list[context, new LispForm(context)] RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_eval_ce717); if (failed) return ;
             match(input,TEST,FOLLOW_TEST_in_eval_ce722); if (failed) return ;
@@ -1198,7 +1198,7 @@
 
 
     // $ANTLR start normal_pattern
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:450:1: normal_pattern[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:450:1: normal_pattern[ConditionalElementDescr in_ce, Set declarations] : LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN ;
     public final void normal_pattern(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
         Token name=null;
 
@@ -1207,8 +1207,8 @@
                 ConditionalElementDescr top = null;
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:455:2: ( LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:455:4: LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:455:2: ( LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:455:4: LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_normal_pattern769); if (failed) return ;
             name=(Token)input.LT(1);
@@ -1221,7 +1221,7 @@
               			
               		
             }
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:462:3: ( field_constriant[top, declarations] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:462:3: ( field_constriant[top, declarations] )*
             loop11:
             do {
                 int alt11=2;
@@ -1234,7 +1234,7 @@
 
                 switch (alt11) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:462:3: field_constriant[top, declarations]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:462:3: field_constriant[top, declarations]
             	    {
             	    pushFollow(FOLLOW_field_constriant_in_normal_pattern782);
             	    field_constriant(top,  declarations);
@@ -1266,7 +1266,7 @@
 
 
     // $ANTLR start bound_pattern
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:468:1: bound_pattern[ConditionalElementDescr in_ce, Set declarations] : var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:468:1: bound_pattern[ConditionalElementDescr in_ce, Set declarations] : var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN ;
     public final void bound_pattern(ConditionalElementDescr in_ce, Set declarations) throws RecognitionException {
         Token var=null;
         Token name=null;
@@ -1277,8 +1277,8 @@
                 ConditionalElementDescr top = null;        
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:474:2: (var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:474:4: var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:474:2: (var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:474:4: var= VAR ASSIGN_OP LEFT_PAREN name= NAME ( field_constriant[top, declarations] )* RIGHT_PAREN
             {
             var=(Token)input.LT(1);
             match(input,VAR,FOLLOW_VAR_in_bound_pattern820); if (failed) return ;
@@ -1299,7 +1299,7 @@
               			top = pattern.getConstraint();				    
               		
             }
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:484:3: ( field_constriant[top, declarations] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:484:3: ( field_constriant[top, declarations] )*
             loop12:
             do {
                 int alt12=2;
@@ -1312,7 +1312,7 @@
 
                 switch (alt12) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:484:3: field_constriant[top, declarations]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:484:3: field_constriant[top, declarations]
             	    {
             	    pushFollow(FOLLOW_field_constriant_in_bound_pattern841);
             	    field_constriant(top,  declarations);
@@ -1344,7 +1344,7 @@
 
 
     // $ANTLR start field_constriant
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:488:1: field_constriant[ConditionalElementDescr base, Set declarations] : LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:488:1: field_constriant[ConditionalElementDescr base, Set declarations] : LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN ;
     public final void field_constriant(ConditionalElementDescr base, Set declarations) throws RecognitionException {
         Token f=null;
 
@@ -1356,8 +1356,8 @@
         		String op = "==";
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:496:2: ( LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:497:3: LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:496:2: ( LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:497:3: LEFT_PAREN f= NAME or_restr_connective[top, base, fc, declarations] RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_field_constriant879); if (failed) return ;
             f=(Token)input.LT(1);
@@ -1392,20 +1392,20 @@
 
 
     // $ANTLR start or_restr_connective
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:524:1: or_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] options {backtrack=true; } : and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )* ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:524:1: or_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] options {backtrack=true; } : and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )* ;
     public final void or_restr_connective(RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
 
         		RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR);
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:531:2: ( and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )* )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:532:3: and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:531:2: ( and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:532:3: and_restr_connective[or, ceBase, fcBase, declarations] ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )*
             {
             pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective943);
             and_restr_connective(or,  ceBase,  fcBase,  declarations);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:533:3: ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:533:3: ( options {backtrack=true; } : PIPE and_restr_connective[or, ceBase, fcBase, declarations] )*
             loop13:
             do {
                 int alt13=2;
@@ -1418,7 +1418,7 @@
 
                 switch (alt13) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:535:6: PIPE and_restr_connective[or, ceBase, fcBase, declarations]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:535:6: PIPE and_restr_connective[or, ceBase, fcBase, declarations]
             	    {
             	    match(input,PIPE,FOLLOW_PIPE_in_or_restr_connective967); if (failed) return ;
             	    if ( backtracking==0 ) {
@@ -1462,20 +1462,20 @@
 
 
     // $ANTLR start and_restr_connective
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:550:1: and_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] : restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )* ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:550:1: and_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] : restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )* ;
     public final void and_restr_connective(RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
 
         		RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND);
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:554:2: ( restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )* )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:555:3: restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:554:2: ( restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )* )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:555:3: restriction[and, ceBase, fcBase, declarations] ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )*
             {
             pushFollow(FOLLOW_restriction_in_and_restr_connective1009);
             restriction(and,  ceBase,  fcBase,  declarations);
             _fsp--;
             if (failed) return ;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:556:3: ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:556:3: ( AMPERSAND restriction[and, ceBase, fcBase, declarations] )*
             loop14:
             do {
                 int alt14=2;
@@ -1488,7 +1488,7 @@
 
                 switch (alt14) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:556:5: AMPERSAND restriction[and, ceBase, fcBase, declarations]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:556:5: AMPERSAND restriction[and, ceBase, fcBase, declarations]
             	    {
             	    match(input,AMPERSAND,FOLLOW_AMPERSAND_in_and_restr_connective1017); if (failed) return ;
             	    pushFollow(FOLLOW_restriction_in_and_restr_connective1019);
@@ -1527,7 +1527,7 @@
 
 
     // $ANTLR start restriction
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:575:1: restriction[RestrictionConnectiveDescr rc, ConditionalElementDescr base, FieldConstraintDescr fcBase, Set declarations ] : ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction ) ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:575:1: restriction[RestrictionConnectiveDescr rc, ConditionalElementDescr base, FieldConstraintDescr fcBase, Set declarations ] : ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction ) ;
     public final void restriction(RestrictionConnectiveDescr rc, ConditionalElementDescr base, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
         String lc = null;
 
@@ -1536,10 +1536,10 @@
         			String op = "==";
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:579:2: ( ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:579:4: ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:2: ( ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:4: ( TILDE )? ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction )
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:579:4: ( TILDE )?
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:4: ( TILDE )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -1548,7 +1548,7 @@
             }
             switch (alt15) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:579:5: TILDE
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:579:5: TILDE
                     {
                     match(input,TILDE,FOLLOW_TILDE_in_restriction1052); if (failed) return ;
                     if ( backtracking==0 ) {
@@ -1560,7 +1560,7 @@
 
             }
 
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:580:3: ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:3: ( predicate_constraint[rc, op, base] | return_value_restriction[op, rc] | variable_restriction[op, rc, base, fcBase, declarations] | lc= literal_restriction )
             int alt16=4;
             switch ( input.LA(1) ) {
             case COLON:
@@ -1598,7 +1598,7 @@
 
             switch (alt16) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:580:5: predicate_constraint[rc, op, base]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:580:5: predicate_constraint[rc, op, base]
                     {
                     pushFollow(FOLLOW_predicate_constraint_in_restriction1068);
                     predicate_constraint(rc,  op,  base);
@@ -1608,7 +1608,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:581:7: return_value_restriction[op, rc]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:581:7: return_value_restriction[op, rc]
                     {
                     pushFollow(FOLLOW_return_value_restriction_in_restriction1084);
                     return_value_restriction(op,  rc);
@@ -1618,7 +1618,7 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:582:7: variable_restriction[op, rc, base, fcBase, declarations]
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:582:7: variable_restriction[op, rc, base, fcBase, declarations]
                     {
                     pushFollow(FOLLOW_variable_restriction_in_restriction1093);
                     variable_restriction(op,  rc,  base,  fcBase,  declarations);
@@ -1628,7 +1628,7 @@
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:583:8: lc= literal_restriction
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:583:8: lc= literal_restriction
                     {
                     pushFollow(FOLLOW_literal_restriction_in_restriction1105);
                     lc=literal_restriction();
@@ -1662,7 +1662,7 @@
 
 
     // $ANTLR start predicate_constraint
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:590:1: predicate_constraint[RestrictionConnectiveDescr rc, String op, ConditionalElementDescr base] : COLON fc= lisp_list[context, new LispForm(context)] ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:590:1: predicate_constraint[RestrictionConnectiveDescr rc, String op, ConditionalElementDescr base] : COLON fc= lisp_list[context, new LispForm(context)] ;
     public final void predicate_constraint(RestrictionConnectiveDescr rc, String op, ConditionalElementDescr base) throws RecognitionException {
         ValueHandler fc = null;
 
@@ -1672,8 +1672,8 @@
         		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );    
             
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:595:2: ( COLON fc= lisp_list[context, new LispForm(context)] )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:595:4: COLON fc= lisp_list[context, new LispForm(context)]
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:2: ( COLON fc= lisp_list[context, new LispForm(context)] )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:595:4: COLON fc= lisp_list[context, new LispForm(context)]
             {
             match(input,COLON,FOLLOW_COLON_in_predicate_constraint1147); if (failed) return ;
             pushFollow(FOLLOW_lisp_list_in_predicate_constraint1153);
@@ -1702,7 +1702,7 @@
 
 
     // $ANTLR start return_value_restriction
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:604:1: return_value_restriction[String op, RestrictionConnectiveDescr rc] : EQUALS func= lisp_list[context, new LispForm(context)] ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:604:1: return_value_restriction[String op, RestrictionConnectiveDescr rc] : EQUALS func= lisp_list[context, new LispForm(context)] ;
     public final void return_value_restriction(String op, RestrictionConnectiveDescr rc) throws RecognitionException {
         ValueHandler func = null;
 
@@ -1712,8 +1712,8 @@
         		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:609:2: ( EQUALS func= lisp_list[context, new LispForm(context)] )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:609:4: EQUALS func= lisp_list[context, new LispForm(context)]
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:609:2: ( EQUALS func= lisp_list[context, new LispForm(context)] )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:609:4: EQUALS func= lisp_list[context, new LispForm(context)]
             {
             match(input,EQUALS,FOLLOW_EQUALS_in_return_value_restriction1179); if (failed) return ;
             pushFollow(FOLLOW_lisp_list_in_return_value_restriction1186);
@@ -1742,13 +1742,13 @@
 
 
     // $ANTLR start variable_restriction
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:617:1: variable_restriction[String op, RestrictionConnectiveDescr rc, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] : VAR ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:617:1: variable_restriction[String op, RestrictionConnectiveDescr rc, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ] : VAR ;
     public final void variable_restriction(String op, RestrictionConnectiveDescr rc, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations) throws RecognitionException {
         Token VAR1=null;
 
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:618:2: ( VAR )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:618:4: VAR
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:618:2: ( VAR )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:618:4: VAR
             {
             VAR1=(Token)input.LT(1);
             match(input,VAR,FOLLOW_VAR_in_variable_restriction1206); if (failed) return ;
@@ -1781,7 +1781,7 @@
 
 
     // $ANTLR start literal_restriction
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:632:1: literal_restriction returns [String text] : t= literal ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:632:1: literal_restriction returns [String text] : t= literal ;
     public final String literal_restriction() throws RecognitionException {
         String text = null;
 
@@ -1792,8 +1792,8 @@
         		text = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:636:2: (t= literal )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:637:6: t= literal
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:636:2: (t= literal )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:637:6: t= literal
             {
             pushFollow(FOLLOW_literal_in_literal_restriction1239);
             t=literal();
@@ -1820,7 +1820,7 @@
 
 
     // $ANTLR start lisp_list
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:642:1: lisp_list[BuildContext context, LispList list] returns [ValueHandler valueHandler] : LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:642:1: lisp_list[BuildContext context, LispList list] returns [ValueHandler valueHandler] : LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN ;
     public final ValueHandler lisp_list(BuildContext context, LispList list) throws RecognitionException {
         ValueHandler valueHandler = null;
 
@@ -1828,11 +1828,11 @@
 
 
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:643:2: ( LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:643:4: LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:643:2: ( LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:643:4: LEFT_PAREN (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )* RIGHT_PAREN
             {
             match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lisp_list1258); if (failed) return valueHandler;
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:644:3: (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )*
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:644:3: (a= lisp_atom[context] | a= lisp_list[context, list.createList()] )*
             loop17:
             do {
                 int alt17=3;
@@ -1848,7 +1848,7 @@
 
                 switch (alt17) {
             	case 1 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:644:6: a= lisp_atom[context]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:644:6: a= lisp_atom[context]
             	    {
             	    pushFollow(FOLLOW_lisp_atom_in_lisp_list1268);
             	    a=lisp_atom(context);
@@ -1861,7 +1861,7 @@
             	    }
             	    break;
             	case 2 :
-            	    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:645:6: a= lisp_list[context, list.createList()]
+            	    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:645:6: a= lisp_list[context, list.createList()]
             	    {
             	    pushFollow(FOLLOW_lisp_list_in_lisp_list1284);
             	    a=lisp_list(context,  list.createList());
@@ -1899,7 +1899,7 @@
 
 
     // $ANTLR start lisp_atom
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:651:1: lisp_atom[BuildContext context] returns [ValueHandler value] : (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL ) ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:651:1: lisp_atom[BuildContext context] returns [ValueHandler value] : (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL ) ;
     public final ValueHandler lisp_atom(BuildContext context) throws RecognitionException {
         ValueHandler value = null;
 
@@ -1909,10 +1909,10 @@
         		value  =  null;		
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:655:2: ( (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:656:3: (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:655:2: ( (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:656:3: (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL )
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:656:3: (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:656:3: (t= VAR | t= STRING | t= NAME | t= FLOAT | t= INT | t= BOOL | t= NULL )
             int alt18=7;
             switch ( input.LA(1) ) {
             case VAR:
@@ -1960,7 +1960,7 @@
 
             switch (alt18) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:656:6: t= VAR
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:656:6: t= VAR
                     {
                     t=(Token)input.LT(1);
                     match(input,VAR,FOLLOW_VAR_in_lisp_atom1351); if (failed) return value;
@@ -1971,7 +1971,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:657:6: t= STRING
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:657:6: t= STRING
                     {
                     t=(Token)input.LT(1);
                     match(input,STRING,FOLLOW_STRING_in_lisp_atom1363); if (failed) return value;
@@ -1982,7 +1982,7 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:658:7: t= NAME
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:658:7: t= NAME
                     {
                     t=(Token)input.LT(1);
                     match(input,NAME,FOLLOW_NAME_in_lisp_atom1375); if (failed) return value;
@@ -1993,7 +1993,7 @@
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:659:6: t= FLOAT
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:659:6: t= FLOAT
                     {
                     t=(Token)input.LT(1);
                     match(input,FLOAT,FOLLOW_FLOAT_in_lisp_atom1390); if (failed) return value;
@@ -2004,7 +2004,7 @@
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:660:6: t= INT
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:660:6: t= INT
                     {
                     t=(Token)input.LT(1);
                     match(input,INT,FOLLOW_INT_in_lisp_atom1402); if (failed) return value;
@@ -2015,7 +2015,7 @@
                     }
                     break;
                 case 6 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:661:6: t= BOOL
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:661:6: t= BOOL
                     {
                     t=(Token)input.LT(1);
                     match(input,BOOL,FOLLOW_BOOL_in_lisp_atom1418); if (failed) return value;
@@ -2026,7 +2026,7 @@
                     }
                     break;
                 case 7 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:662:6: t= NULL
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:662:6: t= NULL
                     {
                     t=(Token)input.LT(1);
                     match(input,NULL,FOLLOW_NULL_in_lisp_atom1436); if (failed) return value;
@@ -2055,7 +2055,7 @@
 
 
     // $ANTLR start literal
-    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:666:1: literal returns [String text] : (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
+    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:666:1: literal returns [String text] : (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
     public final String literal() throws RecognitionException {
         String text = null;
 
@@ -2065,10 +2065,10 @@
         		text = null;
         	
         try {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:670:2: ( (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:670:4: (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:2: ( (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:4: (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL )
             {
-            // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:670:4: (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL )
+            // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:4: (t= STRING | t= NAME | t= INT | t= FLOAT | t= BOOL | t= NULL )
             int alt19=6;
             switch ( input.LA(1) ) {
             case STRING:
@@ -2111,7 +2111,7 @@
 
             switch (alt19) {
                 case 1 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:670:8: t= STRING
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:670:8: t= STRING
                     {
                     t=(Token)input.LT(1);
                     match(input,STRING,FOLLOW_STRING_in_literal1472); if (failed) return text;
@@ -2122,7 +2122,7 @@
                     }
                     break;
                 case 2 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:671:7: t= NAME
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:671:7: t= NAME
                     {
                     t=(Token)input.LT(1);
                     match(input,NAME,FOLLOW_NAME_in_literal1485); if (failed) return text;
@@ -2133,7 +2133,7 @@
                     }
                     break;
                 case 3 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:672:7: t= INT
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:672:7: t= INT
                     {
                     t=(Token)input.LT(1);
                     match(input,INT,FOLLOW_INT_in_literal1501); if (failed) return text;
@@ -2144,7 +2144,7 @@
                     }
                     break;
                 case 4 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:673:7: t= FLOAT
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:673:7: t= FLOAT
                     {
                     t=(Token)input.LT(1);
                     match(input,FLOAT,FOLLOW_FLOAT_in_literal1516); if (failed) return text;
@@ -2155,7 +2155,7 @@
                     }
                     break;
                 case 5 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:674:7: t= BOOL
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:674:7: t= BOOL
                     {
                     t=(Token)input.LT(1);
                     match(input,BOOL,FOLLOW_BOOL_in_literal1529); if (failed) return text;
@@ -2166,7 +2166,7 @@
                     }
                     break;
                 case 6 :
-                    // /home/etirelli/workspace/jboss/jbossrules/drools-clips/src/main/resources/org/drools/clp/CLP.g:675:7: t= NULL
+                    // C:\\dev\\drools\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:675:7: t= NULL
                     {
                     t=(Token)input.LT(1);
                     match(input,NULL,FOLLOW_NULL_in_literal1543); if (failed) return text;

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/LispForm.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/LispForm.java	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/LispForm.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -20,8 +20,8 @@
     }
 
     public void add(ValueHandler valueHandler) {
-        // we know this is a string literal, so can use null for the context
         if ( this.caller == null ) {
+            // we know this is a string literal, so can use null for the context
             this.caller = new FunctionCaller( this.context.getFunctionRegistry().getFunction( valueHandler.getStringValue( null ) ) );
 
             //We can only call initCallback on known functions

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Shell.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Shell.java	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Shell.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -88,6 +88,7 @@
         } catch ( Exception e ) {
             throw new RuntimeException( e );
         }
+        
         //parser.setF
     }
 
@@ -106,7 +107,7 @@
         valueHandler.getValue( context );
     }
 
-    public void ruleDescrHandler(RuleDescr ruleDescr) {
+    public void ruleDescrHandler(RuleDescr ruleDescr) {        
         String module = getModuleName( ruleDescr.getAttributes() );
 
         PackageDescr pkg = new PackageDescr( module );
@@ -118,7 +119,7 @@
         pkg.addRule( ruleDescr );
 
         PackageBuilder builder = new PackageBuilder();
-        builder.addPackage( pkg );
+        builder.addPackage( pkg );                
         
         try {
             this.ruleBase.addPackage( builder.getPackage() );

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClipsDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClipsDialect.java	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClipsDialect.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -4,6 +4,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.drools.base.ClassFieldExtractorCache;
 import org.drools.base.TypeResolver;
@@ -21,17 +22,24 @@
 import org.drools.lang.descr.NotDescr;
 import org.drools.lang.descr.OrDescr;
 import org.drools.lang.descr.PatternDescr;
+import org.drools.lang.descr.ProcessDescr;
 import org.drools.lang.descr.QueryDescr;
 import org.drools.lang.descr.RuleDescr;
 import org.drools.rule.Package;
 import org.drools.rule.builder.AccumulateBuilder;
+import org.drools.rule.builder.ActionBuilder;
 import org.drools.rule.builder.ConsequenceBuilder;
+import org.drools.rule.builder.EntryPointBuilder;
 import org.drools.rule.builder.FromBuilder;
 import org.drools.rule.builder.GroupElementBuilder;
+import org.drools.rule.builder.PackageBuildContext;
 import org.drools.rule.builder.PatternBuilder;
 import org.drools.rule.builder.PredicateBuilder;
+import org.drools.rule.builder.ProcessBuildContext;
+import org.drools.rule.builder.ProcessClassBuilder;
 import org.drools.rule.builder.QueryBuilder;
 import org.drools.rule.builder.ReturnValueBuilder;
+import org.drools.rule.builder.ReturnValueEvaluatorBuilder;
 import org.drools.rule.builder.RuleBuildContext;
 import org.drools.rule.builder.RuleClassBuilder;
 import org.drools.rule.builder.RuleConditionBuilder;
@@ -39,9 +47,9 @@
 import org.drools.rule.builder.dialect.mvel.MVELDialectConfiguration;
 public class ClipsDialect implements Dialect {
 
-    public final static String                ID                      = "ClipsDialect";
+    public final static String                ID                      = "clips";
 
-    private final static String               EXPRESSION_DIALECT_NAME = "MVEL";    
+    private final static String               EXPRESSION_DIALECT_NAME = "mvel";    
     
     private final PatternBuilder              pattern                 = new PatternBuilder();    
     private final ClpConsequenceBuilder      consequence             = new ClpConsequenceBuilder();    
@@ -234,4 +242,50 @@
         return this.typeResolver;
     }
 
+    public void addProcess(ProcessBuildContext context) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public AnalysisResult analyzeBlock(PackageBuildContext context,
+                                       BaseDescr descr,
+                                       String text,
+                                       Set[] availableIdentifiers) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public AnalysisResult analyzeExpression(PackageBuildContext context,
+                                            BaseDescr descr,
+                                            Object content,
+                                            Set[] availableIdentifiers) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public ActionBuilder getActionBuilder() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public EntryPointBuilder getEntryPointBuilder() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public ProcessClassBuilder getProcessClassBuilder() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public ReturnValueEvaluatorBuilder getReturnValueEvaluatorBuilder() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void init(ProcessDescr processDescr) {
+        // TODO Auto-generated method stub
+        
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClpConsequenceBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClpConsequenceBuilder.java	2008-01-24 18:54:21 UTC (rev 18080)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/rule/builder/dialect/clp/ClpConsequenceBuilder.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -1,7 +1,11 @@
 package org.drools.rule.builder.dialect.clp;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.drools.clp.BlockExecutionEngine;
 import org.drools.clp.ExecutionEngine;
+import org.drools.rule.Declaration;
 import org.drools.rule.Rule;
 import org.drools.rule.builder.ConsequenceBuilder;
 import org.drools.rule.builder.RuleBuildContext;
@@ -11,6 +15,13 @@
     public void build(RuleBuildContext context) {
         Rule rule = context.getRule();
         BlockExecutionEngine rhs = ( BlockExecutionEngine ) context.getRuleDescr().getConsequence();
+        Map vars = new HashMap();
+        
+        for(Declaration declaration : rule.getDeclarations() ) {
+            vars.put( declaration.getIdentifier(), declaration );
+        }
+        
+        rhs.replaceTempTokens( vars );
         rule.setConsequence( rhs );        
     }
 

Added: labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLPMVEL.g
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLPMVEL.g	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLPMVEL.g	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,892 @@
+grammar CLPMVEL;
+
+ at parser::header {
+	package org.drools.clp;
+	
+    import org.drools.clp.mvel.*;	
+    
+	import org.drools.clp.valuehandlers.*;
+	import java.util.List;
+	import java.util.ArrayList;
+	import java.util.Iterator;
+	import java.util.HashMap;	
+	import java.util.Set;	
+	import java.util.HashSet;			
+	import java.util.StringTokenizer;
+	import org.drools.lang.descr.*;
+	import org.drools.lang.Location;	
+}
+
+ at parser::members {
+	private PackageDescr packageDescr;
+	private List errors = new ArrayList();
+	private String source = "unknown";
+	private int lineOffset = 0;
+	private DescrFactory factory = new DescrFactory();
+	private boolean parserDebug = false;
+	private FunctionRegistry functionRegistry;	
+	private Location location = new Location( Location.LOCATION_UNKNOWN );	
+	
+	public void setFunctionRegistry(FunctionRegistry functionRegistry) {
+		this.functionRegistry = functionRegistry;
+	}
+	
+	public void setParserDebug(boolean parserDebug) {
+		this.parserDebug = parserDebug;
+	}		
+	
+	public void debug(String message) {
+		if ( parserDebug ) 
+			System.err.println( "drl parser: " + message );
+	}
+	
+	public void setSource(String source) {
+		this.source = source;
+	}
+	public DescrFactory getFactory() {
+		return factory;
+	}	
+
+	public String getSource() {
+		return this.source;
+	}
+	
+	public PackageDescr getPackageDescr() {
+		return packageDescr;
+	}
+	
+	private int offset(int line) {
+		return line + lineOffset;
+	}
+	
+	/**
+	 * This will set the offset to record when reparsing. Normally is zero of course 
+	 */
+	public void setLineOffset(int i) {
+	 	this.lineOffset = i;
+	}
+	
+	private String getString(Token token) {
+		String orig = token.getText();
+		return orig.substring( 1, orig.length() -1 );
+	}
+	
+	public void reportError(RecognitionException ex) {
+	        // if we've already reported an error and have not matched a token
+                // yet successfully, don't report any errors.
+                if ( errorRecovery ) {
+                        return;
+                }
+                errorRecovery = true;
+
+		ex.line = offset(ex.line); //add the offset if there is one
+		errors.add( ex ); 
+	}
+     	
+     	/** return the raw RecognitionException errors */
+     	public List getErrors() {
+     		return errors;
+     	}
+     	
+     	/** Return a list of pretty strings summarising the errors */
+     	public List getErrorMessages() {
+     		List messages = new ArrayList();
+ 		for ( Iterator errorIter = errors.iterator() ; errorIter.hasNext() ; ) {
+     	     		messages.add( createErrorMessage( (RecognitionException) errorIter.next() ) );
+     	     	}
+     	     	return messages;
+     	}
+     	
+     	/** return true if any parser errors were accumulated */
+     	public boolean hasErrors() {
+  		return ! errors.isEmpty();
+     	}
+     	
+     	/** This will take a RecognitionException, and create a sensible error message out of it */
+     	public String createErrorMessage(RecognitionException e)
+        {
+		StringBuffer message = new StringBuffer();		
+                message.append( source + ":"+e.line+":"+e.charPositionInLine+" ");
+                if ( e instanceof MismatchedTokenException ) {
+                        MismatchedTokenException mte = (MismatchedTokenException)e;
+                        message.append("mismatched token: "+
+                                                           e.token+
+                                                           "; expecting type "+
+                                                           tokenNames[mte.expecting]);
+                }
+                else if ( e instanceof MismatchedTreeNodeException ) {
+                        MismatchedTreeNodeException mtne = (MismatchedTreeNodeException)e;
+                        message.append("mismatched tree node: "+
+                                                           //mtne.foundNode+ FIXME
+                                                           "; expecting type "+
+                                                           tokenNames[mtne.expecting]);
+                }
+                else if ( e instanceof NoViableAltException ) {
+                        NoViableAltException nvae = (NoViableAltException)e;
+			message.append( "Unexpected token '" + e.token.getText() + "'" );
+                        /*
+                        message.append("decision=<<"+nvae.grammarDecisionDescription+">>"+
+                                                           " state "+nvae.stateNumber+
+                                                           " (decision="+nvae.decisionNumber+
+                                                           ") no viable alt; token="+
+                                                           e.token);
+                                                           */
+                }
+                else if ( e instanceof EarlyExitException ) {
+                        EarlyExitException eee = (EarlyExitException)e;
+                        message.append("required (...)+ loop (decision="+
+                                                           eee.decisionNumber+
+                                                           ") did not match anything; token="+
+                                                           e.token);
+                }
+                else if ( e instanceof MismatchedSetException ) {
+                        MismatchedSetException mse = (MismatchedSetException)e;
+                        message.append("mismatched token '"+
+                                                           e.token+
+                                                           "' expecting set "+mse.expecting);
+                }
+                else if ( e instanceof MismatchedNotSetException ) {
+                        MismatchedNotSetException mse = (MismatchedNotSetException)e;
+                        message.append("mismatched token '"+
+                                                           e.token+
+                                                           "' expecting set "+mse.expecting);
+                }
+                else if ( e instanceof FailedPredicateException ) {
+                        FailedPredicateException fpe = (FailedPredicateException)e;
+                        message.append("rule "+fpe.ruleName+" failed predicate: {"+
+                                                           fpe.predicateText+"}?");
+                } else if (e instanceof GeneralParseException) {
+			message.append(" " + e.getMessage());
+		}
+               	return message.toString();
+        }   
+        
+        void checkTrailingSemicolon(String text, int line) {
+        	if (text.trim().endsWith( ";" ) ) {
+        		this.errors.add( new GeneralParseException( "Trailing semi-colon not allowed", offset(line) ) );
+        	}
+        }
+      
+}
+
+ at lexer::header {
+	package org.drools.clp;
+}
+
+/*
+opt_semicolon
+	: ';'?
+	;
+
+
+compilation_unit
+	:	
+		( statement )+
+	;
+*/
+/*
+statement
+	:
+	//later we add the other possible statements here 
+	(  //do something with the returned rule here )
+	;
+*/		
+/* prolog
+	@init {
+		String packageName = "";
+	}
+	:	( n=package_statement { packageName = n; } )?
+		{ 
+			this.packageDescr = factory.createPackage( packageName ); 
+		}
+	;
+	
+statement
+	:
+	(	import_statement 
+	|       function_import_statement 
+	|	global 
+	|	function 
+	|       t=template {this.packageDescr.addFactTemplate( t ); }
+	|	r=rule { if( r != null ) this.packageDescr.addRule( r ); }			
+	|	q=query	{ if( q != null ) this.packageDescr.addRule( q ); }
+	) 
+	;
+
+package_statement returns [String packageName]
+	@init{
+		packageName = null;
+	}
+	:	
+		PACKAGE n=dotted_name[null] opt_semicolon
+		{
+			packageName = n;
+		}
+	;	
+*/
+
+eval_script[Shell  shell]
+	:	(		  i=importDescr{ shell.importDescrHandler( i ); }
+				| r=defrule { shell.ruleDescrHandler( r ); }
+				//e=execution_block { parserHandler.lispFormHandler( e ); }
+				| fc=lisp_list[shell, new LispForm(shell) ] { shell.lispFormHandler(fc); }
+		)*
+	;
+	
+importDescr returns[ImportDescr importDescr]
+	: LEFT_PAREN 'import' importName=NAME { importDescr = new ImportDescr( importName.getText() ); }RIGHT_PAREN
+	;	
+/*	
+
+execution_list returns[ExecutionEngine engine]
+	@init {
+	        engine = new BlockExecutionEngine();
+			BuildContext context = new ExecutionBuildContext( engine, functionRegistry );  	
+	}
+	
+	:
+		(fc=lisp_list[context, new LispForm(context) ] { context.addFunction( (FunctionCaller) fc ); })
+	;	
+*/	
+
+deffunction returns[Deffunction function]
+	@init {
+			BuildContext context = null;  	
+	}
+	:	loc=LEFT_PAREN	 
+	  	DEFFUNCTION 
+	  	ruleName=NAME {
+	    	function = new Deffunction( ruleName.getText() );
+			functionRegistry.addFunction( function );
+	      	context = new ExecutionBuildContext( function, functionRegistry );
+	  	}
+		loc=LEFT_PAREN	 
+		 (v=VAR {
+			context.addVariable( function.addParameter( v.getText() ) );
+		 })*	  
+	 	 RIGHT_PAREN
+	  	(fc=lisp_list[context, new LispForm(context) ] { context.addFunction( (FunctionCaller) fc ); })*
+	  	RIGHT_PAREN
+	;
+	
+/*	
+deffunction_params[BuildContext context]
+	:	loc=LEFT_PAREN	 
+		 (v=VAR {
+		    // this creates a parameter on the underlying function
+		 	context.createLocalVariable( v.getText() );
+		 })*	  
+	 	 RIGHT_PAREN	
+	;	
+*/
+defrule returns [RuleDescr rule]
+	@init { 
+	        rule = null; 
+	        AndDescr lhs = null;
+	        PatternDescr colum = null;
+	        AttributeDescr module = null;	      
+            Set declarations = null;  
+	      }
+	:	loc=LEFT_PAREN 
+		
+		DEFRULE ruleName=NAME
+	  	{ 	  			  		
+	  		debug( "start rule: " + ruleName.getText() );
+	  		String ruleStr = ruleName.getText();
+
+	        if ( ruleStr.indexOf("::") >= 0 ) {
+	            String mod = ruleStr.substring(0, ruleStr.indexOf("::"));
+	            ruleStr = ruleStr.substring(ruleStr.indexOf("::")+2);
+				module = new AttributeDescr( "agenda-group", mod );
+				module.setLocation( offset(ruleName.getLine()), ruleName.getCharPositionInLine() );
+				module.setStartCharacter( ((CommonToken)ruleName).getStartIndex() );
+				module.setEndCharacter( ((CommonToken)ruleName).getStopIndex() );
+			}
+		    
+		    rule = new RuleDescr( ruleStr, null ); 
+		    if( module != null ) {
+		    	rule.addAttribute( module );
+		    }
+		        
+			rule.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+			rule.setStartCharacter( ((CommonToken)loc).getStartIndex() ); 
+		
+			// not sure how you define where a LHS starts in clips, so just putting it here for now
+        	lhs = new AndDescr(); 
+  	        rule.setLhs( lhs ); 
+	        lhs.setLocation( offset(loc.getLine()), loc.getCharPositionInLine() );
+			lhs.setStartCharacter( ((CommonToken)loc).getStartIndex() );	
+			
+			rule.addAttribute( new AttributeDescr( "dialect", "clips") );	
+			
+			declarations = new HashSet();  											
+		}
+		documentation=STRING {
+	    	// do nothing here for now
+		}
+		ruleAttribute[rule]
+		
+		ce[lhs, declarations]*
+		
+		'=>'
+		
+		engine=execution_block { rule.setConsequence( engine ); }
+		
+		RIGHT_PAREN
+	;
+
+
+ruleAttribute[RuleDescr rule]
+	:
+		( LEFT_PAREN 'declare'
+			( LEFT_PAREN d=salience { rule.addAttribute( d ); } RIGHT_PAREN )?
+		RIGHT_PAREN )?
+	;	
+
+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() );
+		}
+	;
+		
+
+ce[ConditionalElementDescr in_ce, Set declarations]
+	:	(   and_ce[in_ce, declarations]	
+		  | or_ce[in_ce, declarations]
+		  | not_ce[in_ce, declarations]
+		  | exists_ce[in_ce, declarations]		  
+ 		  | eval_ce[in_ce, declarations] 		  
+		  | normal_pattern[in_ce, declarations]
+		  | bound_pattern[in_ce, declarations]
+		)
+	;
+
+execution_block returns[ExecutionEngine engine]
+	@init {
+	        engine = new BlockExecutionEngine();
+			BuildContext context = new ExecutionBuildContext( engine, functionRegistry );  	
+	}
+	
+	:
+		(fc=lisp_list[context, new LispForm(context) ] { context.addFunction( (FunctionCaller) fc ); })*
+	;	
+	
+and_ce[ConditionalElementDescr in_ce, Set declarations]
+    @init {
+        AndDescr andDescr= null;        
+    }
+	:	LEFT_PAREN	
+		AND {
+	    	andDescr = new AndDescr();
+			in_ce.addDescr( andDescr );
+		}
+		ce[andDescr, declarations]+		 
+		RIGHT_PAREN					
+	;	
+	
+or_ce[ConditionalElementDescr in_ce, Set declarations]
+    @init {
+        OrDescr orDescr= null;         
+    }
+	:	LEFT_PAREN	
+		OR {
+	    	orDescr = new OrDescr();
+			in_ce.addDescr( orDescr );
+		}
+		ce[orDescr, declarations]+		 
+		RIGHT_PAREN					
+	;	
+	
+not_ce[ConditionalElementDescr in_ce, Set declarations]
+    @init {
+        NotDescr notDescr= null;         
+    }
+	:	LEFT_PAREN	
+		NOT {
+			notDescr = new NotDescr();
+		    in_ce.addDescr( notDescr );
+		}
+		ce[notDescr, declarations]		 
+		RIGHT_PAREN					
+	;		
+	
+exists_ce[ConditionalElementDescr in_ce, Set declarations]
+    @init {
+        ExistsDescr existsDescr= null;        
+    }
+	:	LEFT_PAREN	
+		EXISTS {
+		    existsDescr = new ExistsDescr();
+		    in_ce.addDescr( existsDescr );
+		}
+		ce[existsDescr, declarations]		 
+		RIGHT_PAREN					
+	;		
+
+eval_ce[ConditionalElementDescr in_ce, Set declarations]
+    @init {
+        EvalDescr evalDescr= null;    
+   		ExecutionEngine engine = new CLPEval();     
+		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );   		         
+    }
+	:	LEFT_PAREN	
+		TEST {
+		    evalDescr = new EvalDescr();
+		    in_ce.addDescr( evalDescr );
+		}
+		fc=lisp_list[context, new LispForm(context)] {					
+		    engine.addFunction( (FunctionCaller) fc );		
+			evalDescr.setContent( engine );			
+		}			 
+		RIGHT_PAREN					
+	;		
+
+normal_pattern[ConditionalElementDescr in_ce, Set declarations]
+    @init {
+        PatternDescr pattern = null;
+        ConditionalElementDescr top = null;
+    }
+	:	LEFT_PAREN 
+		name=NAME {
+			pattern = new PatternDescr(name.getText());
+			in_ce.addDescr( pattern );
+			top = pattern.getConstraint();
+			
+		}
+		field_constriant[top, declarations]* 	  
+		RIGHT_PAREN
+	;		
+	
+
+
+bound_pattern[ConditionalElementDescr in_ce, Set declarations]
+    @init {
+        PatternDescr pattern = null;
+        String identifier = null;
+        ConditionalElementDescr top = null;        
+    }
+	:	var=VAR {
+			identifier = var.getText();
+		}
+		ASSIGN_OP LEFT_PAREN name=NAME 
+		{
+			pattern = new PatternDescr(name.getText());
+			pattern.setIdentifier( identifier );
+			in_ce.addDescr( pattern );
+			top = pattern.getConstraint();				    
+		}
+		field_constriant[top, declarations]* 
+		RIGHT_PAREN	
+	;			
+	
+field_constriant[ConditionalElementDescr base, Set declarations] 
+	@init {
+     	List list = new ArrayList();
+		FieldBindingDescr fbd = null;
+		FieldConstraintDescr fc = null;
+		RestrictionConnectiveDescr top = null;		
+		String op = "==";
+	}    
+	:	
+		LEFT_PAREN f=NAME 
+		{
+			fc = new FieldConstraintDescr(f.getText());
+			fc.setLocation( offset(f.getLine()), f.getCharPositionInLine() );
+			fc.setStartCharacter( ((CommonToken)f).getStartIndex() );
+			base.addDescr( fc );	
+			top = fc.getRestriction();		
+		}	  
+		
+		or_restr_connective[top, base, fc, declarations] 
+		RIGHT_PAREN		
+	;
+/*	
+connected_constraint[RestrictionConnectiveDescr rc, ConditionalElementDescr base]
+	:
+	restriction[rc, base]
+	( 
+	    AMPERSAND { rc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND)); }
+	    connected_constraint[rc, base]
+	| 
+	    PIPE {rc.addRestriction(new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR)); }
+	    connected_constraint[rc, base]
+	)?
+	;	
+*/
+
+
+or_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ]
+	options { 
+		backtrack=true;
+	}
+	@init {
+		RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR);
+	}
+	:
+		and_restr_connective[or, ceBase, fcBase, declarations] 
+		( 
+			options {backtrack=true;}
+			: PIPE
+			{
+				location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
+			}
+			and_restr_connective[or, ceBase, fcBase, declarations] 
+		)*
+	;
+	finally {
+	        if( or.getRestrictions().size() == 1 ) {
+	                $rcBase.addOrMerge( (RestrictionDescr) or.getRestrictions().get( 0 ) );
+	        } else if ( or.getRestrictions().size() > 1 ) {
+	        	$rcBase.addRestriction( or );
+	        }
+	}
+
+and_restr_connective[ RestrictionConnectiveDescr rcBase, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ]
+	@init {
+		RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND);
+	}
+	:
+		restriction[and, ceBase, fcBase, declarations] 
+		( AMPERSAND restriction[and, ceBase, fcBase, declarations] )*
+		/*
+		(	options {backtrack=true;}
+		:	t=AMPERSAND 
+			{
+				location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
+			}
+			restriction[and, ceBase] 
+		)*
+		*/
+	;
+	finally {
+	        if( and.getRestrictions().size() == 1) {
+	                $rcBase.addOrMerge( (RestrictionDescr) and.getRestrictions().get( 0 ) );
+	        } else if ( and.getRestrictions().size() > 1 ) {
+	        	$rcBase.addRestriction( and );
+	        }
+	}
+	
+restriction[RestrictionConnectiveDescr rc, ConditionalElementDescr base, FieldConstraintDescr fcBase, Set declarations ]
+	@init {
+			String op = "==";
+	}
+	:	(TILDE{op = "!=";})?	 	  	 
+		(	predicate_constraint[rc, op, base]	  	  	
+	  	|	return_value_restriction[op, rc]
+	  	|	variable_restriction[op, rc, base, fcBase, declarations]
+	  	| 	lc=literal_restriction {
+     	    			rc.addRestriction( new LiteralRestrictionDescr(op, lc) );
+		      		op = "==";
+		        } 	  	  	  
+		)		
+	;		
+
+predicate_constraint[RestrictionConnectiveDescr rc, String op, ConditionalElementDescr base]	
+    @init {
+   		ExecutionEngine engine = new CLPPredicate();
+		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );    
+    }
+	:	COLON
+		fc=lisp_list[context, new LispForm(context)] {	
+		        engine.addFunction( (FunctionCaller) fc );
+			$rc.addRestriction( new PredicateDescr( engine ) );
+		}	
+		
+	;
+
+
+return_value_restriction[String op, RestrictionConnectiveDescr rc]
+	@init {
+		ExecutionEngine engine = new CLPReturnValue();
+		BuildContext context = new ExecutionBuildContext( engine, functionRegistry );
+	}
+	:	EQUALS 
+		func=lisp_list[context, new LispForm(context)] {					
+   		    engine.addFunction( (FunctionCaller) func );
+			rc.addRestriction( new ReturnValueRestrictionDescr (op, engine ) );
+		}		
+	;
+		
+//will add a declaration field binding, if this is the first time the name  is used		
+variable_restriction[String op, RestrictionConnectiveDescr rc, ConditionalElementDescr ceBase, FieldConstraintDescr fcBase, Set declarations ]
+	:	VAR {
+	        if ( declarations.contains( $VAR.text ) ) {
+				rc.addRestriction( new VariableRestrictionDescr(op, $VAR.text) );
+		 	} else {
+		 		FieldBindingDescr fbd = new FieldBindingDescr();
+		 		fbd.setIdentifier( $VAR.text );		
+		 		fbd.setFieldName( fcBase.getFieldName() ); 		
+		 		ceBase.insertBeforeLast( FieldConstraintDescr.class, fbd );
+		 		declarations.add( $VAR.text );
+		 	}
+		}
+	;	
+
+	
+literal_restriction returns [String text]
+	@init {
+		text = null;
+	}
+	:
+	    t=literal {
+	    	text = t;
+	    }
+	;
+
+ 
+eval_sExpressions returns[List<SExpression> list]
+    @init {
+		list = new ArrayList<SExpression>();
+    }
+	:
+		(a=lisp_list2 { list.add( a ); })*
+//		{ sExpressions = ( SExpression[] ) list.toArray( new SExpression[ list.size () ] ); }
+	;
+	
+lisp_list2 returns[SExpression sExpression]
+    @init {
+        List list = new ArrayList();
+        sExpression = null;
+    }
+	:	LEFT_PAREN	
+	    t=FUNC_NAME { list.add( new SymbolLispAtom2(  t.getText() ) ); }
+		(		a=lisp_atom2	{ list.add( a ); }
+			|	a=lisp_list2	{ list.add( a ); }
+		)+									    	
+	    RIGHT_PAREN
+	    { sExpression = new LispForm2( ( SExpression[] ) list.toArray( new SExpression[ list.size () ] ) ); }
+	;
+	
+lisp_atom2 returns[SExpression sExpression] 
+	@init {
+		sExpression  =  null;		
+	}
+	:
+		/*(		
+			 	t=FLOAT		{ sExpression = new LispAtom2( t.getText() ); }
+			|	t=INT 		{ sExpression = new LispAtom2( t.getText() ); }			
+			|	t=BOOL		{ sExpression = new LispAtom2( t.getText() ); }						
+			|	t=NULL		{ sExpression = new LispAtom2( null ); }
+			|	t=STRING	{ sExpression = new LispAtom2( getString( t ) ); }
+			| 	t=NAME		{ sExpression = new LispAtom2( t.getText() ); }			
+
+		)*/	
+		
+		(		
+			 	t=VAR		{ sExpression = new VariableLispAtom2( t.getText() ); }
+			|	t=STRING	{ sExpression = new StringLispAtom2( getString( t ) ); }											
+			|	t=FLOAT		{ sExpression = new FloatLispAtom2( t.getText() ); }
+			|	t=INT		{ sExpression = new IntLispAtom2( t.getText() ); }
+			| 	t=BOOL		{ sExpression = new BoolLispAtom2( t.getText() ); }			
+			| 	t=NULL		{ sExpression = new NullLispAtom2( null ); }						
+	        | t=SYMBOL	{ sExpression = new SymbolLispAtom2( t.getText() ); }				
+
+		)		
+	;		
+
+lisp_list[BuildContext context, LispList list] returns[ValueHandler valueHandler]
+	:	LEFT_PAREN	
+		(		a=lisp_atom[context]					{ list.add( a ); }
+			|	a=lisp_list[context, list.createList()]	{ list.add( a ); }
+		)*										    	
+	    RIGHT_PAREN
+	    { valueHandler = list.getValueHandler(); }
+	;
+	
+lisp_atom[BuildContext context] returns[ValueHandler value] 
+	@init {
+		value  =  null;		
+	}
+	:
+		(		t=VAR		{ value = context.getVariableValueHandler(t.getText() ); }
+			|	t=STRING	{ value = new ObjectValueHandler( getString( t ) ); }
+			| 	t=NAME		{ value = new ObjectValueHandler( t.getText() ); }			
+			|	t=FLOAT		{ value = new DoubleValueHandler( t.getText() ); }
+			|	t=INT 		{ value = new LongValueHandler( t.getText() ); }			
+			|	t=BOOL		{ value = new BooleanValueHandler( t.getText() ); }						
+			|	t=NULL		{ value = ObjectValueHandler.NULL; }
+		)	
+	;
+	
+literal returns [String text]
+	@init {
+		text = null;
+	}
+	:	(   t=STRING { text = getString( t ); } 
+		  | t=NAME     { text = t.getText(); }
+		  | t=INT    { text = t.getText(); }
+		  | t=FLOAT	 { text = t.getText(); }
+		  | t=BOOL 	 { text = t.getText(); }
+		  | t=NULL   { text = null; }
+		)
+	;
+	
+WS      :       (	' '
+                |	'\t'
+                |	'\f'
+                |	EOL
+                )
+                { $channel=HIDDEN; }
+        ;                      
+        
+DEFRULE		:	'defrule';
+DEFFUNCTION :	'deffunction';
+OR 			:	'or';
+AND 		:	'and';
+NOT 		:	'not';
+EXISTS 		:	'exists';
+TEST 		:	'test';
+
+NULL		:	'null';
+
+DECLARE 	:	'declare';        		
+
+SALIENCE	:	'salience';
+
+//MODIFY  :	'modify';
+
+fragment
+EOL 	:	     
+   		(       ( '\r\n' )=> '\r\n'  // Evil DOS
+                |       '\r'    // Macintosh
+                |       '\n'    // Unix (the right way)
+                )
+        ;  
+        
+INT	
+	:	('-')?('0'..'9')+
+	;
+
+FLOAT
+	:	('-')?('0'..'9')+ '.' ('0'..'9')+
+	;
+
+STRING
+    :  ('"' ( EscapeSequence | ~('\\'|'"') )* '"')
+     | ('\'' ( EscapeSequence | ~('\\'|'\'') )* '\'')
+    ;
+
+fragment
+HexDigit : ('0'..'9'|'a'..'f'|'A'..'F') ;
+
+fragment
+EscapeSequence
+    :   '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
+    |   UnicodeEscape
+    |   OctalEscape
+    ;
+
+fragment
+OctalEscape
+    :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7') ('0'..'7')
+    |   '\\' ('0'..'7')
+    ;
+
+fragment
+UnicodeEscape
+    :   '\\' 'u' HexDigit HexDigit HexDigit HexDigit
+    ;
+
+BOOL
+	:	('true'|'false') 
+	;
+	
+VAR 	: '?'~DELIM+
+        ;
+
+SH_STYLE_SINGLE_LINE_COMMENT	
+	:	'#' ( options{greedy=false;} : .)* EOL /* ('\r')? '\n'  */
+                { $channel=HIDDEN; }
+	;
+        
+        
+C_STYLE_SINGLE_LINE_COMMENT	
+	:	'//' ( options{greedy=false;} : .)* EOL // ('\r')? '\n' 
+                { $channel=HIDDEN; }
+	;
+
+
+LEFT_PAREN
+	:	'('
+	;
+
+RIGHT_PAREN
+	:	')'
+	;
+        
+LEFT_SQUARE
+	:	'['
+	;
+
+RIGHT_SQUARE
+	:	']'
+	;        
+
+LEFT_CURLY
+	:	'{'
+	;
+
+RIGHT_CURLY
+	:	'}'
+	;
+	
+TILDE	:	'~'
+	;	
+	
+AMPERSAND 
+	:	'&'
+	;
+	
+PIPE
+	:	'|'
+	;		
+	
+ASSIGN_OP 
+	:	'<-'	
+	;
+
+COLON	:	':';
+
+EQUALS	:	'=';	
+        
+MULTI_LINE_COMMENT
+	:	'/*' (options{greedy=false;} : .)* '*/'
+                { $channel=HIDDEN; }
+	;
+
+NAME	:	SYMBOL	;
+
+//FUNC_NAME : ('a'..'z'|'A'..'Z'|'0'..'9'|'!'|'$'|'%'|'^'|'&'|'*'|'_'|'-'|'+'|'='|'|'|'\'|'/'|'@'|'~'|'#'|':'|';'|'<'|'>'|','|'.'|'['|']'|'{'|'}')+;	
+
+fragment
+FUNC_NAME :	 SYMBOL ;
+
+fragment
+SYMBOL : ~START_DELIM ~DELIM* ;	
+
+fragment
+START_DELIM	:	' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'?';	
+
+fragment
+DELIM	    :	' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'<';	
+	
+/*	
+fragment	
+SYMBOL
+	:	((~(' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'?'|'$'))|('$' ~('?'|' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'<'))) 
+	         (~(' '|'\t'|'\n'|'\r'|'"'|'('|')'|';'|'&'|'|'|'~'|'<'|'?'))*
+	;
+*/
+	
+
+
+

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Appendable.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Appendable.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Appendable.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,7 @@
+package org.drools.clp.mvel;
+
+public interface Appendable {
+
+    public abstract void append(String string);
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BaseInfixFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BaseInfixFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BaseInfixFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,20 @@
+package org.drools.clp.mvel;
+
+public abstract class BaseInfixFunction implements Function {
+    public abstract String getMappedSymbol();
+    
+    public void dump(LispForm2 lispForm, Appendable appendable) {
+        SExpression[] sExpressions = lispForm.getSExpressions();        
+        
+        appendable.append("(");
+        for ( int i = 1, length = sExpressions.length; i < length; i++) {
+            
+            FunctionHandlers.getInstance().dump( sExpressions[i], appendable );          
+            
+            if ( i != length -1 ) { 
+                appendable.append( getMappedSymbol() );
+            }
+        }
+        appendable.append(")");
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BoolLispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BoolLispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/BoolLispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,12 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class BoolLispAtom2 extends LispAtom2 {
+    
+    public BoolLispAtom2(String value) {
+        super(value);
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/CreateListFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/CreateListFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/CreateListFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,25 @@
+package org.drools.clp.mvel;
+
+public class CreateListFunction implements Function {
+    private static final String name = "create$";
+
+    public String getName() {
+        return name;
+    }
+    
+    public void dump(LispForm2 lispForm, Appendable appendable) {
+        SExpression[] sExpressions = lispForm.getSExpressions();
+        
+        appendable.append("[");
+        
+        for ( int i = 1, length = sExpressions.length; i < length; i++) {
+            
+            FunctionHandlers.getInstance().dump( sExpressions[i], appendable );        
+            
+            if ( i != length -1 ) { 
+                appendable.append( "," );
+            }
+        }
+        appendable.append("]");
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class EqFunction  extends BaseInfixFunction  {
+    private static final String name = "eq";
+    private static final String mappedSymbol = "==";
+        
+    public String getName() {
+        return name;
+    }
+
+    public String getMappedSymbol() {
+        return mappedSymbol;
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrLessThanFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrLessThanFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrLessThanFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class EqOrLessThanFunction  extends BaseInfixFunction  {
+    private static final String name = "<=";
+    private static final String mappedSymbol = "<=";
+    
+    public String getName() {
+        return name;
+    }
+    
+    public String getMappedSymbol() {
+        return mappedSymbol;
+    }    
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrMoreThanFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrMoreThanFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/EqOrMoreThanFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class EqOrMoreThanFunction  extends BaseInfixFunction  {
+    private static final String name = ">=";
+    private static final String mappedSymbol = ">=";
+
+    public String getName() {
+        return name;
+    }
+    
+    public String getMappedSymbol() {
+        return mappedSymbol;
+    }    
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FloatLispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FloatLispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FloatLispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,12 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class FloatLispAtom2 extends LispAtom2 {
+    
+    public FloatLispAtom2(String value) {
+        super(value);
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Function.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Function.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/Function.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,9 @@
+package org.drools.clp.mvel;
+
+public interface Function {
+
+    public abstract String getName();
+
+    public abstract void dump(LispForm2 lispForm, Appendable appendable);
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FunctionHandlers.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FunctionHandlers.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/FunctionHandlers.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,39 @@
+package org.drools.clp.mvel;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class FunctionHandlers {
+    public static final FunctionHandlers INSTANCE = new FunctionHandlers();
+    
+    public static FunctionHandlers getInstance() {
+        return INSTANCE;
+    }
+    
+    private Map<String, Function> map = new HashMap<String, Function>();
+    
+    private FunctionHandlers() {
+        
+    }
+    
+    public Function getFunction(String name) {
+        return this.map.get( name );
+    }
+    
+    public void registerFunction(Function function) {
+        this.map.put( function.getName(), function );
+    }
+    
+    public void dump(SExpression sExpression, Appendable appendable) {              
+        if ( sExpression instanceof LispAtom2 ) {
+            appendable.append( ( ( LispAtom2 ) sExpression).getValue() );
+        } else {
+            LispForm2 form = (LispForm2) sExpression;
+            Function function = FunctionHandlers.getInstance().getFunction( ( (LispAtom2) form.getSExpressions()[0]).getValue() );
+            function.dump(form, appendable );
+            
+        }           
+    }
+    
+    
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IfFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IfFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IfFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,28 @@
+package org.drools.clp.mvel;
+
+public class IfFunction implements Function {
+    private static final String name = "if";       
+
+    public String getName() {
+        return name;
+    }
+    
+    public void dump(LispForm2 lispForm, Appendable appendable) {
+        SExpression[] sExpressions = lispForm.getSExpressions();
+
+        appendable.append( "if " );
+        
+        FunctionHandlers.getInstance().dump( sExpressions[1], appendable );
+        
+        appendable.append( "{" );
+        FunctionHandlers.getInstance().dump( sExpressions[3], appendable );
+        appendable.append( "}" );
+        
+        if ( sExpressions.length > 4 ) {
+            appendable.append( "else {" );
+                FunctionHandlers.getInstance().dump( sExpressions[5], appendable );
+            appendable.append( "}" );            
+        }
+        
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IntLispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IntLispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/IntLispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,12 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class IntLispAtom2 extends LispAtom2 {
+    
+    public IntLispAtom2(String value) {
+        super(value);
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LessThanFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LessThanFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LessThanFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class LessThanFunction  extends BaseInfixFunction  {
+    private static final String name = "<";
+    private static final String mappedSymbol = "<";
+
+    public String getName() {
+        return name;
+    }
+    
+    public String getMappedSymbol() {
+        return mappedSymbol;
+    }    
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,25 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class LispAtom2 implements SExpression {
+    private String value;
+
+    public LispAtom2(String value) {
+        super();
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }    
+    
+    public String toString() {
+        return value;
+    }
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispForm2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispForm2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/LispForm2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,43 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class LispForm2 implements SExpression {
+    private SExpression[] sExpressions;
+    
+    public LispForm2(SExpression[] sExpressions) {
+        this.sExpressions = sExpressions;
+    }
+
+    public SExpression[] getSExpressions() {
+        return sExpressions;
+    }
+
+    public void setSExpressions(SExpression[] sExpressions) {
+        this.sExpressions = sExpressions;
+    }
+    
+//    public String toString() {
+//        StringBuilder builder = new StringBuilder();
+//        
+//        builder.append("(");
+//        for ( int i = 0, length = sExpressions.length; i < length; i++) {
+//            builder.append(" " + sExpressions[i] + " ");
+//        }
+//        builder.append(")");
+//        return builder.toString();
+//    }    
+    
+    public String toString() {
+        StringBuilder builder = new StringBuilder();
+        
+        builder.append("(");
+        for ( SExpression sExpression : sExpressions) {
+            builder.append(" " + sExpression + " ");
+        }
+        builder.append(")");
+        return builder.toString();
+    }  
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/ModifyFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/ModifyFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/ModifyFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,29 @@
+package org.drools.clp.mvel;
+
+public class ModifyFunction implements Function {
+    private static final String name = "modify";
+
+    public String getName() {
+        return name;
+    }
+    
+    public void dump(LispForm2 lispForm, Appendable appendable) {
+        SExpression[] sExpressions = lispForm.getSExpressions();
+        
+        appendable.append("modify (" + ( (LispAtom2) lispForm.getSExpressions()[1]).getValue() + ") {");
+        
+        for ( int i = 2, length = sExpressions.length; i < length; i++) {
+            LispForm2 setter = (LispForm2) sExpressions[i];
+            appendable.append( ( ( LispAtom2 ) setter.getSExpressions()[0]).getValue() );            
+            
+            appendable.append( " = " );
+            
+            FunctionHandlers.getInstance().dump( setter.getSExpressions()[1], appendable);  
+            
+            if ( i != length -1 ) { 
+                appendable.append( "," );
+            }
+        }
+        appendable.append("};");
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MoreThanFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MoreThanFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MoreThanFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class MoreThanFunction  extends BaseInfixFunction  {
+    private static final String name = ">";
+    private static final String mappedSymbol = ">";
+
+    public String getName() {
+        return name;
+    }
+    
+    public String getMappedSymbol() {
+        return mappedSymbol;
+    }    
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MultiplyFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MultiplyFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/MultiplyFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class MultiplyFunction  extends BaseInfixFunction  {
+    private static final String name = "*";
+    private static final String mappedSymbol = "*";
+
+    public String getName() {
+        return name;
+    }
+    
+    public String getMappedSymbol() {
+        return mappedSymbol;
+    }    
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/NullLispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/NullLispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/NullLispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,12 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class NullLispAtom2 extends LispAtom2 {
+    
+    public NullLispAtom2(String value) {
+        super(value);
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PlusFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PlusFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PlusFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class PlusFunction  extends BaseInfixFunction {
+    private static final String name = "+";
+    private static final String mappedSymbol = "+";
+
+    public String getName() {
+        return name;
+    }  
+    
+    public String getMappedSymbol() {
+        return mappedSymbol;
+    }    
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrintoutFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrintoutFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrintoutFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,24 @@
+package org.drools.clp.mvel;
+
+public class PrintoutFunction implements Function {
+    private static final String name = "printout";
+    
+    private static final int route = 1;
+
+    public String getName() {
+        return name;
+    }
+    
+    public void dump(LispForm2 lispForm, Appendable appendable) {
+        SExpression[] sExpressions = lispForm.getSExpressions();
+        appendable.append( "((PrintStream) routers.get(" + ( ( LispAtom2 ) lispForm.getSExpressions()[route]).getValue()+ ")).print(" );
+        for ( int i = 2, length = sExpressions.length; i < length; i++) {            
+            FunctionHandlers.getInstance().dump( sExpressions[i], appendable );         
+            
+            if ( i != length -1 ) { 
+                appendable.append( "+" );
+            }
+        }        
+        appendable.append( ");" );
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrognFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrognFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/PrognFunction.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,50 @@
+package org.drools.clp.mvel;
+
+public class PrognFunction implements Function {
+    private static final String name = "progn";       
+
+    public String getName() {
+        return name;
+    }
+    
+    public void dump(LispForm2 lispForm, Appendable appendable) {
+        Function createList = FunctionHandlers.getInstance().getFunction( "create$" );
+        
+        SExpression[] sExpressions = lispForm.getSExpressions();
+        
+        LispForm2 listSpec = (LispForm2) sExpressions[1];
+        
+        String var = ( ( LispAtom2 ) listSpec.getSExpressions()[0] ).getValue();        
+        
+        appendable.append( "foreach( " + var + " : " );        
+        
+        createList.dump( (LispForm2) listSpec.getSExpressions()[1], appendable );
+        
+        appendable.append( " ) {" );
+        
+        FunctionHandlers.getInstance().dump( sExpressions[2], appendable );
+        //Function function = FunctionHandlers.getInstance().getFunction( ( (LispAtom2) form.getSExpressions()[0]).getValue() );
+        
+        appendable.append( "}" );
+        
+//        SExpression[] sExpressions = lispForm.getSExpressions();
+//        appendable.append( "((PrintStream) routers.get(" + ( ( LispAtom2 ) lispForm.getSExpressions()[1]).getValue()+ ")).print(" );
+//        for ( int i = 2, length = sExpressions.length; i < length; i++) {            
+//            SExpression sExpression = sExpressions[i];            
+//            if ( sExpression instanceof LispAtom2 ) {
+//                appendable.append( ( ( LispAtom2 ) sExpression).getValue() );
+//            } else {
+//                LispForm2 form = (LispForm2) sExpression;
+//                Function function = FunctionHandlers.getInstance().getFunction( ( (LispAtom2) form.getSExpressions()[0]).getValue() );
+//                function.dump(form, appendable);
+//                
+//            }            
+//            
+//            if ( i != length -1 ) { 
+//                appendable.append( "+" );
+//            }
+//        }        
+//        appendable.append( ");" );        
+        
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SExpression.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SExpression.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SExpression.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,8 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public interface SExpression {
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringBuilderAppendable.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringBuilderAppendable.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringBuilderAppendable.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,14 @@
+package org.drools.clp.mvel;
+
+public class StringBuilderAppendable implements Appendable {
+    public StringBuilder builder = new StringBuilder();
+    
+
+    public void append(String string) {
+        this.builder.append(  string );
+    }
+    
+    public String toString() {
+        return builder.toString();
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringLispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringLispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/StringLispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,13 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class StringLispAtom2 extends LispAtom2 {
+    
+    public StringLispAtom2(String value) {
+        super("\"" + value + "\"");
+    }
+    
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SymbolLispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SymbolLispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/SymbolLispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,12 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class SymbolLispAtom2 extends LispAtom2 {
+    
+    public SymbolLispAtom2(String value) {
+        super(value);
+    }
+    
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/TestMVEL.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/TestMVEL.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/TestMVEL.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,133 @@
+package org.drools.clp.mvel;
+
+import java.io.Reader;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.antlr.runtime.ANTLRReaderStream;
+import org.antlr.runtime.ANTLRStringStream;
+import org.antlr.runtime.CharStream;
+import org.antlr.runtime.CommonTokenStream;
+import org.antlr.runtime.Lexer;
+import org.antlr.runtime.TokenStream;
+import org.drools.clp.CLPMVELLexer;
+import org.drools.clp.CLPMVELParser;
+
+public class TestMVEL extends TestCase {
+    public void setUp() {
+        FunctionHandlers handlers = FunctionHandlers.getInstance();
+        handlers.registerFunction( new PlusFunction() );
+        handlers.registerFunction( new MultiplyFunction() );
+        handlers.registerFunction( new ModifyFunction() );
+        handlers.registerFunction( new CreateListFunction() );
+        handlers.registerFunction( new PrintoutFunction() );
+        handlers.registerFunction( new PrognFunction() );
+        handlers.registerFunction( new IfFunction() );
+        handlers.registerFunction( new LessThanFunction() );
+        handlers.registerFunction( new MoreThanFunction() );
+        handlers.registerFunction( new EqFunction() );        
+    }
+
+    public void test1() {
+        String expr = "(* (+ 4 4 ) 2) (create$ 10 20 (+ 10 10) a) (modify ?p (name mark) (age (+ 16 16) ) ) (printout t a b c (+ 4 4) )";
+        
+        SExpression[] lisplists = evalString( expr );
+
+        StringBuilderAppendable appendable = new StringBuilderAppendable();
+        
+        for ( SExpression sExpression : lisplists ) {
+            FunctionHandlers.getInstance().dump( sExpression, appendable );
+        }
+        
+        System.out.println( appendable );
+    }
+    
+    public void testProgn() {
+        String expr = "(progn (?x (create$ 10 20 30) ) (printout t ?x) ) )";
+        
+        SExpression[] lisplists = evalString( expr );
+
+        StringBuilderAppendable appendable = new StringBuilderAppendable();
+        
+        for ( SExpression sExpression : lisplists ) {
+            FunctionHandlers.getInstance().dump( sExpression, appendable );
+        }
+        
+        System.out.println( appendable );
+    }    
+    
+    public void testIf() {
+        String expr = "(if (< 1 3) then (printout t x) )";
+        
+        SExpression[] lisplists = evalString( expr );
+
+        StringBuilderAppendable appendable = new StringBuilderAppendable();
+        
+        for ( SExpression sExpression : lisplists ) {
+            FunctionHandlers.getInstance().dump( sExpression, appendable );
+        }
+        
+        System.out.println( appendable );        
+    }
+    
+    public void testIfElse() {
+        String expr = "(if (eq 1 3) then (printout t x) else (printout t y) )";
+        
+        SExpression[] lisplists = evalString( expr );
+
+        StringBuilderAppendable appendable = new StringBuilderAppendable();
+        
+        for ( SExpression sExpression : lisplists ) {
+            FunctionHandlers.getInstance().dump( sExpression, appendable );
+        }
+        
+        System.out.println( appendable );         
+    }    
+    
+    
+    
+    public  void test3() {
+        String function = "(deffunction max (?a ?b) (return ?b) )";
+        String expr = "(max (3 5) )";
+        
+    }
+
+    public SExpression[] evalReader(Reader reader) {
+        try {
+            CLPMVELParser parser = new CLPMVELParser( new CommonTokenStream( new CLPMVELLexer( new ANTLRReaderStream( reader ) ) ) );
+            return evalParser( parser );
+        } catch ( Exception e ) {
+            throw new RuntimeException( "Unable to parser Reader",
+                                        e );
+        }
+    }
+
+    public SExpression[] evalString(String text) {
+        CLPMVELParser parser = new CLPMVELParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
+        return evalParser( parser );
+    }
+
+    private SExpression[] evalParser(CLPMVELParser parser) {
+        try {
+            List list = parser.eval_sExpressions();
+            return (SExpression[]) list.toArray( new SExpression[list.size()] );
+        } catch ( Exception e ) {
+            throw new RuntimeException( e );
+        }
+
+        //parser.setF
+    }
+
+    private CharStream newCharStream(final String text) {
+        return new ANTLRStringStream( text );
+    }
+
+    private CLPMVELLexer newLexer(final CharStream charStream) {
+        return new CLPMVELLexer( charStream );
+    }
+
+    private TokenStream newTokenStream(final Lexer lexer) {
+        return new CommonTokenStream( lexer );
+    }
+}

Added: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/VariableLispAtom2.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/VariableLispAtom2.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/mvel/VariableLispAtom2.java	2008-01-24 19:11:56 UTC (rev 18081)
@@ -0,0 +1,12 @@
+/**
+ * 
+ */
+package org.drools.clp.mvel;
+
+public class VariableLispAtom2 extends LispAtom2 {
+    
+    public VariableLispAtom2(String value) {
+        super(value);
+    }
+    
+}
\ No newline at end of file




More information about the jboss-svn-commits mailing list