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.)

childrenshared formal Expression[2] children

The child nodes of this node.

Refines Operation.children ultimately refines Node.children
leftOperandshared formal Expression leftOperand

The left operand.

rightOperandshared 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