pub trait TokenExt: ListingElement + Clone + Debug {
    // Required methods
    fn estimated_duration(&self) -> Result<usize, AssemblerError>;
    fn unroll(&self, env: &Env) -> Option<Result<Vec<&Self>, AssemblerError>>;
    fn disassemble_data(&self) -> Result<Listing, String>;
    fn to_bytes_with_options(
        &self,
        option: EnvOptions
    ) -> Result<Vec<u8>, AssemblerError>;

    // Provided methods
    fn number_of_bytes(&self) -> Result<usize, String> { ... }
    fn number_of_bytes_with_context(
        &self,
        table: &mut SymbolsTableCaseDependent
    ) -> Result<usize, String> { ... }
    fn to_bytes(&self) -> Result<Vec<u8>, AssemblerError> { ... }
    fn to_bytes_with_context(
        &self,
        table: &mut SymbolsTableCaseDependent
    ) -> Result<Vec<u8>, AssemblerError> { ... }
    fn is_valid(&self) -> bool { ... }
}
Expand description

Needed methods for the Token defined in cpclib_tokens

Required Methods§

source

fn estimated_duration(&self) -> Result<usize, AssemblerError>

source

fn unroll(&self, env: &Env) -> Option<Result<Vec<&Self>, AssemblerError>>

Unroll the tokens when it represents a loop

source

fn disassemble_data(&self) -> Result<Listing, String>

Generate the listing of opcodes for directives that embed bytes

source

fn to_bytes_with_options( &self, option: EnvOptions ) -> Result<Vec<u8>, AssemblerError>

Provided Methods§

source

fn number_of_bytes(&self) -> Result<usize, String>

source

fn number_of_bytes_with_context( &self, table: &mut SymbolsTableCaseDependent ) -> Result<usize, String>

Return the number of bytes of the token given the provided context

source

fn to_bytes(&self) -> Result<Vec<u8>, AssemblerError>

Dummy version that assemble without taking into account the context TODO find a way to not build a symbol table each time

source

fn to_bytes_with_context( &self, table: &mut SymbolsTableCaseDependent ) -> Result<Vec<u8>, AssemblerError>

Assemble the symbol taking into account some context, but never modify this context

source

fn is_valid(&self) -> bool

Check if the token is valid. We consider a token vlaid if it is possible to assemble it

Implementors§