Module Clang__bindings

external get_build_session_timestamp : unit -> int = "clang_getBuildSessionTimestamp_wrapper"

Return the timestamp for use with Clang's -fbuild-session-timestamp= option.

type cxvirtualfileoverlay
external virtual_file_overlay_create : int -> cxvirtualfileoverlay = "clang_VirtualFileOverlay_create_wrapper"

Create a CXVirtualFileOverlay object. Must be disposed with clang_VirtualFileOverlay_dispose().

type cxerrorcode =
| Failure

A generic error code, no further details are available.

| Crashed

libclang crashed while performing the requested operation.

| InvalidArguments

The function detected that the arguments violate the function contract.

| ASTReadError

An AST deserialization error has occurred.

Error codes returned by libclang routines.

external virtual_file_overlay_add_file_mapping : cxvirtualfileoverlay -> virtual_path:string -> real_path:string -> (unit, cxerrorcode) Stdcompat.result = "clang_VirtualFileOverlay_addFileMapping_wrapper"

Map an absolute virtual file path to an absolute real one. The virtual path must be canonicalized (not contain "."/"..").

external virtual_file_overlay_set_case_sensitivity : cxvirtualfileoverlay -> int -> (unit, cxerrorcode) Stdcompat.result = "clang_VirtualFileOverlay_setCaseSensitivity_wrapper"

Set the case sensitivity for the CXVirtualFileOverlay object. The CXVirtualFileOverlay object is case-sensitive by default, this option can be used to override the default.

external virtual_file_overlay_write_to_buffer : cxvirtualfileoverlay -> int -> (string, cxerrorcode) Stdcompat.result = "clang_VirtualFileOverlay_writeToBuffer_wrapper"

Write out the CXVirtualFileOverlay object to a char buffer.

type cxmodulemapdescriptor
external module_map_descriptor_create : int -> cxmodulemapdescriptor = "clang_ModuleMapDescriptor_create_wrapper"

Create a CXModuleMapDescriptor object. Must be disposed with clang_ModuleMapDescriptor_dispose().

external module_map_descriptor_set_framework_module_name : cxmodulemapdescriptor -> string -> (unit, cxerrorcode) Stdcompat.result = "clang_ModuleMapDescriptor_setFrameworkModuleName_wrapper"

Sets the framework module name that the module.map describes.

external module_map_descriptor_set_umbrella_header : cxmodulemapdescriptor -> string -> (unit, cxerrorcode) Stdcompat.result = "clang_ModuleMapDescriptor_setUmbrellaHeader_wrapper"

Sets the umbrealla header name that the module.map describes.

external module_map_descriptor_write_to_buffer : cxmodulemapdescriptor -> int -> (string, cxerrorcode) Stdcompat.result = "clang_ModuleMapDescriptor_writeToBuffer_wrapper"

Write out the CXModuleMapDescriptor object to a char buffer.

type cxindex
external create_index : exclude_declarations_from_pch:bool -> display_diagnostics:bool -> cxindex = "clang_createIndex_wrapper"

Provides a shared context for creating translation units.

module Cxglobaloptflags : sig ... end
external cxindex_set_global_options : cxindex -> Cxglobaloptflags.t -> unit = "clang_CXIndex_setGlobalOptions_wrapper"

Sets general options associated with a CXIndex.

external cxindex_get_global_options : cxindex -> Cxglobaloptflags.t = "clang_CXIndex_getGlobalOptions_wrapper"

Gets the general options associated with a CXIndex.

external cxindex_set_invocation_emission_path_option : cxindex -> string -> unit = "clang_CXIndex_setInvocationEmissionPathOption_wrapper"

Sets the invocation emission path option in a CXIndex.

type cxfile
external get_file_name : cxfile -> string = "clang_getFileName_wrapper"

Retrieve the complete file and path name of the given file.

external get_file_time : cxfile -> int = "clang_getFileTime_wrapper"

Retrieve the last modification time of the given file.

type cxfileuniqueid = int * int * int

Uniquely identifies a CXFile, that refers to the same underlying file, across an indexing session.

external get_file_unique_id : cxfile -> cxfileuniqueid option = "clang_getFileUniqueID_wrapper"

Retrieve the unique ID for the given file.

type cxtranslationunit
external is_file_multiple_include_guarded : cxtranslationunit -> cxfile -> bool = "clang_isFileMultipleIncludeGuarded_wrapper"

Determine whether the given header is guarded against multiple inclusions, either with the conventional #ifndef/#define/#endif macro guards or with #pragma once.

external get_file : cxtranslationunit -> string -> cxfile = "clang_getFile_wrapper"

Retrieve a file handle within the given translation unit.

external get_file_contents : cxtranslationunit -> cxfile -> string option = "clang_getFileContents_wrapper"

Retrieve the buffer associated with the given file.

external file_is_equal : cxfile -> cxfile -> bool = "clang_File_isEqual_wrapper"

Returns non-zero if the file1 and file2 point to the same file, or they are both NULL.

type cxsourcelocation

Identifies a specific source location within a translation unit.

external get_null_location : unit -> cxsourcelocation = "clang_getNullLocation_wrapper"

Retrieve a NULL (invalid) source location.

external equal_locations : cxsourcelocation -> cxsourcelocation -> bool = "clang_equalLocations_wrapper"

Determine whether two source locations, which must refer into the same translation unit, refer to exactly the same point in the source code.

external get_location : cxtranslationunit -> cxfile -> line:int -> column:int -> cxsourcelocation = "clang_getLocation_wrapper"

Retrieves the source location associated with a given file/line/column in a particular translation unit.

external get_location_for_offset : cxtranslationunit -> cxfile -> int -> cxsourcelocation = "clang_getLocationForOffset_wrapper"

Retrieves the source location associated with a given character offset in a particular translation unit.

external location_is_in_system_header : cxsourcelocation -> bool = "clang_Location_isInSystemHeader_wrapper"

Returns non-zero if the given source location is in a system header.

external location_is_from_main_file : cxsourcelocation -> bool = "clang_Location_isFromMainFile_wrapper"

Returns non-zero if the given source location is in the main file of the corresponding translation unit.

type cxsourcerange

Identifies a half-open character range in the source code.

external get_null_range : unit -> cxsourcerange = "clang_getNullRange_wrapper"

Retrieve a NULL (invalid) source range.

external get_range : cxsourcelocation -> cxsourcelocation -> cxsourcerange = "clang_getRange_wrapper"

Retrieve a source range given the beginning and ending source locations.

external equal_ranges : cxsourcerange -> cxsourcerange -> bool = "clang_equalRanges_wrapper"

Determine whether two ranges are equivalent.

external range_is_null : cxsourcerange -> bool = "clang_Range_isNull_wrapper"

Returns non-zero if range is null.

external get_expansion_location : cxsourcelocation -> cxfile * int * int * int = "clang_getExpansionLocation_wrapper"

Retrieve the file, line, column, and offset represented by the given source location.

external get_presumed_location : cxsourcelocation -> string * int * int = "clang_getPresumedLocation_wrapper"

Retrieve the file, line and column represented by the given source location, as specified in a # line directive.

external get_instantiation_location : cxsourcelocation -> cxfile * int * int * int = "clang_getInstantiationLocation_wrapper"

Legacy API to retrieve the file, line, column, and offset represented by the given source location.

external get_spelling_location : cxsourcelocation -> cxfile * int * int * int = "clang_getSpellingLocation_wrapper"

Retrieve the file, line, column, and offset represented by the given source location.

external get_file_location : cxsourcelocation -> cxfile * int * int * int = "clang_getFileLocation_wrapper"

Retrieve the file, line, column, and offset represented by the given source location.

external get_range_start : cxsourcerange -> cxsourcelocation = "clang_getRangeStart_wrapper"

Retrieve a source location representing the first character within a source range.

external get_range_end : cxsourcerange -> cxsourcelocation = "clang_getRangeEnd_wrapper"

Retrieve a source location representing the last character within a source range.

external get_skipped_ranges : cxtranslationunit -> cxfile -> cxsourcerange array = "clang_getSkippedRanges_wrapper"

Retrieve all ranges that were skipped by the preprocessor.

external get_all_skipped_ranges : cxtranslationunit -> cxsourcerange array = "clang_getAllSkippedRanges_wrapper"

Retrieve all ranges from all files that were skipped by the preprocessor.

type cxdiagnosticset
external get_num_diagnostics_in_set : cxdiagnosticset -> int = "clang_getNumDiagnosticsInSet_wrapper"

Determine the number of diagnostics in a CXDiagnosticSet.

type cxdiagnostic
external get_diagnostic_in_set : cxdiagnosticset -> int -> cxdiagnostic = "clang_getDiagnosticInSet_wrapper"

Retrieve a diagnostic associated with the given CXDiagnosticSet.

type cxloaddiag_error =
| Unknown

Indicates that an unknown error occurred while attempting to deserialize diagnostics.

| CannotLoad

Indicates that the file containing the serialized diagnostics could not be opened.

| InvalidFile

Indicates that the serialized diagnostics file is invalid or corrupt.

Describes the kind of error that occurred (if any) in a call to clang_loadDiagnostics.

external load_diagnostics : string -> (cxdiagnosticsetcxloaddiag_error * string) Stdcompat.result = "clang_loadDiagnostics_wrapper"

Deserialize a set of diagnostics from a Clang diagnostics bitcode file.

external get_child_diagnostics : cxdiagnostic -> cxdiagnosticset = "clang_getChildDiagnostics_wrapper"

Retrieve the child diagnostics of a CXDiagnostic.

external get_num_diagnostics : cxtranslationunit -> int = "clang_getNumDiagnostics_wrapper"

Determine the number of diagnostics produced for the given translation unit.

external get_diagnostic : cxtranslationunit -> int -> cxdiagnostic = "clang_getDiagnostic_wrapper"

Retrieve a diagnostic associated with the given translation unit.

external get_diagnostic_set_from_tu : cxtranslationunit -> cxdiagnosticset = "clang_getDiagnosticSetFromTU_wrapper"

Retrieve the complete set of diagnostics associated with a translation unit.

