SrEmitter

Struct SrEmitter 

Source
pub struct SrEmitter { /* private fields */ }
Expand description

The SrEmitter struct is used for bookkeeping during the conversion of a Scilla AST to a simplified representation. It implements the AstConverting trait, which is a generic trait for AST conversions.

Implementations§

Trait Implementations§

Source§

impl AstConverting for SrEmitter

Source§

fn push_source_position( &mut self, _start: &SourcePosition, _end: &SourcePosition, )

Pushes the source position of the current node onto a stack.
Source§

fn pop_source_position(&mut self)

Pops the source position of the current node from the stack.
Source§

fn emit_byte_str( &mut self, _mode: TreeTraversalMode, _node: &NodeByteStr, ) -> Result<TraversalResult, String>

Converts a NodeByteStr node.
Source§

fn emit_type_name_identifier( &mut self, mode: TreeTraversalMode, node: &NodeTypeNameIdentifier, ) -> Result<TraversalResult, String>

Converts a NodeTypeNameIdentifier node.
Source§

fn emit_imported_name( &mut self, _mode: TreeTraversalMode, _node: &NodeImportedName, ) -> Result<TraversalResult, String>

Converts a NodeImportedName node.
Source§

fn emit_import_declarations( &mut self, _mode: TreeTraversalMode, _node: &NodeImportDeclarations, ) -> Result<TraversalResult, String>

Converts a NodeImportDeclarations node.
Source§

fn emit_meta_identifier( &mut self, _mode: TreeTraversalMode, _node: &NodeMetaIdentifier, ) -> Result<TraversalResult, String>

Converts a NodeMetaIdentifier node.
Source§

fn emit_variable_identifier( &mut self, _mode: TreeTraversalMode, _node: &NodeVariableIdentifier, ) -> Result<TraversalResult, String>

Converts a NodeVariableIdentifier node.
Source§

fn emit_builtin_arguments( &mut self, _mode: TreeTraversalMode, _node: &NodeBuiltinArguments, ) -> Result<TraversalResult, String>

Converts a NodeBuiltinArguments node.
Source§

fn emit_type_map_key( &mut self, _mode: TreeTraversalMode, node: &NodeTypeMapKey, ) -> Result<TraversalResult, String>

Converts a NodeTypeMapKey node.
Source§

fn emit_type_map_value( &mut self, mode: TreeTraversalMode, node: &NodeTypeMapValue, ) -> Result<TraversalResult, String>

Converts a NodeTypeMapValue node.
Source§

fn emit_type_argument( &mut self, _mode: TreeTraversalMode, node: &NodeTypeArgument, ) -> Result<TraversalResult, String>

Converts a NodeTypeArgument node.
Source§

fn emit_scilla_type( &mut self, _mode: TreeTraversalMode, node: &NodeScillaType, ) -> Result<TraversalResult, String>

Converts a NodeScillaType node.
Source§

fn emit_type_map_entry( &mut self, _mode: TreeTraversalMode, _node: &NodeTypeMapEntry, ) -> Result<TraversalResult, String>

Converts a NodeTypeMapEntry node.
Source§

fn emit_address_type_field( &mut self, _mode: TreeTraversalMode, node: &NodeAddressTypeField, ) -> Result<TraversalResult, String>

Converts a NodeAddressTypeField node.
Source§

fn emit_address_type( &mut self, _mode: TreeTraversalMode, node: &NodeAddressType, ) -> Result<TraversalResult, String>

Converts a NodeAddressType node.
Source§

fn emit_full_expression( &mut self, _mode: TreeTraversalMode, _node: &NodeFullExpression, ) -> Result<TraversalResult, String>

Converts a NodeFullExpression node.
Source§

fn emit_message_entry( &mut self, _mode: TreeTraversalMode, _node: &NodeMessageEntry, ) -> Result<TraversalResult, String>

Converts a NodeMessageEntry node.
Source§

fn emit_pattern_match_expression_clause( &mut self, _mode: TreeTraversalMode, _node: &NodePatternMatchExpressionClause, ) -> Result<TraversalResult, String>

Converts a NodePatternMatchExpressionClause node.
Source§

fn emit_atomic_expression( &mut self, _mode: TreeTraversalMode, _node: &NodeAtomicExpression, ) -> Result<TraversalResult, String>

Converts a NodeAtomicExpression node.
Source§

fn emit_contract_type_arguments( &mut self, _mode: TreeTraversalMode, _node: &NodeContractTypeArguments, ) -> Result<TraversalResult, String>

Converts a NodeContractTypeArguments node.
Source§

fn emit_value_literal( &mut self, _mode: TreeTraversalMode, _node: &NodeValueLiteral, ) -> Result<TraversalResult, String>

Converts a NodeValueLiteral node.
Source§

fn emit_map_access( &mut self, _mode: TreeTraversalMode, _node: &NodeMapAccess, ) -> Result<TraversalResult, String>

Converts a NodeMapAccess node.
Source§

fn emit_pattern( &mut self, _mode: TreeTraversalMode, _node: &NodePattern, ) -> Result<TraversalResult, String>

Converts a NodePattern node.
Source§

