- Symbol_Salignsize
int Symbol_Salignsize(Symbol s)
Return alignment of symbol.
- Symbol_Sisdead
bool Symbol_Sisdead(Symbol s, bool anyInlineAsm)
Aver if Symbol is not only merely dead, but really most sincerely dead.
- Symbol_isAffected
bool Symbol_isAffected(Symbol s)
Determine if s may be affected if an assignment is done through
a pointer.
- Symbol_needThis
int Symbol_needThis(Symbol s)
Determine if symbol needs a 'this' pointer.
- baseclass_find
baseclass_t* baseclass_find(baseclass_t* bm, Classsym* sbase)
Look down baseclass list to find sbase.
- baseclass_nitems
int baseclass_nitems(baseclass_t* b)
Calculate number of baseclasses in list.
- freesymtab
void freesymtab(Symbol** stab, SYMIDX n1, SYMIDX n2)
Free up the symbols stab[n1 .. n2]
- lookupsym
Symbol* lookupsym(const(char)* p)
Search for symbol in multiple symbol tables,
starting with most recently nested one.
Input:
p . identifier string
- meminit_free
void meminit_free(meminit_t* m)
Delete symbol from symbol table, taking care to delete
all children of a symbol.
Make sure there are no more forward references (labels, tags).
Input:
pointer to a symbol
- symbol_add
SYMIDX symbol_add(Symbol* s)
Add symbol to current symbol array.
- symbol_calloc
Symbol* symbol_calloc(const(char)[] id)
- symbol_check
void symbol_check(Symbol* s)
Check integrity of symbol data structure.
- symbol_copy
Symbol* symbol_copy(Symbol* s)
Create a copy of a symbol.
- symbol_dehydrate
void symbol_dehydrate(Symbol** ps)
- symbol_func
void symbol_func(Symbol* s)
Add in the variants for a function symbol.
- symbol_funcalias
Funcsym* symbol_funcalias(Funcsym* sf)
Create a symbol that is an alias to another function symbol.
- symbol_genauto
Symbol* symbol_genauto(type* t)
Generate an auto symbol, and add it to the symbol table.
- symbol_genauto
Symbol* symbol_genauto(elem* e)
Generate symbol into which we can copy the contents of expression e.
- symbol_genauto
Symbol* symbol_genauto(tym_t ty)
Generate symbol into which we can copy the contents of expression e.
- symbol_generate
Symbol* symbol_generate(SC sclass, type* t)
Create a symbol, give it a name, storage class and type.
- symbol_hydrate
Symbol* symbol_hydrate(Symbol** ps)
- symbol_ident
const(char)* symbol_ident(Symbol* s)
- symbol_insert
SYMIDX symbol_insert(symtab_t symtab, Symbol* s, SYMIDX n)
Insert s into symtab at position n.
- symbol_keep
void symbol_keep(Symbol* s)
Keep symbol around until symbol_term().
- symbol_name
Symbol* symbol_name(const(char)[] name, SC sclass, type* t)
- symbol_pointerType
tym_t symbol_pointerType(Symbol* s)
Determine pointer type needed to access a Symbol,
essentially what type an OPrelconst should get
for that Symbol.
- symbol_print
void symbol_print(Symbol* s)
Type out symbol information.
- symbol_reset
void symbol_reset(Symbol* s)
Reset Symbol so that it's now an "extern" to the next obj file being created.
- symbol_struct_addBaseClass
void symbol_struct_addBaseClass(Symbol* s, type* t, uint offset)
Add a base class to a struct s.
Input:
s the struct/class symbol
t the type of the base class
offset offset of the base class in the struct/class
- symbol_struct_addBitField
void symbol_struct_addBitField(Symbol* s, const(char)* name, type* t, uint offset, uint fieldWidth, uint bitOffset)
Add a bit field to a struct s.
- symbol_struct_addField
void symbol_struct_addField(Symbol* s, const(char)* name, type* t, uint offset)
Add a field to a struct s.
- symbol_struct_hasBitFields
void symbol_struct_hasBitFields(Symbol* s)
Mark struct s as having bit fields
- symbol_symdefs_dehydrate
void symbol_symdefs_dehydrate(Symbol** ps)
Dehydrate threaded list of symbols.
- symbol_tree_check
void symbol_tree_check(const(Symbol)* s)
Check integrity of symbol data structure.
- symbol_tree_dehydrate
void symbol_tree_dehydrate(Symbol** ps)
- symbol_tree_hydrate
void symbol_tree_hydrate(Symbol** ps)
- symboltable_hydrate
void symboltable_hydrate(Symbol* s, Symbol** parent)
Put symbol table s into parent symbol table.
Symbols for the back end
Compiler implementation of the D programming language.