module Cxdiagnosticdisplayoptions : sig ... end
external format_diagnostic : cxdiagnostic -> Cxdiagnosticdisplayoptions.t -> string = "clang_formatDiagnostic_wrapper"

Format the given diagnostic in a manner that is suitable for display.

external default_diagnostic_display_options : unit -> Cxdiagnosticdisplayoptions.t = "clang_defaultDiagnosticDisplayOptions_wrapper"

Retrieve the set of display options most similar to the default behavior of the clang compiler.

type cxdiagnosticseverity =
| Ignored

A diagnostic that has been suppressed, e.g., by a command-line option.

| Note

This diagnostic is a note that should be attached to the previous (non-note) diagnostic.

| Warning

This diagnostic indicates suspicious code that may not be wrong.

| Error

This diagnostic indicates that the code is ill-formed.

| Fatal

This diagnostic indicates that the code is ill-formed such that future parser recovery is unlikely to produce useful results.

Describes the severity of a particular diagnostic.

external get_diagnostic_severity : cxdiagnostic -> cxdiagnosticseverity = "clang_getDiagnosticSeverity_wrapper"

Determine the severity of the given diagnostic.

external get_diagnostic_location : cxdiagnostic -> cxsourcelocation = "clang_getDiagnosticLocation_wrapper"

Retrieve the source location of the given diagnostic.

external get_diagnostic_spelling : cxdiagnostic -> string = "clang_getDiagnosticSpelling_wrapper"

Retrieve the text of the given diagnostic.

external get_diagnostic_option : cxdiagnostic -> string * string = "clang_getDiagnosticOption_wrapper"

Retrieve the name of the command-line option that enabled this diagnostic.

external get_diagnostic_category : cxdiagnostic -> int = "clang_getDiagnosticCategory_wrapper"

Retrieve the category number for this diagnostic.

external get_diagnostic_category_text : cxdiagnostic -> string = "clang_getDiagnosticCategoryText_wrapper"

Retrieve the diagnostic category text for a given diagnostic.

external get_diagnostic_num_ranges : cxdiagnostic -> int = "clang_getDiagnosticNumRanges_wrapper"

Determine the number of source ranges associated with the given diagnostic.

external get_diagnostic_range : cxdiagnostic -> int -> cxsourcerange = "clang_getDiagnosticRange_wrapper"

Retrieve a source range associated with the diagnostic.

external get_diagnostic_num_fix_its : cxdiagnostic -> int = "clang_getDiagnosticNumFixIts_wrapper"

Determine the number of fix-it hints associated with the given diagnostic.

external get_diagnostic_fix_it : cxdiagnostic -> int -> cxsourcerange -> string * cxsourcerange = "clang_getDiagnosticFixIt_wrapper"

Retrieve the replacement information for a given fix-it.

external get_translation_unit_spelling : cxtranslationunit -> string = "clang_getTranslationUnitSpelling_wrapper"

Get the original translation unit source file name.

type cxunsavedfile = {
filename : string;

The file whose contents have not yet been saved.

contents : string;

A buffer containing the unsaved contents of this file.

}

Provides the contents of a file that has not yet been saved to disk.

external create_translation_unit_from_source_file : cxindex -> string -> string array -> cxunsavedfile array -> cxtranslationunit = "clang_createTranslationUnitFromSourceFile_wrapper"

Return the CXTranslationUnit for a given source file and the provided command line arguments one would pass to the compiler.

external create_translation_unit : cxindex -> string -> cxtranslationunit = "clang_createTranslationUnit_wrapper"

Same as clang_createTranslationUnit2, but returns the CXTranslationUnit instead of an error code. In case of an error this routine returns a NULL CXTranslationUnit, without further detailed error codes.

external create_translation_unit2 : cxindex -> string -> (cxtranslationunitcxerrorcode) Stdcompat.result = "clang_createTranslationUnit2_wrapper"

Create a translation unit from an AST file ( -emit-ast).

module Cxtranslationunit_flags : sig ... end
external default_editing_translation_unit_options : unit -> Cxtranslationunit_flags.t = "clang_defaultEditingTranslationUnitOptions_wrapper"

Returns the set of flags that is suitable for parsing a translation unit that is being edited.

external parse_translation_unit : cxindex -> string -> string array -> cxunsavedfile array -> Cxtranslationunit_flags.t -> cxtranslationunit option = "clang_parseTranslationUnit_wrapper"

Same as clang_parseTranslationUnit2, but returns the CXTranslationUnit instead of an error code. In case of an error this routine returns a NULL CXTranslationUnit, without further detailed error codes.

external parse_translation_unit2 : cxindex -> string -> string array -> cxunsavedfile array -> Cxtranslationunit_flags.t -> (cxtranslationunitcxerrorcode) Stdcompat.result = "clang_parseTranslationUnit2_wrapper"

Parse the given source file and the translation unit corresponding to that file.

external parse_translation_unit2_full_argv : cxindex -> string -> string array -> cxunsavedfile array -> Cxtranslationunit_flags.t -> (cxtranslationunitcxerrorcode) Stdcompat.result = "clang_parseTranslationUnit2FullArgv_wrapper"

Same as clang_parseTranslationUnit2 but requires a full command line for command_line_args including argv[0]. This is useful if the standard library paths are relative to the binary.

external default_save_options : cxtranslationunit -> int = "clang_defaultSaveOptions_wrapper"

Returns the set of flags that is suitable for saving a translation unit.

type cxsaveerror =
| Unknown

Indicates that an unknown error occurred while attempting to save the file.

| TranslationErrors

Indicates that errors during translation prevented this attempt to save the translation unit.

| InvalidTU

Indicates that the translation unit to be saved was somehow invalid (e.g., NULL).

Describes the kind of error that occurred (if any) in a call to clang_saveTranslationUnit().

module Cxsavetranslationunit_flags : sig ... end
external save_translation_unit : cxtranslationunit -> string -> Cxsavetranslationunit_flags.t -> (unit, cxsaveerror) Stdcompat.result = "clang_saveTranslationUnit_wrapper"

Saves a translation unit into a serialized representation of that translation unit on disk.

external suspend_translation_unit : cxtranslationunit -> int = "clang_suspendTranslationUnit_wrapper"

Suspend a translation unit in order to free memory associated with it.

module Cxreparse_flags : sig ... end
external default_reparse_options : cxtranslationunit -> Cxreparse_flags.t = "clang_defaultReparseOptions_wrapper"

Returns the set of flags that is suitable for reparsing a translation unit.

external reparse_translation_unit : cxtranslationunit -> cxunsavedfile array -> Cxreparse_flags.t -> (unit, cxerrorcode) Stdcompat.result = "clang_reparseTranslationUnit_wrapper"

Reparse the source files that produced this translation unit.

type cxturesourceusagekind =
| AST
| Identifiers
| Selectors
| GlobalCompletionResults
| SourceManagerContentCache
| AST_SideTables
| SourceManager_Membuffer_Malloc
| SourceManager_Membuffer_MMap
| ExternalASTSource_Membuffer_Malloc
| ExternalASTSource_Membuffer_MMap
| Preprocessor
| PreprocessingRecord
| SourceManager_DataStructures
| Preprocessor_HeaderSearch

Categorizes how memory is being used by a translation unit.

external get_turesource_usage_name : cxturesourceusagekind -> string = "clang_getTUResourceUsageName_wrapper"

Returns the human-readable null-terminated C string that represents the name of the memory category. This string should never be freed.

type cxturesourceusage

The memory usage of a CXTranslationUnit, broken into categories.

external get_cxturesource_usage : cxtranslationunit -> cxturesourceusage = "clang_getCXTUResourceUsage_wrapper"

Return the memory usage of a translation unit. This object should be released with clang_disposeCXTUResourceUsage().

type cxtargetinfo
external get_translation_unit_target_info : cxtranslationunit -> cxtargetinfo = "clang_getTranslationUnitTargetInfo_wrapper"

Get target information for this translation unit.

external target_info_get_triple : cxtargetinfo -> string = "clang_TargetInfo_getTriple_wrapper"

Get the normalized target triple as a string.

external target_info_get_pointer_width : cxtargetinfo -> int = "clang_TargetInfo_getPointerWidth_wrapper"

Get the pointer width of the target in bits.

type cxcursorkind =
| UnexposedDecl

A declaration whose specific kind is not exposed via this interface.

| StructDecl

A C or C++ struct.

| UnionDecl

A C or C++ union.

| ClassDecl

A C++ class.

| EnumDecl

An enumeration.

| FieldDecl

A field (in C) or non-static data member (in C++) in a struct, union, or C++ class.

| EnumConstantDecl

An enumerator constant.

| FunctionDecl

A function.

| VarDecl

A variable.

| ParmDecl

A function or method parameter.

| ObjCInterfaceDecl

An Objective-C @interface.

| ObjCCategoryDecl

An Objective-C @interface for a category.

| ObjCProtocolDecl

An Objective-C @protocol declaration.

| ObjCPropertyDecl

An Objective-C @property declaration.

| ObjCIvarDecl

An Objective-C instance variable.

| ObjCInstanceMethodDecl

An Objective-C instance method.

| ObjCClassMethodDecl

An Objective-C class method.

| ObjCImplementationDecl

An Objective-C @implementation.

| ObjCCategoryImplDecl

An Objective-C @implementation for a category.

| TypedefDecl

A typedef.

| CXXMethod

A C++ class method.

| Namespace

A C++ namespace.

| LinkageSpec

A linkage specification, e.g. 'extern "C"'.

| Constructor

A C++ constructor.

| Destructor

A C++ destructor.

| ConversionFunction

A C++ conversion function.

| TemplateTypeParameter

A C++ template type parameter.

| NonTypeTemplateParameter

A C++ non-type template parameter.

| TemplateTemplateParameter

A C++ template template parameter.

| FunctionTemplate

A C++ function template.

| ClassTemplate

A C++ class template.

| ClassTemplatePartialSpecialization

A C++ class template partial specialization.

| NamespaceAlias

A C++ namespace alias declaration.

| UsingDirective

A C++ using directive.

| UsingDeclaration

A C++ using declaration.

| TypeAliasDecl

A C++ alias declaration

| ObjCSynthesizeDecl

An Objective-C @synthesize definition.

