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