public function createNode(Node $left = null, Node $right = null, Node $middle = null) { $node = new OperatorNode($this); if ($left) { $node->addChild($left, OperatorNode::OPERAND_LEFT); } if ($middle) { $node->addChild($middle, OperatorNode::OPERAND_MIDDLE); } if ($right) { $node->addChild($right, OperatorNode::OPERAND_RIGHT); } return $node; }