| ObjCDynamicDecl

An Objective-C @dynamic definition.

| CXXAccessSpecifier

An access specifier.

| ObjCSuperClassRef

An access specifier.

| ObjCProtocolRef

An access specifier.

| ObjCClassRef

An access specifier.

| TypeRef

A reference to a type declaration.

| CXXBaseSpecifier

A reference to a type declaration.

| TemplateRef

A reference to a class template, function template, template template parameter, or class template partial specialization.

| NamespaceRef

A reference to a namespace or namespace alias.

| MemberRef

A reference to a member of a struct, union, or class that occurs in some non-expression context, e.g., a designated initializer.

| LabelRef

A reference to a labeled statement.

| OverloadedDeclRef

A reference to a set of overloaded functions or function templates that has not yet been resolved to a specific function or function template.

| VariableRef

A reference to a variable that occurs in some non-expression context, e.g., a C++ lambda capture list.

| InvalidFile

A reference to a variable that occurs in some non-expression context, e.g., a C++ lambda capture list.

| NoDeclFound

A reference to a variable that occurs in some non-expression context, e.g., a C++ lambda capture list.

| NotImplemented

A reference to a variable that occurs in some non-expression context, e.g., a C++ lambda capture list.

| InvalidCode

A reference to a variable that occurs in some non-expression context, e.g., a C++ lambda capture list.

| UnexposedExpr

An expression whose specific kind is not exposed via this interface.

| DeclRefExpr

An expression that refers to some value declaration, such as a function, variable, or enumerator.

| MemberRefExpr

An expression that refers to a member of a struct, union, class, Objective-C class, etc.

| CallExpr

An expression that calls a function.

| ObjCMessageExpr

An expression that sends a message to an Objective-C object or class.

| BlockExpr

An expression that represents a block literal.

| IntegerLiteral

An integer literal.

| FloatingLiteral

A floating point number literal.

| ImaginaryLiteral

An imaginary number literal.

| StringLiteral

A string literal.

| CharacterLiteral

A character literal.

| ParenExpr

A parenthesized expression, e.g. "(1)".

| UnaryOperator

This represents the unary-expression's (except sizeof and alignof).

| ArraySubscriptExpr

[C99 6.5.2.1] Array Subscripting.

| BinaryOperator

A builtin binary operation expression such as "x + y" or "x <= y".

| CompoundAssignOperator

Compound assignment such as "+=".

| ConditionalOperator

The ?: ternary operator.

| CStyleCastExpr

An explicit cast in C (C99 6.5.4) or a C-style cast in C++ (C++ [expr.cast]), which uses the syntax (Type)expr.

| CompoundLiteralExpr

[C99 6.5.2.5]

| InitListExpr

Describes an C or C++ initializer list.

| AddrLabelExpr

The GNU address of label extension, representing &&label.

| StmtExpr

This is the GNU Statement Expression extension: ({int X=4; X;})

| GenericSelectionExpr

Represents a C11 generic selection.

| GNUNullExpr

Implements the GNU __null extension, which is a name for a null pointer constant that has integral type (e.g., int or long) and is the same size and alignment as a pointer.

| CXXStaticCastExpr

C++'s static_cast<> expression.

| CXXDynamicCastExpr

C++'s dynamic_cast<> expression.

| CXXReinterpretCastExpr

C++'s reinterpret_cast<> expression.

| CXXConstCastExpr

C++'s const_cast<> expression.

| CXXFunctionalCastExpr

Represents an explicit C++ type conversion that uses "functional" notion (C++ [expr.type.conv]).

| CXXTypeidExpr

A C++ typeid expression (C++ [expr.typeid]).

| CXXBoolLiteralExpr

[C++ 2.13.5] C++ Boolean Literal.

| CXXNullPtrLiteralExpr

[C++0x 2.14.7] C++ Pointer Literal.

| CXXThisExpr

Represents the "this" expression in C++

| CXXThrowExpr

[C++ 15] C++ Throw Expression.

| CXXNewExpr

A new expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)".

| CXXDeleteExpr

A delete expression for memory deallocation and destructor calls, e.g. "delete[] pArray".

| UnaryExpr

A unary expression. (noexcept, sizeof, or other traits)

| ObjCStringLiteral

An Objective-C string literal i.e. "foo".

| ObjCEncodeExpr

An Objective-C @encode expression.

| ObjCSelectorExpr

An Objective-C @selector expression.

| ObjCProtocolExpr

An Objective-C @protocol expression.

| ObjCBridgedCastExpr

An Objective-C "bridged" cast expression, which casts between Objective-C pointers and C pointers, transferring ownership in the process.

| PackExpansionExpr

Represents a C++0x pack expansion that produces a sequence of expressions.

| SizeOfPackExpr

Represents an expression that computes the length of a parameter pack.

| LambdaExpr
| ObjCBoolLiteralExpr

Objective-c Boolean Literal.

| ObjCSelfExpr

Represents the "self" expression in an Objective-C method.

| OMPArraySectionExpr

OpenMP 4.0 [2.4, Array Section].

| ObjCAvailabilityCheckExpr

Represents an (...) check.

| UnexposedStmt

A statement whose specific kind is not exposed via this interface.

| LabelStmt

A labelled statement in a function.

| CompoundStmt

A group of statements like { stmt stmt }.

| CaseStmt

A case statement.

| DefaultStmt

A default statement.

| IfStmt

An if statement

| SwitchStmt

A switch statement.

| WhileStmt

A while statement.

| DoStmt

A do statement.

| ForStmt

A for statement.

| GotoStmt

A goto statement.

| IndirectGotoStmt

An indirect goto statement.

| ContinueStmt

A continue statement.

| BreakStmt

A break statement.

| ReturnStmt

A return statement.

| GCCAsmStmt

A GCC inline assembly statement extension.

| ObjCAtTryStmt

Objective-C's overall @try-@catch-@finally statement.

| ObjCAtCatchStmt

Objective-C's @catch statement.

| ObjCAtFinallyStmt

Objective-C's @finally statement.

| ObjCAtThrowStmt

Objective-C's @throw statement.

| ObjCAtSynchronizedStmt

Objective-C's @synchronized statement.

| ObjCAutoreleasePoolStmt

Objective-C's autorelease pool statement.

| ObjCForCollectionStmt

Objective-C's collection statement.

| CXXCatchStmt

C++'s catch statement.

| CXXTryStmt

C++'s try statement.

| CXXForRangeStmt

C++'s for (* : *) statement.

| SEHTryStmt

Windows Structured Exception Handling's try statement.

| SEHExceptStmt

Windows Structured Exception Handling's except statement.

| SEHFinallyStmt

Windows Structured Exception Handling's finally statement.

| MSAsmStmt

A MS inline assembly statement extension.

| NullStmt

The null statement ";": C99 6.8.3p3.

| DeclStmt

Adaptor class for mixing declarations with statements and expressions.

| OMPParallelDirective

OpenMP parallel directive.

| OMPSimdDirective

OpenMP SIMD directive.

| OMPForDirective

OpenMP for directive.

| OMPSectionsDirective

OpenMP sections directive.

| OMPSectionDirective

OpenMP section directive.

| OMPSingleDirective

OpenMP single directive.

| OMPParallelForDirective

OpenMP parallel for directive.

| OMPParallelSectionsDirective

OpenMP parallel sections directive.

| OMPTaskDirective

OpenMP task directive.

| OMPMasterDirective

OpenMP master directive.

| OMPCriticalDirective

OpenMP critical directive.

| OMPTaskyieldDirective

OpenMP taskyield directive.

| OMPBarrierDirective

OpenMP barrier directive.

| OMPTaskwaitDirective

OpenMP taskwait directive.

| OMPFlushDirective

OpenMP flush directive.

| SEHLeaveStmt

Windows Structured Exception Handling's leave statement.

| OMPOrderedDirective

OpenMP ordered directive.

| OMPAtomicDirective

OpenMP atomic directive.

| OMPForSimdDirective

OpenMP for SIMD directive.

| OMPParallelForSimdDirective

OpenMP parallel for SIMD directive.

| OMPTargetDirective

OpenMP target directive.

| OMPTeamsDirective

OpenMP teams directive.

| OMPTaskgroupDirective

OpenMP taskgroup directive.

| OMPCancellationPointDirective

OpenMP cancellation point directive.

| OMPCancelDirective

OpenMP cancel directive.

| OMPTargetDataDirective

OpenMP target data directive.

| OMPTaskLoopDirective

OpenMP taskloop directive.

| OMPTaskLoopSimdDirective

OpenMP taskloop simd directive.

| OMPDistributeDirective

OpenMP distribute directive.

| OMPTargetEnterDataDirective

OpenMP target enter data directive.

| OMPTargetExitDataDirective

OpenMP target exit data directive.

| OMPTargetParallelDirective

OpenMP target parallel directive.

| OMPTargetParallelForDirective

OpenMP target parallel for directive.

| OMPTargetUpdateDirective

OpenMP target update directive.

| OMPDistributeParallelForDirective

OpenMP distribute parallel for directive.

| OMPDistributeParallelForSimdDirective

OpenMP distribute parallel for simd directive.

| OMPDistributeSimdDirective

OpenMP distribute simd directive.

| OMPTargetParallelForSimdDirective

OpenMP target parallel for simd directive.

| OMPTargetSimdDirective

OpenMP target simd directive.

| OMPTeamsDistributeDirective

OpenMP teams distribute directive.

| OMPTeamsDistributeSimdDirective

OpenMP teams distribute simd directive.

| OMPTeamsDistributeParallelForSimdDirective

OpenMP teams distribute parallel for simd directive.

| OMPTeamsDistributeParallelForDirective

OpenMP teams distribute parallel for directive.

| OMPTargetTeamsDirective

OpenMP target teams directive.

| OMPTargetTeamsDistributeDirective

OpenMP target teams distribute directive.

| OMPTargetTeamsDistributeParallelForDirective

OpenMP target teams distribute parallel for directive.

| OMPTargetTeamsDistributeParallelForSimdDirective

OpenMP target teams distribute parallel for simd directive.

| OMPTargetTeamsDistributeSimdDirective

OpenMP target teams distribute simd directive.

