PHPSA\Compiler\Expression\Operators\Arithmetical\Minus::compile PHP Method

compile() protected method

{expr} - {expr}
protected compile ( PhpParser\Node\Expr\BinaryOp\Minus $expr, Context $context ) : CompiledExpression
$expr PhpParser\Node\Expr\BinaryOp\Minus
$context PHPSA\Context
return PHPSA\CompiledExpression
    protected function compile($expr, Context $context)
    {
        $left = $context->getExpressionCompiler()->compile($expr->left);
        $right = $context->getExpressionCompiler()->compile($expr->right);
        switch ($left->getType()) {
            case CompiledExpression::INTEGER:
                switch ($right->getType()) {
                    case CompiledExpression::INTEGER:
                        return new CompiledExpression(CompiledExpression::INTEGER, $left->getValue() - $right->getValue());
                    case CompiledExpression::DOUBLE:
                        return new CompiledExpression(CompiledExpression::DOUBLE, $left->getValue() - $right->getValue());
                }
                break;
            case CompiledExpression::DOUBLE:
                switch ($right->getType()) {
                    case CompiledExpression::INTEGER:
                    case CompiledExpression::DOUBLE:
                        return new CompiledExpression(CompiledExpression::DOUBLE, $left->getValue() - $right->getValue());
                }
        }
        return new CompiledExpression();
    }
Minus