Expressions take one or more input values and produces one output value. They can be used recursively to build an expression tree.
abstract Expression : ExecutionObject
{
DataType * reference result_type;
};
| result_type | All Expressions have a type associated with their output value. |