Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*===-- clang-c/CXString.h - C Index strings  --------------------*- C -*-===*\
  2. |*                                                                            *|
  3. |* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
  4. |* Exceptions.                                                                *|
  5. |* See https://llvm.org/LICENSE.txt for license information.                  *|
  6. |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
  7. |*                                                                            *|
  8. |*===----------------------------------------------------------------------===*|
  9. |*                                                                            *|
  10. |* This header provides the interface to C Index strings.                     *|
  11. |*                                                                            *|
  12. \*===----------------------------------------------------------------------===*/
  13.  
  14. #ifndef LLVM_CLANG_C_CXSTRING_H
  15. #define LLVM_CLANG_C_CXSTRING_H
  16.  
  17. #include "clang-c/ExternC.h"
  18. #include "clang-c/Platform.h"
  19.  
  20. LLVM_CLANG_C_EXTERN_C_BEGIN
  21.  
  22. /**
  23.  * \defgroup CINDEX_STRING String manipulation routines
  24.  * \ingroup CINDEX
  25.  *
  26.  * @{
  27.  */
  28.  
  29. /**
  30.  * A character string.
  31.  *
  32.  * The \c CXString type is used to return strings from the interface when
  33.  * the ownership of that string might differ from one call to the next.
  34.  * Use \c clang_getCString() to retrieve the string data and, once finished
  35.  * with the string data, call \c clang_disposeString() to free the string.
  36.  */
  37. typedef struct {
  38.   const void *data;
  39.   unsigned private_flags;
  40. } CXString;
  41.  
  42. typedef struct {
  43.   CXString *Strings;
  44.   unsigned Count;
  45. } CXStringSet;
  46.  
  47. /**
  48.  * Retrieve the character data associated with the given string.
  49.  */
  50. CINDEX_LINKAGE const char *clang_getCString(CXString string);
  51.  
  52. /**
  53.  * Free the given string.
  54.  */
  55. CINDEX_LINKAGE void clang_disposeString(CXString string);
  56.  
  57. /**
  58.  * Free the given string set.
  59.  */
  60. CINDEX_LINKAGE void clang_disposeStringSet(CXStringSet *set);
  61.  
  62. /**
  63.  * @}
  64.  */
  65.  
  66. LLVM_CLANG_C_EXTERN_C_END
  67.  
  68. #endif
  69.  
  70.