home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------------
- * filename - unmangle.h (C++ decorated symbol unmangler)
- *
- * function(s)
- *
- * _rtl_unmangle
- * _rtl_setUnmangleMode
- *
- *-----------------------------------------------------------------------*/
-
- /*
- * C/C++ Run Time Library - Version 10.0
- *
- * Copyright (c) 1998, 2000 by Inprise Corporation
- * All Rights Reserved.
- *
- */
-
- /* $Revision: 9.4 $ */
-
- #ifndef _UNMANGLE_
- #define _UNMANGLE_
-
- #include <_defs.h>
- #define _UMAPI _RTLENTRY _EXPFUNC
-
- typedef enum
- {
- /* The kind of symbol. */
-
- UM_UNKNOWN = 0x00000000,
-
- UM_FUNCTION = 0x00000001,
- UM_CONSTRUCTOR = 0x00000002,
- UM_DESTRUCTOR = 0x00000003,
- UM_OPERATOR = 0x00000004,
- UM_CONVERSION = 0x00000005,
-
- UM_DATA = 0x00000006,
- UM_THUNK = 0x00000007,
- UM_TPDSC = 0x00000008,
- UM_VTABLE = 0x00000009,
- UM_VRDF_THUNK = 0x0000000a,
- UM_DYN_THUNK = 0x0000000b,
-
- UM_KINDMASK = 0x000000ff,
-
- /* Modifier (is it a member, template?). */
-
- UM_QUALIFIED = 0x00000100,
- UM_TEMPLATE = 0x00000200,
-
- UM_VIRDEF_FLAG = 0x00000400,
- UM_FRIEND_LIST = 0x00000800,
- UM_CTCH_HNDL_TBL = 0x00001000,
- UM_OBJ_DEST_TBL = 0x00002000,
- UM_THROW_LIST = 0x00004000,
- UM_EXC_CTXT_TBL = 0x00008000,
- UM_LINKER_PROC = 0x00010000,
- UM_SPECMASK = 0x0001fc00,
-
- UM_MODMASK = 0x00ffff00,
-
- /* Some kind of error occurred. */
-
- UM_BUFOVRFLW = 0x01000000,
- UM_HASHTRUNC = 0x02000000,
- UM_ERROR = 0x04000000,
-
- UM_ERRMASK = 0x7f000000,
-
- /* This symbol is not a mangled name. */
-
- UM_NOT_MANGLED = 0x80000000,
- }
- _umKind;
-
- #define _UM_MAXBUFFLEN 8192 /* maximum output length */
-
- #ifdef __cplusplus
- extern "C"
- {
- #endif
-
- _umKind _UMAPI
- _rtl_unmangle(char * src, /* the string to be unmangled */
- char * dest, /* the unmangled output string */
- unsigned maxlen, /* the max length of the output string */
- char * qualP, /* optional additional string to hold
- only the qualifiers */
-
- char * baseP, /* optional additional string to hold
- only the base name */
- int doArgs); /* handle function arguments? */
-
- int _UMAPI _rtl_setUnmangleMode(int); /* currently not implemented */
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif