protected function compile($expr, Context $context)
{
$left = $context->getExpressionCompiler()->compile($expr->expr);
switch ($left->getType()) {
case CompiledExpression::INTEGER:
case CompiledExpression::DOUBLE:
case CompiledExpression::NUMBER:
case CompiledExpression::BOOLEAN:
case CompiledExpression::STRING:
case CompiledExpression::NULL:
return CompiledExpression::fromZvalValue(-(int) $left->getValue());
}
return new CompiledExpression();
}