00001 /* header file for src/module/mangle.cpp */ 00002 00003 #ifndef _CORE_MODULE_MANGLE_HPP 00004 #define _CORE_MODULE_MANGLE_HPP 00005 00006 namespace Syms { 00007 namespace Mangle { 00008 00009 00010 //demangle the name in name. try to find a proper demangling style. 00011 //if none is found, returns the name itself. 00012 //the demangled name is returned in dest. dest.done() is called at the start. 00013 //if args==NULL, return value looks like "abc::def(int, char*)". 00014 //if args!=NULL, return looks like "abc::def(A1, A2)\n\tA1= (int) 0x12345678\tA2=(char*) 0xCAFEBABE" 00015 int demangle(char *name, class string *dest, uint32 *args); 00016 00017 // c++ mangling 00018 namespace Cxx { 00019 int demangle(char *name, class string *dest, uint32 *args); //demangle a name 00020 }; /*namespace Cxx*/ 00021 00022 // c mangling- no mangling 00023 namespace C { 00024 int demangle(char *name, class string *dest, uint32 *args); //demangle a name 00025 }; /*namespace C*/ 00026 00027 00028 }; /*namespace Mangle*/ 00029 }; /*namespace Syms*/ 00030 00031 #endif