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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon May 7 21:34:16 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-05-07 21:34:16 -0400 (Mon, 07 May 2007)
New Revision: 11730

Added:
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/GreaterThanOrEqualFunction.java
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/CLPParser.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Deffunction.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/IfFunction.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/BooleanValueHandler.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPGlobalVariable.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPLocalDeclarationVariable.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPPreviousDeclarationVariable.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/DoubleValueHandler.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/IndexedLocalVariableValue.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ListValueHandler.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/LongValueHandler.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ObjectValueHandler.java
   labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/TempTokenVariable.java
   labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLP.g
   labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/functions.conf
   labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/CompiledFunctionsTest.java
Log:
JBRULES-720 Clips Parser
-Deffunctions now work.

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	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPLexer.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-05-08 00:37:11
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-05-08 00:55:18
 
 	package org.drools.clp;
 
@@ -184,10 +184,10 @@
     public final void mDEFFUNCTION() throws RecognitionException {
         try {
             int _type = DEFFUNCTION;
-            // C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:15: ( 'defunction' )
-            // C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:15: 'defunction'
+            // C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:15: ( 'deffunction' )
+            // C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g:606:15: 'deffunction'
             {
-            match("defunction"); if (failed) return ;
+            match("deffunction"); if (failed) return ;
 
 
             }
@@ -1891,49 +1891,49 @@
 
     protected DFA20 dfa20 = new DFA20(this);
     static final String DFA20_eotS =
-        "\1\uffff\1\40\1\uffff\1\2\10\36\1\54\1\uffff\2\36\1\uffff\2\36\2"+
+        "\1\uffff\1\40\1\uffff\1\2\10\36\1\53\1\uffff\2\36\1\uffff\2\36\2"+
         "\uffff\1\65\1\66\1\67\1\70\3\uffff\1\36\1\72\1\uffff\1\73\1\uffff"+
-        "\1\36\1\76\7\36\1\54\1\36\1\uffff\2\36\1\15\2\36\1\uffff\2\36\4"+
-        "\uffff\1\121\2\uffff\2\36\1\uffff\1\125\1\36\1\127\4\36\1\134\6"+
-        "\36\1\uffff\1\36\1\uffff\1\36\1\uffff\3\36\1\uffff\1\145\1\uffff"+
-        "\1\36\1\147\1\150\1\36\1\uffff\4\36\1\117\3\36\1\uffff\1\36\2\uffff"+
-        "\3\36\1\147\3\36\1\166\2\36\1\171\1\36\1\173\1\uffff\2\36\1\uffff"+
-        "\1\36\1\uffff\1\176\1\36\1\uffff\1\u0080\1\uffff";
+        "\1\36\1\76\7\36\1\53\1\uffff\3\36\1\15\1\36\1\uffff\3\36\4\uffff"+
+        "\1\121\2\uffff\2\36\1\uffff\1\125\1\36\1\127\4\36\1\134\6\36\1\uffff"+
+        "\1\36\1\uffff\1\36\1\uffff\3\36\1\uffff\1\145\1\uffff\1\36\1\147"+
+        "\1\150\1\36\1\uffff\4\36\1\117\3\36\1\uffff\1\36\2\uffff\3\36\1"+
+        "\147\3\36\1\166\2\36\1\171\1\36\1\173\1\uffff\2\36\1\uffff\1\36"+
+        "\1\uffff\1\176\1\36\1\uffff\1\36\1\u0081\1\uffff";
     static final String DFA20_eofS =
-        "\u0081\uffff";
+        "\u0082\uffff";
     static final String DFA20_minS =
         "\2\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\0\1\uffff\1\143\1\0\1\144\1\154\1\164\1\151\1\165"+
-        "\1\163\1\154\1\0\1\60\1\uffff\1\42\2\0\1\154\1\0\1\uffff\2\0\4\uffff"+
-        "\1\0\2\uffff\1\162\1\154\1\uffff\1\0\1\154\1\0\1\163\1\145\1\164"+
-        "\1\151\2\0\1\60\2\0\1\163\1\0\1\uffff\1\0\1\uffff\1\0\1\uffff\1"+
-        "\165\1\156\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\154\1\143\1\162\1\uffff\1\163\2\uffff\1\156\1\60"+
-        "\2\0\1\145\1\164\1\145\1\0\1\143\1\60\1\0\1\151\1\0\1\uffff\1\145"+
-        "\1\0\1\uffff\1\157\1\uffff\1\0\1\156\1\uffff\1\0\1\uffff";
+        "\1\163\1\154\1\0\1\uffff\1\60\1\42\2\0\1\154\1\uffff\3\0\4\uffff"+
+        "\1\0\2\uffff\1\146\1\154\1\uffff\1\0\1\154\1\0\1\163\1\145\1\164"+
+        "\1\151\2\0\1\60\2\0\1\163\1\0\1\uffff\1\0\1\uffff\1\0\1\uffff\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\154\1\156\1\162\1\uffff\1\163\2\uffff\1\156\1\60\2"+
+        "\0\1\145\1\143\1\145\1\0\1\143\1\60\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 DFA20_maxS =
         "\2\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\ufffe\1\uffff\1\146\1\ufffe"+
-        "\1\144\1\154\1\164\1\151\1\165\1\163\1\154\1\ufffe\1\71\1\uffff"+
-        "\1\165\2\ufffe\1\154\1\ufffe\1\uffff\2\ufffe\4\uffff\1\ufffe\2\uffff"+
-        "\1\165\1\154\1\uffff\1\ufffe\1\154\1\ufffe\1\163\1\145\1\164\1\151"+
-        "\2\ufffe\1\146\2\ufffe\1\163\1\ufffe\1\uffff\1\ufffe\1\uffff\1\ufffe"+
-        "\1\uffff\1\165\1\156\1\141\1\uffff\1\ufffe\1\uffff\1\164\2\ufffe"+
-        "\1\145\1\uffff\1\146\2\ufffe\1\145\1\ufffe\1\154\1\143\1\162\1\uffff"+
-        "\1\163\2\uffff\1\156\1\146\2\ufffe\1\145\1\164\1\145\1\ufffe\1\143"+
-        "\1\146\1\ufffe\1\151\1\ufffe\1\uffff\1\145\1\ufffe\1\uffff\1\157"+
-        "\1\uffff\1\ufffe\1\156\1\uffff\1\ufffe\1\uffff";
+        "\1\144\1\154\1\164\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\2\uffff\1\162"+
+        "\1\154\1\uffff\1\ufffe\1\154\1\ufffe\1\163\1\145\1\164\1\151\2\ufffe"+
+        "\1\146\2\ufffe\1\163\1\ufffe\1\uffff\1\ufffe\1\uffff\1\ufffe\1\uffff"+
+        "\2\165\1\141\1\uffff\1\ufffe\1\uffff\1\164\2\ufffe\1\145\1\uffff"+
+        "\1\146\2\ufffe\1\145\1\ufffe\1\154\1\156\1\162\1\uffff\1\163\2\uffff"+
+        "\1\156\1\146\2\ufffe\1\145\1\143\1\145\1\ufffe\1\143\1\146\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 DFA20_acceptS =
         "\2\uffff\1\2\12\uffff\1\17\2\uffff\1\21\2\uffff\1\24\1\25\4\uffff"+
-        "\1\32\1\33\1\34\2\uffff\1\41\1\uffff\1\37\13\uffff\1\15\5\uffff"+
-        "\1\22\2\uffff\1\26\1\27\1\30\1\31\1\uffff\1\36\1\1\2\uffff\1\5\16"+
+        "\1\32\1\33\1\34\2\uffff\1\41\1\uffff\1\37\12\uffff\1\15\5\uffff"+
+        "\1\22\3\uffff\1\26\1\27\1\30\1\31\1\uffff\1\36\1\1\2\uffff\1\5\16"+
         "\uffff\1\23\1\uffff\1\40\1\uffff\1\35\3\uffff\1\6\1\uffff\1\7\4"+
         "\uffff\1\16\10\uffff\1\12\1\uffff\1\20\1\11\15\uffff\1\10\2\uffff"+
-        "\1\3\1\uffff\1\13\2\uffff\1\14\1\uffff\1\4";
+        "\1\3\1\uffff\1\13\2\uffff\1\14\2\uffff\1\4";
     static final String DFA20_specialS =
-        "\u0081\uffff}>";
+        "\u0082\uffff}>";
     static final String[] DFA20_transitionS = {
             "\11\36\2\2\1\36\1\3\1\2\22\36\1\2\1\36\1\15\1\21\2\36\1\32\1"+
             "\16\1\23\1\24\3\36\1\13\1\36\1\22\12\14\1\35\1\uffff\1\34\1"+
@@ -1956,7 +1956,7 @@
             "\1\51",
             "\12\52",
             "\11\36\2\uffff\2\36\1\uffff\22\36\1\uffff\1\36\1\uffff\3\36"+
-            "\1\uffff\1\36\2\uffff\4\36\1\53\1\36\12\52\1\36\2\uffff\2\36"+
+            "\1\uffff\1\36\2\uffff\4\36\1\54\1\36\12\52\1\36\2\uffff\2\36"+
             "\1\uffff\74\36\1\uffff\1\36\1\uffff\uff80\36",
             "",
             "\11\56\2\15\2\56\1\15\22\56\1\15\1\56\1\15\3\56\1\15\1\57\2"+
@@ -1964,8 +1964,8 @@
             "\56",
             "\1\60",
             "",
-            "\11\61\2\62\2\61\1\62\22\61\1\62\1\61\1\62\3\61\1\62\1\61\2"+
-            "\62\21\61\2\62\2\61\1\62\74\61\1\62\1\61\1\62\uff80\61",
+            "\11\62\2\61\2\62\1\61\22\62\1\61\1\62\1\61\3\62\1\61\1\62\2"+
+            "\61\21\62\2\61\2\62\1\61\74\62\1\61\1\62\1\61\uff80\62",
             "\1\64\4\uffff\1\63",
             "",
             "",
@@ -2005,10 +2005,10 @@
             "\1\104",
             "\1\105",
             "\11\36\2\uffff\2\36\1\uffff\22\36\1\uffff\1\36\1\uffff\3\36"+
-            "\1\uffff\1\36\2\uffff\4\36\1\53\1\36\12\52\1\36\2\uffff\2\36"+
+            "\1\uffff\1\36\2\uffff\4\36\1\54\1\36\12\52\1\36\2\uffff\2\36"+
             "\1\uffff\74\36\1\uffff\1\36\1\uffff\uff80\36",
+            "",
             "\12\106",
-            "",
             "\1\15\4\uffff\1\107\10\uffff\4\111\4\112\44\uffff\1\107\5\uffff"+
             "\1\107\3\uffff\1\107\7\uffff\1\107\3\uffff\1\107\1\uffff\1\107"+
             "\1\110",
@@ -2019,9 +2019,9 @@
             "\1\uffff\1\36\2\uffff\21\36\2\uffff\2\36\1\uffff\74\36\1\uffff"+
             "\1\36\1\uffff\uff80\36",
             "\1\113",
-            "\11\61\2\62\2\61\1\62\22\61\1\62\1\61\1\62\3\61\1\62\1\61\2"+
-            "\62\21\61\2\62\2\61\1\62\74\61\1\62\1\61\1\62\uff80\61",
             "",
+            "\11\62\2\61\2\62\1\61\22\62\1\61\1\62\1\61\3\62\1\61\1\62\2"+
+            "\61\21\62\2\61\2\62\1\61\74\62\1\61\1\62\1\61\uff80\62",
             "\11\114\2\115\2\114\1\115\22\114\1\115\1\114\1\115\3\114\1\115"+
             "\1\114\2\115\21\114\2\115\2\114\1\115\74\114\1\115\1\114\1\115"+
             "\uff80\114",
@@ -2037,7 +2037,7 @@
             "\1\36\1\uffff\uff80\36",
             "",
             "",
-            "\1\122\2\uffff\1\123",
+            "\1\123\13\uffff\1\122",
             "\1\124",
             "",
             "\11\36\2\uffff\2\36\1\uffff\22\36\1\uffff\1\36\1\uffff\3\36"+
@@ -2148,6 +2148,7 @@
             "\1\36\1\uffff\uff80\36",
             "\1\177",
             "",
+            "\1\u0080",
             "\11\36\2\uffff\2\36\1\uffff\22\36\1\uffff\1\36\1\uffff\3\36"+
             "\1\uffff\1\36\2\uffff\21\36\2\uffff\2\36\1\uffff\74\36\1\uffff"+
             "\1\36\1\uffff\uff80\36",

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	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/CLPParser.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-05-08 00:37:11
+// $ANTLR 3.0b7 C:\\dev\\jbossrules\\trunk\\drools-clips\\src\\main\\resources\\org\\drools\\clp\\CLP.g 2007-05-08 00:55:17
 
 	package org.drools.clp;
 	

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Deffunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Deffunction.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/Deffunction.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -2,6 +2,7 @@
 
 import org.drools.clp.valuehandlers.FunctionCaller;
 import org.drools.clp.valuehandlers.IndexedLocalVariableValue;
+import org.drools.clp.valuehandlers.ListValueHandler;
 import org.drools.clp.valuehandlers.ObjectValueHandler;
 
 public class Deffunction
@@ -87,8 +88,6 @@
                                                             context.getTuple(),
                                                             args.length );
         for ( int i = 0, length = args.length; i < length; i++ ) {
-            // We know that each argument is a local variable, so we can cast and access the underlying value handler, 
-            // as we don't want the variable fully resolved at this stage, just mapped.
             newContext.setLocalVariable( i,
                                          ((ValueHandler) args[i]).getValue( context ) );
         }

Added: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/GreaterThanOrEqualFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/GreaterThanOrEqualFunction.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/GreaterThanOrEqualFunction.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -0,0 +1,26 @@
+package org.drools.clp.functions;
+
+import org.drools.clp.ExecutionContext;
+import org.drools.clp.Function;
+import org.drools.clp.ValueHandler;
+import org.drools.clp.valuehandlers.BooleanValueHandler;
+
+public class GreaterThanOrEqualFunction extends BaseFunction
+    implements
+    Function {
+    private static final String name = ">=";
+
+    public GreaterThanOrEqualFunction() {
+
+    }
+
+    public ValueHandler execute(ValueHandler[] args,
+                                ExecutionContext context) {
+        return new BooleanValueHandler( args[0].getBigDecimalValue( context ).compareTo( args[1].getBigDecimalValue( context ) ) >= 0 );
+    }
+
+    public String getName() {
+        return name;
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/IfFunction.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/IfFunction.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/functions/IfFunction.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -37,7 +37,7 @@
         } else if ( valueHandler instanceof ObjectValueHandler ) {
             String token = valueHandler.getStringValue( null );
             if ( token.equals( "else" ) ) {
-                ((ListValueHandler) caller.getParameters()[0]).add( new LongValueHandler( index + 1 ) );
+                ((ListValueHandler) caller.getParameters()[0]).add( new LongValueHandler( index ) );
             }
         }
         
@@ -52,17 +52,17 @@
         
          ValueHandler result = null;      
         
-        int elseIndex = args.length;
+        int elseIndex = -1;
         if ( list.length == 2 ) {
             elseIndex = list[1].getIntValue( context );
         }
         
         if ( list[0].getBooleanValue( context ) ) {
-            for ( int i = 0; i < elseIndex; i++ ) {
+            for ( int i = 2; i < elseIndex; i++ ) {
                 result = args[i].getValue( context );
             }
-        } else if ( elseIndex != args.length) {
-            for ( int i = elseIndex; i < args.length; i++ ) {
+        } else if ( elseIndex != -1) {
+            for ( int i = elseIndex+1; i < args.length; i++ ) {
                 result = args[i].getValue( context );
             }            
         } else {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/BooleanValueHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/BooleanValueHandler.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/BooleanValueHandler.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -19,7 +19,7 @@
     } 
 
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }    
     
     public int getValueType(ExecutionContext context) {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPGlobalVariable.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPGlobalVariable.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPGlobalVariable.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -23,7 +23,7 @@
     }    
     
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }    
     
     public String getIdentifier() {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPLocalDeclarationVariable.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPLocalDeclarationVariable.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPLocalDeclarationVariable.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -17,7 +17,7 @@
     }  
     
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }    
     
     public String getIdentifier() {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPPreviousDeclarationVariable.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPPreviousDeclarationVariable.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/CLPPreviousDeclarationVariable.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -18,7 +18,7 @@
     }
     
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }    
 
     public String getIdentifier() {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/DoubleValueHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/DoubleValueHandler.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/DoubleValueHandler.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -19,7 +19,7 @@
     }   
     
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }    
     
     public int getValueType(ExecutionContext context) {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/IndexedLocalVariableValue.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/IndexedLocalVariableValue.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/IndexedLocalVariableValue.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -43,7 +43,7 @@
     public ValueHandler getValue(ExecutionContext context) {
         ValueHandler valueHandler = context.getLocalVariable( this.index );
         ValueHandler nested; 
-        while ( (nested = valueHandler.getValue( context ) ) != null ) {
+        while ( (nested = valueHandler.getValue( context ) ) != valueHandler ) {
             valueHandler = nested;
         }
         return valueHandler;

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ListValueHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ListValueHandler.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ListValueHandler.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -18,7 +18,7 @@
     }
 
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }
 
     public int getValueType(ExecutionContext context) {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/LongValueHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/LongValueHandler.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/LongValueHandler.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -23,7 +23,7 @@
     }   
     
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }      
 
     public void setValue(ExecutionContext context, Object value) {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ObjectValueHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ObjectValueHandler.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/ObjectValueHandler.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -16,7 +16,7 @@
     }
     
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }    
     
     public void setValue(ExecutionContext context, Object value) {

Modified: labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/TempTokenVariable.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/TempTokenVariable.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/java/org/drools/clp/valuehandlers/TempTokenVariable.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -15,7 +15,7 @@
     }
     
     public ValueHandler getValue(ExecutionContext context) {
-        return null;
+        return this;
     }    
 
     public String getIdentifier() {

Modified: labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLP.g
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLP.g	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/CLP.g	2007-05-08 01:34:16 UTC (rev 11730)
@@ -603,7 +603,7 @@
         ;                      
         
 DEFRULE		:	'defrule';
-DEFFUNCTION :	'defunction';
+DEFFUNCTION :	'deffunction';
 OR 			:	'or';
 AND 		:	'and';
 NOT 		:	'not';

Modified: labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/functions.conf
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/functions.conf	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/main/resources/org/drools/clp/functions.conf	2007-05-08 01:34:16 UTC (rev 11730)
@@ -15,6 +15,7 @@
 
 #math comparators
 org.drools.clp.functions.LessThanFunction
+org.drools.clp.functions.GreaterThanOrEqualFunction
 org.drools.clp.functions.EqFunction
 
 #math operators

Modified: labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/CompiledFunctionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/CompiledFunctionsTest.java	2007-05-08 00:54:34 UTC (rev 11729)
+++ labs/jbossrules/trunk/drools-clips/src/test/java/org/drools/clp/CompiledFunctionsTest.java	2007-05-08 01:34:16 UTC (rev 11730)
@@ -265,7 +265,7 @@
         assertEquals( "416256", new String( bais.toByteArray() ) );          
     }
     
-    public void testFactorial() throws Exception {
+    public void testDefTemplate() throws Exception {
         Deffunction engine = (Deffunction) parse( "(deffunction factorial (?n) (if (>= ?n 1) then (* ?n (factorial (- ?n 1))) else 1)) " ).deffunction();
         
         ExecutionContext context = new ExecutionContext( null,
@@ -273,13 +273,9 @@
                                                          1 );
 
         ByteArrayOutputStream bais = new ByteArrayOutputStream();              
-        context.addPrintoutRouter( "d", new PrintStream(bais) );                                
-
-        //engine.execute( context );
-        engine.execute( new ValueHandler[] { new LongValueHandler( 6 ) }, context );
+        context.addPrintoutRouter( "d", new PrintStream(bais) );                                              
         
-        
-        assertEquals( "416256", new String( bais.toByteArray() ) );    
+        assertEquals( 720,engine.execute( new ValueHandler[] { new LongValueHandler( 6 ) }, context ).getBigDecimalValue( context ).longValue() );    
     }    
 
     private CLPParser parse(final String text) throws Exception {




More information about the jboss-svn-commits mailing list