public State Clone() { return(new State { Writer = Writer, Context = Context.Clone() }); }
public void Evaluate(EvaluationContext context, TextWriter target) { context = context.Clone(); context.Parameters = new LayeredParameterSet(context.Parameters); if (PatternTransformer == null) { var state = new State { Writer = target, Context = context }; _evaluator.Expression.Accept(_evaluator, state); } else { StringWriter temp = new StringWriter(); var state = new State { Writer = temp, Context = context }; _evaluator.Expression.Accept(_evaluator, state); string result = temp.ToString(); target.Write(PatternTransformer.Decode(result)); } }