예제 #1
0
    public RedirectionAst _VisitRedirection(RedirectionAst redirectionAst)
    {
        var @switch = new Dictionary <Type, Func <RedirectionAst, RedirectionAst> > {
            { typeof(FileRedirectionAst), (r) => { return((RedirectionAst)VisitFileRedirection(r as FileRedirectionAst)); } },
            { typeof(MergingRedirectionAst), (r) => { return((RedirectionAst)VisitMergingRedirection(r as MergingRedirectionAst)); } }
        };

        return(@switch[redirectionAst.GetType()](redirectionAst));
    }
예제 #2
0
        private static CommandRedirection GetCommandRedirection(RedirectionAst redirectionAst, System.Management.Automation.ExecutionContext context)
        {
            FileRedirectionAst ast = redirectionAst as FileRedirectionAst;

            if (ast != null)
            {
                object obj2 = Compiler.GetExpressionValue(ast.Location, context, (IList)null);
                return(new FileRedirection(ast.FromStream, ast.Append, obj2.ToString()));
            }
            MergingRedirectionAst ast2 = (MergingRedirectionAst)redirectionAst;

            return(new MergingRedirection(ast2.FromStream, ast2.ToStream));
        }