public object EvaluateAst(Ast expressionAst, bool writeSideEffectsToPipeline) { var subVisitor = this.CloneSub(writeSideEffectsToPipeline); expressionAst.Visit(subVisitor); var result = subVisitor._pipelineCommandRuntime.OutputStream.Read(); if (result.Count == 0) { return null; } else if (result.Count == 1) { return result.Single(); } return result.ToArray(); }
private string GetOutputFileName(FileRedirectionAst redirectionAst) { object outputPath = _visitor.EvaluateAst(redirectionAst.Location, false); if (outputPath != null) { return(outputPath.ToString()); } return(null); }