[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