Exemplo n.º 1
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitSwitchStatement(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = base.Condition.InternalVisit(visitor);
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                foreach (Tuple<ExpressionAst, StatementBlockAst> tuple in this.Clauses)
                {
                    action = tuple.Item1.InternalVisit(visitor);
                    if (action != AstVisitAction.Continue)
                    {
                        break;
                    }
                    action = tuple.Item2.InternalVisit(visitor);
                    if (action != AstVisitAction.Continue)
                    {
                        break;
                    }
                }
            }
            if ((action == AstVisitAction.Continue) && (this.Default != null))
            {
                action = this.Default.InternalVisit(visitor);
            }
            return action;
        }
Exemplo n.º 2
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitInvokeMemberExpression(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = base.Expression.InternalVisit(visitor);
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                action = base.Member.InternalVisit(visitor);
            }
            if ((action == AstVisitAction.Continue) && (this.Arguments != null))
            {
                foreach (ExpressionAst ast in this.Arguments)
                {
                    action = ast.InternalVisit(visitor);
                    if (action != AstVisitAction.Continue)
                    {
                        return action;
                    }
                }
            }
            return action;
        }
Exemplo n.º 3
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitAttribute(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    foreach (ExpressionAst ast in this.PositionalArguments)
                    {
                        action = ast.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            break;
                        }
                    }
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                foreach (NamedAttributeArgumentAst ast2 in this.NamedArguments)
                {
                    action = ast2.InternalVisit(visitor);
                    if (action != AstVisitAction.Continue)
                    {
                        return action;
                    }
                }
            }
            return action;
        }
Exemplo n.º 4
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitFunctionDefinition(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    if (this.Parameters != null)
                    {
                        foreach (ParameterAst ast in this.Parameters)
                        {
                            action = ast.InternalVisit(visitor);
                            if (action != AstVisitAction.Continue)
                            {
                                break;
                            }
                        }
                    }
                    if (action == AstVisitAction.Continue)
                    {
                        action = this.Body.InternalVisit(visitor);
                    }
                    break;
            }
            return action;
        }
Exemplo n.º 5
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitTryStatement(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = this.Body.InternalVisit(visitor);
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                foreach (CatchClauseAst ast in this.CatchClauses)
                {
                    action = ast.InternalVisit(visitor);
                    if (action != AstVisitAction.Continue)
                    {
                        break;
                    }
                }
            }
            if ((action == AstVisitAction.Continue) && (this.Finally != null))
            {
                action = this.Finally.InternalVisit(visitor);
            }
            return action;
        }
Exemplo n.º 6
0
 internal static AstVisitAction InternalVisit(AstVisitor visitor, ReadOnlyCollection<TrapStatementAst> traps, ReadOnlyCollection<StatementAst> statements, AstVisitAction action)
 {
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     if ((action == AstVisitAction.Continue) && (traps != null))
     {
         foreach (TrapStatementAst ast in traps)
         {
             action = ast.InternalVisit(visitor);
             if (action != AstVisitAction.Continue)
             {
                 break;
             }
         }
     }
     if ((action == AstVisitAction.Continue) && (statements != null))
     {
         foreach (StatementAst ast2 in statements)
         {
             action = ast2.InternalVisit(visitor);
             if (action != AstVisitAction.Continue)
             {
                 return action;
             }
         }
     }
     return action;
 }
Exemplo n.º 7
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitParamBlock(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    foreach (AttributeAst ast in this.Attributes)
                    {
                        action = ast.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            break;
                        }
                    }
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                foreach (ParameterAst ast2 in this.Parameters)
                {
                    action = ast2.InternalVisit(visitor);
                    if (action != AstVisitAction.Continue)
                    {
                        return action;
                    }
                }
            }
            return action;
        }
Exemplo n.º 8
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitForStatement(this);
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     if ((action == AstVisitAction.Continue) && (this.Initializer != null))
     {
         action = this.Initializer.InternalVisit(visitor);
     }
     if ((action == AstVisitAction.Continue) && (base.Condition != null))
     {
         action = base.Condition.InternalVisit(visitor);
     }
     if ((action == AstVisitAction.Continue) && (this.Iterator != null))
     {
         action = this.Iterator.InternalVisit(visitor);
     }
     if (action == AstVisitAction.Continue)
     {
         action = base.Body.InternalVisit(visitor);
     }
     return action;
 }
Exemplo n.º 9
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitParameter(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    foreach (AttributeBaseAst ast in this.Attributes)
                    {
                        action = ast.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            break;
                        }
                    }
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                action = this.Name.InternalVisit(visitor);
            }
            if ((action == AstVisitAction.Continue) && (this.DefaultValue != null))
            {
                action = this.DefaultValue.InternalVisit(visitor);
            }
            return action;
        }
