public interface Evaluator
Modifier and Type | Method and Description |
---|---|
Object |
evaluate(LinkedList<Object> queue)
Evaluates the given postfix token queue, returning the result.
|
Object |
evaluate(String expression)
Evaluates the given infix expression, returning the result.
|
Object |
evaluate(SyntaxTree syntaxTree)
Evaluates the given syntax tree, returning the result.
|
Object |
get(Variable v)
Gets the value of the given variable.
|
ExpressionParser |
getParser()
Gets the parser used when evaluating expressions.
|
boolean |
isStrict()
Gets whether the evaluator is operating in strict mode.
|
void |
set(Variable v,
Object value)
Sets the value of the given variable.
|
void |
setAll(Map<? extends String,? extends Object> map)
Assigns variables en masse.
|
void |
setStrict(boolean strict)
Sets whether the evaluator is operating in strict mode.
|
Object |
value(Object token)
Gets the value of the given token.
|
ExpressionParser getParser()
boolean isStrict()
setStrict(boolean)
void setStrict(boolean strict)
When evaluating strictly, usage of an unassigned variable token in a place
where its value is needed will generate an IllegalArgumentException
with an "Unknown variable" message; in non-strict mode, such a variable
will instead be resolved to an object of type Unresolved
with the
same name as the original variable.
In cases such as assignment, this may be sufficient to complete the
evaluation; for example, the expression foo=bar
will complete
successfully in non-strict mode, with the variable foo
containing
an object of type Unresolved
and token value "bar"
. But in
cases where the unresolved value is needed as an input for additional
operations, the evaluation may still ultimately fail of the operation in
question is not defined for unresolved values. For example, the
DefaultEvaluator
will fail with an "Unsupported binary operator"
exception when given the expression foo+bar
, since foo
and
bar
are unresolved variables, and the +
operator cannot
handle such objects.
Object evaluate(String expression)
Object evaluate(LinkedList<Object> queue)
Object evaluate(SyntaxTree syntaxTree)
Object value(Object token)
Copyright © 2015–2022 SciJava. All rights reserved.