| TranslationUnit

Cursor that represents the translation unit itself.

| UnexposedAttr

An attribute whose specific kind is not exposed via this interface.

| IBActionAttr

An attribute whose specific kind is not exposed via this interface.

| IBOutletAttr

An attribute whose specific kind is not exposed via this interface.

| IBOutletCollectionAttr

An attribute whose specific kind is not exposed via this interface.

| CXXFinalAttr

An attribute whose specific kind is not exposed via this interface.

| CXXOverrideAttr

An attribute whose specific kind is not exposed via this interface.

| AnnotateAttr

An attribute whose specific kind is not exposed via this interface.

| AsmLabelAttr

An attribute whose specific kind is not exposed via this interface.

| PackedAttr

An attribute whose specific kind is not exposed via this interface.

| PureAttr

An attribute whose specific kind is not exposed via this interface.

| ConstAttr

An attribute whose specific kind is not exposed via this interface.

| NoDuplicateAttr

An attribute whose specific kind is not exposed via this interface.

| CUDAConstantAttr

An attribute whose specific kind is not exposed via this interface.

| CUDADeviceAttr

An attribute whose specific kind is not exposed via this interface.

| CUDAGlobalAttr

An attribute whose specific kind is not exposed via this interface.

| CUDAHostAttr

An attribute whose specific kind is not exposed via this interface.

| CUDASharedAttr

An attribute whose specific kind is not exposed via this interface.

| VisibilityAttr

An attribute whose specific kind is not exposed via this interface.

| DLLExport

An attribute whose specific kind is not exposed via this interface.

| DLLImport

An attribute whose specific kind is not exposed via this interface.

| PreprocessingDirective

An attribute whose specific kind is not exposed via this interface.

| MacroDefinition

An attribute whose specific kind is not exposed via this interface.

| MacroExpansion

An attribute whose specific kind is not exposed via this interface.

| InclusionDirective

An attribute whose specific kind is not exposed via this interface.

| ModuleImportDecl

A module import declaration.

| TypeAliasTemplateDecl

A module import declaration.

| StaticAssert

A static_assert or _Static_assert node

| FriendDecl

a friend declaration.

| OverloadCandidate

A code completion overload candidate.

Describes the kind of entity that a cursor refers to.

type cxcursor

A cursor representing some element in the abstract syntax tree for a translation unit.

external get_null_cursor : unit -> cxcursor = "clang_getNullCursor_wrapper"

Retrieve the NULL cursor, which represents no entity.

external get_translation_unit_cursor : cxtranslationunit -> cxcursor = "clang_getTranslationUnitCursor_wrapper"

Retrieve the cursor that represents the given translation unit.

external equal_cursors : cxcursor -> cxcursor -> bool = "clang_equalCursors_wrapper"

Determine whether two cursors are equivalent.

external cursor_is_null : cxcursor -> bool = "clang_Cursor_isNull_wrapper"

Returns non-zero if cursor is null.

external hash_cursor : cxcursor -> int = "clang_hashCursor_wrapper"

Compute a hash value for the given cursor.

external get_cursor_kind : cxcursor -> cxcursorkind = "clang_getCursorKind_wrapper"

Retrieve the kind of the given cursor.

external is_declaration : cxcursorkind -> bool = "clang_isDeclaration_wrapper"

Determine whether the given cursor kind represents a declaration.

external is_reference : cxcursorkind -> bool = "clang_isReference_wrapper"

Determine whether the given cursor kind represents a simple reference.

external is_expression : cxcursorkind -> bool = "clang_isExpression_wrapper"

Determine whether the given cursor kind represents an expression.

external is_statement : cxcursorkind -> bool = "clang_isStatement_wrapper"

Determine whether the given cursor kind represents a statement.

external is_attribute : cxcursorkind -> bool = "clang_isAttribute_wrapper"

Determine whether the given cursor kind represents an attribute.

external cursor_has_attrs : cxcursor -> int = "clang_Cursor_hasAttrs_wrapper"

Determine whether the given cursor has any attributes.

external is_invalid : cxcursorkind -> bool = "clang_isInvalid_wrapper"

Determine whether the given cursor kind represents an invalid cursor.

external is_translation_unit : cxcursorkind -> bool = "clang_isTranslationUnit_wrapper"

Determine whether the given cursor kind represents a translation unit.

external is_preprocessing : cxcursorkind -> bool = "clang_isPreprocessing_wrapper"

Determine whether the given cursor represents a preprocessing element, such as a preprocessor directive or macro instantiation.

external is_unexposed : cxcursorkind -> bool = "clang_isUnexposed_wrapper"

Determine whether the given cursor represents a currently unexposed piece of the AST (e.g., CXCursor_UnexposedStmt).

type cxlinkagekind =
| Invalid

This value indicates that no linkage information is available for a provided CXCursor.

| NoLinkage

This is the linkage for variables, parameters, and so on that have automatic storage. This covers normal (non-extern) local variables.

| Internal

This is the linkage for static variables and static functions.

| UniqueExternal

This is the linkage for entities with external linkage that live in C++ anonymous namespaces.

| External

This is the linkage for entities with true, external linkage.

Describe the linkage of the entity referred to by a cursor.

val equal_cxlinkagekind : cxlinkagekind -> cxlinkagekind -> Ppx_deriving_runtime.bool
val compare_cxlinkagekind : cxlinkagekind -> cxlinkagekind -> Ppx_deriving_runtime.int
val pp_cxlinkagekind : Format.formatter -> cxlinkagekind -> Ppx_deriving_runtime.unit
val show_cxlinkagekind : cxlinkagekind -> Ppx_deriving_runtime.string
external get_cursor_linkage : cxcursor -> cxlinkagekind = "clang_getCursorLinkage_wrapper"

Determine the linkage of the entity referred to by a given cursor.

type cxvisibilitykind =
| Invalid

This value indicates that no visibility information is available for a provided CXCursor.

| Hidden

Symbol not seen by the linker.

| Protected

Symbol seen by the linker but resolves to a symbol inside this object.

| Default

Symbol seen by the linker and acts like a normal symbol.

external get_cursor_visibility : cxcursor -> cxvisibilitykind = "clang_getCursorVisibility_wrapper"

Describe the visibility of the entity referred to by a cursor.

type cxavailabilitykind =
| Available

The entity is available.

| Deprecated

The entity is available, but has been deprecated (and its use is not recommended).

| NotAvailable

The entity is not available; any use of it will be an error.

| NotAccessible

The entity is available, but not accessible; any use of it will be an error.

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.

external get_cursor_availability : cxcursor -> cxavailabilitykind = "clang_getCursorAvailability_wrapper"

Determine the availability of the entity that this cursor refers to, taking the current target platform into account.

type cxlanguagekind =
| Invalid
| C
| ObjC
| CPlusPlus

Describe the "language" of the entity referred to by a cursor.

external get_cursor_language : cxcursor -> cxlanguagekind = "clang_getCursorLanguage_wrapper"

Determine the "language" of the entity referred to by a given cursor.

type cxtlskind =
| None
| Dynamic
| Static

Describe the "thread-local storage (TLS) kind" of the declaration referred to by a cursor.

external get_cursor_tlskind : cxcursor -> cxtlskind = "clang_getCursorTLSKind_wrapper"

Determine the "thread-local storage (TLS) kind" of the declaration referred to by a cursor.

external cursor_get_translation_unit : cxcursor -> cxtranslationunit = "clang_Cursor_getTranslationUnit_wrapper"

Returns the translation unit that a cursor originated from.

type cxcursorset
external create_cxcursor_set : unit -> cxcursorset = "clang_createCXCursorSet_wrapper"

Creates an empty CXCursorSet.

external cxcursor_set_contains : cxcursorset -> cxcursor -> int = "clang_CXCursorSet_contains_wrapper"

Queries a CXCursorSet to see if it contains a specific CXCursor.

external cxcursor_set_insert : cxcursorset -> cxcursor -> int = "clang_CXCursorSet_insert_wrapper"

Inserts a CXCursor into a CXCursorSet.

external get_cursor_semantic_parent : cxcursor -> cxcursor = "clang_getCursorSemanticParent_wrapper"

Determine the semantic parent of the given cursor.

external get_cursor_lexical_parent : cxcursor -> cxcursor = "clang_getCursorLexicalParent_wrapper"

Determine the lexical parent of the given cursor.

external get_overridden_cursors : cxcursor -> string = "clang_getOverriddenCursors_wrapper"

Determine the set of methods that are overridden by the given method.

external get_included_file : cxcursor -> cxfile = "clang_getIncludedFile_wrapper"

Retrieve the file that is included by the given inclusion directive cursor.

external get_cursor : cxtranslationunit -> cxsourcelocation -> cxcursor = "clang_getCursor_wrapper"

Map a source location to the cursor that describes the entity at that location in the source code.

external get_cursor_location : cxcursor -> cxsourcelocation = "clang_getCursorLocation_wrapper"

Retrieve the physical location of the source constructor referenced by the given cursor.

external get_cursor_extent : cxcursor -> cxsourcerange = "clang_getCursorExtent_wrapper"

Retrieve the physical extent of the source construct referenced by the given cursor.

type cxtypekind =
| Invalid

Represents an invalid type (e.g., where no type is available).

| Unexposed

A type whose specific kind is not exposed via this interface.

| Void

A type whose specific kind is not exposed via this interface.

| Bool

A type whose specific kind is not exposed via this interface.

| Char_U

A type whose specific kind is not exposed via this interface.

| UChar

A type whose specific kind is not exposed via this interface.

| Char16

A type whose specific kind is not exposed via this interface.

| Char32

A type whose specific kind is not exposed via this interface.

| UShort

A type whose specific kind is not exposed via this interface.

| UInt

A type whose specific kind is not exposed via this interface.

| ULong

A type whose specific kind is not exposed via this interface.

| ULongLong

A type whose specific kind is not exposed via this interface.

| UInt128

A type whose specific kind is not exposed via this interface.

| Char_S

A type whose specific kind is not exposed via this interface.

| SChar

A type whose specific kind is not exposed via this interface.

| WChar

A type whose specific kind is not exposed via this interface.

| Short

