dmd.backend.newman

"new" C++ name mangling scheme

Compiler implementation of the D programming language.

Members

Functions

cpp_mangle
char* cpp_mangle(Symbol* s)

'Mangle' a name for output.

cpp_operator
char* cpp_operator(int* poper, type** pt)

Convert from operator token to name. Output: *poper OPxxxx *pt set to type for user defined conversion

cpp_operator2
char* cpp_operator2(token_t* to, int* pcastoverload)

Alternate version that works on a list of token's. Input: to list of tokens Output: *pcastoverload 1 if user defined type conversion

cpp_opident
char* cpp_opident(int op)

Find identifier string associated with operator.

cpp_opidx
int cpp_opidx(int op)

Find index in oparray[] for operator.

cpp_typetostring
char* cpp_typetostring(type* t, char* prefix)

Generate and return a pointer to a string constructed from the type, appended to the prefix. Since these generated strings determine the uniqueness of names, they are also used to determine if two types are the same.

cpp_unmangleident
char* cpp_unmangleident(const(char)* p)

Convert from identifier to operator

mangle_tbl
Symbol* mangle_tbl(int flag, type* t, Classsym* stag, baseclass_t* b)

Mangle a vtbl or vbtbl name.

template_mangle
char* template_mangle(Symbol* s, param_t* arglist)

Create mangled name for template instantiation.

Structs

OPTABLE
struct OPTABLE

Meta