Exemplo n.º 10
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitIfStatement(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    foreach (Tuple<PipelineBaseAst, StatementBlockAst> tuple in this.Clauses)
                    {
                        action = tuple.Item1.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            break;
                        }
                        action = tuple.Item2.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            break;
                        }
                    }
                    break;
            }
            if ((action == AstVisitAction.Continue) && (this.ElseClause != null))
            {
                action = this.ElseClause.InternalVisit(visitor);
            }
            return action;
        }
Exemplo n.º 11
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitHashtable(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    foreach (Tuple<ExpressionAst, StatementAst> tuple in this.KeyValuePairs)
                    {
                        action = tuple.Item1.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            return action;
                        }
                        action = tuple.Item2.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            return action;
                        }
                    }
                    break;
            }
            return action;
        }
Exemplo n.º 12
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitConstantExpression(this);
     if (action != AstVisitAction.SkipChildren)
     {
         return action;
     }
     return AstVisitAction.Continue;
 }
Exemplo n.º 13
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitTypeConstraint(this);
     if (action != AstVisitAction.SkipChildren)
     {
         return action;
     }
     return AstVisitAction.Continue;
 }
Exemplo n.º 14
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitMergingRedirection(this);
     if (action != AstVisitAction.SkipChildren)
     {
         return action;
     }
     return AstVisitAction.Continue;
 }
Exemplo n.º 15
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitErrorStatement(this);
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     if ((action == AstVisitAction.Continue) && (this.NestedAst != null))
     {
         foreach (Ast ast in this.NestedAst)
         {
             action = ast.InternalVisit(visitor);
             if (action != AstVisitAction.Continue)
             {
                 break;
             }
         }
     }
     if ((action == AstVisitAction.Continue) && (this.Flags != null))
     {
         foreach (Tuple<Token, Ast> tuple in this.Flags.Values)
         {
             if (tuple.Item2 != null)
             {
                 action = tuple.Item2.InternalVisit(visitor);
                 if (action != AstVisitAction.Continue)
                 {
                     break;
                 }
             }
         }
     }
     if ((action == AstVisitAction.Continue) && (this.Conditions != null))
     {
         foreach (Ast ast2 in this.Conditions)
         {
             action = ast2.InternalVisit(visitor);
             if (action != AstVisitAction.Continue)
             {
                 break;
             }
         }
     }
     if ((action == AstVisitAction.Continue) && (this.Bodies != null))
     {
         foreach (Ast ast3 in this.Bodies)
         {
             action = ast3.InternalVisit(visitor);
             if (action != AstVisitAction.Continue)
             {
                 return action;
             }
         }
     }
     return action;
 }
Exemplo n.º 16
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitContinueStatement(this);
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     if ((action == AstVisitAction.Continue) && (this.Label != null))
     {
         action = this.Label.InternalVisit(visitor);
     }
     return action;
 }
Exemplo n.º 17
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitCommandParameter(this);
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     if ((this.Argument != null) && (action == AstVisitAction.Continue))
     {
         action = this.Argument.InternalVisit(visitor);
     }
     return action;
 }
Exemplo n.º 18
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitNamedBlock(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = StatementBlockAst.InternalVisit(visitor, this.Traps, this.Statements, action);
                    break;
            }
            return action;
        }
Exemplo n.º 19
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitFileRedirection(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = this.Location.InternalVisit(visitor);
                    break;
            }
            return action;
        }
Exemplo n.º 20
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitNamedAttributeArgument(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = this.Argument.InternalVisit(visitor);
                    break;
            }
            return action;
        }
Exemplo n.º 21
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitScriptBlockExpression(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = this.ScriptBlock.InternalVisit(visitor);
                    break;
            }
            return action;
        }
Exemplo n.º 22
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitBlockStatement(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = this.Body.InternalVisit(visitor);
                    break;
            }
            return action;
        }
Exemplo n.º 23
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitTrap(this);
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     if ((action == AstVisitAction.Continue) && (this.TrapType != null))
     {
         action = this.TrapType.InternalVisit(visitor);
     }
     if (action == AstVisitAction.Continue)
     {
         action = this.Body.InternalVisit(visitor);
     }
     return action;
 }
Exemplo n.º 24
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitBinaryExpression(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = this.Left.InternalVisit(visitor);
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                action = this.Right.InternalVisit(visitor);
            }
            return action;
        }
Exemplo n.º 25
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitAttributedExpression(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = this.Attribute.InternalVisit(visitor);
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                action = this.Child.InternalVisit(visitor);
            }
            return action;
        }
Exemplo n.º 26
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitDoUntilStatement(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    action = base.Condition.InternalVisit(visitor);
                    break;
            }
            if (action == AstVisitAction.Continue)
            {
                action = base.Body.InternalVisit(visitor);
            }
            return action;
        }