A type whose specific kind is not exposed via this interface.

| Int

A type whose specific kind is not exposed via this interface.

| Long

A type whose specific kind is not exposed via this interface.

| LongLong

A type whose specific kind is not exposed via this interface.

| Int128

A type whose specific kind is not exposed via this interface.

| Float

A type whose specific kind is not exposed via this interface.

| Double

A type whose specific kind is not exposed via this interface.

| LongDouble

A type whose specific kind is not exposed via this interface.

| NullPtr

A type whose specific kind is not exposed via this interface.

| Overload

A type whose specific kind is not exposed via this interface.

| Dependent

A type whose specific kind is not exposed via this interface.

| ObjCId

A type whose specific kind is not exposed via this interface.

| ObjCClass

A type whose specific kind is not exposed via this interface.

| ObjCSel

A type whose specific kind is not exposed via this interface.

| Float128

A type whose specific kind is not exposed via this interface.

| Half

A type whose specific kind is not exposed via this interface.

| Float16

A type whose specific kind is not exposed via this interface.

| Complex

A type whose specific kind is not exposed via this interface.

| Pointer

A type whose specific kind is not exposed via this interface.

| BlockPointer

A type whose specific kind is not exposed via this interface.

| LValueReference

A type whose specific kind is not exposed via this interface.

| RValueReference

A type whose specific kind is not exposed via this interface.

| Record

A type whose specific kind is not exposed via this interface.

| Enum

A type whose specific kind is not exposed via this interface.

| Typedef

A type whose specific kind is not exposed via this interface.

| ObjCInterface

A type whose specific kind is not exposed via this interface.

| ObjCObjectPointer

A type whose specific kind is not exposed via this interface.

| FunctionNoProto

A type whose specific kind is not exposed via this interface.

| FunctionProto

A type whose specific kind is not exposed via this interface.

| ConstantArray

A type whose specific kind is not exposed via this interface.

| Vector

A type whose specific kind is not exposed via this interface.

| IncompleteArray

A type whose specific kind is not exposed via this interface.

| VariableArray

A type whose specific kind is not exposed via this interface.

| DependentSizedArray

A type whose specific kind is not exposed via this interface.

| MemberPointer

A type whose specific kind is not exposed via this interface.

| Auto

A type whose specific kind is not exposed via this interface.

| Elaborated

Represents a type that was referred to using an elaborated type keyword.

| Pipe

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dArrayRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dBufferRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dDepthRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayDepthRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dMSAARO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayMSAARO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dMSAADepthRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayMSAADepthRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage3dRO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dArrayWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dBufferWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dDepthWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayDepthWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dMSAAWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayMSAAWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dMSAADepthWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayMSAADepthWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage3dWO

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dArrayRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage1dBufferRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dDepthRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayDepthRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dMSAARW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayMSAARW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dMSAADepthRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage2dArrayMSAADepthRW

Represents a type that was referred to using an elaborated type keyword.

| OCLImage3dRW

Represents a type that was referred to using an elaborated type keyword.

| OCLSampler

Represents a type that was referred to using an elaborated type keyword.

| OCLEvent

Represents a type that was referred to using an elaborated type keyword.

| OCLQueue

Represents a type that was referred to using an elaborated type keyword.

| OCLReserveID

Represents a type that was referred to using an elaborated type keyword.

Describes the kind of type

val equal_cxtypekind : cxtypekind -> cxtypekind -> Ppx_deriving_runtime.bool
val compare_cxtypekind : cxtypekind -> cxtypekind -> Ppx_deriving_runtime.int
val pp_cxtypekind : Format.formatter -> cxtypekind -> Ppx_deriving_runtime.unit
val show_cxtypekind : cxtypekind -> Ppx_deriving_runtime.string
type cxtype

The type of an element in the abstract syntax tree.

external get_type_kind : cxtype -> cxtypekind = "clang_getTypeKind_wrapper"
external get_cursor_type : cxcursor -> cxtype = "clang_getCursorType_wrapper"

Retrieve the type of a CXCursor (if any).

external get_type_spelling : cxtype -> string = "clang_getTypeSpelling_wrapper"

Pretty-print the underlying type using the rules of the language of the translation unit from which it came.

external get_typedef_decl_underlying_type : cxcursor -> cxtype = "clang_getTypedefDeclUnderlyingType_wrapper"

Retrieve the underlying type of a typedef declaration.

external get_enum_decl_integer_type : cxcursor -> cxtype = "clang_getEnumDeclIntegerType_wrapper"

Retrieve the integer type of an enum declaration.

external get_enum_constant_decl_value : cxcursor -> int = "clang_getEnumConstantDeclValue_wrapper"

Retrieve the integer value of an enum constant declaration as a signed long long.

external get_enum_constant_decl_unsigned_value : cxcursor -> int = "clang_getEnumConstantDeclUnsignedValue_wrapper"

Retrieve the integer value of an enum constant declaration as an unsigned long long.

external get_field_decl_bit_width : cxcursor -> int = "clang_getFieldDeclBitWidth_wrapper"

Retrieve the bit width of a bit field declaration as an integer.

external cursor_get_num_arguments : cxcursor -> int = "clang_Cursor_getNumArguments_wrapper"

Retrieve the number of non-variadic arguments associated with a given cursor.

external cursor_get_argument : cxcursor -> int -> cxcursor = "clang_Cursor_getArgument_wrapper"

Retrieve the argument cursor of a function or method.

external cursor_get_num_template_arguments : cxcursor -> int = "clang_Cursor_getNumTemplateArguments_wrapper"

Returns the number of template args of a function decl representing a template specialization.

type cxtemplateargumentkind =
| Null
| Type
| Declaration
| NullPtr
| Integral
| Template
| TemplateExpansion
| Expression
| Pack
| Invalid

Describes the kind of a template argument.

external cursor_get_template_argument_kind : cxcursor -> int -> cxtemplateargumentkind = "clang_Cursor_getTemplateArgumentKind_wrapper"

Retrieve the kind of the I'th template argument of the CXCursor C.

external cursor_get_template_argument_type : cxcursor -> int -> cxtype = "clang_Cursor_getTemplateArgumentType_wrapper"

Retrieve a CXType representing the type of a TemplateArgument of a function decl representing a template specialization.

external cursor_get_template_argument_value : cxcursor -> int -> int = "clang_Cursor_getTemplateArgumentValue_wrapper"

Retrieve the value of an Integral TemplateArgument (of a function decl representing a template specialization) as a signed long long.

external cursor_get_template_argument_unsigned_value : cxcursor -> int -> int = "clang_Cursor_getTemplateArgumentUnsignedValue_wrapper"

Retrieve the value of an Integral TemplateArgument (of a function decl representing a template specialization) as an unsigned long long.

external equal_types : cxtype -> cxtype -> bool = "clang_equalTypes_wrapper"

Determine whether two CXTypes represent the same type.

external get_canonical_type : cxtype -> cxtype = "clang_getCanonicalType_wrapper"

Return the canonical type for a CXType.

external is_const_qualified_type : cxtype -> bool = "clang_isConstQualifiedType_wrapper"

Determine whether a CXType has the "const" qualifier set, without looking through typedefs that may have added "const" at a different level.

external cursor_is_macro_function_like : cxcursor -> bool = "clang_Cursor_isMacroFunctionLike_wrapper"

Determine whether a CXCursor that is a macro, is function like.

external cursor_is_macro_builtin : cxcursor -> bool = "clang_Cursor_isMacroBuiltin_wrapper"

Determine whether a CXCursor that is a macro, is a builtin one.

external cursor_is_function_inlined : cxcursor -> bool = "clang_Cursor_isFunctionInlined_wrapper"

Determine whether a CXCursor that is a function declaration, is an inline declaration.

external is_volatile_qualified_type : cxtype -> bool = "clang_isVolatileQualifiedType_wrapper"

Determine whether a CXType has the "volatile" qualifier set, without looking through typedefs that may have added "volatile" at a different level.

external is_restrict_qualified_type : cxtype -> bool = "clang_isRestrictQualifiedType_wrapper"

Determine whether a CXType has the "restrict" qualifier set, without looking through typedefs that may have added "restrict" at a different level.

external get_address_space : cxtype -> int = "clang_getAddressSpace_wrapper"

Returns the address space of the given type.

external get_typedef_name : cxtype -> string = "clang_getTypedefName_wrapper"

Returns the typedef name of the given type.

external get_pointee_type : cxtype -> cxtype = "clang_getPointeeType_wrapper"

For pointer types, returns the type of the pointee.

external get_type_declaration : cxtype -> cxcursor = "clang_getTypeDeclaration_wrapper"

Return the cursor for the declaration of the given type.

external get_decl_obj_ctype_encoding : cxcursor -> string = "clang_getDeclObjCTypeEncoding_wrapper"

Returns the Objective-C type encoding for the specified declaration.

external type_get_obj_cencoding : cxtype -> string = "clang_Type_getObjCEncoding_wrapper"

Returns the Objective-C type encoding for the specified CXType.

external get_type_kind_spelling : cxtypekind -> string = "clang_getTypeKindSpelling_wrapper"

Retrieve the spelling of a given CXTypeKind.

type cxcallingconv =
| Default
| C
| X86StdCall
| X86FastCall
| X86ThisCall
| X86Pascal
| AAPCS
| AAPCS_VFP
| X86RegCall
| IntelOclBicc
| Win64
| X86_64SysV
| X86VectorCall
| Swift
| PreserveMost
| PreserveAll
| Invalid
| Unexposed

Describes the calling convention of a function type

val equal_cxcallingconv : cxcallingconv -> cxcallingconv -> Ppx_deriving_runtime.bool
val compare_cxcallingconv : cxcallingconv -> cxcallingconv -> Ppx_deriving_runtime.int
val pp_cxcallingconv : Format.formatter -> cxcallingconv -> Ppx_deriving_runtime.unit
val show_cxcallingconv : cxcallingconv -> Ppx_deriving_runtime.string
external get_function_type_calling_conv : cxtype -> cxcallingconv = "clang_getFunctionTypeCallingConv_wrapper"

Retrieve the calling convention associated with a function type.

external get_result_type : cxtype -> cxtype = "clang_getResultType_wrapper"

