org.mov.parser.expression
Class ArithmeticExpression
java.lang.Object
org.mov.parser.expression.AbstractExpression
org.mov.parser.expression.BinaryExpression
org.mov.parser.expression.ArithmeticExpression
- All Implemented Interfaces:
- java.lang.Cloneable, Expression
- Direct Known Subclasses:
- AddExpression, DivideExpression, MultiplyExpression, SubtractExpression
public abstract class ArithmeticExpression
- extends BinaryExpression
Abstract base class for the arithmetic expressions:
+, /, *, -
Method Summary |
int |
checkType()
Check the input arguments to the expression. |
int |
getType()
Get the type of the expression. |
Expression |
simplify()
Perform simplifications and optimisations on the expression tree. |
Methods inherited from class org.mov.parser.expression.AbstractExpression |
clone, equals, getChild, getIndex, getNumberFormat, getParent, hashCode, isRoot, iterator, parseDouble, parseInt, setChild, setParent, size, size, valueOfDouble, valueOfInt |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
ArithmeticExpression
public ArithmeticExpression(Expression left,
Expression right)
- Create a new arithmetic expression with the given left and
right arguments.
checkType
public int checkType()
throws TypeMismatchException
- Check the input arguments to the expression. They can only be
Expression.INTEGER_TYPE
or Expression.FLOAT_TYPE
.
There are 4 possible cases:
Expression.INTEGER_TYPE
operator Expression.INTEGER_TYPE
returns a Expression.INTEGER_TYPE
Expression.INTEGER_TYPE
operator Expression.FLOAT_TYPE
returns a Expression.INTEGER_TYPE
Expression.FLOAT_TYPE
operator Expression.INTEGER_TYPE
returns a Expression.FLOAT_TYPE
Expression.FLOAT_TYPE
operator Expression.FLOAT_TYPE
returns a Expression.FLOAT_TYPE
- Returns:
- the type of the expression
- Throws:
TypeMismatchException
- if the expression has incorrect types
simplify
public Expression simplify()
- Description copied from class:
AbstractExpression
- Perform simplifications and optimisations on the expression tree.
For example, if the expression tree was
a and true
then the
expression tree would be simplified to a
.
- Specified by:
simplify
in interface Expression
- Overrides:
simplify
in class AbstractExpression
getType
public int getType()
- Get the type of the expression.
- Returns:
- either
Expression.FLOAT_TYPE
or Expression.INTEGER_TYPE
.