コード例 #1
0
ファイル: SourceMapper.cs プロジェクト: gpduck/ScriptMap
    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));
    }
コード例 #2
0
ファイル: ExecutionVisitor.cs プロジェクト: mauve/Pash
        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;
        }
コード例 #3
0
 /// <summary/>
 public virtual object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return _decorated.VisitSubExpression(subExpressionAst);
 }
コード例 #4
0
ファイル: AstVisitor.cs プロジェクト: 40a/PowerShell
 public override AstVisitAction VisitSubExpression(SubExpressionAst ast) { return CheckParent(ast); }
コード例 #5
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(subExpressionAst.SubExpression.Accept(this));
 }
コード例 #6
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return subExpressionAst.SubExpression.Accept(this);
 }
コード例 #7
0
 /// <summary/>
 public virtual object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(null);
 }
コード例 #8
0
ファイル: AstVisitor.cs プロジェクト: JamesTryand/Pash2
 public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return AstVisitAction.Continue;
 }
コード例 #9
0
 public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(AstVisitAction.Continue);
 }
コード例 #10
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     throw new UnexpectedElementException();
 }
コード例 #11
0
ファイル: SemanticChecks.cs プロジェクト: dfinke/powershell
        public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
        {
            // Sub expression is allowed if the statement block is allowed.

            return AstVisitAction.Continue;
        }
コード例 #12
0
 public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst) => DefaultVisit(subExpressionAst);
コード例 #13
0
ファイル: Compiler.cs プロジェクト: nickchal/pash
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     if (!subExpressionAst.SubExpression.Statements.Any<StatementAst>())
     {
         return ExpressionCache.NullConstant;
     }
     return this.CaptureAstResults(subExpressionAst.SubExpression, CaptureAstContext.Assignment, null);
 }
コード例 #14
0
ファイル: AstVisitor.cs プロジェクト: 40a/PowerShell
 /// <summary/>
 public virtual object VisitSubExpression(SubExpressionAst subExpressionAst) { return null; }
コード例 #15
0
ファイル: AstSearcher.cs プロジェクト: nickchal/pash
 public override AstVisitAction VisitSubExpression(SubExpressionAst ast)
 {
     return this.Check(ast);
 }
コード例 #16
0
ファイル: ExecutionVisitor.cs プロジェクト: JayBazuzi/Pash
 public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     throw new NotImplementedException(); //VisitSubExpression(subExpressionAst);
 }
コード例 #17
0
ファイル: ConstantValues.cs プロジェクト: 40a/PowerShell
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     CheckIsConstant(subExpressionAst, "Caller to verify ast is constant");
     return subExpressionAst.SubExpression.Accept(this);
 }
コード例 #18
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     subExpressionAst.SubExpression.Accept(this);
     return(null);
 }
コード例 #19
0
ファイル: Compiler.cs プロジェクト: 40a/PowerShell
        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);
        }
コード例 #20
0
 public override AstVisitAction VisitSubExpression(SubExpressionAst ast)
 {
     return(Check(ast));
 }
コード例 #21
0
 public override AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return AstVisitAction.Continue;
 }
コード例 #22
0
 public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     return(AstVisitAction.Continue);
 }
コード例 #23
0
        /// <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;
        }
コード例 #24
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     CheckIsConstant(subExpressionAst, "Caller to verify ast is constant");
     return(subExpressionAst.SubExpression.Accept(this));
 }
コード例 #25
0
 public object VisitSubExpression(SubExpressionAst subExpressionAst)
 {
     throw new NotImplementedException();
 }