Exemplo n.º 27
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitErrorExpression(this);
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     if ((action == AstVisitAction.Continue) && (this.NestedAst != null))
     {
         foreach (Ast ast in this.NestedAst)
         {
             action = ast.InternalVisit(visitor);
             if (action != AstVisitAction.Continue)
             {
                 return action;
             }
         }
     }
     return action;
 }
Exemplo n.º 28
0
 internal override AstVisitAction InternalVisit(AstVisitor visitor)
 {
     AstVisitAction action = visitor.VisitCatchClause(this);
     if (action == AstVisitAction.SkipChildren)
     {
         return AstVisitAction.Continue;
     }
     foreach (TypeConstraintAst ast in this.CatchTypes)
     {
         if (action != AstVisitAction.Continue)
         {
             break;
         }
         action = ast.InternalVisit(visitor);
     }
     if (action == AstVisitAction.Continue)
     {
         action = this.Body.InternalVisit(visitor);
     }
     return action;
 }
Exemplo n.º 29
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitPipeline(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    foreach (CommandBaseAst ast in this.PipelineElements)
                    {
                        action = ast.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            return action;
                        }
                    }
                    break;
            }
            return action;
        }
Exemplo n.º 30
0
        internal override AstVisitAction InternalVisit(AstVisitor visitor)
        {
            AstVisitAction action = visitor.VisitArrayLiteral(this);
            switch (action)
            {
                case AstVisitAction.SkipChildren:
                    return AstVisitAction.Continue;

                case AstVisitAction.Continue:
                    foreach (ExpressionAst ast in this.Elements)
                    {
                        action = ast.InternalVisit(visitor);
                        if (action != AstVisitAction.Continue)
                        {
                            return action;
                        }
                    }
                    break;
            }
            return action;
        }
