public function onArithmeticExpression($expressionType, $left, $right)
    {
        $type = $this->unpackExpressionType($expressionType);
        switch ($type) {
            case ExpressionType::MULTIPLY:
                return $this->prepareBinaryExpression(self::MULTIPLY, $left, $right);
            case ExpressionType::DIVIDE:
                return $this->prepareBinaryExpression(self::DIVIDE, $left, $right);
            case ExpressionType::MODULO:
                return $this->prepareBinaryExpression(self::MODULO, $left, $right);
            case ExpressionType::ADD:
                return $this->prepareBinaryExpression(self::ADD, $left, $right);
            case ExpressionType::SUBTRACT:
                return $this->prepareBinaryExpression(self::SUBTRACT, $left, $right);
            default:
                throw new \InvalidArgumentException('onArithmeticExpression');
        }
    }
public function onArithmeticExpression($expressionType, $left, $right)
    {
        $type = $this->unpackExpressionType($expressionType);
        switch ($type) {
            case ExpressionType::MULTIPLY:
                return $this->prepareBinaryExpression(self::MULTIPLY, $left, $right);
            case ExpressionType::DIVIDE:
                return $this->prepareBinaryExpression(self::DIVIDE, $left, $right);
            case ExpressionType::MODULO:
                return $this->prepareBinaryExpression(self::MODULO, $left, $right);
            case ExpressionType::ADD:
                return $this->prepareBinaryExpression(self::ADD, $left, $right);
            case ExpressionType::SUBTRACT:
                return $this->prepareBinaryExpression(self::SUBTRACT, $left, $right);
            default:
                throw new \InvalidArgumentException('onArithmeticExpression');
        }
    }
public function onArithmeticExpression ( $ expressionType , $ left , $ right ) { $ type = $ this -> unpackExpressionType ( $ expressionType ) ; switch ( $ type ) { case ExpressionType :: MULTIPLY : return $ this -> prepareBinaryExpression ( self :: MULTIPLY , $ left , $ right ) ; case ExpressionType :: DIVIDE : return $ this -> prepareBinaryExpression ( self :: DIVIDE , $ left , $ right ) ; case ExpressionType :: MODULO : return $ this -> prepareBinaryExpression ( self :: MODULO , $ left , $ right ) ; case ExpressionType :: ADD : return $ this -> prepareBinaryExpression ( self :: ADD , $ left , $ right ) ; case ExpressionType :: SUBTRACT : return $ this -> prepareBinaryExpression ( self :: SUBTRACT , $ left , $ right ) ; default : throw new \ InvalidArgumentException ( 'onArithmeticExpression' ) ; } }
Call-back for arithmetic expression.

@param ExpressionType $expressionType The type of arithmetic expression
@param string         $left           The left expression
@param string         $right          The left expression

@return string
Call - back for arithmetic expression .