Beispiel #1
0
    public System.Object VisitSubExpression(System.Management.Automation.Language.SubExpressionAst subExpressionAst)
    {
        IScriptExtent mappedExtent = MapExtent(subExpressionAst.Extent);

        StatementBlockAst mappedStatementBlock = (StatementBlockAst)VisitStatementBlock(subExpressionAst.SubExpression);


        return(new SubExpressionAst(mappedExtent, mappedStatementBlock));
    }
Beispiel #2
0
        public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
        {
            object[] results = (from statementAst in subExpressionAst.SubExpression.Statements
                                let result = EvaluateAst(statementAst, false)
                                where result != null
                                select result).ToArray();

            if (results.Length == 1)
            {
                _pipelineCommandRuntime.WriteObject(results.Single());
            }
            else if (results.Length > 0)
            {
                _pipelineCommandRuntime.WriteObject(results);
            }
            return AstVisitAction.SkipChildren;
        }
 /// <summary/>
 public virtual object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return _decorated.VisitSubExpression(subExpressionAst);
 }
Beispiel #4
0
 public override AstVisitAction VisitSubExpression(SubExpressionAst ast) { return CheckParent(ast); }
Beispiel #5
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(subExpressionAst.SubExpression.Accept(this));
 }
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return subExpressionAst.SubExpression.Accept(this);
 }
Beispiel #7
0
 /// <summary/>
 public virtual object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(null);
 }
Beispiel #8
0
 public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return AstVisitAction.Continue;
 }
 public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(AstVisitAction.Continue);
 }
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     throw new UnexpectedElementException();
 }
Beispiel #11
0
        public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
        {
            // Sub expression is allowed if the statement block is allowed.

            return AstVisitAction.Continue;
        }
Beispiel #12
0
 public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst) => DefaultVisit(subExpressionAst);
Beispiel #13
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     if (!subExpressionAst.SubExpression.Statements.Any<StatementAst>())
     {
         return ExpressionCache.NullConstant;
     }
     return this.CaptureAstResults(subExpressionAst.SubExpression, CaptureAstContext.Assignment, null);
 }
Beispiel #14
0
 /// <summary/>
 public virtual object VisitSubExpression(SubExpressionAst subExpressionAst) { return null; }
Beispiel #15
0
 public override AstVisitAction VisitSubExpression(SubExpressionAst ast)
 {
     return this.Check(ast);
 }
Beispiel #16
0
 public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     throw new NotImplementedException(); //VisitSubExpression(subExpressionAst);
 }
Beispiel #17
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     CheckIsConstant(subExpressionAst, "Caller to verify ast is constant");
     return subExpressionAst.SubExpression.Accept(this);
 }
Beispiel #18
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     subExpressionAst.SubExpression.Accept(this);
     return(null);
 }
Beispiel #19
0
        public object VisitSubExpression(SubExpressionAst subExpressionAst)
        {
            if (subExpressionAst.SubExpression.Statements.Count == 0)
            {
                // This seems wrong, but is compatible with V2.
                return ExpressionCache.NullConstant;
            }

            // SubExpression and ParenExpression are two special cases for handling the partial output while exception
            // is thrown. For example, the output of $(1; throw 2) should be 1 and the error record with message '2';
            // but the output of $(1; throw 2).Length should just be the error record with message '2'. 
            bool shouldPreserveResultInCaseofException = subExpressionAst.ShouldPreserveOutputInCaseOfException();
            return CaptureAstResults(subExpressionAst.SubExpression,
                                     shouldPreserveResultInCaseofException
                                        ? CaptureAstContext.AssignmentWithResultPreservation
                                        : CaptureAstContext.AssignmentWithoutResultPreservation);
        }
Beispiel #20
0
 public override AstVisitAction VisitSubExpression(SubExpressionAst ast)
 {
     return(Check(ast));
 }
 public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return AstVisitAction.Continue;
 }
Beispiel #22
0
 public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(AstVisitAction.Continue);
 }
        /// <summary>
        /// Visit sub expression
        /// </summary>
        /// <param name="subExpressionAst"></param>
        /// <returns></returns>
        public object VisitSubExpression(SubExpressionAst subExpressionAst)
        {
            if (subExpressionAst == null) return null;

            subExpressionAst.SubExpression.Visit(this.Decorator);
            return null;
        }
Beispiel #24
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     CheckIsConstant(subExpressionAst, "Caller to verify ast is constant");
     return(subExpressionAst.SubExpression.Accept(this));
 }
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     throw new NotImplementedException();
 }