Exemplo n.º 31
0
 static AstVisitAction DispatchVisitor(AstVisitor astVisitor, Ast nextItem)
 {
     if (nextItem is ArrayExpressionAst)
     {
         return(astVisitor.VisitArrayExpression((ArrayExpressionAst)nextItem));
     }
     if (nextItem is ArrayLiteralAst)
     {
         return(astVisitor.VisitArrayLiteral((ArrayLiteralAst)nextItem));
     }
     if (nextItem is AssignmentStatementAst)
     {
         return(astVisitor.VisitAssignmentStatement((AssignmentStatementAst)nextItem));
     }
     if (nextItem is AttributeAst)
     {
         return(astVisitor.VisitAttribute((AttributeAst)nextItem));
     }
     if (nextItem is AttributedExpressionAst)
     {
         return(astVisitor.VisitAttributedExpression((AttributedExpressionAst)nextItem));
     }
     if (nextItem is BinaryExpressionAst)
     {
         return(astVisitor.VisitBinaryExpression((BinaryExpressionAst)nextItem));
     }
     if (nextItem is BreakStatementAst)
     {
         return(astVisitor.VisitBreakStatement((BreakStatementAst)nextItem));
     }
     if (nextItem is CatchClauseAst)
     {
         return(astVisitor.VisitCatchClause((CatchClauseAst)nextItem));
     }
     if (nextItem is CommandAst)
     {
         return(astVisitor.VisitCommand((CommandAst)nextItem));
     }
     if (nextItem is CommandExpressionAst)
     {
         return(astVisitor.VisitCommandExpression((CommandExpressionAst)nextItem));
     }
     if (nextItem is CommandParameterAst)
     {
         return(astVisitor.VisitCommandParameter((CommandParameterAst)nextItem));
     }
     if (nextItem is ConstantExpressionAst)
     {
         return(astVisitor.VisitConstantExpression((ConstantExpressionAst)nextItem));
     }
     if (nextItem is ContinueStatementAst)
     {
         return(astVisitor.VisitContinueStatement((ContinueStatementAst)nextItem));
     }
     if (nextItem is ConvertExpressionAst)
     {
         return(astVisitor.VisitConvertExpression((ConvertExpressionAst)nextItem));
     }
     if (nextItem is DataStatementAst)
     {
         return(astVisitor.VisitDataStatement((DataStatementAst)nextItem));
     }
     if (nextItem is DoUntilStatementAst)
     {
         return(astVisitor.VisitDoUntilStatement((DoUntilStatementAst)nextItem));
     }
     if (nextItem is DoWhileStatementAst)
     {
         return(astVisitor.VisitDoWhileStatement((DoWhileStatementAst)nextItem));
     }
     if (nextItem is ExitStatementAst)
     {
         return(astVisitor.VisitExitStatement((ExitStatementAst)nextItem));
     }
     if (nextItem is ExpandableStringExpressionAst)
     {
         return(astVisitor.VisitExpandableStringExpression((ExpandableStringExpressionAst)nextItem));
     }
     if (nextItem is FileRedirectionAst)
     {
         return(astVisitor.VisitFileRedirection((FileRedirectionAst)nextItem));
     }
     if (nextItem is ForEachStatementAst)
     {
         return(astVisitor.VisitForEachStatement((ForEachStatementAst)nextItem));
     }
     if (nextItem is ForStatementAst)
     {
         return(astVisitor.VisitForStatement((ForStatementAst)nextItem));
     }
     if (nextItem is FunctionDefinitionAst)
     {
         return(astVisitor.VisitFunctionDefinition((FunctionDefinitionAst)nextItem));
     }
     if (nextItem is HashtableAst)
     {
         return(astVisitor.VisitHashtable((HashtableAst)nextItem));
     }
     if (nextItem is IfStatementAst)
     {
         return(astVisitor.VisitIfStatement((IfStatementAst)nextItem));
     }
     if (nextItem is IndexExpressionAst)
     {
         return(astVisitor.VisitIndexExpression((IndexExpressionAst)nextItem));
     }
     if (nextItem is InvokeMemberExpressionAst)
     {
         return(astVisitor.VisitInvokeMemberExpression((InvokeMemberExpressionAst)nextItem));
     }
     if (nextItem is MemberExpressionAst)
     {
         return(astVisitor.VisitMemberExpression((MemberExpressionAst)nextItem));
     }
     if (nextItem is MergingRedirectionAst)
     {
         return(astVisitor.VisitMergingRedirection((MergingRedirectionAst)nextItem));
     }
     if (nextItem is NamedAttributeArgumentAst)
     {
         return(astVisitor.VisitNamedAttributeArgument((NamedAttributeArgumentAst)nextItem));
     }
     if (nextItem is NamedBlockAst)
     {
         return(astVisitor.VisitNamedBlock((NamedBlockAst)nextItem));
     }
     if (nextItem is ParamBlockAst)
     {
         return(astVisitor.VisitParamBlock((ParamBlockAst)nextItem));
     }
     if (nextItem is ParameterAst)
     {
         return(astVisitor.VisitParameter((ParameterAst)nextItem));
     }
     if (nextItem is ParenExpressionAst)
     {
         return(astVisitor.VisitParenExpression((ParenExpressionAst)nextItem));
     }
     if (nextItem is PipelineAst)
     {
         return(astVisitor.VisitPipeline((PipelineAst)nextItem));
     }
     if (nextItem is ReturnStatementAst)
     {
         return(astVisitor.VisitReturnStatement((ReturnStatementAst)nextItem));
     }
     if (nextItem is ScriptBlockAst)
     {
         return(astVisitor.VisitScriptBlock((ScriptBlockAst)nextItem));
     }
     if (nextItem is ScriptBlockExpressionAst)
     {
         return(astVisitor.VisitScriptBlockExpression((ScriptBlockExpressionAst)nextItem));
     }
     if (nextItem is StatementBlockAst)
     {
         return(astVisitor.VisitStatementBlock((StatementBlockAst)nextItem));
     }
     if (nextItem is StringConstantExpressionAst)
     {
         return(astVisitor.VisitStringConstantExpression((StringConstantExpressionAst)nextItem));
     }
     if (nextItem is SubExpressionAst)
     {
         return(astVisitor.VisitSubExpression((SubExpressionAst)nextItem));
     }
     if (nextItem is SwitchStatementAst)
     {
         return(astVisitor.VisitSwitchStatement((SwitchStatementAst)nextItem));
     }
     if (nextItem is ThrowStatementAst)
     {
         return(astVisitor.VisitThrowStatement((ThrowStatementAst)nextItem));
     }
     if (nextItem is TrapStatementAst)
     {
         return(astVisitor.VisitTrap((TrapStatementAst)nextItem));
     }
     if (nextItem is TryStatementAst)
     {
         return(astVisitor.VisitTryStatement((TryStatementAst)nextItem));
     }
     if (nextItem is TypeConstraintAst)
     {
         return(astVisitor.VisitTypeConstraint((TypeConstraintAst)nextItem));
     }
     if (nextItem is TypeExpressionAst)
     {
         return(astVisitor.VisitTypeExpression((TypeExpressionAst)nextItem));
     }
     if (nextItem is UnaryExpressionAst)
     {
         return(astVisitor.VisitUnaryExpression((UnaryExpressionAst)nextItem));
     }
     if (nextItem is UsingExpressionAst)
     {
         return(astVisitor.VisitUsingExpression((UsingExpressionAst)nextItem));
     }
     if (nextItem is VariableExpressionAst)
     {
         return(astVisitor.VisitVariableExpression((VariableExpressionAst)nextItem));
     }
     if (nextItem is WhileStatementAst)
     {
         return(astVisitor.VisitWhileStatement((WhileStatementAst)nextItem));
     }
     else
     {
         throw new InvalidOperationException(nextItem.ToString());  // did I miss one?
     }
 }