pub trait SymbolsTableTrait {
Show 13 methods // Required methods fn expression_symbol(&self) -> Vec<(&Symbol, &Value), Global>; fn is_used<S>(&self, symbol: S) -> bool where S: Into<Symbol>; fn use_symbol<S>(&mut self, symbol: S) where S: Into<Symbol>; fn int_value<S>(&self, symbol: S) -> Result<Option<i32>, SymbolError> where S: Into<Symbol>; fn value<S>(&self, symbol: S) -> Result<Option<&Value>, SymbolError> where S: Into<Symbol>; fn counter_value<S>(&self, symbol: S) -> Result<Option<i32>, SymbolError> where S: Into<Symbol>; fn macro_value<S>(&self, symbol: S) -> Result<Option<&Macro>, SymbolError> where S: Into<Symbol>; fn struct_value<S>(&self, symbol: S) -> Result<Option<&Struct>, SymbolError> where S: Into<Symbol>; fn address_value<S>( &self, symbol: S ) -> Result<Option<&PhysicalAddress>, SymbolError> where S: Into<Symbol>; fn remove_symbol<S>( &mut self, symbol: S ) -> Result<Option<Value>, SymbolError> where S: Into<Symbol>; fn assign_symbol_to_value<S, V>( &mut self, symbol: S, value: V ) -> Result<Option<Value>, SymbolError> where S: Into<Symbol>, V: Into<Value>; fn enter_namespace(&mut self, namespace: &str); fn leave_namespace(&mut self) -> Result<Symbol, SymbolError>;
}
Expand description

Public signature of symbols functions TODO add all the other methods

Required Methods§

source

fn expression_symbol(&self) -> Vec<(&Symbol, &Value), Global>

Return the symbols that correspond to integer values

source

fn is_used<S>(&self, symbol: S) -> boolwhere S: Into<Symbol>,

Return true if the symbol has already been used in an expression

source

fn use_symbol<S>(&mut self, symbol: S)where S: Into<Symbol>,

Add a symbol to the list of used symbols

source

fn int_value<S>(&self, symbol: S) -> Result<Option<i32>, SymbolError>where S: Into<Symbol>,

Return the integer value corredponding to this symbol (if any)

source

fn value<S>(&self, symbol: S) -> Result<Option<&Value>, SymbolError>where S: Into<Symbol>,

source

fn counter_value<S>(&self, symbol: S) -> Result<Option<i32>, SymbolError>where S: Into<Symbol>,

source

fn macro_value<S>(&self, symbol: S) -> Result<Option<&Macro>, SymbolError>where S: Into<Symbol>,

source

fn struct_value<S>(&self, symbol: S) -> Result<Option<&Struct>, SymbolError>where S: Into<Symbol>,

source

fn address_value<S>( &self, symbol: S ) -> Result<Option<&PhysicalAddress>, SymbolError>where S: Into<Symbol>,

source

fn remove_symbol<S>(&mut self, symbol: S) -> Result<Option<Value>, SymbolError>where S: Into<Symbol>,

source

fn assign_symbol_to_value<S, V>( &mut self, symbol: S, value: V ) -> Result<Option<Value>, SymbolError>where S: Into<Symbol>, V: Into<Value>,

source

fn enter_namespace(&mut self, namespace: &str)

source

fn leave_namespace(&mut self) -> Result<Symbol, SymbolError>

Implementors§