internal Expression ComplexResult(Dictionary<string, ParameterExpression> parameters)
{
ResultNode rn = new ResultNode();
rn.Output = Output;
rn.Confidence = Confidence;
rn.Count = Count;
var result = System.Linq.Expressions.Expression.Constant(rn) as Expression;
return Children.Aggregate(result,
(current, child) =>
System.Linq.Expressions.Expression.Condition(
child.Predicate.Expression(parameters), child.ComplexResult(parameters),
current));
}