mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Add DefaultVisit method to the visitor interface and class (#13258)
This commit is contained in:
@@ -13,136 +13,189 @@ namespace System.Management.Automation.Language
|
||||
public interface ICustomAstVisitor
|
||||
{
|
||||
/// <summary/>
|
||||
object VisitErrorStatement(ErrorStatementAst errorStatementAst);
|
||||
object DefaultVisit(Ast ast) => null;
|
||||
|
||||
/// <summary/>
|
||||
object VisitErrorExpression(ErrorExpressionAst errorExpressionAst);
|
||||
object VisitErrorStatement(ErrorStatementAst errorStatementAst) => DefaultVisit(errorStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitErrorExpression(ErrorExpressionAst errorExpressionAst) => DefaultVisit(errorExpressionAst);
|
||||
|
||||
#region Script Blocks
|
||||
|
||||
/// <summary/>
|
||||
object VisitScriptBlock(ScriptBlockAst scriptBlockAst);
|
||||
object VisitScriptBlock(ScriptBlockAst scriptBlockAst) => DefaultVisit(scriptBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Param")]
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "param")]
|
||||
object VisitParamBlock(ParamBlockAst paramBlockAst);
|
||||
object VisitParamBlock(ParamBlockAst paramBlockAst) => DefaultVisit(paramBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitNamedBlock(NamedBlockAst namedBlockAst);
|
||||
object VisitNamedBlock(NamedBlockAst namedBlockAst) => DefaultVisit(namedBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitTypeConstraint(TypeConstraintAst typeConstraintAst);
|
||||
object VisitTypeConstraint(TypeConstraintAst typeConstraintAst) => DefaultVisit(typeConstraintAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitAttribute(AttributeAst attributeAst);
|
||||
object VisitAttribute(AttributeAst attributeAst) => DefaultVisit(attributeAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitNamedAttributeArgument(NamedAttributeArgumentAst namedAttributeArgumentAst);
|
||||
object VisitNamedAttributeArgument(NamedAttributeArgumentAst namedAttributeArgumentAst) => DefaultVisit(namedAttributeArgumentAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitParameter(ParameterAst parameterAst);
|
||||
object VisitParameter(ParameterAst parameterAst) => DefaultVisit(parameterAst);
|
||||
|
||||
#endregion Script Blocks
|
||||
|
||||
#region Statements
|
||||
|
||||
/// <summary/>
|
||||
object VisitFunctionDefinition(FunctionDefinitionAst functionDefinitionAst);
|
||||
object VisitFunctionDefinition(FunctionDefinitionAst functionDefinitionAst) => DefaultVisit(functionDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitStatementBlock(StatementBlockAst statementBlockAst);
|
||||
object VisitStatementBlock(StatementBlockAst statementBlockAst) => DefaultVisit(statementBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitIfStatement(IfStatementAst ifStmtAst);
|
||||
object VisitIfStatement(IfStatementAst ifStmtAst) => DefaultVisit(ifStmtAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitTrap(TrapStatementAst trapStatementAst);
|
||||
object VisitTrap(TrapStatementAst trapStatementAst) => DefaultVisit(trapStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitSwitchStatement(SwitchStatementAst switchStatementAst);
|
||||
object VisitSwitchStatement(SwitchStatementAst switchStatementAst) => DefaultVisit(switchStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitDataStatement(DataStatementAst dataStatementAst);
|
||||
object VisitDataStatement(DataStatementAst dataStatementAst) => DefaultVisit(dataStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitForEachStatement(ForEachStatementAst forEachStatementAst);
|
||||
object VisitForEachStatement(ForEachStatementAst forEachStatementAst) => DefaultVisit(forEachStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitDoWhileStatement(DoWhileStatementAst doWhileStatementAst);
|
||||
object VisitDoWhileStatement(DoWhileStatementAst doWhileStatementAst) => DefaultVisit(doWhileStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitForStatement(ForStatementAst forStatementAst);
|
||||
object VisitForStatement(ForStatementAst forStatementAst) => DefaultVisit(forStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitWhileStatement(WhileStatementAst whileStatementAst);
|
||||
object VisitWhileStatement(WhileStatementAst whileStatementAst) => DefaultVisit(whileStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitCatchClause(CatchClauseAst catchClauseAst);
|
||||
object VisitCatchClause(CatchClauseAst catchClauseAst) => DefaultVisit(catchClauseAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitTryStatement(TryStatementAst tryStatementAst);
|
||||
object VisitTryStatement(TryStatementAst tryStatementAst) => DefaultVisit(tryStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitBreakStatement(BreakStatementAst breakStatementAst);
|
||||
object VisitBreakStatement(BreakStatementAst breakStatementAst) => DefaultVisit(breakStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitContinueStatement(ContinueStatementAst continueStatementAst);
|
||||
object VisitContinueStatement(ContinueStatementAst continueStatementAst) => DefaultVisit(continueStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitReturnStatement(ReturnStatementAst returnStatementAst);
|
||||
object VisitReturnStatement(ReturnStatementAst returnStatementAst) => DefaultVisit(returnStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitExitStatement(ExitStatementAst exitStatementAst);
|
||||
object VisitExitStatement(ExitStatementAst exitStatementAst) => DefaultVisit(exitStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitThrowStatement(ThrowStatementAst throwStatementAst);
|
||||
object VisitThrowStatement(ThrowStatementAst throwStatementAst) => DefaultVisit(throwStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitDoUntilStatement(DoUntilStatementAst doUntilStatementAst);
|
||||
object VisitDoUntilStatement(DoUntilStatementAst doUntilStatementAst) => DefaultVisit(doUntilStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitAssignmentStatement(AssignmentStatementAst assignmentStatementAst);
|
||||
object VisitAssignmentStatement(AssignmentStatementAst assignmentStatementAst) => DefaultVisit(assignmentStatementAst);
|
||||
|
||||
#endregion Statements
|
||||
|
||||
#region Pipelines
|
||||
|
||||
/// <summary/>
|
||||
object VisitPipeline(PipelineAst pipelineAst);
|
||||
object VisitPipeline(PipelineAst pipelineAst) => DefaultVisit(pipelineAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitCommand(CommandAst commandAst);
|
||||
object VisitCommand(CommandAst commandAst) => DefaultVisit(commandAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitCommandExpression(CommandExpressionAst commandExpressionAst);
|
||||
object VisitCommandExpression(CommandExpressionAst commandExpressionAst) => DefaultVisit(commandExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitCommandParameter(CommandParameterAst commandParameterAst);
|
||||
object VisitCommandParameter(CommandParameterAst commandParameterAst) => DefaultVisit(commandParameterAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitFileRedirection(FileRedirectionAst fileRedirectionAst);
|
||||
object VisitFileRedirection(FileRedirectionAst fileRedirectionAst) => DefaultVisit(fileRedirectionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitMergingRedirection(MergingRedirectionAst mergingRedirectionAst);
|
||||
object VisitMergingRedirection(MergingRedirectionAst mergingRedirectionAst) => DefaultVisit(mergingRedirectionAst);
|
||||
|
||||
#endregion Pipelines
|
||||
|
||||
#region Expressions
|
||||
|
||||
/// <summary/>
|
||||
object VisitBinaryExpression(BinaryExpressionAst binaryExpressionAst);
|
||||
object VisitBinaryExpression(BinaryExpressionAst binaryExpressionAst) => DefaultVisit(binaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst);
|
||||
object VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst) => DefaultVisit(unaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitConvertExpression(ConvertExpressionAst convertExpressionAst);
|
||||
object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => DefaultVisit(convertExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitConstantExpression(ConstantExpressionAst constantExpressionAst);
|
||||
object VisitConstantExpression(ConstantExpressionAst constantExpressionAst) => DefaultVisit(constantExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitStringConstantExpression(StringConstantExpressionAst stringConstantExpressionAst);
|
||||
object VisitStringConstantExpression(StringConstantExpressionAst stringConstantExpressionAst) => DefaultVisit(stringConstantExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "SubExpression")]
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "subExpression")]
|
||||
object VisitSubExpression(SubExpressionAst subExpressionAst);
|
||||
object VisitSubExpression(SubExpressionAst subExpressionAst) => DefaultVisit(subExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitUsingExpression(UsingExpressionAst usingExpressionAst);
|
||||
object VisitUsingExpression(UsingExpressionAst usingExpressionAst) => DefaultVisit(usingExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitVariableExpression(VariableExpressionAst variableExpressionAst);
|
||||
object VisitVariableExpression(VariableExpressionAst variableExpressionAst) => DefaultVisit(variableExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitTypeExpression(TypeExpressionAst typeExpressionAst);
|
||||
object VisitTypeExpression(TypeExpressionAst typeExpressionAst) => DefaultVisit(typeExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitMemberExpression(MemberExpressionAst memberExpressionAst);
|
||||
object VisitMemberExpression(MemberExpressionAst memberExpressionAst) => DefaultVisit(memberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitInvokeMemberExpression(InvokeMemberExpressionAst invokeMemberExpressionAst);
|
||||
object VisitInvokeMemberExpression(InvokeMemberExpressionAst invokeMemberExpressionAst) => DefaultVisit(invokeMemberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitArrayExpression(ArrayExpressionAst arrayExpressionAst);
|
||||
object VisitArrayExpression(ArrayExpressionAst arrayExpressionAst) => DefaultVisit(arrayExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitArrayLiteral(ArrayLiteralAst arrayLiteralAst);
|
||||
object VisitArrayLiteral(ArrayLiteralAst arrayLiteralAst) => DefaultVisit(arrayLiteralAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitHashtable(HashtableAst hashtableAst);
|
||||
object VisitHashtable(HashtableAst hashtableAst) => DefaultVisit(hashtableAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitScriptBlockExpression(ScriptBlockExpressionAst scriptBlockExpressionAst);
|
||||
object VisitScriptBlockExpression(ScriptBlockExpressionAst scriptBlockExpressionAst) => DefaultVisit(scriptBlockExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Paren")]
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "paren")]
|
||||
object VisitParenExpression(ParenExpressionAst parenExpressionAst);
|
||||
object VisitParenExpression(ParenExpressionAst parenExpressionAst) => DefaultVisit(parenExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitExpandableStringExpression(ExpandableStringExpressionAst expandableStringExpressionAst);
|
||||
object VisitExpandableStringExpression(ExpandableStringExpressionAst expandableStringExpressionAst) => DefaultVisit(expandableStringExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitIndexExpression(IndexExpressionAst indexExpressionAst);
|
||||
object VisitIndexExpression(IndexExpressionAst indexExpressionAst) => DefaultVisit(indexExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitAttributedExpression(AttributedExpressionAst attributedExpressionAst);
|
||||
object VisitAttributedExpression(AttributedExpressionAst attributedExpressionAst) => DefaultVisit(attributedExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitBlockStatement(BlockStatementAst blockStatementAst);
|
||||
object VisitBlockStatement(BlockStatementAst blockStatementAst) => DefaultVisit(blockStatementAst);
|
||||
|
||||
#endregion Expressions
|
||||
}
|
||||
@@ -150,28 +203,26 @@ namespace System.Management.Automation.Language
|
||||
/// <summary/>
|
||||
public interface ICustomAstVisitor2 : ICustomAstVisitor
|
||||
{
|
||||
private object DefaultVisit(Ast ast) => null;
|
||||
/// <summary/>
|
||||
object VisitTypeDefinition(TypeDefinitionAst typeDefinitionAst) => DefaultVisit(typeDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitTypeDefinition(TypeDefinitionAst typeDefinitionAst);
|
||||
object VisitPropertyMember(PropertyMemberAst propertyMemberAst) => DefaultVisit(propertyMemberAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitPropertyMember(PropertyMemberAst propertyMemberAst);
|
||||
object VisitFunctionMember(FunctionMemberAst functionMemberAst) => DefaultVisit(functionMemberAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitFunctionMember(FunctionMemberAst functionMemberAst);
|
||||
object VisitBaseCtorInvokeMemberExpression(BaseCtorInvokeMemberExpressionAst baseCtorInvokeMemberExpressionAst) => DefaultVisit(baseCtorInvokeMemberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitBaseCtorInvokeMemberExpression(BaseCtorInvokeMemberExpressionAst baseCtorInvokeMemberExpressionAst);
|
||||
object VisitUsingStatement(UsingStatementAst usingStatement) => DefaultVisit(usingStatement);
|
||||
|
||||
/// <summary/>
|
||||
object VisitUsingStatement(UsingStatementAst usingStatement);
|
||||
object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) => DefaultVisit(configurationDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitDynamicKeywordStatement(DynamicKeywordStatementAst dynamicKeywordAst);
|
||||
object VisitDynamicKeywordStatement(DynamicKeywordStatementAst dynamicKeywordAst) => DefaultVisit(dynamicKeywordAst);
|
||||
|
||||
/// <summary/>
|
||||
object VisitTernaryExpression(TernaryExpressionAst ternaryExpressionAst) => DefaultVisit(ternaryExpressionAst);
|
||||
@@ -567,113 +618,169 @@ namespace System.Management.Automation.Language
|
||||
public abstract class DefaultCustomAstVisitor : ICustomAstVisitor
|
||||
{
|
||||
/// <summary/>
|
||||
public virtual object VisitErrorStatement(ErrorStatementAst errorStatementAst) { return null; }
|
||||
public virtual object DefaultVisit(Ast ast) => null;
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitErrorExpression(ErrorExpressionAst errorExpressionAst) { return null; }
|
||||
public virtual object VisitErrorStatement(ErrorStatementAst errorStatementAst) => DefaultVisit(errorStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitScriptBlock(ScriptBlockAst scriptBlockAst) { return null; }
|
||||
public virtual object VisitErrorExpression(ErrorExpressionAst errorExpressionAst) => DefaultVisit(errorExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitParamBlock(ParamBlockAst paramBlockAst) { return null; }
|
||||
public virtual object VisitScriptBlock(ScriptBlockAst scriptBlockAst) => DefaultVisit(scriptBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitNamedBlock(NamedBlockAst namedBlockAst) { return null; }
|
||||
public virtual object VisitParamBlock(ParamBlockAst paramBlockAst) => DefaultVisit(paramBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitTypeConstraint(TypeConstraintAst typeConstraintAst) { return null; }
|
||||
public virtual object VisitNamedBlock(NamedBlockAst namedBlockAst) => DefaultVisit(namedBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitAttribute(AttributeAst attributeAst) { return null; }
|
||||
public virtual object VisitTypeConstraint(TypeConstraintAst typeConstraintAst) => DefaultVisit(typeConstraintAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitNamedAttributeArgument(NamedAttributeArgumentAst namedAttributeArgumentAst) { return null; }
|
||||
public virtual object VisitAttribute(AttributeAst attributeAst) => DefaultVisit(attributeAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitParameter(ParameterAst parameterAst) { return null; }
|
||||
public virtual object VisitNamedAttributeArgument(NamedAttributeArgumentAst namedAttributeArgumentAst) => DefaultVisit(namedAttributeArgumentAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitStatementBlock(StatementBlockAst statementBlockAst) { return null; }
|
||||
public virtual object VisitParameter(ParameterAst parameterAst) => DefaultVisit(parameterAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitIfStatement(IfStatementAst ifStmtAst) { return null; }
|
||||
public virtual object VisitStatementBlock(StatementBlockAst statementBlockAst) => DefaultVisit(statementBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitTrap(TrapStatementAst trapStatementAst) { return null; }
|
||||
public virtual object VisitIfStatement(IfStatementAst ifStmtAst) => DefaultVisit(ifStmtAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitSwitchStatement(SwitchStatementAst switchStatementAst) { return null; }
|
||||
public virtual object VisitTrap(TrapStatementAst trapStatementAst) => DefaultVisit(trapStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitDataStatement(DataStatementAst dataStatementAst) { return null; }
|
||||
public virtual object VisitSwitchStatement(SwitchStatementAst switchStatementAst) => DefaultVisit(switchStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitForEachStatement(ForEachStatementAst forEachStatementAst) { return null; }
|
||||
public virtual object VisitDataStatement(DataStatementAst dataStatementAst) => DefaultVisit(dataStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitDoWhileStatement(DoWhileStatementAst doWhileStatementAst) { return null; }
|
||||
public virtual object VisitForEachStatement(ForEachStatementAst forEachStatementAst) => DefaultVisit(forEachStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitForStatement(ForStatementAst forStatementAst) { return null; }
|
||||
public virtual object VisitDoWhileStatement(DoWhileStatementAst doWhileStatementAst) => DefaultVisit(doWhileStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitWhileStatement(WhileStatementAst whileStatementAst) { return null; }
|
||||
public virtual object VisitForStatement(ForStatementAst forStatementAst) => DefaultVisit(forStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitCatchClause(CatchClauseAst catchClauseAst) { return null; }
|
||||
public virtual object VisitWhileStatement(WhileStatementAst whileStatementAst) => DefaultVisit(whileStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitTryStatement(TryStatementAst tryStatementAst) { return null; }
|
||||
public virtual object VisitCatchClause(CatchClauseAst catchClauseAst) => DefaultVisit(catchClauseAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitBreakStatement(BreakStatementAst breakStatementAst) { return null; }
|
||||
public virtual object VisitTryStatement(TryStatementAst tryStatementAst) => DefaultVisit(tryStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitContinueStatement(ContinueStatementAst continueStatementAst) { return null; }
|
||||
public virtual object VisitBreakStatement(BreakStatementAst breakStatementAst) => DefaultVisit(breakStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitReturnStatement(ReturnStatementAst returnStatementAst) { return null; }
|
||||
public virtual object VisitContinueStatement(ContinueStatementAst continueStatementAst) => DefaultVisit(continueStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitExitStatement(ExitStatementAst exitStatementAst) { return null; }
|
||||
public virtual object VisitReturnStatement(ReturnStatementAst returnStatementAst) => DefaultVisit(returnStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitThrowStatement(ThrowStatementAst throwStatementAst) { return null; }
|
||||
public virtual object VisitExitStatement(ExitStatementAst exitStatementAst) => DefaultVisit(exitStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitDoUntilStatement(DoUntilStatementAst doUntilStatementAst) { return null; }
|
||||
public virtual object VisitThrowStatement(ThrowStatementAst throwStatementAst) => DefaultVisit(throwStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitAssignmentStatement(AssignmentStatementAst assignmentStatementAst) { return null; }
|
||||
public virtual object VisitDoUntilStatement(DoUntilStatementAst doUntilStatementAst) => DefaultVisit(doUntilStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitPipeline(PipelineAst pipelineAst) { return null; }
|
||||
public virtual object VisitAssignmentStatement(AssignmentStatementAst assignmentStatementAst) => DefaultVisit(assignmentStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitCommand(CommandAst commandAst) { return null; }
|
||||
public virtual object VisitPipeline(PipelineAst pipelineAst) => DefaultVisit(pipelineAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitCommandExpression(CommandExpressionAst commandExpressionAst) { return null; }
|
||||
public virtual object VisitCommand(CommandAst commandAst) => DefaultVisit(commandAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitCommandParameter(CommandParameterAst commandParameterAst) { return null; }
|
||||
public virtual object VisitCommandExpression(CommandExpressionAst commandExpressionAst) => DefaultVisit(commandExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitFileRedirection(FileRedirectionAst fileRedirectionAst) { return null; }
|
||||
public virtual object VisitCommandParameter(CommandParameterAst commandParameterAst) => DefaultVisit(commandParameterAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitMergingRedirection(MergingRedirectionAst mergingRedirectionAst) { return null; }
|
||||
public virtual object VisitFileRedirection(FileRedirectionAst fileRedirectionAst) => DefaultVisit(fileRedirectionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitBinaryExpression(BinaryExpressionAst binaryExpressionAst) { return null; }
|
||||
public virtual object VisitMergingRedirection(MergingRedirectionAst mergingRedirectionAst) => DefaultVisit(mergingRedirectionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst) { return null; }
|
||||
public virtual object VisitBinaryExpression(BinaryExpressionAst binaryExpressionAst) => DefaultVisit(binaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { return null; }
|
||||
public virtual object VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst) => DefaultVisit(unaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitConstantExpression(ConstantExpressionAst constantExpressionAst) { return null; }
|
||||
public virtual object VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => DefaultVisit(convertExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitStringConstantExpression(StringConstantExpressionAst stringConstantExpressionAst) { return null; }
|
||||
public virtual object VisitConstantExpression(ConstantExpressionAst constantExpressionAst) => DefaultVisit(constantExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitSubExpression(SubExpressionAst subExpressionAst) { return null; }
|
||||
public virtual object VisitStringConstantExpression(StringConstantExpressionAst stringConstantExpressionAst) => DefaultVisit(stringConstantExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitUsingExpression(UsingExpressionAst usingExpressionAst) { return null; }
|
||||
public virtual object VisitSubExpression(SubExpressionAst subExpressionAst) => DefaultVisit(subExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitVariableExpression(VariableExpressionAst variableExpressionAst) { return null; }
|
||||
public virtual object VisitUsingExpression(UsingExpressionAst usingExpressionAst) => DefaultVisit(usingExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitTypeExpression(TypeExpressionAst typeExpressionAst) { return null; }
|
||||
public virtual object VisitVariableExpression(VariableExpressionAst variableExpressionAst) => DefaultVisit(variableExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitMemberExpression(MemberExpressionAst memberExpressionAst) { return null; }
|
||||
public virtual object VisitTypeExpression(TypeExpressionAst typeExpressionAst) => DefaultVisit(typeExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitInvokeMemberExpression(InvokeMemberExpressionAst invokeMemberExpressionAst) { return null; }
|
||||
public virtual object VisitMemberExpression(MemberExpressionAst memberExpressionAst) => DefaultVisit(memberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitArrayExpression(ArrayExpressionAst arrayExpressionAst) { return null; }
|
||||
public virtual object VisitInvokeMemberExpression(InvokeMemberExpressionAst invokeMemberExpressionAst) => DefaultVisit(invokeMemberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitArrayLiteral(ArrayLiteralAst arrayLiteralAst) { return null; }
|
||||
public virtual object VisitArrayExpression(ArrayExpressionAst arrayExpressionAst) => DefaultVisit(arrayExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitHashtable(HashtableAst hashtableAst) { return null; }
|
||||
public virtual object VisitArrayLiteral(ArrayLiteralAst arrayLiteralAst) => DefaultVisit(arrayLiteralAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitParenExpression(ParenExpressionAst parenExpressionAst) { return null; }
|
||||
public virtual object VisitHashtable(HashtableAst hashtableAst) => DefaultVisit(hashtableAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitExpandableStringExpression(ExpandableStringExpressionAst expandableStringExpressionAst) { return null; }
|
||||
public virtual object VisitParenExpression(ParenExpressionAst parenExpressionAst) => DefaultVisit(parenExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitIndexExpression(IndexExpressionAst indexExpressionAst) { return null; }
|
||||
public virtual object VisitExpandableStringExpression(ExpandableStringExpressionAst expandableStringExpressionAst) => DefaultVisit(expandableStringExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitAttributedExpression(AttributedExpressionAst attributedExpressionAst) { return null; }
|
||||
public virtual object VisitIndexExpression(IndexExpressionAst indexExpressionAst) => DefaultVisit(indexExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitBlockStatement(BlockStatementAst blockStatementAst) { return null; }
|
||||
public virtual object VisitAttributedExpression(AttributedExpressionAst attributedExpressionAst) => DefaultVisit(attributedExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitFunctionDefinition(FunctionDefinitionAst functionDefinitionAst) { return null; }
|
||||
public virtual object VisitBlockStatement(BlockStatementAst blockStatementAst) => DefaultVisit(blockStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitScriptBlockExpression(ScriptBlockExpressionAst scriptBlockExpressionAst) { return null; }
|
||||
public virtual object VisitFunctionDefinition(FunctionDefinitionAst functionDefinitionAst) => DefaultVisit(functionDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitScriptBlockExpression(ScriptBlockExpressionAst scriptBlockExpressionAst) => DefaultVisit(scriptBlockExpressionAst);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -682,22 +789,30 @@ namespace System.Management.Automation.Language
|
||||
public abstract class DefaultCustomAstVisitor2 : DefaultCustomAstVisitor, ICustomAstVisitor2
|
||||
{
|
||||
/// <summary/>
|
||||
public virtual object VisitPropertyMember(PropertyMemberAst propertyMemberAst) { return null; }
|
||||
public virtual object VisitPropertyMember(PropertyMemberAst propertyMemberAst) => DefaultVisit(propertyMemberAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitBaseCtorInvokeMemberExpression(BaseCtorInvokeMemberExpressionAst baseCtorInvokeMemberExpressionAst) { return null; }
|
||||
public virtual object VisitBaseCtorInvokeMemberExpression(BaseCtorInvokeMemberExpressionAst baseCtorInvokeMemberExpressionAst) => DefaultVisit(baseCtorInvokeMemberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitUsingStatement(UsingStatementAst usingStatement) { return null; }
|
||||
public virtual object VisitUsingStatement(UsingStatementAst usingStatement) => DefaultVisit(usingStatement);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationAst) { return null; }
|
||||
public virtual object VisitConfigurationDefinition(ConfigurationDefinitionAst configurationAst) => DefaultVisit(configurationAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitDynamicKeywordStatement(DynamicKeywordStatementAst dynamicKeywordAst) { return null; }
|
||||
public virtual object VisitDynamicKeywordStatement(DynamicKeywordStatementAst dynamicKeywordAst) => DefaultVisit(dynamicKeywordAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitTypeDefinition(TypeDefinitionAst typeDefinitionAst) { return null; }
|
||||
public virtual object VisitTypeDefinition(TypeDefinitionAst typeDefinitionAst) => DefaultVisit(typeDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitFunctionMember(FunctionMemberAst functionMemberAst) { return null; }
|
||||
public virtual object VisitFunctionMember(FunctionMemberAst functionMemberAst) => DefaultVisit(functionMemberAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitTernaryExpression(TernaryExpressionAst ternaryExpressionAst) { return null; }
|
||||
public virtual object VisitTernaryExpression(TernaryExpressionAst ternaryExpressionAst) => DefaultVisit(ternaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual object VisitPipelineChain(PipelineChainAst statementChainAst) { return null; }
|
||||
public virtual object VisitPipelineChain(PipelineChainAst statementChainAst) => DefaultVisit(statementChainAst);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,119 +46,175 @@ namespace System.Management.Automation.Language
|
||||
}
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitErrorStatement(ErrorStatementAst errorStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction DefaultVisit(Ast ast) => AstVisitAction.Continue;
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitErrorExpression(ErrorExpressionAst errorExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitErrorStatement(ErrorStatementAst errorStatementAst) => DefaultVisit(errorStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitScriptBlock(ScriptBlockAst scriptBlockAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitErrorExpression(ErrorExpressionAst errorExpressionAst) => DefaultVisit(errorExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitScriptBlock(ScriptBlockAst scriptBlockAst) => DefaultVisit(scriptBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Param")]
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "param")]
|
||||
public virtual AstVisitAction VisitParamBlock(ParamBlockAst paramBlockAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitParamBlock(ParamBlockAst paramBlockAst) => DefaultVisit(paramBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitNamedBlock(NamedBlockAst namedBlockAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitNamedBlock(NamedBlockAst namedBlockAst) => DefaultVisit(namedBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitTypeConstraint(TypeConstraintAst typeConstraintAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitTypeConstraint(TypeConstraintAst typeConstraintAst) => DefaultVisit(typeConstraintAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitAttribute(AttributeAst attributeAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitAttribute(AttributeAst attributeAst) => DefaultVisit(attributeAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitParameter(ParameterAst parameterAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitParameter(ParameterAst parameterAst) => DefaultVisit(parameterAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitTypeExpression(TypeExpressionAst typeExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitTypeExpression(TypeExpressionAst typeExpressionAst) => DefaultVisit(typeExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitFunctionDefinition(FunctionDefinitionAst functionDefinitionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitFunctionDefinition(FunctionDefinitionAst functionDefinitionAst) => DefaultVisit(functionDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitStatementBlock(StatementBlockAst statementBlockAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitStatementBlock(StatementBlockAst statementBlockAst) => DefaultVisit(statementBlockAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitIfStatement(IfStatementAst ifStmtAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitIfStatement(IfStatementAst ifStmtAst) => DefaultVisit(ifStmtAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitTrap(TrapStatementAst trapStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitTrap(TrapStatementAst trapStatementAst) => DefaultVisit(trapStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitSwitchStatement(SwitchStatementAst switchStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitSwitchStatement(SwitchStatementAst switchStatementAst) => DefaultVisit(switchStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitDataStatement(DataStatementAst dataStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitDataStatement(DataStatementAst dataStatementAst) => DefaultVisit(dataStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitForEachStatement(ForEachStatementAst forEachStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitForEachStatement(ForEachStatementAst forEachStatementAst) => DefaultVisit(forEachStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitDoWhileStatement(DoWhileStatementAst doWhileStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitDoWhileStatement(DoWhileStatementAst doWhileStatementAst) => DefaultVisit(doWhileStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitForStatement(ForStatementAst forStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitForStatement(ForStatementAst forStatementAst) => DefaultVisit(forStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitWhileStatement(WhileStatementAst whileStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitWhileStatement(WhileStatementAst whileStatementAst) => DefaultVisit(whileStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitCatchClause(CatchClauseAst catchClauseAst) => DefaultVisit(catchClauseAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitTryStatement(TryStatementAst tryStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitTryStatement(TryStatementAst tryStatementAst) => DefaultVisit(tryStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitBreakStatement(BreakStatementAst breakStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitBreakStatement(BreakStatementAst breakStatementAst) => DefaultVisit(breakStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitContinueStatement(ContinueStatementAst continueStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitContinueStatement(ContinueStatementAst continueStatementAst) => DefaultVisit(continueStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitReturnStatement(ReturnStatementAst returnStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitReturnStatement(ReturnStatementAst returnStatementAst) => DefaultVisit(returnStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitExitStatement(ExitStatementAst exitStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitExitStatement(ExitStatementAst exitStatementAst) => DefaultVisit(exitStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitThrowStatement(ThrowStatementAst throwStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitThrowStatement(ThrowStatementAst throwStatementAst) => DefaultVisit(throwStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitDoUntilStatement(DoUntilStatementAst doUntilStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitDoUntilStatement(DoUntilStatementAst doUntilStatementAst) => DefaultVisit(doUntilStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitAssignmentStatement(AssignmentStatementAst assignmentStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitAssignmentStatement(AssignmentStatementAst assignmentStatementAst) => DefaultVisit(assignmentStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitPipeline(PipelineAst pipelineAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitPipeline(PipelineAst pipelineAst) => DefaultVisit(pipelineAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitCommand(CommandAst commandAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitCommand(CommandAst commandAst) => DefaultVisit(commandAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitCommandExpression(CommandExpressionAst commandExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitCommandExpression(CommandExpressionAst commandExpressionAst) => DefaultVisit(commandExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitCommandParameter(CommandParameterAst commandParameterAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitCommandParameter(CommandParameterAst commandParameterAst) => DefaultVisit(commandParameterAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitMergingRedirection(MergingRedirectionAst redirectionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitMergingRedirection(MergingRedirectionAst redirectionAst) => DefaultVisit(redirectionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitFileRedirection(FileRedirectionAst redirectionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitFileRedirection(FileRedirectionAst redirectionAst) => DefaultVisit(redirectionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitBinaryExpression(BinaryExpressionAst binaryExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitBinaryExpression(BinaryExpressionAst binaryExpressionAst) => DefaultVisit(binaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitUnaryExpression(UnaryExpressionAst unaryExpressionAst) => DefaultVisit(unaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitConvertExpression(ConvertExpressionAst convertExpressionAst) => DefaultVisit(convertExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitConstantExpression(ConstantExpressionAst constantExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitConstantExpression(ConstantExpressionAst constantExpressionAst) => DefaultVisit(constantExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitStringConstantExpression(StringConstantExpressionAst stringConstantExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitStringConstantExpression(StringConstantExpressionAst stringConstantExpressionAst) => DefaultVisit(stringConstantExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "SubExpression")]
|
||||
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "subExpression")]
|
||||
public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitSubExpression(SubExpressionAst subExpressionAst) => DefaultVisit(subExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitUsingExpression(UsingExpressionAst usingExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitUsingExpression(UsingExpressionAst usingExpressionAst) => DefaultVisit(usingExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitVariableExpression(VariableExpressionAst variableExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitVariableExpression(VariableExpressionAst variableExpressionAst) => DefaultVisit(variableExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitMemberExpression(MemberExpressionAst memberExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitMemberExpression(MemberExpressionAst memberExpressionAst) => DefaultVisit(memberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitInvokeMemberExpression(InvokeMemberExpressionAst methodCallAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitInvokeMemberExpression(InvokeMemberExpressionAst methodCallAst) => DefaultVisit(methodCallAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitArrayExpression(ArrayExpressionAst arrayExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitArrayExpression(ArrayExpressionAst arrayExpressionAst) => DefaultVisit(arrayExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitArrayLiteral(ArrayLiteralAst arrayLiteralAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitArrayLiteral(ArrayLiteralAst arrayLiteralAst) => DefaultVisit(arrayLiteralAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitHashtable(HashtableAst hashtableAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitHashtable(HashtableAst hashtableAst) => DefaultVisit(hashtableAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitScriptBlockExpression(ScriptBlockExpressionAst scriptBlockExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitScriptBlockExpression(ScriptBlockExpressionAst scriptBlockExpressionAst) => DefaultVisit(scriptBlockExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Paren")]
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "paren")]
|
||||
public virtual AstVisitAction VisitParenExpression(ParenExpressionAst parenExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitParenExpression(ParenExpressionAst parenExpressionAst) => DefaultVisit(parenExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitExpandableStringExpression(ExpandableStringExpressionAst expandableStringExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitExpandableStringExpression(ExpandableStringExpressionAst expandableStringExpressionAst) => DefaultVisit(expandableStringExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitIndexExpression(IndexExpressionAst indexExpressionAst) => DefaultVisit(indexExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitAttributedExpression(AttributedExpressionAst attributedExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitAttributedExpression(AttributedExpressionAst attributedExpressionAst) => DefaultVisit(attributedExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitBlockStatement(BlockStatementAst blockStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitBlockStatement(BlockStatementAst blockStatementAst) => DefaultVisit(blockStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitNamedAttributeArgument(NamedAttributeArgumentAst namedAttributeArgumentAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitNamedAttributeArgument(NamedAttributeArgumentAst namedAttributeArgumentAst) => DefaultVisit(namedAttributeArgumentAst);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -167,31 +223,31 @@ namespace System.Management.Automation.Language
|
||||
public abstract class AstVisitor2 : AstVisitor
|
||||
{
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitTypeDefinition(TypeDefinitionAst typeDefinitionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitTypeDefinition(TypeDefinitionAst typeDefinitionAst) => DefaultVisit(typeDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitPropertyMember(PropertyMemberAst propertyMemberAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitPropertyMember(PropertyMemberAst propertyMemberAst) => DefaultVisit(propertyMemberAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitFunctionMember(FunctionMemberAst functionMemberAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitFunctionMember(FunctionMemberAst functionMemberAst) => DefaultVisit(functionMemberAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitBaseCtorInvokeMemberExpression(BaseCtorInvokeMemberExpressionAst baseCtorInvokeMemberExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitBaseCtorInvokeMemberExpression(BaseCtorInvokeMemberExpressionAst baseCtorInvokeMemberExpressionAst) => DefaultVisit(baseCtorInvokeMemberExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitUsingStatement(UsingStatementAst usingStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitUsingStatement(UsingStatementAst usingStatementAst) => DefaultVisit(usingStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitConfigurationDefinition(ConfigurationDefinitionAst configurationDefinitionAst) => DefaultVisit(configurationDefinitionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitDynamicKeywordStatement(DynamicKeywordStatementAst dynamicKeywordStatementAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitDynamicKeywordStatement(DynamicKeywordStatementAst dynamicKeywordStatementAst) => DefaultVisit(dynamicKeywordStatementAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitTernaryExpression(TernaryExpressionAst ternaryExpressionAst) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitTernaryExpression(TernaryExpressionAst ternaryExpressionAst) => DefaultVisit(ternaryExpressionAst);
|
||||
|
||||
/// <summary/>
|
||||
public virtual AstVisitAction VisitPipelineChain(PipelineChainAst statementChain) { return AstVisitAction.Continue; }
|
||||
public virtual AstVisitAction VisitPipelineChain(PipelineChainAst statementChain) => DefaultVisit(statementChain);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Licensed under the MIT License.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Management.Automation.Language;
|
||||
using Xunit;
|
||||
|
||||
namespace PSTests.Parallel
|
||||
{
|
||||
internal class MyICustomAstVisitor2 : ICustomAstVisitor2
|
||||
{
|
||||
public object DefaultVisit(Ast ast) => ast.GetType().Name;
|
||||
}
|
||||
|
||||
internal class MyDefaultCustomAstVisitor2 : DefaultCustomAstVisitor2
|
||||
{
|
||||
public override object DefaultVisit(Ast ast) => ast.GetType().Name;
|
||||
}
|
||||
|
||||
internal class MyAstVisitor2 : AstVisitor2
|
||||
{
|
||||
public List<string> Commands { get; }
|
||||
|
||||
public MyAstVisitor2()
|
||||
{
|
||||
Commands = new List<string>();
|
||||
}
|
||||
|
||||
public override AstVisitAction DefaultVisit(Ast ast)
|
||||
{
|
||||
if (ast is CommandAst commandAst && commandAst.CommandElements[0] is StringConstantExpressionAst str)
|
||||
{
|
||||
Commands.Add(str.Value);
|
||||
}
|
||||
|
||||
return AstVisitAction.Continue;
|
||||
}
|
||||
}
|
||||
|
||||
public static class AstDefaultVisitTests
|
||||
{
|
||||
[Fact]
|
||||
public static void TestCustomAstVisitor()
|
||||
{
|
||||
var ast = Parser.ParseInput("a | b", out _, out _);
|
||||
var expected = typeof(NamedBlockAst).Name;
|
||||
|
||||
var myVisitor1 = new MyICustomAstVisitor2();
|
||||
var result1 = ast.EndBlock.Accept(myVisitor1);
|
||||
Assert.Equal(expected, result1);
|
||||
|
||||
var myVisitor2 = new MyDefaultCustomAstVisitor2();
|
||||
var result2 = ast.EndBlock.Accept(myVisitor2);
|
||||
Assert.Equal(expected, result2);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public static void TestAstVisitor()
|
||||
{
|
||||
var ast = Parser.ParseInput("a | b", out _, out _);
|
||||
var myVisitor = new MyAstVisitor2();
|
||||
|
||||
ast.Visit(myVisitor);
|
||||
Assert.Equal(2, myVisitor.Commands.Count);
|
||||
Assert.Equal("a", myVisitor.Commands[0]);
|
||||
Assert.Equal("b", myVisitor.Commands[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user