|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--gnu.jel.Evaluator
This is the main front end to JEL.
It is intended for compilation of algebraic expressions, involving functions.
Syntax supports variables, which are, in fact, functions with no arguments. If You define such function in the static library -- it is a constant (and will be substituted into expression at compile time). If you define the method , such as "double x() {};" in the dynamic library class the expression "sin(x)" will call the method "x()" ( and function Math.sin() ) each time it is evaluated.
It is possible to have any type of intermediate object throughout the calculation as long as types of the function return values and parameters stay compatible.
The variant of the "compile" function with three arguments allows to fix the type of the expression result. For example :
CompiledExpression expression=compile("2*6+6",lib,Double.TYPE);will produce compiled expression, whose return type is always double. For additional information on how to use this feature to eliminate object allocation overhead see gnu.jel.CompiledExpression documentation.
Care should be taken during the assembly of static and dynamic libraries to avoid conflicts and unsupported return types.
(c) 1998, by Konstantin Metlov
Prague, CZ
CompiledExpression
Field Summary | |
protected static ClassFile |
cf_orig
|
protected static LocalMethod[] |
eval_methods
|
protected static int |
retID_patchback
|
Constructor Summary | |
Evaluator()
|
Method Summary | |
static CompiledExpression |
compile(java.lang.String expression,
Library lib)
Compiles expression, resolving the function names in the library. |
static CompiledExpression |
compile(java.lang.String expression,
Library lib,
java.lang.Class resultType)
Compiles expression, resolving the function names in the library. |
static byte[] |
compileBits(java.lang.String expression,
Library lib)
Compiles expression, resolving the function names in the library. |
static byte[] |
compileBits(java.lang.String expression,
Library lib,
java.lang.Class resultType)
Compiles expression, resolving the function names in the library. |
protected static byte[] |
getImage(OPlist list)
|
protected static OPlist |
parse(java.lang.String expression,
Library lib,
java.lang.Class resultType)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static ClassFile cf_orig
protected static int retID_patchback
protected static LocalMethod[] eval_methods
Constructor Detail |
public Evaluator()
Method Detail |
public static CompiledExpression compile(java.lang.String expression, Library lib, java.lang.Class resultType) throws CompilationException
expression
- is the expression to compile. i.e. "sin(666)" .lib
- Library of functions exported for use in expression.resultType
- identifies the type result should be converted to. Can
be null, in this case the result type is not fixed.CompilationException
- if the expression is not
syntactically or semantically correct.CompiledExpression.evaluate(java.lang.Object[])
public static byte[] compileBits(java.lang.String expression, Library lib, java.lang.Class resultType) throws CompilationException
This variant of compile allows to store expressions in a java.io.OutputStream using Java serialization mechanism.
expression
- is the expression to compile. i.e. "sin(666)" .lib
- Library of functions exported for use in expression.resultType
- identifies the type result should be converted to. Can
be null, in this case the result type is not fixed.CompilationException
- if the expression is not
syntactically or semantically correct.CompiledExpression.evaluate(java.lang.Object[])
public static CompiledExpression compile(java.lang.String expression, Library lib) throws CompilationException
expression
- is the expression to compile. i.e. "sin(666)" .lib
- Library of functions exported for use in expression.CompilationException
- if the expression is not
syntactically or semantically correct.CompiledExpression.evaluate(java.lang.Object[])
public static byte[] compileBits(java.lang.String expression, Library lib) throws CompilationException
This variant of compile allows to store expressions in a java.io.OutputStream using Java serialization mechanism.
expression
- is the expression to compile. i.e. "sin(666)" .lib
- Library of functions exported for use in expression.CompilationException
- if the expression is not
syntactically or semantically correct.CompiledExpression.evaluate(java.lang.Object[])
protected static OPlist parse(java.lang.String expression, Library lib, java.lang.Class resultType) throws CompilationException
protected static byte[] getImage(OPlist list)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |