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
impl AstConverting for SrEmitter
Source§fn push_source_position(
&mut self,
_start: &SourcePosition,
_end: &SourcePosition,
)
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)
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
fn emit_type_map_value_allowing_type_arguments( &mut self, mode: TreeTraversalMode, node: &NodeTypeMapValueAllowingTypeArguments, ) -> Result<TraversalResult, String>
Converts a
NodeTypeMapValueAllowingTypeArguments node.Auto Trait Implementations§
impl Freeze for SrEmitter
impl RefUnwindSafe for SrEmitter
impl Send for SrEmitter
impl Sync for SrEmitter
impl Unpin for SrEmitter
impl UnwindSafe for SrEmitter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more