home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / unmangle.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  3KB  |  102 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 10.0
  13.  *
  14.  *      Copyright (c) 1998, 2000 by Inprise Corporation
  15.  *      All Rights Reserved.
  16.  *
  17.  */
  18.  
  19. /* $Revision:   9.4  $        */
  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.     UM_DYN_THUNK     = 0x0000000b,
  45.  
  46.     UM_KINDMASK      = 0x000000ff,
  47.  
  48.     /* Modifier (is it a member, template?). */
  49.  
  50.     UM_QUALIFIED     = 0x00000100,
  51.     UM_TEMPLATE      = 0x00000200,
  52.  
  53.     UM_VIRDEF_FLAG   = 0x00000400,
  54.     UM_FRIEND_LIST   = 0x00000800,
  55.     UM_CTCH_HNDL_TBL = 0x00001000,
  56.     UM_OBJ_DEST_TBL  = 0x00002000,
  57.     UM_THROW_LIST    = 0x00004000,
  58.     UM_EXC_CTXT_TBL  = 0x00008000,
  59.     UM_LINKER_PROC   = 0x00010000,
  60.     UM_SPECMASK      = 0x0001fc00,
  61.  
  62.     UM_MODMASK       = 0x00ffff00,
  63.  
  64.     /* Some kind of error occurred. */
  65.  
  66.     UM_BUFOVRFLW     = 0x01000000,
  67.     UM_HASHTRUNC     = 0x02000000,
  68.     UM_ERROR         = 0x04000000,
  69.  
  70.     UM_ERRMASK       = 0x7f000000,
  71.  
  72.     /* This symbol is not a mangled name. */
  73.  
  74.     UM_NOT_MANGLED   = 0x80000000,
  75. }
  76.     _umKind;
  77.  
  78. #define _UM_MAXBUFFLEN      8192      /* maximum output length */
  79.  
  80. #ifdef __cplusplus
  81. extern  "C"
  82. {
  83. #endif
  84.  
  85. _umKind _UMAPI
  86. _rtl_unmangle(char   *       src,     /* the string to be unmangled */
  87.               char   *       dest,    /* the unmangled output string */
  88.               unsigned       maxlen,  /* the max length of the output string */
  89.               char   *       qualP,   /* optional additional string to hold
  90.                                          only the qualifiers */
  91.  
  92.               char   *       baseP,   /* optional additional string to hold
  93.                                          only the base name */
  94.               int            doArgs); /* handle function arguments? */
  95.  
  96. int _UMAPI _rtl_setUnmangleMode(int); /* currently not implemented */
  97.  
  98. #ifdef __cplusplus
  99. }
  100. #endif
  101.  
  102. #endif