private ExpressionInfo Expr_BinaryOp_Concat(XmlNode node)
{
XmlNode leftExpr = node.GetSubNode(AstConstants.Subnode + ":" + AstConstants.Subnodes.Left)
.GetSubNodesByPrefix(AstConstants.Node).Single();
XmlNode rightExpr = node.GetSubNode(AstConstants.Subnode + ":" + AstConstants.Subnodes.Right)
.GetSubNodesByPrefix(AstConstants.Node).Single();
var leftResult = Analyze(leftExpr);
var rightResult = Analyze(rightExpr);
var result = leftResult.Merge(rightResult);
if (leftResult.ValueInfo.Value != null && rightResult.ValueInfo.Value != null)
{
result.ValueInfo.Value = leftResult.ValueInfo.Value + rightResult.ValueInfo.Value;
}
return result;
}