Retrieve the return type associated with a function type.

external get_exception_specification_type : cxtype -> int = "clang_getExceptionSpecificationType_wrapper"

Retrieve the exception specification type associated with a function type.

external get_num_arg_types : cxtype -> int = "clang_getNumArgTypes_wrapper"

Retrieve the number of non-variadic parameters associated with a function type.

external get_arg_type : cxtype -> int -> cxtype = "clang_getArgType_wrapper"

Retrieve the type of a parameter of a function type.

external is_function_type_variadic : cxtype -> bool = "clang_isFunctionTypeVariadic_wrapper"

Return 1 if the CXType is a variadic function type, and 0 otherwise.

external get_cursor_result_type : cxcursor -> cxtype = "clang_getCursorResultType_wrapper"

Retrieve the return type associated with a given cursor.

external get_cursor_exception_specification_type : cxcursor -> int = "clang_getCursorExceptionSpecificationType_wrapper"

Retrieve the exception specification type associated with a given cursor.

external is_podtype : cxtype -> bool = "clang_isPODType_wrapper"

Return 1 if the CXType is a POD (plain old data) type, and 0 otherwise.

external get_element_type : cxtype -> cxtype = "clang_getElementType_wrapper"

Return the element type of an array, complex, or vector type.

external get_num_elements : cxtype -> int = "clang_getNumElements_wrapper"

Return the number of elements of an array or vector type.

external get_array_element_type : cxtype -> cxtype = "clang_getArrayElementType_wrapper"

Return the element type of an array type.

external get_array_size : cxtype -> int = "clang_getArraySize_wrapper"

Return the array size of a constant array.

external type_get_named_type : cxtype -> cxtype = "clang_Type_getNamedType_wrapper"

Retrieve the type named by the qualified-id.

external type_is_transparent_tag_typedef : cxtype -> bool = "clang_Type_isTransparentTagTypedef_wrapper"

Determine if a typedef is 'transparent' tag.

external type_get_align_of : cxtype -> int = "clang_Type_getAlignOf_wrapper"

Return the alignment of a type in bytes as per C++[expr.alignof] standard.

external type_get_class_type : cxtype -> cxtype = "clang_Type_getClassType_wrapper"

Return the class type of an member pointer type.

external type_get_size_of : cxtype -> int = "clang_Type_getSizeOf_wrapper"

Return the size of a type in bytes as per C++[expr.sizeof] standard.

external type_get_offset_of : cxtype -> string -> int = "clang_Type_getOffsetOf_wrapper"

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]

external cursor_get_offset_of_field : cxcursor -> int = "clang_Cursor_getOffsetOfField_wrapper"

Return the offset of the field represented by the Cursor.

external cursor_is_anonymous : cxcursor -> bool = "clang_Cursor_isAnonymous_wrapper"

Determine whether the given cursor represents an anonymous record declaration.

external type_get_num_template_arguments : cxtype -> int = "clang_Type_getNumTemplateArguments_wrapper"

Returns the number of template arguments for given template specialization, or -1 if type T is not a template specialization.

external type_get_template_argument_as_type : cxtype -> int -> cxtype = "clang_Type_getTemplateArgumentAsType_wrapper"

Returns the type template argument of a template class specialization at given index.

type cxrefqualifierkind =
| None

No ref-qualifier was provided.

| LValue

An lvalue ref-qualifier was provided ( &).

| RValue

An rvalue ref-qualifier was provided ( &&).

external type_get_cxxref_qualifier : cxtype -> cxrefqualifierkind = "clang_Type_getCXXRefQualifier_wrapper"

Retrieve the ref-qualifier kind of a function or method.

external cursor_is_bit_field : cxcursor -> bool = "clang_Cursor_isBitField_wrapper"

Returns non-zero if the cursor specifies a Record member that is a bitfield.

external is_virtual_base : cxcursor -> bool = "clang_isVirtualBase_wrapper"

Returns 1 if the base class specified by the cursor with kind CX_CXXBaseSpecifier is virtual.

type cx_cxxaccessspecifier =
| CXXInvalidAccessSpecifier
| CXXPublic
| CXXProtected
| CXXPrivate

Represents the C++ access control level to a base class for a cursor with kind CX_CXXBaseSpecifier.

external get_cxxaccess_specifier : cxcursor -> cx_cxxaccessspecifier = "clang_getCXXAccessSpecifier_wrapper"

Returns the access control level for the referenced object.

type cx_storageclass =
| Invalid
| None
| Extern
| Static
| PrivateExtern
| OpenCLWorkGroupLocal
| Auto
| Register

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.

external cursor_get_storage_class : cxcursor -> cx_storageclass = "clang_Cursor_getStorageClass_wrapper"

Returns the storage class for a function or variable declaration.

external get_num_overloaded_decls : cxcursor -> int = "clang_getNumOverloadedDecls_wrapper"

Determine the number of overloaded declarations referenced by a CXCursor_OverloadedDeclRef cursor.

external get_overloaded_decl : cxcursor -> int -> cxcursor = "clang_getOverloadedDecl_wrapper"

Retrieve a cursor for one of the overloaded declarations referenced by a CXCursor_OverloadedDeclRef cursor.

external get_iboutlet_collection_type : cxcursor -> cxtype = "clang_getIBOutletCollectionType_wrapper"

For cursors representing an iboutletcollection attribute, this function returns the collection element type.

type cxchildvisitresult =
| Break

Terminates the cursor traversal.

| Continue

Continues the cursor traversal with the next sibling of the cursor just visited, without visiting its children.

| Recurse

Recursively traverse the children of this cursor, using the same visitor and client data.

Describes how the traversal of the children of a particular cursor should proceed after visiting a particular child cursor.

external visit_children : cxcursor -> (cxcursor -> cxcursor -> cxchildvisitresult) -> bool = "clang_visitChildren_wrapper"

Visit the children of a particular cursor.

external get_cursor_usr : cxcursor -> string = "clang_getCursorUSR_wrapper"

Retrieve a Unified Symbol Resolution (USR) for the entity referenced by the given cursor.

external get_cursor_spelling : cxcursor -> string = "clang_getCursorSpelling_wrapper"

Retrieve a name for the entity referenced by this cursor.

external cursor_get_spelling_name_range : cxcursor -> piece_index:int -> options:int -> cxsourcerange = "clang_Cursor_getSpellingNameRange_wrapper"

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.

external get_cursor_display_name : cxcursor -> string = "clang_getCursorDisplayName_wrapper"

Retrieve the display name for the entity referenced by this cursor.

external get_cursor_referenced : cxcursor -> cxcursor = "clang_getCursorReferenced_wrapper"

For a cursor that is a reference, retrieve a cursor representing the entity that it references.

external get_cursor_definition : cxcursor -> cxcursor = "clang_getCursorDefinition_wrapper"

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.

external is_cursor_definition : cxcursor -> bool = "clang_isCursorDefinition_wrapper"

Determine whether the declaration pointed to by this cursor is also a definition of that entity.

external get_canonical_cursor : cxcursor -> cxcursor = "clang_getCanonicalCursor_wrapper"

Retrieve the canonical cursor corresponding to the given cursor.

external cursor_get_obj_cselector_index : cxcursor -> int = "clang_Cursor_getObjCSelectorIndex_wrapper"

If the cursor points to a selector identifier in an Objective-C method or message expression, this returns the selector index.

external cursor_is_dynamic_call : cxcursor -> bool = "clang_Cursor_isDynamicCall_wrapper"

Given a cursor pointing to a C++ method call or an Objective-C message, returns non-zero if the method/message is "dynamic", meaning:

external cursor_get_receiver_type : cxcursor -> cxtype = "clang_Cursor_getReceiverType_wrapper"

Given a cursor pointing to an Objective-C message or property reference, or C++ method call, returns the CXType of the receiver.

external cursor_get_obj_cproperty_attributes : cxcursor -> int -> int = "clang_Cursor_getObjCPropertyAttributes_wrapper"

Given a cursor that represents a property declaration, return the associated property attributes. The bits are formed from CXObjCPropertyAttrKind.

external cursor_get_obj_cdecl_qualifiers : cxcursor -> int = "clang_Cursor_getObjCDeclQualifiers_wrapper"

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.

external cursor_is_obj_coptional : cxcursor -> bool = "clang_Cursor_isObjCOptional_wrapper"

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".

external cursor_is_variadic : cxcursor -> bool = "clang_Cursor_isVariadic_wrapper"

Returns non-zero if the given cursor is a variadic function or method.

external cursor_is_external_symbol : cxcursor -> (string * string * int) option = "clang_Cursor_isExternalSymbol_wrapper"

Returns non-zero if the given cursor points to a symbol marked with external_source_symbol attribute.

external cursor_get_comment_range : cxcursor -> cxsourcerange = "clang_Cursor_getCommentRange_wrapper"

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.

external cursor_get_raw_comment_text : cxcursor -> string = "clang_Cursor_getRawCommentText_wrapper"

Given a cursor that represents a declaration, return the associated comment text, including comment markers.

external cursor_get_brief_comment_text : cxcursor -> string option = "clang_Cursor_getBriefCommentText_wrapper"

Given a cursor that represents a documentable entity (e.g., declaration), return the associated \brief paragraph; otherwise return the first paragraph.

external cursor_get_mangling : cxcursor -> string = "clang_Cursor_getMangling_wrapper"

Retrieve the CXString representing the mangled name of the cursor.

external cursor_get_cxxmanglings : cxcursor -> string array = "clang_Cursor_getCXXManglings_wrapper"

Retrieve the CXStrings representing the mangled symbols of the C++ constructor or destructor at the cursor.

external cursor_get_obj_cmanglings : cxcursor -> string array = "clang_Cursor_getObjCManglings_wrapper"

Retrieve the CXStrings representing the mangled symbols of the ObjC class interface or implementation at the cursor.

type cxmodule
external cursor_get_module : cxcursor -> cxmodule = "clang_Cursor_getModule_wrapper"

Given a CXCursor_ModuleImportDecl cursor, return the associated module.

external get_module_for_file : cxtranslationunit -> cxfile -> cxmodule = "clang_getModuleForFile_wrapper"

