00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined (DEMANGLE_H)
00021 #define DEMANGLE_H
00022
00023
00024
00025 #define DMGL_NO_OPTS 0
00026 #define DMGL_PARAMS (1 << 0)
00027 #define DMGL_ANSI (1 << 1)
00028 #define DMGL_JAVA (1 << 2)
00029
00030 #define DMGL_AUTO (1 << 8)
00031 #define DMGL_GNU (1 << 9)
00032 #define DMGL_LUCID (1 << 10)
00033 #define DMGL_ARM (1 << 11)
00034 #define DMGL_HP (1 << 12)
00035
00036 #define DMGL_EDG (1 << 13)
00037
00038
00039 #define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG)
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 extern enum demangling_styles
00050 {
00051 unknown_demangling = 0,
00052 auto_demangling = DMGL_AUTO,
00053 gnu_demangling = DMGL_GNU,
00054 lucid_demangling = DMGL_LUCID,
00055 arm_demangling = DMGL_ARM,
00056 hp_demangling = DMGL_HP,
00057 edg_demangling = DMGL_EDG
00058 } current_demangling_style;
00059
00060
00061
00062 #define AUTO_DEMANGLING_STYLE_STRING "auto"
00063 #define GNU_DEMANGLING_STYLE_STRING "gnu"
00064 #define LUCID_DEMANGLING_STYLE_STRING "lucid"
00065 #define ARM_DEMANGLING_STYLE_STRING "arm"
00066 #define HP_DEMANGLING_STYLE_STRING "hp"
00067 #define EDG_DEMANGLING_STYLE_STRING "edg"
00068
00069
00070
00071 #define CURRENT_DEMANGLING_STYLE current_demangling_style
00072 #define AUTO_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_AUTO)
00073 #define GNU_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU)
00074 #define LUCID_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_LUCID)
00075 #define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM)
00076 #define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP)
00077 #define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG)
00078
00079 extern char *
00080 cplus_demangle (const char *mangled, int options);
00081
00082 extern int
00083 cplus_demangle_opname (const char *opname, char *result, int options);
00084
00085 extern const char *
00086 cplus_mangle_opname (const char *opname, int options);
00087
00088
00089
00090 extern void
00091 set_cplus_marker_for_demangling (int ch);
00092
00093 #endif