A binary operator expression.
Binary operations can be left-associative (a X b X c
means (a X b) X c
)
or right-associative (a X b X c
means a X (b X c)
).
To represent this in the type system, the left and right children
of concrete classes usually have different types:
One has the type of the current precedence level (see the PrecedenceXOperation
aliases),
one has the type of the precedence level below.
(Some binary operations have no precedence because they can’t be nested
(for example, a == b == c
is never allowed); in this case,
both children have the type of the precedence level below.)
Anything
BinaryOperation
Operation
ValueExpression
Expression
Node
Object
Anything
Initializer |
BinaryOperation() |
Attributes | |
children | shared formal Expression[2] children The child nodes of this node. |
leftOperand | shared formal Expression leftOperand The left operand. |
rightOperand | shared formal Expression rightOperand The right operand. |
Inherited Attributes |
Attributes inherited from: Expression |
Attributes inherited from: Node |
Attributes inherited from: Object hash , string |
Attributes inherited from: Operation |
Inherited Methods |
Methods inherited from: Node |
Methods inherited from: Object equals |