\brief Opaque pointer representing client data that will be passed through to various callbacks and visitors.
\brief A semantic string that describes a code-completion result.
\brief Visitor invoked for each cursor found by a traversal.
\brief A single diagnostic, containing the diagnostic's severity, location, text, source ranges, and fix-it hints.
\brief A group of CXDiagnostics.
\brief Evaluation result of a cursor
\brief Visitor invoked for each field found by a traversal.
\brief A particular source file that is part of a translation unit.
\brief The client's data object that is associated with an AST file (PCH or module).
\brief The client's data object that is associated with a semantic container of entities.
\brief The client's data object that is associated with a semantic entity.
\brief The client's data object that is associated with a CXFile.
\brief Visitor invoked for each file in a translation unit (used with clang_getInclusions()).
\brief An "index" that consists of a set of translation units that would typically be linked together into an executable or library.
\brief An indexing action/session, to be applied to one or multiple translation units.
\defgroup CINDEX_MODULE Module introspection
\brief A remapping of original source files and their translated files.
\brief Describes the availability of a particular entity, which indicates whether the use of this entity will result in a warning or error due to it being deprecated or unavailable.
\brief Describes the calling convention of a function type
\brief Describes how the traversal of the children of a particular cursor should proceed after visiting a particular child cursor.
\brief Flags that can be passed to \c clang_codeCompleteAt() to modify its behavior.
\brief Describes a single piece of text within a code-completion string.
\brief Bits that represent the context under which completion is occurring.
\brief Describes the kind of entity that a cursor refers to.
\brief Describes the exception specification of a cursor.
\brief Options to control the display of diagnostics.
\brief Describes the severity of a particular diagnostic.
\brief Extra C++ template information for an entity. This can apply to: CXIdxEntity_Function CXIdxEntity_CXXClass CXIdxEntity_CXXStaticMethod CXIdxEntity_CXXInstanceMethod CXIdxEntity_CXXConstructor CXIdxEntity_CXXConversionFunction CXIdxEntity_CXXTypeAlias
\brief Data for IndexerCallbacks#indexEntityReference.
\brief Describe the "language" of the entity referred to by a cursor.
\brief Describe the linkage of the entity referred to by a cursor.
\brief Describes the kind of error that occurred (if any) in a call to \c clang_loadDiagnostics.
\brief 'Qualifiers' written next to the return and parameter types in Objective-C method declarations.
\brief Property attributes for a \c CXCursor_ObjCPropertyDecl.
\brief Flags that control the reparsing of translation units.
\brief Describes the kind of error that occurred (if any) in a call to \c clang_saveTranslationUnit().
\brief Flags that control how translation units are saved.
\brief Categorizes how memory is being used by a translation unit.
\brief Describes the kind of a template argument.
\brief Describes a kind of token.
\brief Flags that control the creation of translation units.
\defgroup CINDEX_TYPES Type information for CXCursors
\brief List the possible error codes for \c clang_Type_getSizeOf, \c clang_Type_getAlignOf, \c clang_Type_getOffsetOf and \c clang_Cursor_getOffsetOf.
\defgroup CINDEX_HIGH Higher level API functions
\brief Represents the C++ access control level to a base class for a cursor with kind CX_CXXBaseSpecifier.
\brief Represents the storage classes as declared in the source. CX_SC_Invalid was added for the case that the passed cursor in not a declaration.
* \brief Queries a CXCursorSet to see if it contains a specific CXCursor. * * \returns non-zero if the set contains the specified cursor.
* \brief Inserts a CXCursor into a CXCursorSet. * * \returns zero if the CXCursor was already in the set, and non-zero otherwise.
\brief Gets the general options associated with a CXIndex.
\brief Sets general options associated with a CXIndex.
\brief Determine if a C++ constructor is a converting constructor.
\brief Determine if a C++ constructor is a copy constructor.
\brief Determine if a C++ constructor is the default constructor.
\brief Determine if a C++ constructor is a move constructor.
\brief Determine if a C++ field is declared 'mutable'.
\brief Determine if a C++ member function or member function template is declared 'const'.
\brief Determine if a C++ method is declared '= default'.
\brief Determine if a C++ member function or member function template is pure virtual.
\brief Determine if a C++ member function or member function template is declared 'static'.
\brief Determine if a C++ member function or member function template is explicitly declared 'virtual' or if it overrides a virtual method from one of the base classes.
\brief If cursor is a statement declaration tries to evaluate the statement and if its variable, tries to evaluate its initializer, into its corresponding type.
\brief Retrieve the argument cursor of a function or method.
\brief Given a cursor that represents a documentable entity (e.g., declaration), return the associated \\brief paragraph; otherwise return the first paragraph.
\brief Retrieve the CXStrings representing the mangled symbols of the C++ constructor or destructor at the cursor.
\brief Given a cursor that represents a declaration, return the associated comment's source range. The range may include multiple consecutive comments with whitespace in between.
\brief Retrieve the CXString representing the mangled name of the cursor.
\brief Given a CXCursor_ModuleImportDecl cursor, return the associated module.
\brief Retrieve the number of non-variadic arguments associated with a given cursor.
\brief Returns the number of template args of a function decl representing a template specialization.
\brief Given a cursor that represents an Objective-C method or parameter declaration, return the associated Objective-C qualifiers for the return type or the parameter respectively. The bits are formed from CXObjCDeclQualifierKind.
\brief Given a cursor that represents a property declaration, return the associated property attributes. The bits are formed from \c CXObjCPropertyAttrKind.
\brief If the cursor points to a selector identifier in an Objective-C method or message expression, this returns the selector index.
\brief Return the offset of the field represented by the Cursor.
\brief Given a cursor that represents a declaration, return the associated comment text, including comment markers.
\brief Given a cursor pointing to an Objective-C message, returns the CXType of the receiver.
\brief Retrieve a range for a piece that forms the cursors spelling name. Most of the times there is only one range for the complete spelling but for Objective-C methods and Objective-C message expressions, there are multiple pieces for each selector identifier.
\brief Returns the storage class for a function or variable declaration.
\brief Retrieve the kind of the I'th template argument of the CXCursor C.
\brief Retrieve a CXType representing the type of a TemplateArgument of a function decl representing a template specialization.
\brief Retrieve the value of an Integral TemplateArgument (of a function decl representing a template specialization) as an unsigned long long.
\brief Retrieve the value of an Integral TemplateArgument (of a function decl representing a template specialization) as a signed long long.
\brief Returns the translation unit that a cursor originated from.
\brief Determine whether the given cursor has any attributes.
\brief Determine whether the given cursor represents an anonymous record declaration.
\brief Returns non-zero if the cursor specifies a Record member that is a bitfield.
\brief Given a cursor pointing to a C++ method call or an Objective-C message, returns non-zero if the method/message is "dynamic", meaning:
\brief Determine whether a CXCursor that is a function declaration, is an inline declaration.
\brief Determine whether a CXCursor that is a macro, is a builtin one.
\brief Determine whether a CXCursor that is a macro, is function like.
\brief Returns non-zero if \p cursor is null.
\brief Given a cursor that represents an Objective-C method or property declaration, return non-zero if the declaration was affected by "@optional". Returns zero if the cursor is not such a declaration or it is "@required".
\brief Returns non-zero if the given cursor is a variadic function or method.
\brief Disposes the created Eval memory.
\brief Returns the evaluation result as double if the kind is double.
\brief Returns the evaluation result as integer if the kind is Int.
\brief Returns the evaluation result as a long long integer if the kind is Int. This prevents overflows that may happen if the result is returned with clang_EvalResult_getAsInt.
\brief Returns the evaluation result as a constant string if the kind is other than Int or float. User must not free this pointer, instead call clang_EvalResult_dispose on the CXEvalResult returned by clang_Cursor_Evaluate.
\brief Returns the evaluation result as an unsigned integer if the kind is Int and clang_EvalResult_isUnsignedInt is non-zero.
\brief Returns the kind of the evaluated result.
\brief Returns a non-zero value if the kind is Int and the evaluation result resulted in an unsigned integer.
\brief Returns non-zero if the \c file1 and \c file2 point to the same file, or they are both NULL.
\brief An indexing action/session, to be applied to one or multiple translation units.
\brief Destroy the given index action.
\brief Returns non-zero if the given source location is in the main file of the corresponding translation unit.
\brief Returns non-zero if the given source location is in a system header.
\param Module a module object.
\param Module a module object.
\param Module a module object.
\param Module a module object.
\param Module a module object.
\param Module a module object.
\param Module a module object.
\brief Returns non-zero if \p range is null.
\brief Return the alignment of a type in bytes as per C++expr.alignof standard.
\brief Retrieve the ref-qualifier kind of a function or method.
\brief Return the class type of an member pointer type.
\brief Retrieve the type named by the qualified-id.
\brief Returns the number of template arguments for given template specialization, or -1 if type \c T is not a template specialization.
Returns the Objective-C type encoding for the specified CXType.
\brief Return the offset of a field named S in a record of type T in bits as it would be returned by __offsetof__ as per C++11[18.2p4]
\brief Return the size of a type in bytes as per C++expr.sizeof standard.
\brief Returns the type template argument of a template class specialization at given index.
\brief Visit the fields of a particular type.
\brief Annotate the given set of tokens by providing cursors for each token that can be mapped to a specific entity within the abstract syntax tree.
\brief Perform code completion at a given location in a translation unit.
\brief Returns the cursor kind for the container for the current code completion context. The container is only guaranteed to be set for contexts where a container exists (i.e. member accesses or Objective-C message sends); if there is not a container, this function will return CXCursor_InvalidCode.
\brief Returns the USR for the container for the current code completion context. If there is not a container for the current context, this function will return the empty string.
\brief Determines what completions are appropriate for the context the given code completion.
\brief Retrieve a diagnostic associated with the given code completion.
\brief Determine the number of diagnostics produced prior to the location where code completion was performed.
\brief Returns the currently-entered selector for an Objective-C message send, formatted like "initWithFoo:bar:". Only guaranteed to return a non-empty string for CXCompletionContext_ObjCInstanceMessage and CXCompletionContext_ObjCClassMessage.
\brief Construct a USR for a specified Objective-C category.
\brief Construct a USR for a specified Objective-C class.
\brief Construct a USR for a specified Objective-C instance variable and the USR for its containing class.
\brief Construct a USR for a specified Objective-C method and the USR for its containing class.
\brief Construct a USR for a specified Objective-C property and the USR for its containing class.
\brief Construct a USR for a specified Objective-C protocol.
\brief Creates an empty CXCursorSet.
\brief Provides a shared context for creating translation units.
\brief Same as \c clang_createTranslationUnit2, but returns the \c CXTranslationUnit instead of an error code. In case of an error this routine returns a \c NULL \c CXTranslationUnit, without further detailed error codes.
\brief Create a translation unit from an AST file (\c -emit-ast).
\brief Return the CXTranslationUnit for a given source file and the provided command line arguments one would pass to the compiler.
\brief Returns a default set of code-completion options that can be passed to\c clang_codeCompleteAt().
\brief Retrieve the set of display options most similar to the default behavior of the clang compiler.
\brief Returns the set of flags that is suitable for parsing a translation unit that is being edited.
\brief Returns the set of flags that is suitable for reparsing a translation unit.
\brief Returns the set of flags that is suitable for saving a translation unit.
\brief Disposes a CXCursorSet and releases its associated memory.
\brief Free the memory associated with a \c CXPlatformAvailability structure.
\brief Free the given set of code-completion results.
\brief Destroy a diagnostic.
\brief Release a CXDiagnosticSet and all of its contained diagnostics.
\brief Destroy the given index.
\brief Free the set of overridden cursors returned by \c clang_getOverriddenCursors().
\brief Destroy the given \c CXSourceRangeList.
\brief Free the given set of tokens.
\brief Destroy the specified CXTranslationUnit object.
\brief Determine whether two cursors are equivalent.
\brief Determine whether two source locations, which must refer into the same translation unit, refer to exactly the same point in the source code.
\brief Determine whether two ranges are equivalent.
\brief Determine whether two CXTypes represent the same type.
\brief Find #import/#include directives in a specific file.
\brief Find references of a declaration in a specific file.
\brief Format the given diagnostic in a manner that is suitable for display.
\brief Retrieve all ranges from all files that were skipped by the preprocessor.
\brief Retrieve the type of a parameter of a function type.
\brief Return the element type of an array type.
\brief Return the array size of a constant array.
\brief Return the memory usage of a translation unit. This object should be released with clang_disposeCXTUResourceUsage().
\brief Returns the access control level for the referenced object.
\brief Retrieve the canonical cursor corresponding to the given cursor.
\brief Return the canonical type for a CXType.
\brief Retrieve the child diagnostics of a CXDiagnostic.
\brief Return a version string, suitable for showing to a user, but not intended to be parsed (the format is not guaranteed to be stable).
\brief Retrieve the annotation associated with the given completion string.
\brief Determine the availability of the entity that this code-completion string refers to.
\brief Retrieve the brief documentation comment attached to the declaration that corresponds to the given completion string.
\brief Retrieve the completion string associated with a particular chunk within a completion string.
\brief Determine the kind of a particular chunk within a completion string.
\brief Retrieve the text associated with a particular chunk within a completion string.
\brief Retrieve the number of annotations associated with the given completion string.
\brief Retrieve the parent context of the given completion string.
\brief Determine the priority of this code completion.
\brief Map a source location to the cursor that describes the entity at that location in the source code.
\brief Determine the availability of the entity that this cursor refers to, taking the current target platform into account.
\brief Retrieve a completion string for an arbitrary declaration or macro definition cursor.
\brief For a cursor that is either a reference to or a declaration of some entity, retrieve a cursor that describes the definition of that entity.
\brief Retrieve the display name for the entity referenced by this cursor.
\brief Retrieve the physical extent of the source construct referenced by the given cursor.
\brief Retrieve the kind of the given cursor.
\defgroup CINDEX_DEBUG Debugging facilities
\brief Determine the "language" of the entity referred to by a given cursor.
\brief Determine the lexical parent of the given cursor.
\brief Determine the linkage of the entity referred to by a given cursor.
\brief Retrieve the physical location of the source constructor referenced by the given cursor.
\brief Determine the availability of the entity that this cursor refers to on any platforms for which availability information is known.
\brief Given a cursor that references something else, return the source range covering that reference.
\brief For a cursor that is a reference, retrieve a cursor representing the entity that it references.
\brief Retrieve the return type associated with a given cursor.
\brief Determine the semantic parent of the given cursor.
\brief Retrieve a name for the entity referenced by this cursor.
\brief Retrieve the type of a CXCursor (if any).
\brief Retrieve a Unified Symbol Resolution (USR) for the entity referenced by the given cursor.
\brief Describe the visibility of the entity referred to by a cursor.
Returns the Objective-C type encoding for the specified declaration.
\brief Retrieve a diagnostic associated with the given translation unit.
\brief Retrieve the category number for this diagnostic.
\brief Retrieve the name of a particular diagnostic category. This is now deprecated. Use clang_getDiagnosticCategoryText() instead.
\brief Retrieve the diagnostic category text for a given diagnostic.
\brief Retrieve the replacement information for a given fix-it.
\brief Retrieve a diagnostic associated with the given CXDiagnosticSet.
\brief Retrieve the source location of the given diagnostic.
\brief Determine the number of fix-it hints associated with the given diagnostic.
\brief Determine the number of source ranges associated with the given diagnostic.
\brief Retrieve the name of the command-line option that enabled this diagnostic.
\brief Retrieve a source range associated with the diagnostic.
\brief Retrieve the complete set of diagnostics associated with a translation unit.
\brief Determine the severity of the given diagnostic.
\brief Retrieve the text of the given diagnostic.
\brief Return the element type of an array, complex, or vector type.
\brief Retrieve the integer value of an enum constant declaration as an unsigned long long.
\brief Retrieve the integer value of an enum constant declaration as a signed long long.
\brief Retrieve the integer type of an enum declaration.
\brief Retrieve the file, line, column, and offset represented by the given source location.
\brief Retrieve the bit width of a bit field declaration as an integer.
\brief Retrieve a file handle within the given translation unit.
\brief Retrieve the file, line, column, and offset represented by the given source location.
\brief Retrieve the complete file and path name of the given file.
\brief Retrieve the last modification time of the given file.
* \brief Retrieve the unique ID for the given \c file. * * \param file the file to get the ID for. * \param outID stores the returned CXFileUniqueID. * \returns If there was a failure getting the unique ID, returns non-zero, * otherwise returns 0.
\brief Retrieve the calling convention associated with a function type.
\brief For cursors representing an iboutletcollection attribute, this function returns the collection element type.
\brief Retrieve the file that is included by the given inclusion directive cursor.
\brief Visit the set of preprocessor inclusions in a translation unit. The visitor function is called with the provided data for every included file. This does not include headers included by the PCH file (unless one is inspecting the inclusions in the PCH file itself).
\brief Legacy API to retrieve the file, line, column, and offset represented by the given source location.
\brief Retrieves the source location associated with a given file/line/column in a particular translation unit.
\brief Retrieves the source location associated with a given character offset in a particular translation unit.
\brief Given a CXFile header file, return the module that contains it, if one exists.
\brief Retrieve the NULL cursor, which represents no entity.
\brief Retrieve a NULL (invalid) source location.
\brief Retrieve a NULL (invalid) source range.
\brief Retrieve the number of non-variadic parameters associated with a function type.
\brief Retrieve the number of chunks in the given code-completion string.
\brief Determine the number of diagnostics produced for the given translation unit.
\brief Determine the number of diagnostics in a CXDiagnosticSet.
\brief Return the number of elements of an array or vector type.
\brief Determine the number of overloaded declarations referenced by a \c CXCursor_OverloadedDeclRef cursor.
\brief Retrieve a cursor for one of the overloaded declarations referenced by a \c CXCursor_OverloadedDeclRef cursor.
\brief Determine the set of methods that are overridden by the given method.
\brief For pointer types, returns the type of the pointee.
\brief Retrieve the file, line, column, and offset represented by the given source location, as specified in a # line directive.
\brief Retrieve a source range given the beginning and ending source locations.
\brief Retrieve a source location representing the last character within a source range.
\brief Retrieve a source location representing the first character within a source range.
\brief Retrieve a remapping.
\brief Retrieve a remapping.
\brief Retrieve the return type associated with a function type.
\brief Retrieve all ranges that were skipped by the preprocessor.
\brief Given a cursor that may represent a specialization or instantiation of a template, retrieve the cursor that represents the template that it specializes or from which it was instantiated.
\brief Retrieve the file, line, column, and offset represented by the given source location.
\brief Returns the human-readable null-terminated C string that represents the name of the memory category. This string should never be freed.
\brief Given a cursor that represents a template, determine the cursor kind of the specializations would be generated by instantiating the template.
\brief Retrieve a source range that covers the given token.
\brief Determine the kind of the given token.
\brief Retrieve the source location of the given token.
\brief Determine the spelling of the given token.
\brief Retrieve the cursor that represents the given translation unit.
\brief Get the original translation unit source file name.
\brief Return the cursor for the declaration of the given type.
\brief Retrieve the spelling of a given CXTypeKind.
\brief Pretty-print the underlying type using the rules of the language of the translation unit from which it came.
\brief Retrieve the underlying type of a typedef declaration.
\brief Compute a hash value for the given cursor.
\brief Retrieve the CXSourceLocation represented by the given CXIdxLoc.
\brief Retrieve the CXIdxFile, file, line, column, and offset represented by the given CXIdxLoc.
\brief Index the given source file and the translation unit corresponding to that file via callbacks implemented through #IndexerCallbacks.
\brief Same as clang_indexSourceFile but requires a full command line for \c command_line_args including argv[0]. This is useful if the standard library paths are relative to the binary.
\brief Index the given translation unit via callbacks implemented through #IndexerCallbacks.
\brief For retrieving a custom CXIdxClientContainer attached to a container.
\brief For retrieving a custom CXIdxClientEntity attached to an entity.
\brief For setting a custom CXIdxClientContainer attached to a container.
\brief For setting a custom CXIdxClientEntity attached to an entity.
\brief Determine whether the given cursor kind represents an attribute.
\brief Determine whether a CXType has the "const" qualifier set, without looking through typedefs that may have added "const" at a different level.
\brief Determine whether the declaration pointed to by this cursor is also a definition of that entity.
\brief Determine whether the given cursor kind represents a declaration.
\brief Determine whether the given cursor kind represents an expression.
\brief Determine whether the given header is guarded against multiple inclusions, either with the conventional \#ifndef/\#define/\#endif macro guards or with \#pragma once.
\brief Return 1 if the CXType is a variadic function type, and 0 otherwise.
\brief Determine whether the given cursor kind represents an invalid cursor.
\brief Return 1 if the CXType is a POD (plain old data) type, and 0 otherwise.
\brief Determine whether the given cursor represents a preprocessing element, such as a preprocessor directive or macro instantiation.
\brief Determine whether the given cursor kind represents a simple reference.
\brief Determine whether a CXType has the "restrict" qualifier set, without looking through typedefs that may have added "restrict" at a different level.
\brief Determine whether the given cursor kind represents a statement.
\brief Determine whether the given cursor kind represents a translation unit.
\brief Determine whether the given cursor represents a currently unexposed piece of the AST (e.g., CXCursor_UnexposedStmt).
\brief Returns 1 if the base class specified by the cursor with kind CX_CXXBaseSpecifier is virtual.
\brief Determine whether a CXType has the "volatile" qualifier set, without looking through typedefs that may have added "volatile" at a different level.
\brief Deserialize a set of diagnostics from a Clang diagnostics bitcode file.
\brief Same as \c clang_parseTranslationUnit2, but returns the \c CXTranslationUnit instead of an error code. In case of an error this routine returns a \c NULL \c CXTranslationUnit, without further detailed error codes.
\brief Parse the given source file and the translation unit corresponding to that file.
\brief Same as clang_parseTranslationUnit2 but requires a full command line for \c command_line_args including argv[0]. This is useful if the standard library paths are relative to the binary.
\brief Dispose the remapping.
\brief Get the original and the associated filename from the remapping.
\brief Determine the number of remappings.
\brief Reparse the source files that produced this translation unit.
\brief Saves a translation unit into a serialized representation of that translation unit on disk.
\brief Sort the code-completion results in case-insensitive alphabetical order.
\brief Enable/disable crash recovery.
\brief Tokenize the source code described by the given range into raw lexical tokens.
\brief Visit the children of a particular cursor.
\brief The version constants for the libclang API. CINDEX_VERSION_MINOR should increase when there are API additions. CINDEX_VERSION_MAJOR is intended for "major" source/ABI breaking changes.
\brief Contains the results of code-completion.
\brief A single result of code completion.
\brief A cursor representing some element in the abstract syntax tree for a translation unit.
\brief A fast container representing a set of CXCursors.
\brief Uniquely identifies a CXFile, that refers to the same underlying file, across an indexing session.
\brief Data for IndexerCallbacks#indexEntityReference.
\brief Data for IndexerCallbacks#importedASTFile.
\brief Data for ppIncludedFile callback.
\brief Source location passed to index callbacks.
Describes the availability of a given entity on a particular platform, e.g., a particular class might only be available on Mac OS 10.7 or newer.
\brief Identifies a specific source location within a translation unit.
\brief Identifies a half-open character range in the source code.
\brief Identifies an array of ranges.
\brief The memory usage of a CXTranslationUnit, broken into categories.
\brief Describes a single preprocessing token.
\brief A single translation unit, which resides in an index.
\brief The type of an element in the abstract syntax tree.
\brief Provides the contents of a file that has not yet been saved to disk.
\brief Describes a version number of the form major.minor.subminor.
\brief A group of callbacks used by #clang_indexSourceFile and #clang_indexTranslationUnit.