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 | ); |
| PARAMETER | DESCRIPTION |
|---|---|
parse |
|
target_only |
member parse
DEFINITION
void(Assembler::* parse;
member target_only
DEFINITION
bool target_only;
enum SectionDefinitionType
DEFINITION
enum SectionDefinitionType;
| VALUE | DESCRIPTION |
|---|---|
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 | ); |
| PARAMETER | DESCRIPTION |
|---|---|
target |
The target being used. |
search_path |
The search path for source files. |
defines |
Preprocessor defines. |
method parseprivate
DEFINITION
| void parse | ( | Symbol file_name | ); |
| PARAMETER | DESCRIPTION |
|---|---|
file_name |
method parse_addressconst private
DEFINITION
| std::vector< MemoryMap::Block > parse_address | ( | const StructuredValue * address | ) const; |
| PARAMETER | DESCRIPTION |
|---|---|
address |
| RETURNS | DESCRIPTION |
|---|---|
std::vector< MemoryMap::Block > |
method parse_address_partconst private
DEFINITION
| uint64_t parse_address_part | ( | const Token & token | ) const; |
| PARAMETER | DESCRIPTION |
|---|---|
token |
| RETURNS | DESCRIPTION |
|---|---|
uint64_t |
method parse_assignmentprivate
DEFINITION
| void parse_assignment | ( | Visibility visibility, | |
| const Token & name, | |||
| bool default_only = false | ); |
| PARAMETER | DESCRIPTION |
|---|---|
visibility |
|
name |
|
default_only |
method parse_cpuprivate
DEFINITION
| void parse_cpu | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_defaultprivate
DEFINITION
| void parse_default | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_default_string_encodingprivate
DEFINITION
| void parse_default_string_encoding | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_directiveprivate
DEFINITION
| void parse_directive | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_extensionprivate
DEFINITION
| void parse_extension | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_fill_byteprivate
DEFINITION
| void parse_fill_byte | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_macroprivate
DEFINITION
| void parse_macro | ( | Visibility visibility, | |
| bool default_only = false | ); |
| PARAMETER | DESCRIPTION |
|---|---|
visibility |
|
default_only |
method parse_nameprivate
DEFINITION
| void parse_name | ( | Visibility visibility, | |
| const Token & name, | |||
| bool default_only = false | ); |
| PARAMETER | DESCRIPTION |
|---|---|
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 | ); |
| PARAMETER | DESCRIPTION |
|---|---|
file_name |
The file containing the object code. |
module |
| RETURNS | DESCRIPTION |
|---|---|
std::shared_ptr< Scope > |
The file scope. |
method parse_outputprivate
DEFINITION
| void parse_output | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_pinprivate
DEFINITION
| void parse_pin | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_sectionprivate
DEFINITION
| void parse_section | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_segmentprivate
DEFINITION
| void parse_segment | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_single_addressconst private
DEFINITION
| MemoryMap::Block parse_single_address | ( | const StructuredScalar * address | ) const; |
| PARAMETER | DESCRIPTION |
|---|---|
address |
| RETURNS | DESCRIPTION |
|---|---|
MemoryMap::Block |
method parse_string_encodingprivate
DEFINITION
| void parse_string_encoding | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_symbolprivate
DEFINITION
| void parse_symbol | ( | Visibility visibility, | |
| const Token & name | ); |
| PARAMETER | DESCRIPTION |
|---|---|
visibility |
|
name |
method parse_targetprivate
DEFINITION
| void parse_target | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_target
Parse a target definition from a file.
DEFINITION
| Target parse_target | ( | Symbol name, | |
| Symbol file_name | ); |
| PARAMETER | DESCRIPTION |
|---|---|
name |
The name of the target. |
file_name |
The file containing the target definition. |
| RETURNS | DESCRIPTION |
|---|---|
Target |
The parsed Target. |
method parse_typestatic private
DEFINITION
| static MemoryMap::AccessType parse_type | ( | const Token & type | ); |
| PARAMETER | DESCRIPTION |
|---|---|
type |
| RETURNS | DESCRIPTION |
|---|---|
MemoryMap::AccessType |
method parse_useprivate
DEFINITION
| void parse_use | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method parse_visibilityprivate
DEFINITION
| void parse_visibility | ( | const Token & directive | ); |
| PARAMETER | DESCRIPTION |
|---|---|
directive |
method set_targetprivate
DEFINITION
| void set_target | ( | Target * new_target | ); |
| PARAMETER | DESCRIPTION |
|---|---|
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 | ); |
| PARAMETER | DESCRIPTION |
|---|---|
parse |
|
target_only |
member parse
DEFINITION
void(Assembler::* parse;
member target_only
DEFINITION
bool target_only;