protected function compile($expr, Context $context)
{
$expressionCompiler = $context->getExpressionCompiler();
$leftExpression = $expressionCompiler->compile($expr->left);
$rightExpression = $expressionCompiler->compile($expr->right);
switch ($leftExpression->getType()) {
case CompiledExpression::STRING:
case CompiledExpression::NUMBER:
case CompiledExpression::INTEGER:
case CompiledExpression::DOUBLE:
case CompiledExpression::BOOLEAN:
switch ($rightExpression->getType()) {
case CompiledExpression::STRING:
case CompiledExpression::NUMBER:
case CompiledExpression::INTEGER:
case CompiledExpression::DOUBLE:
case CompiledExpression::BOOLEAN:
return new CompiledExpression(CompiledExpression::STRING, $leftExpression->getValue() . $rightExpression->getValue());
}
}
return new CompiledExpression();
}