AstVisitor

Trait AstVisitor 

Source
pub trait AstVisitor {
    // Required method
    fn visit(
        &self,
        emitter: &mut dyn AstConverting,
    ) -> Result<TraversalResult, String>;
}
Expand description

The AstVisitor trait is used for implementing the visiting behaviour for each AST node of the Scilla AST. Each node in the AST implements this trait to define how it should be visited during the tree traversal. The visit method is called with an emitter that implements the AstConverting trait, which is responsible for converting the AST to some other form. The visit method returns a Result with a TraversalResult that informs the visitor algorithm how to proceed, or a String in case of an error.

Required Methods§

Source

fn visit( &self, emitter: &mut dyn AstConverting, ) -> Result<TraversalResult, String>

Implementors§

Source§

impl AstVisitor for NodeArgumentPattern

Source§

impl AstVisitor for NodeAtomicExpression

Source§

impl AstVisitor for NodeByteStr

Source§

impl AstVisitor for NodeComponentDefinition

Source§

impl AstVisitor for NodeComponentId

Source§

impl AstVisitor for NodeFullExpression

Source§

impl AstVisitor for NodeImportedName

Source§

impl AstVisitor for NodeLibrarySingleDefinition

Source§

impl AstVisitor for NodeMessageEntry

Source§

impl AstVisitor for NodeMetaIdentifier

Source§

impl AstVisitor for NodePattern

Source§

impl AstVisitor for NodeRemoteFetchStatement

Source§

impl AstVisitor for NodeScillaType

Source§

impl AstVisitor for NodeStatement

Source§

impl AstVisitor for NodeTypeAlternativeClause

Source§

impl AstVisitor for NodeTypeArgument

Source§

impl AstVisitor for NodeTypeMapKey

Source§

impl AstVisitor for NodeTypeMapValue

Source§

impl AstVisitor for NodeTypeMapValueAllowingTypeArguments

Source§

impl AstVisitor for NodeTypeMapValueArguments

Source§

impl AstVisitor for NodeTypeNameIdentifier

Source§

impl AstVisitor for NodeValueLiteral

Source§

impl AstVisitor for NodeVariableIdentifier

Source§

impl AstVisitor for NodeAddressType

Source§

impl AstVisitor for NodeAddressTypeField

Source§

impl AstVisitor for NodeBlockchainFetchArguments

Source§

impl AstVisitor for NodeBuiltinArguments

Source§

impl AstVisitor for NodeComponentBody

Source§

impl AstVisitor for NodeComponentParameters

Source§

impl AstVisitor for NodeContractDefinition

Source§

impl AstVisitor for NodeContractField

Source§

impl AstVisitor for NodeContractTypeArguments

Source§

impl AstVisitor for NodeImportDeclarations

Source§

impl AstVisitor for NodeLibraryDefinition

Source§

impl AstVisitor for NodeMapAccess

Source§

impl AstVisitor for NodeParameterPair

Source§

impl AstVisitor for NodePatternMatchClause

Source§

impl AstVisitor for NodePatternMatchExpressionClause

Source§

impl AstVisitor for NodeProcedureDefinition

Source§

impl AstVisitor for NodeProgram

Source§

impl AstVisitor for NodeStatementBlock

Source§

impl AstVisitor for NodeTransitionDefinition

Source§

impl AstVisitor for NodeTypeAnnotation

Source§

impl AstVisitor for NodeTypeMapEntry

Source§

impl AstVisitor for NodeTypedIdentifier

Source§

impl AstVisitor for NodeWithConstraint

Source§

impl<T: AstVisitor> AstVisitor for WithMetaData<T>