Expression can be written as the following Algebraic Data Type (ADT)
Expression = Addition(leftHandSide: Expression, rightHandSide: Expression)
| Subtraction(leftHandSide: Expression, rightHandSide: Expression)
| Identifier(name: String)
| Int(value: int)
package expression;
Expression
is the common abstract class for Expressions that can be evaluated using the Evaluator
.
abstract public class Expression { }