Package com.singularsys.jeptests.system
Class StackCheckingFastEvaluator
- java.lang.Object
-
- com.singularsys.jeptests.system.StackCheckingFastEvaluator
-
- All Implemented Interfaces:
Evaluator,JepComponent,ParserVisitor,java.io.Serializable
public class StackCheckingFastEvaluator extends java.lang.Object implements Evaluator, ParserVisitor
A Evaluator which checks the stack size after every function call.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected booleantrapInfinityprotected booleantrapNaNprotected booleantrapNullValuesprotected booleantrapUnsetValuesWhether null values for variables are trapped
-
Constructor Summary
Constructors Constructor Description StackCheckingFastEvaluator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objecteval(Node node)Evaluates a sub expression.java.lang.Objectevaluate(Node node)Main entry point, evaluates a node and returns and object with the value of the node.JepComponentgetLightWeightInstance()Gets a light-weight instance suitable for using in multiple threads.voidinit(Jep jep)Initialize the component.booleanisTrapInfinity()booleanisTrapNaN()booleanisTrapNullValues()Whether null values for variables are trapped.booleanisTrapUnsetValues()Whether variables with unset values are trapped.protected java.lang.ObjectnodeAccept(Node node)voidsetTrapInfinity(boolean trapInfinity)voidsetTrapNaN(boolean trapNaN)voidsetTrapNullValues(boolean trapNullValues)Sets whether null values for variables are trapped.voidsetTrapUnsetValues(boolean trapUnsetValues)Sets whether unset variable values are trapped.java.lang.Objectvisit(ASTConstant node, java.lang.Object data)java.lang.Objectvisit(ASTFunNode node, java.lang.Object data)java.lang.Objectvisit(ASTOpNode node, java.lang.Object data)java.lang.Objectvisit(ASTVarNode node, java.lang.Object data)java.lang.ObjectvisitConstant(Node node)protected java.lang.ObjectvisitFun(Node node)Visits a function/operator node.java.lang.ObjectvisitVar(Node node)
-
-
-
Method Detail
-
init
public void init(Jep jep)
Description copied from interface:JepComponentInitialize the component. This methods is called whenever a component is added to Jep. Hence it allows components to keep track of the other components they may rely on.- Specified by:
initin interfaceJepComponent- Parameters:
jep- the current Jep instance
-
eval
public java.lang.Object eval(Node node) throws EvaluationException
Description copied from interface:EvaluatorEvaluates a sub expression. This method can be called by PostfixMathCommands which implementCallbackEvaluationI- Specified by:
evalin interfaceEvaluator- Parameters:
node- node to evaluate- Returns:
- The value after evaluating the sub expression.
- Throws:
EvaluationException- if errors occur during evaluation;
-
evaluate
public java.lang.Object evaluate(Node node) throws EvaluationException
Description copied from interface:EvaluatorMain entry point, evaluates a node and returns and object with the value of the node.- Specified by:
evaluatein interfaceEvaluator- Parameters:
node- node to evaluate- Returns:
- value after evaluation
- Throws:
EvaluationException- if errors occur during evaluation;
-
nodeAccept
protected java.lang.Object nodeAccept(Node node) throws EvaluationException
- Throws:
EvaluationException
-
visit
public java.lang.Object visit(ASTConstant node, java.lang.Object data) throws EvaluationException
- Specified by:
visitin interfaceParserVisitor- Throws:
EvaluationException
-
visitConstant
public java.lang.Object visitConstant(Node node) throws EvaluationException
- Throws:
EvaluationException
-
visit
public java.lang.Object visit(ASTVarNode node, java.lang.Object data) throws EvaluationException
- Specified by:
visitin interfaceParserVisitor- Throws:
EvaluationException
-
visitVar
public java.lang.Object visitVar(Node node) throws EvaluationException
- Throws:
EvaluationException
-
visit
public java.lang.Object visit(ASTFunNode node, java.lang.Object data) throws EvaluationException
- Specified by:
visitin interfaceParserVisitor- Throws:
EvaluationException
-
visit
public java.lang.Object visit(ASTOpNode node, java.lang.Object data) throws EvaluationException
- Specified by:
visitin interfaceParserVisitor- Throws:
EvaluationException
-
visitFun
protected java.lang.Object visitFun(Node node) throws EvaluationException
Visits a function/operator node. This is the most visited method for most expression evaluations. Keeping it fast is important.- Parameters:
node-- Throws:
EvaluationException
-
isTrapUnsetValues
public boolean isTrapUnsetValues()
Whether variables with unset values are trapped.- Returns:
- Since:
- 3.5
-
setTrapUnsetValues
public void setTrapUnsetValues(boolean trapUnsetValues)
Sets whether unset variable values are trapped. This flag is set by when theVariable.setValidValue(boolean)or cleared usingVariableTable.clearValues().- Parameters:
trapUnsetValues- true to trap unset values, false to ignore them- Since:
- 3.5
-
isTrapNullValues
public boolean isTrapNullValues()
Whether null values for variables are trapped.- Returns:
- the status if the trap null values flag.
-
setTrapNullValues
public void setTrapNullValues(boolean trapNullValues)
Sets whether null values for variables are trapped. If set (the default) then an EvaluationException is thrown for null values of variables. If not set then null values are passed to PostfixMathCommands who will need to test for null values.- Parameters:
trapNullValues-
-
isTrapNaN
public boolean isTrapNaN()
-
setTrapNaN
public void setTrapNaN(boolean trapNaN)
-
isTrapInfinity
public boolean isTrapInfinity()
-
setTrapInfinity
public void setTrapInfinity(boolean trapInfinity)
-
getLightWeightInstance
public JepComponent getLightWeightInstance()
Description copied from interface:JepComponentGets a light-weight instance suitable for using in multiple threads.- Specified by:
getLightWeightInstancein interfaceJepComponent- Returns:
- an new FastEvaluator
-
-