/**
  * @param Operator $op
  *
  * @return string
  */
 public function visitOperator(Operator $op)
 {
     return '(' . $op->firstOperand()->accept($this) . $op->operator() . $op->secondOperand()->accept($this) . ')';
 }
 /**
  * @param Operator $op
  *
  * @return string
  */
 public function visitOperator(Operator $op, $parentOperator = null)
 {
     $currentOperator = $op->operator();
     $expression = $op->firstOperand()->accept($this, $currentOperator) . $currentOperator . $op->secondOperand()->accept($this, $currentOperator);
     return $this->requireParentheses($currentOperator, $parentOperator) ? '(' . $expression . ')' : $expression;
 }