Skip to content

Assembler

INCLUDE FILE
#include "Assembler.h"

class Assembler

This class parses source files or target definitions into entities.

DEFINITION
class Assembler;

class Directiveprivate

DEFINITION
class Directive;

constructor Directive

DEFINITION
Directive ( void(Assembler::*)(const Token &directive)  parse,
bool  target_only = false );
PARAMETERDESCRIPTION
parse
target_only

member parse

DEFINITION
void(Assembler::* parse;

member target_only

DEFINITION
bool  target_only;

enum SectionDefinitionType

DEFINITION
enum SectionDefinitionType;
VALUEDESCRIPTION
SECTION_DEFINE
SECTION_EXTEND
SECTION_OVERRIDE

constructor Assembler

Construct an Assembler with the given target, search path, and defines.

DEFINITION
Assembler ( Target * target,
const SearchPath & search_path,
const std::unordered_set< Symbol > & defines );
PARAMETERDESCRIPTION
target

The target being used.

search_path

The search path for source files.

defines

Preprocessor defines.

method parseprivate

DEFINITION
void  parse ( Symbol  file_name );
PARAMETERDESCRIPTION
file_name

method parse_addressconst private

DEFINITION
std::vector< MemoryMap::Block >  parse_address ( const StructuredValue * address ) const;
PARAMETERDESCRIPTION
address
RETURNSDESCRIPTION
std::vector< MemoryMap::Block >

method parse_address_partconst private

DEFINITION
uint64_t  parse_address_part ( const Token & token ) const;
PARAMETERDESCRIPTION
token
RETURNSDESCRIPTION
uint64_t

method parse_assignmentprivate

DEFINITION
void  parse_assignment ( Visibility  visibility,
const Token & name,
bool  default_only = false );
PARAMETERDESCRIPTION
visibility
name
default_only

method parse_cpuprivate

DEFINITION
void  parse_cpu ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_defaultprivate

DEFINITION
void  parse_default ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_default_string_encodingprivate

DEFINITION
void  parse_default_string_encoding ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_directiveprivate

DEFINITION
void  parse_directive ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_extensionprivate

DEFINITION
void  parse_extension ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_fill_byteprivate

DEFINITION
void  parse_fill_byte ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_macroprivate

DEFINITION
void  parse_macro ( Visibility  visibility,
bool  default_only = false );
PARAMETERDESCRIPTION
visibility
default_only

method parse_nameprivate

DEFINITION
void  parse_name ( Visibility  visibility,
const Token & name,
bool  default_only = false );
PARAMETERDESCRIPTION
visibility
name
default_only

method parse_object_file

Parse an object file.

DEFINITION
std::shared_ptr< Scope >  parse_object_file ( Symbol  file_name,
Module * module );
PARAMETERDESCRIPTION
file_name

The file containing the object code.

module
RETURNSDESCRIPTION
std::shared_ptr< Scope >

The file scope.

method parse_outputprivate

DEFINITION
void  parse_output ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_pinprivate

DEFINITION
void  parse_pin ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_sectionprivate

DEFINITION
void  parse_section ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_segmentprivate

DEFINITION
void  parse_segment ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_single_addressconst private

DEFINITION
MemoryMap::Block  parse_single_address ( const StructuredScalar * address ) const;
PARAMETERDESCRIPTION
address
RETURNSDESCRIPTION
MemoryMap::Block

method parse_string_encodingprivate

DEFINITION
void  parse_string_encoding ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_symbolprivate

DEFINITION
void  parse_symbol ( Visibility  visibility,
const Token & name );
PARAMETERDESCRIPTION
visibility
name

method parse_targetprivate

DEFINITION
void  parse_target ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_target

Parse a target definition from a file.

DEFINITION
Target  parse_target ( Symbol  name,
Symbol  file_name );
PARAMETERDESCRIPTION
name

The name of the target.

file_name

The file containing the target definition.

RETURNSDESCRIPTION
Target

The parsed Target.

method parse_typestatic private

DEFINITION
static MemoryMap::AccessType  parse_type ( const Token & type );
PARAMETERDESCRIPTION
type
RETURNSDESCRIPTION
MemoryMap::AccessType

method parse_useprivate

DEFINITION
void  parse_use ( const Token & directive );
PARAMETERDESCRIPTION
directive

method parse_visibilityprivate

DEFINITION
void  parse_visibility ( const Token & directive );
PARAMETERDESCRIPTION
directive

method set_targetprivate

DEFINITION
void  set_target ( Target * new_target );
PARAMETERDESCRIPTION
new_target

member cpuprivate

DEFINITION
const CPU * cpu;

member current_sectionprivate

DEFINITION
Symbol  current_section;

member current_visibilityprivate

DEFINITION
Visibility  current_visibility;

member directivesstatic private

DEFINITION
static const std::unordered_map< Token, Directive >  directives;

member file_scopeprivate

DEFINITION
std::shared_ptr< Scope >  file_scope;

member had_cpuprivate

DEFINITION
bool  had_cpu;

member moduleprivate

DEFINITION
Module * module;

member parsed_targetprivate

DEFINITION
Target  parsed_target;

member parsing_targetprivate

DEFINITION
bool  parsing_target;

member section_namesprivate

DEFINITION
std::unordered_set< Token >  section_names;

member segment_namesprivate

DEFINITION
std::unordered_set< Token >  segment_names;

member targetprivate

DEFINITION
Target * target;

member token_addressstatic private

DEFINITION
static const Token  token_address;

member token_address_namestatic private

DEFINITION
static const Token  token_address_name;

member token_alignstatic private

DEFINITION
static const Token  token_align;

member token_cpustatic private

DEFINITION
static const Token  token_cpu;

member token_data_endstatic

DEFINITION
static const Token  token_data_end;

member token_data_sizestatic

DEFINITION
static const Token  token_data_size;

member token_data_startstatic

DEFINITION
static const Token  token_data_start;

member token_defaultstatic private

DEFINITION
static const Token  token_default;

member token_default_string_encodingstatic private

DEFINITION
static const Token  token_default_string_encoding;

member token_extendstatic private

DEFINITION
static const Token  token_extend;

member token_extensionstatic private

DEFINITION
static const Token  token_extension;

member token_fill_bytestatic private

DEFINITION
static const Token  token_fill_byte;

member token_macrostatic private

DEFINITION
static const Token  token_macro;

member token_outputstatic private

DEFINITION
static const Token  token_output;

member token_overridestatic private

DEFINITION
static const Token  token_override;

member token_pinstatic private

DEFINITION
static const Token  token_pin;

member token_read_onlystatic private

DEFINITION
static const Token  token_read_only;

member token_read_writestatic private

DEFINITION
static const Token  token_read_write;

member token_reservestatic private

DEFINITION
static const Token  token_reserve;

member token_reserve_onlystatic private

DEFINITION
static const Token  token_reserve_only;

member token_sectionstatic private

DEFINITION
static const Token  token_section;

member token_segmentstatic private

DEFINITION
static const Token  token_segment;

member token_segment_namestatic private

DEFINITION
static const Token  token_segment_name;

member token_string_encodingstatic private

DEFINITION
static const Token  token_string_encoding;

member token_targetstatic private

DEFINITION
static const Token  token_target;

member token_typestatic private

DEFINITION
static const Token  token_type;

member token_usestatic private

DEFINITION
static const Token  token_use;

member token_usedstatic private

DEFINITION
static const Token  token_used;

member token_usesstatic private

DEFINITION
static const Token  token_uses;

member token_visibilitystatic private

DEFINITION
static const Token  token_visibility;

member tokenizerprivate

DEFINITION
FileTokenizer  tokenizer;

class Directiveprivate

DEFINITION
class Directive;

constructor Directive

DEFINITION
Directive ( void(Assembler::*)(const Token &directive)  parse,
bool  target_only = false );
PARAMETERDESCRIPTION
parse
target_only

member parse

DEFINITION
void(Assembler::* parse;

member target_only

DEFINITION
bool  target_only;