コード例 #1
0
 private void AcceptInternal(ParseTreeVisitor visitor, bool topLevel)
 {
     if (!topLevel && visitor.SkipInvokableScriptBlocks)
     {
         return;
     }
     visitor.Visit(this);
     if (this._parameterDeclarationNode != null)
     {
         this._parameterDeclarationNode.Accept(visitor);
     }
     if (this._begin != null)
     {
         this._begin.Accept(visitor);
     }
     if (this._process != null)
     {
         this._process.Accept(visitor);
     }
     if (this._end != null)
     {
         this._end.Accept(visitor);
     }
     if (this._dynamicParams == null)
     {
         return;
     }
     this._dynamicParams.Accept(visitor);
 }
コード例 #2
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     foreach (ParseTreeNode parameter in this._parameters)
     {
         parameter.Accept(visitor);
     }
 }
コード例 #3
0
ファイル: CommandNode.cs プロジェクト: mmoenfly/GitCook2021
        internal override void Accept(ParseTreeVisitor visitor)
        {
            visitor.Visit(this);
            if (this._expression != null)
            {
                this._expression.Accept(visitor);
            }
            else
            {
                for (int index = 0; index < this._elements.Count; ++index)
                {
                    switch (this._elements[index])
                    {
                    case ParseTreeNode parseTreeNode:
                        parseTreeNode.Accept(visitor);
                        break;

                    case Token node:
                        visitor.Visit(node, index);
                        break;
                    }
                }
            }
            if (this._outputRedirection != null)
            {
                this._outputRedirection.Accept(visitor);
            }
            if (this._errorRedirection == null)
            {
                return;
            }
            this._errorRedirection.Accept(visitor);
        }
コード例 #4
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     foreach (ParseTreeNode expression in this._expressions)
     {
         expression.Accept(visitor);
     }
 }
コード例 #5
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     foreach (ParseTreeNode clause in this._clauses)
     {
         clause?.Accept(visitor);
     }
 }
コード例 #6
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (visitor.SkipInvokableScriptBlocks)
     {
         return;
     }
     this._body.Accept(visitor);
 }
コード例 #7
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (this._left is ParseTreeNode left)
     {
         left.Accept(visitor);
     }
     this._rightHandSide.Accept(visitor);
 }
コード例 #8
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (this._location == null)
     {
         return;
     }
     this._location.Accept(visitor);
 }
コード例 #9
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (!(this._argument is ParseTreeNode parseTreeNode))
     {
         return;
     }
     parseTreeNode.Accept(visitor);
 }
コード例 #10
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     this._target.Accept(visitor);
     if (!(this._property is ParseTreeNode property))
     {
         return;
     }
     property.Accept(visitor);
 }
コード例 #11
0
ファイル: AttributeNode.cs プロジェクト: mmoenfly/GitCook2021
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     foreach (object obj in this._arguments)
     {
         if (obj is ParseTreeNode parseTreeNode)
         {
             parseTreeNode.Accept(visitor);
         }
     }
 }
コード例 #12
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     for (int index = 0; index < this._expressions.Count; ++index)
     {
         if (this._keys[index] is ParseTreeNode key)
         {
             key.Accept(visitor);
         }
         this._expressions[index].Accept(visitor);
     }
 }
コード例 #13
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (this._commandsAllowed != null)
     {
         foreach (ParseTreeNode parseTreeNode in this._commandsAllowed)
         {
             parseTreeNode.Accept(visitor);
         }
     }
     this._body.Accept(visitor);
 }
コード例 #14
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     this._body.Accept(visitor);
     foreach (ParseTreeNode catchBlock in this._catchBlocks)
     {
         catchBlock.Accept(visitor);
     }
     if (this._finally == null)
     {
         return;
     }
     this._finally.Accept(visitor);
 }
コード例 #15
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (!visitor.SkipInvokableScriptBlocks && this._traps != null)
     {
         foreach (ParseTreeNode trap in this._traps)
         {
             trap.Accept(visitor);
         }
     }
     foreach (ParseTreeNode statement in this._statements)
     {
         statement.Accept(visitor);
     }
 }
コード例 #16
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (this._parameter != null)
     {
         this._parameter.Accept(visitor);
     }
     foreach (ParseTreeNode attribute in this._attributes)
     {
         attribute.Accept(visitor);
     }
     if (this._initializer == null)
     {
         return;
     }
     this._initializer.Accept(visitor);
 }
コード例 #17
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     if (this._initialExpression != null)
     {
         this._initialExpression.Accept(visitor);
     }
     if (this._loopExpression != null)
     {
         this._loopExpression.Accept(visitor);
     }
     if (this._incrementExpression != null)
     {
         this._incrementExpression.Accept(visitor);
     }
     if (this._body == null)
     {
         return;
     }
     this._body.Accept(visitor);
 }
コード例 #18
0
 internal override void Accept(ParseTreeVisitor visitor) => visitor.Visit(this);
コード例 #19
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     this._target.Accept(visitor);
     this._arguments.Accept(visitor);
 }
コード例 #20
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     this._formatExpression.Accept(visitor);
 }
コード例 #21
0
 internal override void Accept(ParseTreeVisitor visitor)
 {
     visitor.Visit(this);
     this._body.Accept(visitor);
     this._condition.Accept(visitor);
 }
コード例 #22
0
 internal override void Accept(ParseTreeVisitor visitor) => this.AcceptInternal(visitor, false);