home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / UNMANGLE.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  2.7 KB  |  101 lines

  1. /*------------------------------------------------------------------------
  2.  * filename - unmangle.h (C++ decorated symbol unmangler)
  3.  *
  4.  * function(s)
  5.  *
  6.  *   _rtl_unmangle
  7.  *   _rtl_setUnmangleMode
  8.  *
  9.  *-----------------------------------------------------------------------*/
  10.  
  11. /*
  12.  *      C/C++ Run Time Library - Version 9.5
  13.  *
  14.  *      Copyright (c) 1998, 1999 by Inprise Corporation
  15.  *      All Rights Reserved.
  16.  *
  17.  */
  18.  
  19. /* $Revision:   9.3  $        */
  20.  
  21. #ifndef _UNMANGLE_
  22. #define _UNMANGLE_
  23.  
  24. #include <_defs.h>
  25. #define _UMAPI _RTLENTRY _EXPFUNC
  26.  
  27. typedef enum
  28. {
  29.         /* The kind of symbol. */
  30.  
  31.         UM_UNKNOWN       = 0x00000000,
  32.  
  33.         UM_FUNCTION      = 0x00000001,
  34.         UM_CONSTRUCTOR   = 0x00000002,
  35.         UM_DESTRUCTOR    = 0x00000003,
  36.         UM_OPERATOR      = 0x00000004,
  37.         UM_CONVERSION    = 0x00000005,
  38.  
  39.         UM_DATA          = 0x00000006,
  40.         UM_THUNK         = 0x00000007,
  41.         UM_TPDSC         = 0x00000008,
  42.         UM_VTABLE        = 0x00000009,
  43.         UM_VRDF_THUNK    = 0x0000000a,
  44.  
  45.         UM_KINDMASK      = 0x000000ff,
  46.  
  47.         /* Modifier (is it a member, template?). */
  48.  
  49.         UM_QUALIFIED     = 0x00000100,
  50.         UM_TEMPLATE      = 0x00000200,
  51.  
  52.         UM_VIRDEF_FLAG   = 0x00000400,
  53.         UM_FRIEND_LIST   = 0x00000800,
  54.         UM_CTCH_HNDL_TBL = 0x00001000,
  55.         UM_OBJ_DEST_TBL  = 0x00002000,
  56.         UM_THROW_LIST    = 0x00004000,
  57.         UM_EXC_CTXT_TBL  = 0x00008000,
  58.         UM_LINKER_PROC   = 0x00010000,
  59.         UM_SPECMASK      = 0x0001fc00,
  60.  
  61.         UM_MODMASK       = 0x00ffff00,
  62.  
  63.         /* Some kind of error occurred. */
  64.  
  65.         UM_BUFOVRFLW     = 0x01000000,
  66.         UM_HASHTRUNC     = 0x02000000,
  67.         UM_ERROR         = 0x04000000,
  68.  
  69.         UM_ERRMASK       = 0x7f000000,
  70.  
  71.         /* This symbol is not a mangled name. */
  72.  
  73.         UM_NOT_MANGLED   = 0x80000000,
  74. }
  75.         _umKind;
  76.  
  77. #define _UM_MAXBUFFLEN      8192      /* maximum output length */
  78.  
  79. #ifdef __cplusplus
  80. extern  "C"
  81. {
  82. #endif
  83.  
  84. _umKind _UMAPI
  85. _rtl_unmangle(char   *       src,     /* the string to be unmangled */
  86.               char   *       dest,    /* the unmangled output string */
  87.               unsigned       maxlen,  /* the max length of the output string */
  88.               char   *       qualP,   /* optional additional string to hold
  89.                                          only the qualifiers */
  90.  
  91.               char   *       baseP,   /* optional additional string to hold
  92.                                          only the base name */
  93.               int            doArgs); /* handle function arguments? */
  94.  
  95. int _UMAPI _rtl_setUnmangleMode(int); /* currently not implemented */
  96.  
  97. #ifdef __cplusplus
  98. }
  99. #endif
  100.  
  101. #endif