fn emit_argument_pattern( &mut self, _mode: TreeTraversalMode, _node: &NodeArgumentPattern, ) -> Result<TraversalResult, String>

Converts a NodeArgumentPattern node.
Source§

fn emit_pattern_match_clause( &mut self, _mode: TreeTraversalMode, _node: &NodePatternMatchClause, ) -> Result<TraversalResult, String>

Converts a NodePatternMatchClause node.
Source§

fn emit_blockchain_fetch_arguments( &mut self, _mode: TreeTraversalMode, _node: &NodeBlockchainFetchArguments, ) -> Result<TraversalResult, String>

Converts a NodeBlockchainFetchArguments node.
Source§

fn emit_statement( &mut self, _mode: TreeTraversalMode, _node: &NodeStatement, ) -> Result<TraversalResult, String>

Converts a NodeStatement node.
Source§

fn emit_remote_fetch_statement( &mut self, _mode: TreeTraversalMode, _node: &NodeRemoteFetchStatement, ) -> Result<TraversalResult, String>

Converts a NodeRemoteFetchStatement node.
Source§

fn emit_component_id( &mut self, _mode: TreeTraversalMode, node: &NodeComponentId, ) -> Result<TraversalResult, String>

Converts a NodeComponentId node.
Source§

fn emit_component_parameters( &mut self, mode: TreeTraversalMode, node: &NodeComponentParameters, ) -> Result<TraversalResult, String>

Converts a NodeComponentParameters node.
Source§

fn emit_parameter_pair( &mut self, _mode: TreeTraversalMode, _node: &NodeParameterPair, ) -> Result<TraversalResult, String>

Converts a NodeParameterPair node.
Source§

fn emit_component_body( &mut self, _mode: TreeTraversalMode, _node: &NodeComponentBody, ) -> Result<TraversalResult, String>

Converts a NodeComponentBody node.
Source§

fn emit_statement_block( &mut self, _node: TreeTraversalMode, _mode: &NodeStatementBlock, ) -> Result<TraversalResult, String>

Converts a NodeStatementBlock node.
Source§

fn emit_typed_identifier( &mut self, _mode: TreeTraversalMode, node: &NodeTypedIdentifier, ) -> Result<TraversalResult, String>

Converts a NodeTypedIdentifier node.
Source§

fn emit_type_annotation( &mut self, _mode: TreeTraversalMode, _node: &NodeTypeAnnotation, ) -> Result<TraversalResult, String>

Converts a NodeTypeAnnotation node.
Source§

fn emit_program( &mut self, _mode: TreeTraversalMode, _node: &NodeProgram, ) -> Result<TraversalResult, String>

Converts a NodeProgram node.
Source§

fn emit_library_definition( &mut self, _mode: TreeTraversalMode, _node: &NodeLibraryDefinition, ) -> Result<TraversalResult, String>

Converts a NodeLibraryDefinition node.
Source§

fn emit_library_single_definition( &mut self, _mode: TreeTraversalMode, _node: &NodeLibrarySingleDefinition, ) -> Result<TraversalResult, String>

Converts a NodeLibrarySingleDefinition node.
Source§

fn emit_contract_definition( &mut self, _mode: TreeTraversalMode, node: &NodeContractDefinition, ) -> Result<TraversalResult, String>

Converts a NodeContractDefinition node.
Source§

fn emit_contract_field( &mut self, _mode: TreeTraversalMode, node: &NodeContractField, ) -> Result<TraversalResult, String>

Converts a NodeContractField node.
Source§

fn emit_with_constraint( &mut self, _mode: TreeTraversalMode, _node: &NodeWithConstraint, ) -> Result<TraversalResult, String>

Converts a NodeWithConstraint node.
Source§

fn emit_component_definition( &mut self, _mode: TreeTraversalMode, _node: &NodeComponentDefinition, ) -> Result<TraversalResult, String>

Converts a NodeComponentDefinition node.
Source§

fn emit_procedure_definition( &mut self, _mode: TreeTraversalMode, _node: &NodeProcedureDefinition, ) -> Result<TraversalResult, String>

Converts a NodeProcedureDefinition node.
Source§

fn emit_transition_definition( &mut self, _mode: TreeTraversalMode, node: &NodeTransitionDefinition, ) -> Result<TraversalResult, String>

Converts a NodeTransitionDefinition node.
Source§

fn emit_type_alternative_clause( &mut self, _mode: TreeTraversalMode, _node: &NodeTypeAlternativeClause, ) -> Result<TraversalResult, String>

Converts a NodeTypeAlternativeClause node.
Source§

fn emit_type_map_value_arguments( &mut self, mode: TreeTraversalMode, node: &NodeTypeMapValueArguments, ) -> Result<TraversalResult, String>

Converts a NodeTypeMapValueArguments node.
Source§

fn emit_type_map_value_allowing_type_arguments( &mut self, mode: TreeTraversalMode, node: &NodeTypeMapValueAllowingTypeArguments, ) -> Result<TraversalResult, String>

Converts a NodeTypeMapValueAllowingTypeArguments node.
Source§

impl Default for SrEmitter

Source§

fn default() -> SrEmitter

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.