private ITemplateType EvalMacro(ITemplateType source) { if (source == null) return StringType.Empty(); string obj; if (!source.TryConvert(out obj)) { _errors.ErrorMacrosOnlyAcceptStrings(source.UnderlyingType, string.Empty); return StringType.Empty(); } var i = new Interpreter.Interpreter(obj, Cache); var result = i.Apply(_state); _errors.AddRange(result.Errors); return StringType.New(result.Output); }