Given a CXFile header file, return the module that contains it, if one exists.

external module_get_astfile : cxmodule -> cxfile = "clang_Module_getASTFile_wrapper"

Returns the module file where the provided module object came from.

external module_get_parent : cxmodule -> cxmodule = "clang_Module_getParent_wrapper"

Returns the parent of a sub-module or NULL if the given module is top-level, e.g. for 'std.vector' it will return the 'std' module.

external module_get_name : cxmodule -> string = "clang_Module_getName_wrapper"

Returns the name of the module, e.g. for the 'std.vector' sub-module it will return "vector".

external module_get_full_name : cxmodule -> string = "clang_Module_getFullName_wrapper"

Returns the full name of the module, e.g. "std.vector".

external module_is_system : cxmodule -> bool = "clang_Module_isSystem_wrapper"

Returns non-zero if the module is a system one.

external module_get_num_top_level_headers : cxtranslationunit -> cxmodule -> int = "clang_Module_getNumTopLevelHeaders_wrapper"

Returns the number of top level headers associated with this module.

external module_get_top_level_header : cxtranslationunit -> cxmodule -> int -> cxfile = "clang_Module_getTopLevelHeader_wrapper"

Returns the specified top level header associated with the module.

external cxxconstructor_is_converting_constructor : cxcursor -> bool = "clang_CXXConstructor_isConvertingConstructor_wrapper"

Determine if a C++ constructor is a converting constructor.

external cxxconstructor_is_copy_constructor : cxcursor -> bool = "clang_CXXConstructor_isCopyConstructor_wrapper"

Determine if a C++ constructor is a copy constructor.

external cxxconstructor_is_default_constructor : cxcursor -> bool = "clang_CXXConstructor_isDefaultConstructor_wrapper"

Determine if a C++ constructor is the default constructor.

external cxxconstructor_is_move_constructor : cxcursor -> bool = "clang_CXXConstructor_isMoveConstructor_wrapper"

Determine if a C++ constructor is a move constructor.

external cxxfield_is_mutable : cxcursor -> bool = "clang_CXXField_isMutable_wrapper"

Determine if a C++ field is declared 'mutable'.

external cxxmethod_is_defaulted : cxcursor -> bool = "clang_CXXMethod_isDefaulted_wrapper"

Determine if a C++ method is declared '= default'.

external cxxmethod_is_pure_virtual : cxcursor -> bool = "clang_CXXMethod_isPureVirtual_wrapper"

Determine if a C++ member function or member function template is pure virtual.

external cxxmethod_is_static : cxcursor -> bool = "clang_CXXMethod_isStatic_wrapper"

Determine if a C++ member function or member function template is declared 'static'.

external cxxmethod_is_virtual : cxcursor -> bool = "clang_CXXMethod_isVirtual_wrapper"

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.

external cxxrecord_is_abstract : cxcursor -> bool = "clang_CXXRecord_isAbstract_wrapper"

Determine if a C++ record is abstract, i.e. whether a class or struct has a pure virtual member function.

external enum_decl_is_scoped : cxcursor -> bool = "clang_EnumDecl_isScoped_wrapper"

Determine if an enum declaration refers to a scoped enum.

external cxxmethod_is_const : cxcursor -> bool = "clang_CXXMethod_isConst_wrapper"

Determine if a C++ member function or member function template is declared 'const'.

external get_template_cursor_kind : cxcursor -> cxcursorkind = "clang_getTemplateCursorKind_wrapper"

Given a cursor that represents a template, determine the cursor kind of the specializations would be generated by instantiating the template.

external get_specialized_cursor_template : cxcursor -> cxcursor = "clang_getSpecializedCursorTemplate_wrapper"

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.

external get_cursor_reference_name_range : cxcursor -> name_flags:int -> piece_index:int -> cxsourcerange = "clang_getCursorReferenceNameRange_wrapper"

Given a cursor that references something else, return the source range covering that reference.

external get_cursor_kind_spelling : cxcursorkind -> string = "clang_getCursorKindSpelling_wrapper"

These routines are used for testing and debugging, only, and should not be relied upon.

external enable_stack_traces : unit -> unit = "clang_enableStackTraces_wrapper"
type cxcompletionchunkkind =
| Optional

A code-completion string that describes "optional" text that could be a part of the template (but is not required).

| TypedText

Text that a user would be expected to type to get this code-completion result.

| Text

Text that should be inserted as part of a code-completion result.

| Placeholder

Placeholder text that should be replaced by the user.

| Informative

Informative text that should be displayed but never inserted as part of the template.

| CurrentParameter

Text that describes the current parameter when code-completion is referring to function call, message send, or template specialization.

| LeftParen

A left parenthesis ('('), used to initiate a function call or signal the beginning of a function parameter list.

| RightParen

A right parenthesis (')'), used to finish a function call or signal the end of a function parameter list.

| LeftBracket

A left bracket ('[').

| RightBracket

A right bracket (']').

| LeftBrace

A left brace ('{').

| RightBrace

A right brace ('}').

| LeftAngle

A left angle bracket ('<').

| RightAngle

A right angle bracket ('>').

| Comma

A comma separator (',').

| ResultType

Text that specifies the result type of a given result.

| Colon

A colon (':').

| SemiColon

A semicolon (';').

| Equal

An '=' sign.

| HorizontalSpace

Horizontal space (' ').

| VerticalSpace

Vertical space ('\n'), after which it is generally a good idea to perform indentation.

Describes a single piece of text within a code-completion string.

type cxcompletionstring
external get_completion_chunk_kind : cxcompletionstring -> int -> cxcompletionchunkkind = "clang_getCompletionChunkKind_wrapper"

Determine the kind of a particular chunk within a completion string.

external get_completion_chunk_text : cxcompletionstring -> int -> string = "clang_getCompletionChunkText_wrapper"

Retrieve the text associated with a particular chunk within a completion string.

external get_completion_chunk_completion_string : cxcompletionstring -> int -> cxcompletionstring = "clang_getCompletionChunkCompletionString_wrapper"

Retrieve the completion string associated with a particular chunk within a completion string.

external get_num_completion_chunks : cxcompletionstring -> int = "clang_getNumCompletionChunks_wrapper"

Retrieve the number of chunks in the given code-completion string.

external get_completion_priority : cxcompletionstring -> int = "clang_getCompletionPriority_wrapper"

Determine the priority of this code completion.

external get_completion_availability : cxcompletionstring -> cxavailabilitykind = "clang_getCompletionAvailability_wrapper"

Determine the availability of the entity that this code-completion string refers to.

external get_completion_num_annotations : cxcompletionstring -> int = "clang_getCompletionNumAnnotations_wrapper"

Retrieve the number of annotations associated with the given completion string.

external get_completion_annotation : cxcompletionstring -> int -> string = "clang_getCompletionAnnotation_wrapper"

Retrieve the annotation associated with the given completion string.

external get_completion_parent : cxcompletionstring -> string = "clang_getCompletionParent_wrapper"

Retrieve the parent context of the given completion string.

external get_completion_brief_comment : cxcompletionstring -> string = "clang_getCompletionBriefComment_wrapper"

Retrieve the brief documentation comment attached to the declaration that corresponds to the given completion string.

external get_cursor_completion_string : cxcursor -> cxcompletionstring = "clang_getCursorCompletionString_wrapper"

Retrieve a completion string for an arbitrary declaration or macro definition cursor.

external default_code_complete_options : unit -> int = "clang_defaultCodeCompleteOptions_wrapper"

Returns a default set of code-completion options that can be passed to clang_codeCompleteAt().

external get_clang_version : unit -> string = "clang_getClangVersion_wrapper"

Return a version string, suitable for showing to a user, but not intended to be parsed (the format is not guaranteed to be stable).

external toggle_crash_recovery : int -> unit = "clang_toggleCrashRecovery_wrapper"

Enable/disable crash recovery.

type cxevalresult
external cursor_evaluate : cxcursor -> cxevalresult = "clang_Cursor_Evaluate_wrapper"

If cursor is a statement declaration tries to evaluate the statement and if its variable, tries to evaluate its initializer, into its corresponding type.

type cxevalresultkind =
| Int
| Float
| ObjCStrLiteral
| StrLiteral
| CFStr
| Other
| UnExposed
external eval_result_get_kind : cxevalresult -> cxevalresultkind = "clang_EvalResult_getKind_wrapper"

Returns the kind of the evaluated result.

external eval_result_get_as_int : cxevalresult -> int = "clang_EvalResult_getAsInt_wrapper"

Returns the evaluation result as integer if the kind is Int.

external eval_result_get_as_long_long : cxevalresult -> int = "clang_EvalResult_getAsLongLong_wrapper"

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.

external eval_result_is_unsigned_int : cxevalresult -> bool = "clang_EvalResult_isUnsignedInt_wrapper"

Returns a non-zero value if the kind is Int and the evaluation result resulted in an unsigned integer.

external eval_result_get_as_unsigned : cxevalresult -> int = "clang_EvalResult_getAsUnsigned_wrapper"

Returns the evaluation result as an unsigned integer if the kind is Int and clang_EvalResult_isUnsignedInt is non-zero.

external eval_result_get_as_double : cxevalresult -> float = "clang_EvalResult_getAsDouble_wrapper"

Returns the evaluation result as double if the kind is double.

external eval_result_get_as_str : cxevalresult -> string = "clang_EvalResult_getAsStr_wrapper"

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.

type cxremapping
external get_remappings : string -> cxremapping = "clang_getRemappings_wrapper"

Retrieve a remapping.

external get_remappings_from_file_list : string array -> cxremapping = "clang_getRemappingsFromFileList_wrapper"

Retrieve a remapping.

external remap_get_num_files : cxremapping -> int = "clang_remap_getNumFiles_wrapper"

Determine the number of remappings.

type cxindexaction
external index_action_create : cxindex -> cxindexaction = "clang_IndexAction_create_wrapper"

An indexing action/session, to be applied to one or multiple translation units.

type cxvisitorresult =
| Break
| Continue

@{

external type_visit_fields : cxtype -> (cxcursor -> cxvisitorresult) -> bool = "clang_Type_visitFields_wrapper"

Visit the fields of a particular type.

type cxint
external equal_cxint : cxint -> cxint -> bool = "clang_equal_cxint_wrapper"
external compare_cxint : cxint -> cxint -> int = "clang_compare_cxint_wrapper"
external ext_integer_literal_get_value : cxcursor -> cxint = "clang_ext_IntegerLiteral_getValue_wrapper"
external ext_int_is_valid : cxint -> bool = "clang_ext_Int_isValid_wrapper"
external ext_int_to_string : cxint -> int -> bool -> string = "clang_ext_Int_toString_wrapper"
external ext_int_round_to_double : cxint -> bool -> float = "clang_ext_Int_roundToDouble_wrapper"
external ext_int_bits_to_float : cxint -> float = "clang_ext_Int_bitsToFloat_wrapper"
external ext_int_get_bit_width : cxint -> int = "clang_ext_Int_getBitWidth_wrapper"
external ext_int_get_active_bits : cxint -> int = "clang_ext_Int_getActiveBits_wrapper"
external ext_int_get_min_signed_bits : cxint -> int = "clang_ext_Int_getMinSignedBits_wrapper"
external ext_int_get_bool_value : cxint -> bool = "clang_ext_Int_getBoolValue_wrapper"
external ext_int_get_sext_value : cxint -> int = "clang_ext_Int_getSExtValue_wrapper"
external ext_int_get_sext_value64 : cxint -> Stdcompat.Int64.t = "clang_ext_Int_getSExtValue64_wrapper"
type cxfloat
external equal_cxfloat : cxfloat -> cxfloat -> bool = "clang_equal_cxfloat_wrapper"
external compare_cxfloat : cxfloat -> cxfloat -> int = "clang_compare_cxfloat_wrapper"
external ext_floating_literal_get_value : cxcursor -> cxfloat = "clang_ext_FloatingLiteral_getValue_wrapper"
external ext_float_is_valid : cxfloat -> bool = "clang_ext_Float_isValid_wrapper"
external ext_float_to_string : cxfloat -> string = "clang_ext_Float_toString_wrapper"
external ext_float_convert_to_double : cxfloat -> float = "clang_ext_Float_convertToDouble_wrapper"
external ext_string_literal_get_string : cxcursor -> string = "clang_ext_StringLiteral_GetString_wrapper"
type clang_ext_unaryoperatorkind =
| PostInc
| PostDec
| PreInc
| PreDec
| AddrOf
| Deref
| Plus
| Minus
| Not
| LNot
| Real
| Imag
| Extension
| Coawait
val equal_clang_ext_unaryoperatorkind : clang_ext_unaryoperatorkind -> clang_ext_unaryoperatorkind -> Ppx_deriving_runtime.bool
val compare_clang_ext_unaryoperatorkind : clang_ext_unaryoperatorkind -> clang_ext_unaryoperatorkind -> Ppx_deriving_runtime.int
val pp_clang_ext_unaryoperatorkind : Format.formatter -> clang_ext_unaryoperatorkind -> Ppx_deriving_runtime.unit
val show_clang_ext_unaryoperatorkind : clang_ext_unaryoperatorkind -> Ppx_deriving_runtime.string
external ext_unary_operator_get_opcode : cxcursor -> clang_ext_unaryoperatorkind = "clang_ext_UnaryOperator_getOpcode_wrapper"
external ext_unary_operator_get_opcode_spelling : clang_ext_unaryoperatorkind -> string = "clang_ext_UnaryOperator_getOpcodeSpelling_wrapper"
type clang_ext_binaryoperatorkind =
| PtrMemD
| PtrMemI
| Mul
| Div
| Rem
| Add
| Sub
| Shl
| Shr
| Cmp
| LT
| GT
| LE
| GE
| EQ
| NE
| And
| Xor
| Or
| LAnd
| LOr
| Assign
| MulAssign
| DivAssign
| RemAssign
| AddAssign
| SubAssign
| ShlAssign
| ShrAssign
| AndAssign
| XorAssign
| OrAssign
| Comma
val equal_clang_ext_binaryoperatorkind : clang_ext_binaryoperatorkind -> clang_ext_binaryoperatorkind -> Ppx_deriving_runtime.bool
val compare_clang_ext_binaryoperatorkind : clang_ext_binaryoperatorkind -> clang_ext_binaryoperatorkind -> Ppx_deriving_runtime.int
val pp_clang_ext_binaryoperatorkind : Format.formatter -> clang_ext_binaryoperatorkind -> Ppx_deriving_runtime.unit
val show_clang_ext_binaryoperatorkind : clang_ext_binaryoperatorkind -> Ppx_deriving_runtime.string
external ext_binary_operator_get_opcode : cxcursor -> clang_ext_binaryoperatorkind = "clang_ext_BinaryOperator_getOpcode_wrapper"
external ext_binary_operator_get_opcode_spelling : clang_ext_binaryoperatorkind -> string = "clang_ext_BinaryOperator_getOpcodeSpelling_wrapper"
external ext_for_stmt_get_children_set : cxcursor -> int = "clang_ext_ForStmt_getChildrenSet_wrapper"
external ext_if_stmt_get_children_set : cxcursor -> int = "clang_ext_IfStmt_getChildrenSet_wrapper"
external ext_if_stmt_get_init : cxcursor -> cxcursor = "clang_ext_IfStmt_getInit_wrapper"
external ext_switch_stmt_get_children_set : cxcursor -> int = "clang_ext_SwitchStmt_getChildrenSet_wrapper"
external ext_switch_stmt_get_init : cxcursor -> cxcursor = "clang_ext_SwitchStmt_getInit_wrapper"
external ext_while_stmt_get_children_set : cxcursor -> int = "clang_ext_WhileStmt_getChildrenSet_wrapper"
type clang_ext_elaboratedtypekeyword =
| Struct
| Interface
| Union
| Class
| Enum
| Typename
| None
val equal_clang_ext_elaboratedtypekeyword : clang_ext_elaboratedtypekeyword -> clang_ext_elaboratedtypekeyword -> Ppx_deriving_runtime.bool
val compare_clang_ext_elaboratedtypekeyword : clang_ext_elaboratedtypekeyword -> clang_ext_elaboratedtypekeyword -> Ppx_deriving_runtime.int
val pp_clang_ext_elaboratedtypekeyword : Format.formatter -> clang_ext_elaboratedtypekeyword -> Ppx_deriving_runtime.unit
val show_clang_ext_elaboratedtypekeyword : clang_ext_elaboratedtypekeyword -> Ppx_deriving_runtime.string
external ext_elaborated_type_get_keyword : cxtype -> clang_ext_elaboratedtypekeyword = "clang_ext_ElaboratedType_getKeyword_wrapper"
external ext_elaborated_type_get_keyword_spelling : clang_ext_elaboratedtypekeyword -> string = "clang_ext_ElaboratedType_getKeywordSpelling_wrapper"
external ext_var_decl_has_init : cxcursor -> bool = "clang_ext_VarDecl_hasInit_wrapper"
external ext_member_ref_expr_is_arrow : cxcursor -> bool = "clang_ext_MemberRefExpr_isArrow_wrapper"
external ext_stmt_get_class_name : cxcursor -> string = "clang_ext_Stmt_GetClassName_wrapper"
external ext_stmt_get_class_kind : cxcursor -> int = "clang_ext_Stmt_GetClassKind_wrapper"
type clang_ext_cursorkind =
| ImplicitCastExpr
| BinaryConditionalOperator
| UnaryExprOrTypeTraitExpr
| Unknown
external ext_get_cursor_kind : cxcursor -> clang_ext_cursorkind = "clang_ext_GetCursorKind_wrapper"
type clang_ext_typekind =
| Invalid
| Paren
| Elaborated
| Unknown
external ext_get_type_kind : cxtype -> clang_ext_typekind = "clang_ext_GetTypeKind_wrapper"
external ext_get_inner_type : cxtype -> cxtype = "clang_ext_GetInnerType_wrapper"
external ext_variable_array_type_get_size_expr : cxtype -> cxcursor = "clang_ext_VariableArrayType_GetSizeExpr_wrapper"
external ext_asm_stmt_get_asm_string : cxcursor -> string = "clang_ext_AsmStmt_GetAsmString_wrapper"
type clang_ext_characterkind =
| Ascii
| Wide
| UTF8
| UTF16
| UTF32
val equal_clang_ext_characterkind : clang_ext_characterkind -> clang_ext_characterkind -> Ppx_deriving_runtime.bool
val compare_clang_ext_characterkind : clang_ext_characterkind -> clang_ext_characterkind -> Ppx_deriving_runtime.int
val pp_clang_ext_characterkind : Format.formatter -> clang_ext_characterkind -> Ppx_deriving_runtime.unit
val show_clang_ext_characterkind : clang_ext_characterkind -> Ppx_deriving_runtime.string
external ext_character_literal_get_character_kind : cxcursor -> clang_ext_characterkind = "clang_ext_CharacterLiteral_GetCharacterKind_wrapper"
external ext_character_literal_get_value : cxcursor -> int = "clang_ext_CharacterLiteral_GetValue_wrapper"
type clang_ext_unaryexpr =
| SizeOf
| AlignOf
| VecStep
| OpenMPRequiredSimdAlign
val equal_clang_ext_unaryexpr : clang_ext_unaryexpr -> clang_ext_unaryexpr -> Ppx_deriving_runtime.bool
val compare_clang_ext_unaryexpr : clang_ext_unaryexpr -> clang_ext_unaryexpr -> Ppx_deriving_runtime.int
val pp_clang_ext_unaryexpr : Format.formatter -> clang_ext_unaryexpr -> Ppx_deriving_runtime.unit
val show_clang_ext_unaryexpr : clang_ext_unaryexpr -> Ppx_deriving_runtime.string
external ext_unary_expr_get_kind : cxcursor -> clang_ext_unaryexpr = "clang_ext_UnaryExpr_GetKind_wrapper"
external ext_unary_expr_get_argument_type : cxcursor -> cxtype = "clang_ext_UnaryExpr_GetArgumentType_wrapper"
external ext_type_get_named_type : cxtype -> cxtype = "clang_ext_Type_getNamedType_wrapper"