blob: 975c9ad5308dca9e7d450c12bdcc03f59739b5a6 [file] [log] [blame]
/// AUTO GENERATED FILE, DO NOT EDIT.
///
/// Generated by `package:ffigen`.
import 'dart:ffi' as ffi;
/// Holds bindings to LibClang.
class Clang {
/// Holds the Dynamic library.
final ffi.DynamicLibrary _dylib;
/// The symbols are looked up in [dynamicLibrary].
Clang(ffi.DynamicLibrary dynamicLibrary) : _dylib = dynamicLibrary;
/// Provides a shared context for creating translation units.
ffi.Pointer<ffi.Void> clang_createIndex(
int excludeDeclarationsFromPCH,
int displayDiagnostics,
) {
_clang_createIndex ??=
_dylib.lookupFunction<_c_clang_createIndex, _dart_clang_createIndex>(
'clang_createIndex');
return _clang_createIndex(
excludeDeclarationsFromPCH,
displayDiagnostics,
);
}
_dart_clang_createIndex _clang_createIndex;
/// Destroy the given index.
void clang_disposeIndex(
ffi.Pointer<ffi.Void> index,
) {
_clang_disposeIndex ??=
_dylib.lookupFunction<_c_clang_disposeIndex, _dart_clang_disposeIndex>(
'clang_disposeIndex');
return _clang_disposeIndex(
index,
);
}
_dart_clang_disposeIndex _clang_disposeIndex;
/// Determine the number of diagnostics produced for the given translation
/// unit.
int clang_getNumDiagnostics(
ffi.Pointer<CXTranslationUnitImpl> Unit,
) {
_clang_getNumDiagnostics ??= _dylib.lookupFunction<
_c_clang_getNumDiagnostics,
_dart_clang_getNumDiagnostics>('clang_getNumDiagnostics');
return _clang_getNumDiagnostics(
Unit,
);
}
_dart_clang_getNumDiagnostics _clang_getNumDiagnostics;
/// Retrieve a diagnostic associated with the given translation unit.
ffi.Pointer<ffi.Void> clang_getDiagnostic(
ffi.Pointer<CXTranslationUnitImpl> Unit,
int Index,
) {
_clang_getDiagnostic ??= _dylib.lookupFunction<_c_clang_getDiagnostic,
_dart_clang_getDiagnostic>('clang_getDiagnostic');
return _clang_getDiagnostic(
Unit,
Index,
);
}
_dart_clang_getDiagnostic _clang_getDiagnostic;
/// Destroy a diagnostic.
void clang_disposeDiagnostic(
ffi.Pointer<ffi.Void> Diagnostic,
) {
_clang_disposeDiagnostic ??= _dylib.lookupFunction<
_c_clang_disposeDiagnostic,
_dart_clang_disposeDiagnostic>('clang_disposeDiagnostic');
return _clang_disposeDiagnostic(
Diagnostic,
);
}
_dart_clang_disposeDiagnostic _clang_disposeDiagnostic;
/// 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.
ffi.Pointer<CXTranslationUnitImpl> clang_parseTranslationUnit(
ffi.Pointer<ffi.Void> CIdx,
ffi.Pointer<ffi.Int8> source_filename,
ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
int num_command_line_args,
ffi.Pointer<CXUnsavedFile> unsaved_files,
int num_unsaved_files,
int options,
) {
_clang_parseTranslationUnit ??= _dylib.lookupFunction<
_c_clang_parseTranslationUnit,
_dart_clang_parseTranslationUnit>('clang_parseTranslationUnit');
return _clang_parseTranslationUnit(
CIdx,
source_filename,
command_line_args,
num_command_line_args,
unsaved_files,
num_unsaved_files,
options,
);
}
_dart_clang_parseTranslationUnit _clang_parseTranslationUnit;
/// Destroy the specified CXTranslationUnit object.
void clang_disposeTranslationUnit(
ffi.Pointer<CXTranslationUnitImpl> arg0,
) {
_clang_disposeTranslationUnit ??= _dylib.lookupFunction<
_c_clang_disposeTranslationUnit,
_dart_clang_disposeTranslationUnit>('clang_disposeTranslationUnit');
return _clang_disposeTranslationUnit(
arg0,
);
}
_dart_clang_disposeTranslationUnit _clang_disposeTranslationUnit;
ffi.Pointer<ffi.Int8> clang_getCString_wrap(
ffi.Pointer<CXString> string,
) {
_clang_getCString_wrap ??= _dylib.lookupFunction<_c_clang_getCString_wrap,
_dart_clang_getCString_wrap>('clang_getCString_wrap');
return _clang_getCString_wrap(
string,
);
}
_dart_clang_getCString_wrap _clang_getCString_wrap;
void clang_disposeString_wrap(
ffi.Pointer<CXString> string,
) {
_clang_disposeString_wrap ??= _dylib.lookupFunction<
_c_clang_disposeString_wrap,
_dart_clang_disposeString_wrap>('clang_disposeString_wrap');
return _clang_disposeString_wrap(
string,
);
}
_dart_clang_disposeString_wrap _clang_disposeString_wrap;
int clang_getCursorKind_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_getCursorKind_wrap ??= _dylib.lookupFunction<
_c_clang_getCursorKind_wrap,
_dart_clang_getCursorKind_wrap>('clang_getCursorKind_wrap');
return _clang_getCursorKind_wrap(
cursor,
);
}
_dart_clang_getCursorKind_wrap _clang_getCursorKind_wrap;
ffi.Pointer<CXString> clang_getCursorKindSpelling_wrap(
int kind,
) {
_clang_getCursorKindSpelling_wrap ??= _dylib.lookupFunction<
_c_clang_getCursorKindSpelling_wrap,
_dart_clang_getCursorKindSpelling_wrap>(
'clang_getCursorKindSpelling_wrap');
return _clang_getCursorKindSpelling_wrap(
kind,
);
}
_dart_clang_getCursorKindSpelling_wrap _clang_getCursorKindSpelling_wrap;
ffi.Pointer<CXType> clang_getCursorType_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_getCursorType_wrap ??= _dylib.lookupFunction<
_c_clang_getCursorType_wrap,
_dart_clang_getCursorType_wrap>('clang_getCursorType_wrap');
return _clang_getCursorType_wrap(
cursor,
);
}
_dart_clang_getCursorType_wrap _clang_getCursorType_wrap;
ffi.Pointer<CXString> clang_getTypeSpelling_wrap(
ffi.Pointer<CXType> type,
) {
_clang_getTypeSpelling_wrap ??= _dylib.lookupFunction<
_c_clang_getTypeSpelling_wrap,
_dart_clang_getTypeSpelling_wrap>('clang_getTypeSpelling_wrap');
return _clang_getTypeSpelling_wrap(
type,
);
}
_dart_clang_getTypeSpelling_wrap _clang_getTypeSpelling_wrap;
ffi.Pointer<CXString> clang_getTypeKindSpelling_wrap(
int typeKind,
) {
_clang_getTypeKindSpelling_wrap ??= _dylib.lookupFunction<
_c_clang_getTypeKindSpelling_wrap,
_dart_clang_getTypeKindSpelling_wrap>('clang_getTypeKindSpelling_wrap');
return _clang_getTypeKindSpelling_wrap(
typeKind,
);
}
_dart_clang_getTypeKindSpelling_wrap _clang_getTypeKindSpelling_wrap;
ffi.Pointer<CXType> clang_getResultType_wrap(
ffi.Pointer<CXType> functionType,
) {
_clang_getResultType_wrap ??= _dylib.lookupFunction<
_c_clang_getResultType_wrap,
_dart_clang_getResultType_wrap>('clang_getResultType_wrap');
return _clang_getResultType_wrap(
functionType,
);
}
_dart_clang_getResultType_wrap _clang_getResultType_wrap;
ffi.Pointer<CXType> clang_getPointeeType_wrap(
ffi.Pointer<CXType> pointerType,
) {
_clang_getPointeeType_wrap ??= _dylib.lookupFunction<
_c_clang_getPointeeType_wrap,
_dart_clang_getPointeeType_wrap>('clang_getPointeeType_wrap');
return _clang_getPointeeType_wrap(
pointerType,
);
}
_dart_clang_getPointeeType_wrap _clang_getPointeeType_wrap;
ffi.Pointer<CXType> clang_getCanonicalType_wrap(
ffi.Pointer<CXType> typerefType,
) {
_clang_getCanonicalType_wrap ??= _dylib.lookupFunction<
_c_clang_getCanonicalType_wrap,
_dart_clang_getCanonicalType_wrap>('clang_getCanonicalType_wrap');
return _clang_getCanonicalType_wrap(
typerefType,
);
}
_dart_clang_getCanonicalType_wrap _clang_getCanonicalType_wrap;
ffi.Pointer<CXType> clang_Type_getNamedType_wrap(
ffi.Pointer<CXType> elaboratedType,
) {
_clang_Type_getNamedType_wrap ??= _dylib.lookupFunction<
_c_clang_Type_getNamedType_wrap,
_dart_clang_Type_getNamedType_wrap>('clang_Type_getNamedType_wrap');
return _clang_Type_getNamedType_wrap(
elaboratedType,
);
}
_dart_clang_Type_getNamedType_wrap _clang_Type_getNamedType_wrap;
ffi.Pointer<CXCursor> clang_getTypeDeclaration_wrap(
ffi.Pointer<CXType> cxtype,
) {
_clang_getTypeDeclaration_wrap ??= _dylib.lookupFunction<
_c_clang_getTypeDeclaration_wrap,
_dart_clang_getTypeDeclaration_wrap>('clang_getTypeDeclaration_wrap');
return _clang_getTypeDeclaration_wrap(
cxtype,
);
}
_dart_clang_getTypeDeclaration_wrap _clang_getTypeDeclaration_wrap;
ffi.Pointer<CXType> clang_getTypedefDeclUnderlyingType_wrap(
ffi.Pointer<CXCursor> cxcursor,
) {
_clang_getTypedefDeclUnderlyingType_wrap ??= _dylib.lookupFunction<
_c_clang_getTypedefDeclUnderlyingType_wrap,
_dart_clang_getTypedefDeclUnderlyingType_wrap>(
'clang_getTypedefDeclUnderlyingType_wrap');
return _clang_getTypedefDeclUnderlyingType_wrap(
cxcursor,
);
}
_dart_clang_getTypedefDeclUnderlyingType_wrap
_clang_getTypedefDeclUnderlyingType_wrap;
/// The name of parameter, struct, typedef.
ffi.Pointer<CXString> clang_getCursorSpelling_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_getCursorSpelling_wrap ??= _dylib.lookupFunction<
_c_clang_getCursorSpelling_wrap,
_dart_clang_getCursorSpelling_wrap>('clang_getCursorSpelling_wrap');
return _clang_getCursorSpelling_wrap(
cursor,
);
}
_dart_clang_getCursorSpelling_wrap _clang_getCursorSpelling_wrap;
ffi.Pointer<CXCursor> clang_getTranslationUnitCursor_wrap(
ffi.Pointer<CXTranslationUnitImpl> tu,
) {
_clang_getTranslationUnitCursor_wrap ??= _dylib.lookupFunction<
_c_clang_getTranslationUnitCursor_wrap,
_dart_clang_getTranslationUnitCursor_wrap>(
'clang_getTranslationUnitCursor_wrap');
return _clang_getTranslationUnitCursor_wrap(
tu,
);
}
_dart_clang_getTranslationUnitCursor_wrap
_clang_getTranslationUnitCursor_wrap;
ffi.Pointer<CXString> clang_formatDiagnostic_wrap(
ffi.Pointer<ffi.Void> diag,
int opts,
) {
_clang_formatDiagnostic_wrap ??= _dylib.lookupFunction<
_c_clang_formatDiagnostic_wrap,
_dart_clang_formatDiagnostic_wrap>('clang_formatDiagnostic_wrap');
return _clang_formatDiagnostic_wrap(
diag,
opts,
);
}
_dart_clang_formatDiagnostic_wrap _clang_formatDiagnostic_wrap;
/// Visitor is a function pointer with parameters having pointers to cxcursor
/// instead of cxcursor by default.
int clang_visitChildren_wrap(
ffi.Pointer<CXCursor> parent,
ffi.Pointer<ffi.NativeFunction<ModifiedCXCursorVisitor_1>> _modifiedVisitor,
int uid,
) {
_clang_visitChildren_wrap ??= _dylib.lookupFunction<
_c_clang_visitChildren_wrap,
_dart_clang_visitChildren_wrap>('clang_visitChildren_wrap');
return _clang_visitChildren_wrap(
parent,
_modifiedVisitor,
uid,
);
}
_dart_clang_visitChildren_wrap _clang_visitChildren_wrap;
int clang_Cursor_getNumArguments_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_Cursor_getNumArguments_wrap ??= _dylib.lookupFunction<
_c_clang_Cursor_getNumArguments_wrap,
_dart_clang_Cursor_getNumArguments_wrap>(
'clang_Cursor_getNumArguments_wrap');
return _clang_Cursor_getNumArguments_wrap(
cursor,
);
}
_dart_clang_Cursor_getNumArguments_wrap _clang_Cursor_getNumArguments_wrap;
ffi.Pointer<CXCursor> clang_Cursor_getArgument_wrap(
ffi.Pointer<CXCursor> cursor,
int i,
) {
_clang_Cursor_getArgument_wrap ??= _dylib.lookupFunction<
_c_clang_Cursor_getArgument_wrap,
_dart_clang_Cursor_getArgument_wrap>('clang_Cursor_getArgument_wrap');
return _clang_Cursor_getArgument_wrap(
cursor,
i,
);
}
_dart_clang_Cursor_getArgument_wrap _clang_Cursor_getArgument_wrap;
int clang_getNumArgTypes_wrap(
ffi.Pointer<CXType> cxtype,
) {
_clang_getNumArgTypes_wrap ??= _dylib.lookupFunction<
_c_clang_getNumArgTypes_wrap,
_dart_clang_getNumArgTypes_wrap>('clang_getNumArgTypes_wrap');
return _clang_getNumArgTypes_wrap(
cxtype,
);
}
_dart_clang_getNumArgTypes_wrap _clang_getNumArgTypes_wrap;
ffi.Pointer<CXType> clang_getArgType_wrap(
ffi.Pointer<CXType> cxtype,
int i,
) {
_clang_getArgType_wrap ??= _dylib.lookupFunction<_c_clang_getArgType_wrap,
_dart_clang_getArgType_wrap>('clang_getArgType_wrap');
return _clang_getArgType_wrap(
cxtype,
i,
);
}
_dart_clang_getArgType_wrap _clang_getArgType_wrap;
int clang_getEnumConstantDeclValue_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_getEnumConstantDeclValue_wrap ??= _dylib.lookupFunction<
_c_clang_getEnumConstantDeclValue_wrap,
_dart_clang_getEnumConstantDeclValue_wrap>(
'clang_getEnumConstantDeclValue_wrap');
return _clang_getEnumConstantDeclValue_wrap(
cursor,
);
}
_dart_clang_getEnumConstantDeclValue_wrap
_clang_getEnumConstantDeclValue_wrap;
/// Returns non-zero if the ranges are the same, zero if they differ.
int clang_equalRanges_wrap(
ffi.Pointer<CXSourceRange> c1,
ffi.Pointer<CXSourceRange> c2,
) {
_clang_equalRanges_wrap ??= _dylib.lookupFunction<_c_clang_equalRanges_wrap,
_dart_clang_equalRanges_wrap>('clang_equalRanges_wrap');
return _clang_equalRanges_wrap(
c1,
c2,
);
}
_dart_clang_equalRanges_wrap _clang_equalRanges_wrap;
/// Returns the comment range.
ffi.Pointer<CXSourceRange> clang_Cursor_getCommentRange_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_Cursor_getCommentRange_wrap ??= _dylib.lookupFunction<
_c_clang_Cursor_getCommentRange_wrap,
_dart_clang_Cursor_getCommentRange_wrap>(
'clang_Cursor_getCommentRange_wrap');
return _clang_Cursor_getCommentRange_wrap(
cursor,
);
}
_dart_clang_Cursor_getCommentRange_wrap _clang_Cursor_getCommentRange_wrap;
/// Returns the raw comment.
ffi.Pointer<CXString> clang_Cursor_getRawCommentText_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_Cursor_getRawCommentText_wrap ??= _dylib.lookupFunction<
_c_clang_Cursor_getRawCommentText_wrap,
_dart_clang_Cursor_getRawCommentText_wrap>(
'clang_Cursor_getRawCommentText_wrap');
return _clang_Cursor_getRawCommentText_wrap(
cursor,
);
}
_dart_clang_Cursor_getRawCommentText_wrap
_clang_Cursor_getRawCommentText_wrap;
/// Returns the first paragraph of doxygen doc comment.
ffi.Pointer<CXString> clang_Cursor_getBriefCommentText_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_Cursor_getBriefCommentText_wrap ??= _dylib.lookupFunction<
_c_clang_Cursor_getBriefCommentText_wrap,
_dart_clang_Cursor_getBriefCommentText_wrap>(
'clang_Cursor_getBriefCommentText_wrap');
return _clang_Cursor_getBriefCommentText_wrap(
cursor,
);
}
_dart_clang_Cursor_getBriefCommentText_wrap
_clang_Cursor_getBriefCommentText_wrap;
ffi.Pointer<CXSourceLocation> clang_getCursorLocation_wrap(
ffi.Pointer<CXCursor> cursor,
) {
_clang_getCursorLocation_wrap ??= _dylib.lookupFunction<
_c_clang_getCursorLocation_wrap,
_dart_clang_getCursorLocation_wrap>('clang_getCursorLocation_wrap');
return _clang_getCursorLocation_wrap(
cursor,
);
}
_dart_clang_getCursorLocation_wrap _clang_getCursorLocation_wrap;
void clang_getFileLocation_wrap(
ffi.Pointer<CXSourceLocation> location,
ffi.Pointer<ffi.Pointer<ffi.Void>> file,
ffi.Pointer<ffi.Uint32> line,
ffi.Pointer<ffi.Uint32> column,
ffi.Pointer<ffi.Uint32> offset,
) {
_clang_getFileLocation_wrap ??= _dylib.lookupFunction<
_c_clang_getFileLocation_wrap,
_dart_clang_getFileLocation_wrap>('clang_getFileLocation_wrap');
return _clang_getFileLocation_wrap(
location,
file,
line,
column,
offset,
);
}
_dart_clang_getFileLocation_wrap _clang_getFileLocation_wrap;
ffi.Pointer<CXString> clang_getFileName_wrap(
ffi.Pointer<ffi.Void> SFile,
) {
_clang_getFileName_wrap ??= _dylib.lookupFunction<_c_clang_getFileName_wrap,
_dart_clang_getFileName_wrap>('clang_getFileName_wrap');
return _clang_getFileName_wrap(
SFile,
);
}
_dart_clang_getFileName_wrap _clang_getFileName_wrap;
int clang_getNumElements_wrap(
ffi.Pointer<CXType> cxtype,
) {
_clang_getNumElements_wrap ??= _dylib.lookupFunction<
_c_clang_getNumElements_wrap,
_dart_clang_getNumElements_wrap>('clang_getNumElements_wrap');
return _clang_getNumElements_wrap(
cxtype,
);
}
_dart_clang_getNumElements_wrap _clang_getNumElements_wrap;
ffi.Pointer<CXType> clang_getArrayElementType_wrap(
ffi.Pointer<CXType> cxtype,
) {
_clang_getArrayElementType_wrap ??= _dylib.lookupFunction<
_c_clang_getArrayElementType_wrap,
_dart_clang_getArrayElementType_wrap>('clang_getArrayElementType_wrap');
return _clang_getArrayElementType_wrap(
cxtype,
);
}
_dart_clang_getArrayElementType_wrap _clang_getArrayElementType_wrap;
}
/// A character string.
class CXString extends ffi.Struct {
ffi.Pointer<ffi.Void> data;
@ffi.Uint32()
int private_flags;
}
class CXTranslationUnitImpl extends ffi.Struct {}
/// Provides the contents of a file that has not yet been saved to disk.
class CXUnsavedFile extends ffi.Struct {
/// The file whose contents have not yet been saved.
ffi.Pointer<ffi.Int8> Filename;
/// A buffer containing the unsaved contents of this file.
ffi.Pointer<ffi.Int8> Contents;
/// The length of the unsaved contents of this buffer.
@ffi.Uint64()
int Length;
}
/// Identifies a specific source location within a translation unit.
class CXSourceLocation extends ffi.Struct {
ffi.Pointer<ffi.Void> _unique_ptr_data_item_0;
ffi.Pointer<ffi.Void> _unique_ptr_data_item_1;
/// Helper for array `ptr_data`.
ArrayHelper_CXSourceLocation_ptr_data_level0 get ptr_data =>
ArrayHelper_CXSourceLocation_ptr_data_level0(this, [2], 0, 0);
@ffi.Uint32()
int int_data;
}
/// Helper for array `ptr_data` in struct `CXSourceLocation`.
class ArrayHelper_CXSourceLocation_ptr_data_level0 {
final CXSourceLocation _struct;
final List<int> dimensions;
final int level;
final int _absoluteIndex;
int get length => dimensions[level];
ArrayHelper_CXSourceLocation_ptr_data_level0(
this._struct, this.dimensions, this.level, this._absoluteIndex);
void _checkBounds(int index) {
if (index >= length || index < 0) {
throw RangeError(
'Dimension $level: index not in range 0..${length} exclusive.');
}
}
ffi.Pointer<ffi.Void> operator [](int index) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
return _struct._unique_ptr_data_item_0;
case 1:
return _struct._unique_ptr_data_item_1;
default:
throw Exception('Invalid Array Helper generated.');
}
}
void operator []=(int index, ffi.Pointer<ffi.Void> value) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
_struct._unique_ptr_data_item_0 = value;
break;
case 1:
_struct._unique_ptr_data_item_1 = value;
break;
default:
throw Exception('Invalid Array Helper generated.');
}
}
}
/// Identifies a half-open character range in the source code.
class CXSourceRange extends ffi.Struct {
ffi.Pointer<ffi.Void> _unique_ptr_data_item_0;
ffi.Pointer<ffi.Void> _unique_ptr_data_item_1;
/// Helper for array `ptr_data`.
ArrayHelper_CXSourceRange_ptr_data_level0 get ptr_data =>
ArrayHelper_CXSourceRange_ptr_data_level0(this, [2], 0, 0);
@ffi.Uint32()
int begin_int_data;
@ffi.Uint32()
int end_int_data;
}
/// Helper for array `ptr_data` in struct `CXSourceRange`.
class ArrayHelper_CXSourceRange_ptr_data_level0 {
final CXSourceRange _struct;
final List<int> dimensions;
final int level;
final int _absoluteIndex;
int get length => dimensions[level];
ArrayHelper_CXSourceRange_ptr_data_level0(
this._struct, this.dimensions, this.level, this._absoluteIndex);
void _checkBounds(int index) {
if (index >= length || index < 0) {
throw RangeError(
'Dimension $level: index not in range 0..${length} exclusive.');
}
}
ffi.Pointer<ffi.Void> operator [](int index) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
return _struct._unique_ptr_data_item_0;
case 1:
return _struct._unique_ptr_data_item_1;
default:
throw Exception('Invalid Array Helper generated.');
}
}
void operator []=(int index, ffi.Pointer<ffi.Void> value) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
_struct._unique_ptr_data_item_0 = value;
break;
case 1:
_struct._unique_ptr_data_item_1 = value;
break;
default:
throw Exception('Invalid Array Helper generated.');
}
}
}
/// Options to control the display of diagnostics.
abstract class CXDiagnosticDisplayOptions {
/// Display the source-location information where the diagnostic was located.
static const int CXDiagnostic_DisplaySourceLocation = 1;
/// If displaying the source-location information of the diagnostic, also
/// include the column number.
static const int CXDiagnostic_DisplayColumn = 2;
/// If displaying the source-location information of the diagnostic, also
/// include information about source ranges in a machine-parsable format.
static const int CXDiagnostic_DisplaySourceRanges = 4;
/// Display the option name associated with this diagnostic, if any.
static const int CXDiagnostic_DisplayOption = 8;
/// Display the category number associated with this diagnostic, if any.
static const int CXDiagnostic_DisplayCategoryId = 16;
/// Display the category name associated with this diagnostic, if any.
static const int CXDiagnostic_DisplayCategoryName = 32;
}
/// Flags that control the creation of translation units.
abstract class CXTranslationUnit_Flags {
/// Used to indicate that no special translation-unit options are needed.
static const int CXTranslationUnit_None = 0;
/// Used to indicate that the parser should construct a "detailed"
/// preprocessing record, including all macro definitions and instantiations.
static const int CXTranslationUnit_DetailedPreprocessingRecord = 1;
/// Used to indicate that the translation unit is incomplete.
static const int CXTranslationUnit_Incomplete = 2;
/// Used to indicate that the translation unit should be built with an
/// implicit precompiled header for the preamble.
static const int CXTranslationUnit_PrecompiledPreamble = 4;
/// Used to indicate that the translation unit should cache some
/// code-completion results with each reparse of the source file.
static const int CXTranslationUnit_CacheCompletionResults = 8;
/// Used to indicate that the translation unit will be serialized with
/// clang_saveTranslationUnit.
static const int CXTranslationUnit_ForSerialization = 16;
/// DEPRECATED: Enabled chained precompiled preambles in C++.
static const int CXTranslationUnit_CXXChainedPCH = 32;
/// Used to indicate that function/method bodies should be skipped while
/// parsing.
static const int CXTranslationUnit_SkipFunctionBodies = 64;
/// Used to indicate that brief documentation comments should be included into
/// the set of code completions returned from this translation unit.
static const int CXTranslationUnit_IncludeBriefCommentsInCodeCompletion = 128;
/// Used to indicate that the precompiled preamble should be created on the
/// first parse. Otherwise it will be created on the first reparse. This
/// trades runtime on the first parse (serializing the preamble takes time)
/// for reduced runtime on the second parse (can now reuse the preamble).
static const int CXTranslationUnit_CreatePreambleOnFirstParse = 256;
/// Do not stop processing when fatal errors are encountered.
static const int CXTranslationUnit_KeepGoing = 512;
/// Sets the preprocessor in a mode for parsing a single file only.
static const int CXTranslationUnit_SingleFileParse = 1024;
/// Used in combination with CXTranslationUnit_SkipFunctionBodies to constrain
/// the skipping of function bodies to the preamble.
static const int CXTranslationUnit_LimitSkipFunctionBodiesToPreamble = 2048;
/// Used to indicate that attributed types should be included in CXType.
static const int CXTranslationUnit_IncludeAttributedTypes = 4096;
/// Used to indicate that implicit attributes should be visited.
static const int CXTranslationUnit_VisitImplicitAttributes = 8192;
/// Used to indicate that non-errors from included files should be ignored.
static const int CXTranslationUnit_IgnoreNonErrorsFromIncludedFiles = 16384;
/// Tells the preprocessor not to skip excluded conditional blocks.
static const int CXTranslationUnit_RetainExcludedConditionalBlocks = 32768;
}
/// Describes the kind of entity that a cursor refers to.
abstract class CXCursorKind {
/// A declaration whose specific kind is not exposed via this interface.
static const int CXCursor_UnexposedDecl = 1;
/// A C or C++ struct.
static const int CXCursor_StructDecl = 2;
/// A C or C++ union.
static const int CXCursor_UnionDecl = 3;
/// A C++ class.
static const int CXCursor_ClassDecl = 4;
/// An enumeration.
static const int CXCursor_EnumDecl = 5;
/// A field (in C) or non-static data member (in C++) in a struct, union, or
/// C++ class.
static const int CXCursor_FieldDecl = 6;
/// An enumerator constant.
static const int CXCursor_EnumConstantDecl = 7;
/// A function.
static const int CXCursor_FunctionDecl = 8;
/// A variable.
static const int CXCursor_VarDecl = 9;
/// A function or method parameter.
static const int CXCursor_ParmDecl = 10;
/// An Objective-C @interface.
static const int CXCursor_ObjCInterfaceDecl = 11;
/// An Objective-C @interface for a category.
static const int CXCursor_ObjCCategoryDecl = 12;
/// An Objective-C @protocol declaration.
static const int CXCursor_ObjCProtocolDecl = 13;
/// An Objective-C @property declaration.
static const int CXCursor_ObjCPropertyDecl = 14;
/// An Objective-C instance variable.
static const int CXCursor_ObjCIvarDecl = 15;
/// An Objective-C instance method.
static const int CXCursor_ObjCInstanceMethodDecl = 16;
/// An Objective-C class method.
static const int CXCursor_ObjCClassMethodDecl = 17;
/// An Objective-C @implementation.
static const int CXCursor_ObjCImplementationDecl = 18;
/// An Objective-C @implementation for a category.
static const int CXCursor_ObjCCategoryImplDecl = 19;
/// A typedef.
static const int CXCursor_TypedefDecl = 20;
/// A C++ class method.
static const int CXCursor_CXXMethod = 21;
/// A C++ namespace.
static const int CXCursor_Namespace = 22;
/// A linkage specification, e.g. 'extern "C"'.
static const int CXCursor_LinkageSpec = 23;
/// A C++ constructor.
static const int CXCursor_Constructor = 24;
/// A C++ destructor.
static const int CXCursor_Destructor = 25;
/// A C++ conversion function.
static const int CXCursor_ConversionFunction = 26;
/// A C++ template type parameter.
static const int CXCursor_TemplateTypeParameter = 27;
/// A C++ non-type template parameter.
static const int CXCursor_NonTypeTemplateParameter = 28;
/// A C++ template template parameter.
static const int CXCursor_TemplateTemplateParameter = 29;
/// A C++ function template.
static const int CXCursor_FunctionTemplate = 30;
/// A C++ class template.
static const int CXCursor_ClassTemplate = 31;
/// A C++ class template partial specialization.
static const int CXCursor_ClassTemplatePartialSpecialization = 32;
/// A C++ namespace alias declaration.
static const int CXCursor_NamespaceAlias = 33;
/// A C++ using directive.
static const int CXCursor_UsingDirective = 34;
/// A C++ using declaration.
static const int CXCursor_UsingDeclaration = 35;
/// A C++ alias declaration
static const int CXCursor_TypeAliasDecl = 36;
/// An Objective-C @synthesize definition.
static const int CXCursor_ObjCSynthesizeDecl = 37;
/// An Objective-C @dynamic definition.
static const int CXCursor_ObjCDynamicDecl = 38;
/// An access specifier.
static const int CXCursor_CXXAccessSpecifier = 39;
static const int CXCursor_FirstDecl = 1;
static const int CXCursor_LastDecl = 39;
static const int CXCursor_FirstRef = 40;
static const int CXCursor_ObjCSuperClassRef = 40;
static const int CXCursor_ObjCProtocolRef = 41;
static const int CXCursor_ObjCClassRef = 42;
/// A reference to a type declaration.
static const int CXCursor_TypeRef = 43;
static const int CXCursor_CXXBaseSpecifier = 44;
/// A reference to a class template, function template, template template
/// parameter, or class template partial specialization.
static const int CXCursor_TemplateRef = 45;
/// A reference to a namespace or namespace alias.
static const int CXCursor_NamespaceRef = 46;
/// A reference to a member of a struct, union, or class that occurs in some
/// non-expression context, e.g., a designated initializer.
static const int CXCursor_MemberRef = 47;
/// A reference to a labeled statement.
static const int CXCursor_LabelRef = 48;
/// A reference to a set of overloaded functions or function templates that
/// has not yet been resolved to a specific function or function template.
static const int CXCursor_OverloadedDeclRef = 49;
/// A reference to a variable that occurs in some non-expression context,
/// e.g., a C++ lambda capture list.
static const int CXCursor_VariableRef = 50;
static const int CXCursor_LastRef = 50;
static const int CXCursor_FirstInvalid = 70;
static const int CXCursor_InvalidFile = 70;
static const int CXCursor_NoDeclFound = 71;
static const int CXCursor_NotImplemented = 72;
static const int CXCursor_InvalidCode = 73;
static const int CXCursor_LastInvalid = 73;
static const int CXCursor_FirstExpr = 100;
/// An expression whose specific kind is not exposed via this interface.
static const int CXCursor_UnexposedExpr = 100;
/// An expression that refers to some value declaration, such as a function,
/// variable, or enumerator.
static const int CXCursor_DeclRefExpr = 101;
/// An expression that refers to a member of a struct, union, class,
/// Objective-C class, etc.
static const int CXCursor_MemberRefExpr = 102;
/// An expression that calls a function.
static const int CXCursor_CallExpr = 103;
/// An expression that sends a message to an Objective-C object or class.
static const int CXCursor_ObjCMessageExpr = 104;
/// An expression that represents a block literal.
static const int CXCursor_BlockExpr = 105;
/// An integer literal.
static const int CXCursor_IntegerLiteral = 106;
/// A floating point number literal.
static const int CXCursor_FloatingLiteral = 107;
/// An imaginary number literal.
static const int CXCursor_ImaginaryLiteral = 108;
/// A string literal.
static const int CXCursor_StringLiteral = 109;
/// A character literal.
static const int CXCursor_CharacterLiteral = 110;
/// A parenthesized expression, e.g. "(1)".
static const int CXCursor_ParenExpr = 111;
/// This represents the unary-expression's (except sizeof and alignof).
static const int CXCursor_UnaryOperator = 112;
/// [C99 6.5.2.1] Array Subscripting.
static const int CXCursor_ArraySubscriptExpr = 113;
/// A builtin binary operation expression such as "x + y" or "x <= y".
static const int CXCursor_BinaryOperator = 114;
/// Compound assignment such as "+=".
static const int CXCursor_CompoundAssignOperator = 115;
/// The ?: ternary operator.
static const int CXCursor_ConditionalOperator = 116;
/// 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.
static const int CXCursor_CStyleCastExpr = 117;
/// [C99 6.5.2.5]
static const int CXCursor_CompoundLiteralExpr = 118;
/// Describes an C or C++ initializer list.
static const int CXCursor_InitListExpr = 119;
/// The GNU address of label extension, representing &&label.
static const int CXCursor_AddrLabelExpr = 120;
/// This is the GNU Statement Expression extension: ({int X=4; X;})
static const int CXCursor_StmtExpr = 121;
/// Represents a C11 generic selection.
static const int CXCursor_GenericSelectionExpr = 122;
/// 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.
static const int CXCursor_GNUNullExpr = 123;
/// C++'s static_cast<> expression.
static const int CXCursor_CXXStaticCastExpr = 124;
/// C++'s dynamic_cast<> expression.
static const int CXCursor_CXXDynamicCastExpr = 125;
/// C++'s reinterpret_cast<> expression.
static const int CXCursor_CXXReinterpretCastExpr = 126;
/// C++'s const_cast<> expression.
static const int CXCursor_CXXConstCastExpr = 127;
/// Represents an explicit C++ type conversion that uses "functional" notion
/// (C++ [expr.type.conv]).
static const int CXCursor_CXXFunctionalCastExpr = 128;
/// A C++ typeid expression (C++ [expr.typeid]).
static const int CXCursor_CXXTypeidExpr = 129;
/// [C++ 2.13.5] C++ Boolean Literal.
static const int CXCursor_CXXBoolLiteralExpr = 130;
/// [C++0x 2.14.7] C++ Pointer Literal.
static const int CXCursor_CXXNullPtrLiteralExpr = 131;
/// Represents the "this" expression in C++
static const int CXCursor_CXXThisExpr = 132;
/// [C++ 15] C++ Throw Expression.
static const int CXCursor_CXXThrowExpr = 133;
/// A new expression for memory allocation and constructor calls, e.g: "new
/// CXXNewExpr(foo)".
static const int CXCursor_CXXNewExpr = 134;
/// A delete expression for memory deallocation and destructor calls, e.g.
/// "delete[] pArray".
static const int CXCursor_CXXDeleteExpr = 135;
/// A unary expression. (noexcept, sizeof, or other traits)
static const int CXCursor_UnaryExpr = 136;
/// An Objective-C string literal i.e. "foo".
static const int CXCursor_ObjCStringLiteral = 137;
/// An Objective-C @encode expression.
static const int CXCursor_ObjCEncodeExpr = 138;
/// An Objective-C @selector expression.
static const int CXCursor_ObjCSelectorExpr = 139;
/// An Objective-C @protocol expression.
static const int CXCursor_ObjCProtocolExpr = 140;
/// An Objective-C "bridged" cast expression, which casts between Objective-C
/// pointers and C pointers, transferring ownership in the process.
static const int CXCursor_ObjCBridgedCastExpr = 141;
/// Represents a C++0x pack expansion that produces a sequence of expressions.
static const int CXCursor_PackExpansionExpr = 142;
/// Represents an expression that computes the length of a parameter pack.
static const int CXCursor_SizeOfPackExpr = 143;
static const int CXCursor_LambdaExpr = 144;
/// Objective-c Boolean Literal.
static const int CXCursor_ObjCBoolLiteralExpr = 145;
/// Represents the "self" expression in an Objective-C method.
static const int CXCursor_ObjCSelfExpr = 146;
/// OpenMP 4.0 [2.4, Array Section].
static const int CXCursor_OMPArraySectionExpr = 147;
/// Represents an (...) check.
static const int CXCursor_ObjCAvailabilityCheckExpr = 148;
/// Fixed point literal
static const int CXCursor_FixedPointLiteral = 149;
static const int CXCursor_LastExpr = 149;
static const int CXCursor_FirstStmt = 200;
/// A statement whose specific kind is not exposed via this interface.
static const int CXCursor_UnexposedStmt = 200;
/// A labelled statement in a function.
static const int CXCursor_LabelStmt = 201;
/// A group of statements like { stmt stmt }.
static const int CXCursor_CompoundStmt = 202;
/// A case statement.
static const int CXCursor_CaseStmt = 203;
/// A default statement.
static const int CXCursor_DefaultStmt = 204;
/// An if statement
static const int CXCursor_IfStmt = 205;
/// A switch statement.
static const int CXCursor_SwitchStmt = 206;
/// A while statement.
static const int CXCursor_WhileStmt = 207;
/// A do statement.
static const int CXCursor_DoStmt = 208;
/// A for statement.
static const int CXCursor_ForStmt = 209;
/// A goto statement.
static const int CXCursor_GotoStmt = 210;
/// An indirect goto statement.
static const int CXCursor_IndirectGotoStmt = 211;
/// A continue statement.
static const int CXCursor_ContinueStmt = 212;
/// A break statement.
static const int CXCursor_BreakStmt = 213;
/// A return statement.
static const int CXCursor_ReturnStmt = 214;
/// A GCC inline assembly statement extension.
static const int CXCursor_GCCAsmStmt = 215;
static const int CXCursor_AsmStmt = 215;
/// Objective-C's overall @try-@catch-@finally statement.
static const int CXCursor_ObjCAtTryStmt = 216;
/// Objective-C's @catch statement.
static const int CXCursor_ObjCAtCatchStmt = 217;
/// Objective-C's @finally statement.
static const int CXCursor_ObjCAtFinallyStmt = 218;
/// Objective-C's @throw statement.
static const int CXCursor_ObjCAtThrowStmt = 219;
/// Objective-C's @synchronized statement.
static const int CXCursor_ObjCAtSynchronizedStmt = 220;
/// Objective-C's autorelease pool statement.
static const int CXCursor_ObjCAutoreleasePoolStmt = 221;
/// Objective-C's collection statement.
static const int CXCursor_ObjCForCollectionStmt = 222;
/// C++'s catch statement.
static const int CXCursor_CXXCatchStmt = 223;
/// C++'s try statement.
static const int CXCursor_CXXTryStmt = 224;
/// C++'s for (* : *) statement.
static const int CXCursor_CXXForRangeStmt = 225;
/// Windows Structured Exception Handling's try statement.
static const int CXCursor_SEHTryStmt = 226;
/// Windows Structured Exception Handling's except statement.
static const int CXCursor_SEHExceptStmt = 227;
/// Windows Structured Exception Handling's finally statement.
static const int CXCursor_SEHFinallyStmt = 228;
/// A MS inline assembly statement extension.
static const int CXCursor_MSAsmStmt = 229;
/// The null statement ";": C99 6.8.3p3.
static const int CXCursor_NullStmt = 230;
/// Adaptor class for mixing declarations with statements and expressions.
static const int CXCursor_DeclStmt = 231;
/// OpenMP parallel directive.
static const int CXCursor_OMPParallelDirective = 232;
/// OpenMP SIMD directive.
static const int CXCursor_OMPSimdDirective = 233;
/// OpenMP for directive.
static const int CXCursor_OMPForDirective = 234;
/// OpenMP sections directive.
static const int CXCursor_OMPSectionsDirective = 235;
/// OpenMP section directive.
static const int CXCursor_OMPSectionDirective = 236;
/// OpenMP single directive.
static const int CXCursor_OMPSingleDirective = 237;
/// OpenMP parallel for directive.
static const int CXCursor_OMPParallelForDirective = 238;
/// OpenMP parallel sections directive.
static const int CXCursor_OMPParallelSectionsDirective = 239;
/// OpenMP task directive.
static const int CXCursor_OMPTaskDirective = 240;
/// OpenMP master directive.
static const int CXCursor_OMPMasterDirective = 241;
/// OpenMP critical directive.
static const int CXCursor_OMPCriticalDirective = 242;
/// OpenMP taskyield directive.
static const int CXCursor_OMPTaskyieldDirective = 243;
/// OpenMP barrier directive.
static const int CXCursor_OMPBarrierDirective = 244;
/// OpenMP taskwait directive.
static const int CXCursor_OMPTaskwaitDirective = 245;
/// OpenMP flush directive.
static const int CXCursor_OMPFlushDirective = 246;
/// Windows Structured Exception Handling's leave statement.
static const int CXCursor_SEHLeaveStmt = 247;
/// OpenMP ordered directive.
static const int CXCursor_OMPOrderedDirective = 248;
/// OpenMP atomic directive.
static const int CXCursor_OMPAtomicDirective = 249;
/// OpenMP for SIMD directive.
static const int CXCursor_OMPForSimdDirective = 250;
/// OpenMP parallel for SIMD directive.
static const int CXCursor_OMPParallelForSimdDirective = 251;
/// OpenMP target directive.
static const int CXCursor_OMPTargetDirective = 252;
/// OpenMP teams directive.
static const int CXCursor_OMPTeamsDirective = 253;
/// OpenMP taskgroup directive.
static const int CXCursor_OMPTaskgroupDirective = 254;
/// OpenMP cancellation point directive.
static const int CXCursor_OMPCancellationPointDirective = 255;
/// OpenMP cancel directive.
static const int CXCursor_OMPCancelDirective = 256;
/// OpenMP target data directive.
static const int CXCursor_OMPTargetDataDirective = 257;
/// OpenMP taskloop directive.
static const int CXCursor_OMPTaskLoopDirective = 258;
/// OpenMP taskloop simd directive.
static const int CXCursor_OMPTaskLoopSimdDirective = 259;
/// OpenMP distribute directive.
static const int CXCursor_OMPDistributeDirective = 260;
/// OpenMP target enter data directive.
static const int CXCursor_OMPTargetEnterDataDirective = 261;
/// OpenMP target exit data directive.
static const int CXCursor_OMPTargetExitDataDirective = 262;
/// OpenMP target parallel directive.
static const int CXCursor_OMPTargetParallelDirective = 263;
/// OpenMP target parallel for directive.
static const int CXCursor_OMPTargetParallelForDirective = 264;
/// OpenMP target update directive.
static const int CXCursor_OMPTargetUpdateDirective = 265;
/// OpenMP distribute parallel for directive.
static const int CXCursor_OMPDistributeParallelForDirective = 266;
/// OpenMP distribute parallel for simd directive.
static const int CXCursor_OMPDistributeParallelForSimdDirective = 267;
/// OpenMP distribute simd directive.
static const int CXCursor_OMPDistributeSimdDirective = 268;
/// OpenMP target parallel for simd directive.
static const int CXCursor_OMPTargetParallelForSimdDirective = 269;
/// OpenMP target simd directive.
static const int CXCursor_OMPTargetSimdDirective = 270;
/// OpenMP teams distribute directive.
static const int CXCursor_OMPTeamsDistributeDirective = 271;
/// OpenMP teams distribute simd directive.
static const int CXCursor_OMPTeamsDistributeSimdDirective = 272;
/// OpenMP teams distribute parallel for simd directive.
static const int CXCursor_OMPTeamsDistributeParallelForSimdDirective = 273;
/// OpenMP teams distribute parallel for directive.
static const int CXCursor_OMPTeamsDistributeParallelForDirective = 274;
/// OpenMP target teams directive.
static const int CXCursor_OMPTargetTeamsDirective = 275;
/// OpenMP target teams distribute directive.
static const int CXCursor_OMPTargetTeamsDistributeDirective = 276;
/// OpenMP target teams distribute parallel for directive.
static const int CXCursor_OMPTargetTeamsDistributeParallelForDirective = 277;
/// OpenMP target teams distribute parallel for simd directive.
static const int CXCursor_OMPTargetTeamsDistributeParallelForSimdDirective =
278;
/// OpenMP target teams distribute simd directive.
static const int CXCursor_OMPTargetTeamsDistributeSimdDirective = 279;
/// C++2a std::bit_cast expression.
static const int CXCursor_BuiltinBitCastExpr = 280;
/// OpenMP master taskloop directive.
static const int CXCursor_OMPMasterTaskLoopDirective = 281;
/// OpenMP parallel master taskloop directive.
static const int CXCursor_OMPParallelMasterTaskLoopDirective = 282;
/// OpenMP master taskloop simd directive.
static const int CXCursor_OMPMasterTaskLoopSimdDirective = 283;
/// OpenMP parallel master taskloop simd directive.
static const int CXCursor_OMPParallelMasterTaskLoopSimdDirective = 284;
/// OpenMP parallel master directive.
static const int CXCursor_OMPParallelMasterDirective = 285;
static const int CXCursor_LastStmt = 285;
/// Cursor that represents the translation unit itself.
static const int CXCursor_TranslationUnit = 300;
static const int CXCursor_FirstAttr = 400;
/// An attribute whose specific kind is not exposed via this interface.
static const int CXCursor_UnexposedAttr = 400;
static const int CXCursor_IBActionAttr = 401;
static const int CXCursor_IBOutletAttr = 402;
static const int CXCursor_IBOutletCollectionAttr = 403;
static const int CXCursor_CXXFinalAttr = 404;
static const int CXCursor_CXXOverrideAttr = 405;
static const int CXCursor_AnnotateAttr = 406;
static const int CXCursor_AsmLabelAttr = 407;
static const int CXCursor_PackedAttr = 408;
static const int CXCursor_PureAttr = 409;
static const int CXCursor_ConstAttr = 410;
static const int CXCursor_NoDuplicateAttr = 411;
static const int CXCursor_CUDAConstantAttr = 412;
static const int CXCursor_CUDADeviceAttr = 413;
static const int CXCursor_CUDAGlobalAttr = 414;
static const int CXCursor_CUDAHostAttr = 415;
static const int CXCursor_CUDASharedAttr = 416;
static const int CXCursor_VisibilityAttr = 417;
static const int CXCursor_DLLExport = 418;
static const int CXCursor_DLLImport = 419;
static const int CXCursor_NSReturnsRetained = 420;
static const int CXCursor_NSReturnsNotRetained = 421;
static const int CXCursor_NSReturnsAutoreleased = 422;
static const int CXCursor_NSConsumesSelf = 423;
static const int CXCursor_NSConsumed = 424;
static const int CXCursor_ObjCException = 425;
static const int CXCursor_ObjCNSObject = 426;
static const int CXCursor_ObjCIndependentClass = 427;
static const int CXCursor_ObjCPreciseLifetime = 428;
static const int CXCursor_ObjCReturnsInnerPointer = 429;
static const int CXCursor_ObjCRequiresSuper = 430;
static const int CXCursor_ObjCRootClass = 431;
static const int CXCursor_ObjCSubclassingRestricted = 432;
static const int CXCursor_ObjCExplicitProtocolImpl = 433;
static const int CXCursor_ObjCDesignatedInitializer = 434;
static const int CXCursor_ObjCRuntimeVisible = 435;
static const int CXCursor_ObjCBoxable = 436;
static const int CXCursor_FlagEnum = 437;
static const int CXCursor_ConvergentAttr = 438;
static const int CXCursor_WarnUnusedAttr = 439;
static const int CXCursor_WarnUnusedResultAttr = 440;
static const int CXCursor_AlignedAttr = 441;
static const int CXCursor_LastAttr = 441;
static const int CXCursor_PreprocessingDirective = 500;
static const int CXCursor_MacroDefinition = 501;
static const int CXCursor_MacroExpansion = 502;
static const int CXCursor_MacroInstantiation = 502;
static const int CXCursor_InclusionDirective = 503;
static const int CXCursor_FirstPreprocessing = 500;
static const int CXCursor_LastPreprocessing = 503;
/// A module import declaration.
static const int CXCursor_ModuleImportDecl = 600;
static const int CXCursor_TypeAliasTemplateDecl = 601;
/// A static_assert or _Static_assert node
static const int CXCursor_StaticAssert = 602;
/// a friend declaration.
static const int CXCursor_FriendDecl = 603;
static const int CXCursor_FirstExtraDecl = 600;
static const int CXCursor_LastExtraDecl = 603;
/// A code completion overload candidate.
static const int CXCursor_OverloadCandidate = 700;
}
/// A cursor representing some element in the abstract syntax tree for a
/// translation unit.
class CXCursor extends ffi.Struct {
@ffi.Int32()
int kind;
@ffi.Int32()
int xdata;
ffi.Pointer<ffi.Void> _unique_data_item_0;
ffi.Pointer<ffi.Void> _unique_data_item_1;
ffi.Pointer<ffi.Void> _unique_data_item_2;
/// Helper for array `data`.
ArrayHelper_CXCursor_data_level0 get data =>
ArrayHelper_CXCursor_data_level0(this, [3], 0, 0);
}
/// Helper for array `data` in struct `CXCursor`.
class ArrayHelper_CXCursor_data_level0 {
final CXCursor _struct;
final List<int> dimensions;
final int level;
final int _absoluteIndex;
int get length => dimensions[level];
ArrayHelper_CXCursor_data_level0(
this._struct, this.dimensions, this.level, this._absoluteIndex);
void _checkBounds(int index) {
if (index >= length || index < 0) {
throw RangeError(
'Dimension $level: index not in range 0..${length} exclusive.');
}
}
ffi.Pointer<ffi.Void> operator [](int index) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
return _struct._unique_data_item_0;
case 1:
return _struct._unique_data_item_1;
case 2:
return _struct._unique_data_item_2;
default:
throw Exception('Invalid Array Helper generated.');
}
}
void operator []=(int index, ffi.Pointer<ffi.Void> value) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
_struct._unique_data_item_0 = value;
break;
case 1:
_struct._unique_data_item_1 = value;
break;
case 2:
_struct._unique_data_item_2 = value;
break;
default:
throw Exception('Invalid Array Helper generated.');
}
}
}
/// Describes the kind of type
abstract class CXTypeKind {
/// Represents an invalid type (e.g., where no type is available).
static const int CXType_Invalid = 0;
/// A type whose specific kind is not exposed via this interface.
static const int CXType_Unexposed = 1;
static const int CXType_Void = 2;
static const int CXType_Bool = 3;
static const int CXType_Char_U = 4;
static const int CXType_UChar = 5;
static const int CXType_Char16 = 6;
static const int CXType_Char32 = 7;
static const int CXType_UShort = 8;
static const int CXType_UInt = 9;
static const int CXType_ULong = 10;
static const int CXType_ULongLong = 11;
static const int CXType_UInt128 = 12;
static const int CXType_Char_S = 13;
static const int CXType_SChar = 14;
static const int CXType_WChar = 15;
static const int CXType_Short = 16;
static const int CXType_Int = 17;
static const int CXType_Long = 18;
static const int CXType_LongLong = 19;
static const int CXType_Int128 = 20;
static const int CXType_Float = 21;
static const int CXType_Double = 22;
static const int CXType_LongDouble = 23;
static const int CXType_NullPtr = 24;
static const int CXType_Overload = 25;
static const int CXType_Dependent = 26;
static const int CXType_ObjCId = 27;
static const int CXType_ObjCClass = 28;
static const int CXType_ObjCSel = 29;
static const int CXType_Float128 = 30;
static const int CXType_Half = 31;
static const int CXType_Float16 = 32;
static const int CXType_ShortAccum = 33;
static const int CXType_Accum = 34;
static const int CXType_LongAccum = 35;
static const int CXType_UShortAccum = 36;
static const int CXType_UAccum = 37;
static const int CXType_ULongAccum = 38;
static const int CXType_FirstBuiltin = 2;
static const int CXType_LastBuiltin = 38;
static const int CXType_Complex = 100;
static const int CXType_Pointer = 101;
static const int CXType_BlockPointer = 102;
static const int CXType_LValueReference = 103;
static const int CXType_RValueReference = 104;
static const int CXType_Record = 105;
static const int CXType_Enum = 106;
static const int CXType_Typedef = 107;
static const int CXType_ObjCInterface = 108;
static const int CXType_ObjCObjectPointer = 109;
static const int CXType_FunctionNoProto = 110;
static const int CXType_FunctionProto = 111;
static const int CXType_ConstantArray = 112;
static const int CXType_Vector = 113;
static const int CXType_IncompleteArray = 114;
static const int CXType_VariableArray = 115;
static const int CXType_DependentSizedArray = 116;
static const int CXType_MemberPointer = 117;
static const int CXType_Auto = 118;
/// Represents a type that was referred to using an elaborated type keyword.
static const int CXType_Elaborated = 119;
static const int CXType_Pipe = 120;
static const int CXType_OCLImage1dRO = 121;
static const int CXType_OCLImage1dArrayRO = 122;
static const int CXType_OCLImage1dBufferRO = 123;
static const int CXType_OCLImage2dRO = 124;
static const int CXType_OCLImage2dArrayRO = 125;
static const int CXType_OCLImage2dDepthRO = 126;
static const int CXType_OCLImage2dArrayDepthRO = 127;
static const int CXType_OCLImage2dMSAARO = 128;
static const int CXType_OCLImage2dArrayMSAARO = 129;
static const int CXType_OCLImage2dMSAADepthRO = 130;
static const int CXType_OCLImage2dArrayMSAADepthRO = 131;
static const int CXType_OCLImage3dRO = 132;
static const int CXType_OCLImage1dWO = 133;
static const int CXType_OCLImage1dArrayWO = 134;
static const int CXType_OCLImage1dBufferWO = 135;
static const int CXType_OCLImage2dWO = 136;
static const int CXType_OCLImage2dArrayWO = 137;
static const int CXType_OCLImage2dDepthWO = 138;
static const int CXType_OCLImage2dArrayDepthWO = 139;
static const int CXType_OCLImage2dMSAAWO = 140;
static const int CXType_OCLImage2dArrayMSAAWO = 141;
static const int CXType_OCLImage2dMSAADepthWO = 142;
static const int CXType_OCLImage2dArrayMSAADepthWO = 143;
static const int CXType_OCLImage3dWO = 144;
static const int CXType_OCLImage1dRW = 145;
static const int CXType_OCLImage1dArrayRW = 146;
static const int CXType_OCLImage1dBufferRW = 147;
static const int CXType_OCLImage2dRW = 148;
static const int CXType_OCLImage2dArrayRW = 149;
static const int CXType_OCLImage2dDepthRW = 150;
static const int CXType_OCLImage2dArrayDepthRW = 151;
static const int CXType_OCLImage2dMSAARW = 152;
static const int CXType_OCLImage2dArrayMSAARW = 153;
static const int CXType_OCLImage2dMSAADepthRW = 154;
static const int CXType_OCLImage2dArrayMSAADepthRW = 155;
static const int CXType_OCLImage3dRW = 156;
static const int CXType_OCLSampler = 157;
static const int CXType_OCLEvent = 158;
static const int CXType_OCLQueue = 159;
static const int CXType_OCLReserveID = 160;
static const int CXType_ObjCObject = 161;
static const int CXType_ObjCTypeParam = 162;
static const int CXType_Attributed = 163;
static const int CXType_OCLIntelSubgroupAVCMcePayload = 164;
static const int CXType_OCLIntelSubgroupAVCImePayload = 165;
static const int CXType_OCLIntelSubgroupAVCRefPayload = 166;
static const int CXType_OCLIntelSubgroupAVCSicPayload = 167;
static const int CXType_OCLIntelSubgroupAVCMceResult = 168;
static const int CXType_OCLIntelSubgroupAVCImeResult = 169;
static const int CXType_OCLIntelSubgroupAVCRefResult = 170;
static const int CXType_OCLIntelSubgroupAVCSicResult = 171;
static const int CXType_OCLIntelSubgroupAVCImeResultSingleRefStreamout = 172;
static const int CXType_OCLIntelSubgroupAVCImeResultDualRefStreamout = 173;
static const int CXType_OCLIntelSubgroupAVCImeSingleRefStreamin = 174;
static const int CXType_OCLIntelSubgroupAVCImeDualRefStreamin = 175;
static const int CXType_ExtVector = 176;
}
/// The type of an element in the abstract syntax tree.
class CXType extends ffi.Struct {
@ffi.Int32()
int kind;
ffi.Pointer<ffi.Void> _unique_data_item_0;
ffi.Pointer<ffi.Void> _unique_data_item_1;
/// Helper for array `data`.
ArrayHelper_CXType_data_level0 get data =>
ArrayHelper_CXType_data_level0(this, [2], 0, 0);
}
/// Helper for array `data` in struct `CXType`.
class ArrayHelper_CXType_data_level0 {
final CXType _struct;
final List<int> dimensions;
final int level;
final int _absoluteIndex;
int get length => dimensions[level];
ArrayHelper_CXType_data_level0(
this._struct, this.dimensions, this.level, this._absoluteIndex);
void _checkBounds(int index) {
if (index >= length || index < 0) {
throw RangeError(
'Dimension $level: index not in range 0..${length} exclusive.');
}
}
ffi.Pointer<ffi.Void> operator [](int index) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
return _struct._unique_data_item_0;
case 1:
return _struct._unique_data_item_1;
default:
throw Exception('Invalid Array Helper generated.');
}
}
void operator []=(int index, ffi.Pointer<ffi.Void> value) {
_checkBounds(index);
switch (_absoluteIndex + index) {
case 0:
_struct._unique_data_item_0 = value;
break;
case 1:
_struct._unique_data_item_1 = value;
break;
default:
throw Exception('Invalid Array Helper generated.');
}
}
}
/// Describes how the traversal of the children of a particular cursor should
/// proceed after visiting a particular child cursor.
abstract class CXChildVisitResult {
/// Terminates the cursor traversal.
static const int CXChildVisit_Break = 0;
/// Continues the cursor traversal with the next sibling of the cursor just
/// visited, without visiting its children.
static const int CXChildVisit_Continue = 1;
/// Recursively traverse the children of this cursor, using the same visitor
/// and client data.
static const int CXChildVisit_Recurse = 2;
}
typedef _c_clang_createIndex = ffi.Pointer<ffi.Void> Function(
ffi.Int32 excludeDeclarationsFromPCH,
ffi.Int32 displayDiagnostics,
);
typedef _dart_clang_createIndex = ffi.Pointer<ffi.Void> Function(
int excludeDeclarationsFromPCH,
int displayDiagnostics,
);
typedef _c_clang_disposeIndex = ffi.Void Function(
ffi.Pointer<ffi.Void> index,
);
typedef _dart_clang_disposeIndex = void Function(
ffi.Pointer<ffi.Void> index,
);
typedef _c_clang_getNumDiagnostics = ffi.Uint32 Function(
ffi.Pointer<CXTranslationUnitImpl> Unit,
);
typedef _dart_clang_getNumDiagnostics = int Function(
ffi.Pointer<CXTranslationUnitImpl> Unit,
);
typedef _c_clang_getDiagnostic = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<CXTranslationUnitImpl> Unit,
ffi.Uint32 Index,
);
typedef _dart_clang_getDiagnostic = ffi.Pointer<ffi.Void> Function(
ffi.Pointer<CXTranslationUnitImpl> Unit,
int Index,
);
typedef _c_clang_disposeDiagnostic = ffi.Void Function(
ffi.Pointer<ffi.Void> Diagnostic,
);
typedef _dart_clang_disposeDiagnostic = void Function(
ffi.Pointer<ffi.Void> Diagnostic,
);
typedef _c_clang_parseTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>
Function(
ffi.Pointer<ffi.Void> CIdx,
ffi.Pointer<ffi.Int8> source_filename,
ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
ffi.Int32 num_command_line_args,
ffi.Pointer<CXUnsavedFile> unsaved_files,
ffi.Uint32 num_unsaved_files,
ffi.Uint32 options,
);
typedef _dart_clang_parseTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>
Function(
ffi.Pointer<ffi.Void> CIdx,
ffi.Pointer<ffi.Int8> source_filename,
ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
int num_command_line_args,
ffi.Pointer<CXUnsavedFile> unsaved_files,
int num_unsaved_files,
int options,
);
typedef _c_clang_disposeTranslationUnit = ffi.Void Function(
ffi.Pointer<CXTranslationUnitImpl> arg0,
);
typedef _dart_clang_disposeTranslationUnit = void Function(
ffi.Pointer<CXTranslationUnitImpl> arg0,
);
typedef _c_clang_getCString_wrap = ffi.Pointer<ffi.Int8> Function(
ffi.Pointer<CXString> string,
);
typedef _dart_clang_getCString_wrap = ffi.Pointer<ffi.Int8> Function(
ffi.Pointer<CXString> string,
);
typedef _c_clang_disposeString_wrap = ffi.Void Function(
ffi.Pointer<CXString> string,
);
typedef _dart_clang_disposeString_wrap = void Function(
ffi.Pointer<CXString> string,
);
typedef _c_clang_getCursorKind_wrap = ffi.Int32 Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_getCursorKind_wrap = int Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_getCursorKindSpelling_wrap = ffi.Pointer<CXString> Function(
ffi.Int32 kind,
);
typedef _dart_clang_getCursorKindSpelling_wrap = ffi.Pointer<CXString> Function(
int kind,
);
typedef _c_clang_getCursorType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_getCursorType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_getTypeSpelling_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<CXType> type,
);
typedef _dart_clang_getTypeSpelling_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<CXType> type,
);
typedef _c_clang_getTypeKindSpelling_wrap = ffi.Pointer<CXString> Function(
ffi.Int32 typeKind,
);
typedef _dart_clang_getTypeKindSpelling_wrap = ffi.Pointer<CXString> Function(
int typeKind,
);
typedef _c_clang_getResultType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> functionType,
);
typedef _dart_clang_getResultType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> functionType,
);
typedef _c_clang_getPointeeType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> pointerType,
);
typedef _dart_clang_getPointeeType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> pointerType,
);
typedef _c_clang_getCanonicalType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> typerefType,
);
typedef _dart_clang_getCanonicalType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> typerefType,
);
typedef _c_clang_Type_getNamedType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> elaboratedType,
);
typedef _dart_clang_Type_getNamedType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> elaboratedType,
);
typedef _c_clang_getTypeDeclaration_wrap = ffi.Pointer<CXCursor> Function(
ffi.Pointer<CXType> cxtype,
);
typedef _dart_clang_getTypeDeclaration_wrap = ffi.Pointer<CXCursor> Function(
ffi.Pointer<CXType> cxtype,
);
typedef _c_clang_getTypedefDeclUnderlyingType_wrap = ffi.Pointer<CXType>
Function(
ffi.Pointer<CXCursor> cxcursor,
);
typedef _dart_clang_getTypedefDeclUnderlyingType_wrap = ffi.Pointer<CXType>
Function(
ffi.Pointer<CXCursor> cxcursor,
);
typedef _c_clang_getCursorSpelling_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_getCursorSpelling_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_getTranslationUnitCursor_wrap = ffi.Pointer<CXCursor> Function(
ffi.Pointer<CXTranslationUnitImpl> tu,
);
typedef _dart_clang_getTranslationUnitCursor_wrap = ffi.Pointer<CXCursor>
Function(
ffi.Pointer<CXTranslationUnitImpl> tu,
);
typedef _c_clang_formatDiagnostic_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<ffi.Void> diag,
ffi.Int32 opts,
);
typedef _dart_clang_formatDiagnostic_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<ffi.Void> diag,
int opts,
);
typedef ModifiedCXCursorVisitor_1 = ffi.Int32 Function(
ffi.Pointer<CXCursor>,
ffi.Pointer<CXCursor>,
ffi.Pointer<ffi.Void>,
);
typedef _c_clang_visitChildren_wrap = ffi.Uint32 Function(
ffi.Pointer<CXCursor> parent,
ffi.Pointer<ffi.NativeFunction<ModifiedCXCursorVisitor_1>> _modifiedVisitor,
ffi.Int64 uid,
);
typedef _dart_clang_visitChildren_wrap = int Function(
ffi.Pointer<CXCursor> parent,
ffi.Pointer<ffi.NativeFunction<ModifiedCXCursorVisitor_1>> _modifiedVisitor,
int uid,
);
typedef _c_clang_Cursor_getNumArguments_wrap = ffi.Int32 Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_Cursor_getNumArguments_wrap = int Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_Cursor_getArgument_wrap = ffi.Pointer<CXCursor> Function(
ffi.Pointer<CXCursor> cursor,
ffi.Uint32 i,
);
typedef _dart_clang_Cursor_getArgument_wrap = ffi.Pointer<CXCursor> Function(
ffi.Pointer<CXCursor> cursor,
int i,
);
typedef _c_clang_getNumArgTypes_wrap = ffi.Int32 Function(
ffi.Pointer<CXType> cxtype,
);
typedef _dart_clang_getNumArgTypes_wrap = int Function(
ffi.Pointer<CXType> cxtype,
);
typedef _c_clang_getArgType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> cxtype,
ffi.Uint32 i,
);
typedef _dart_clang_getArgType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> cxtype,
int i,
);
typedef _c_clang_getEnumConstantDeclValue_wrap = ffi.Int64 Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_getEnumConstantDeclValue_wrap = int Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_equalRanges_wrap = ffi.Uint32 Function(
ffi.Pointer<CXSourceRange> c1,
ffi.Pointer<CXSourceRange> c2,
);
typedef _dart_clang_equalRanges_wrap = int Function(
ffi.Pointer<CXSourceRange> c1,
ffi.Pointer<CXSourceRange> c2,
);
typedef _c_clang_Cursor_getCommentRange_wrap = ffi.Pointer<CXSourceRange>
Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_Cursor_getCommentRange_wrap = ffi.Pointer<CXSourceRange>
Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_Cursor_getRawCommentText_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_Cursor_getRawCommentText_wrap = ffi.Pointer<CXString>
Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_Cursor_getBriefCommentText_wrap = ffi.Pointer<CXString>
Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_Cursor_getBriefCommentText_wrap = ffi.Pointer<CXString>
Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_getCursorLocation_wrap = ffi.Pointer<CXSourceLocation>
Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _dart_clang_getCursorLocation_wrap = ffi.Pointer<CXSourceLocation>
Function(
ffi.Pointer<CXCursor> cursor,
);
typedef _c_clang_getFileLocation_wrap = ffi.Void Function(
ffi.Pointer<CXSourceLocation> location,
ffi.Pointer<ffi.Pointer<ffi.Void>> file,
ffi.Pointer<ffi.Uint32> line,
ffi.Pointer<ffi.Uint32> column,
ffi.Pointer<ffi.Uint32> offset,
);
typedef _dart_clang_getFileLocation_wrap = void Function(
ffi.Pointer<CXSourceLocation> location,
ffi.Pointer<ffi.Pointer<ffi.Void>> file,
ffi.Pointer<ffi.Uint32> line,
ffi.Pointer<ffi.Uint32> column,
ffi.Pointer<ffi.Uint32> offset,
);
typedef _c_clang_getFileName_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<ffi.Void> SFile,
);
typedef _dart_clang_getFileName_wrap = ffi.Pointer<CXString> Function(
ffi.Pointer<ffi.Void> SFile,
);
typedef _c_clang_getNumElements_wrap = ffi.Uint64 Function(
ffi.Pointer<CXType> cxtype,
);
typedef _dart_clang_getNumElements_wrap = int Function(
ffi.Pointer<CXType> cxtype,
);
typedef _c_clang_getArrayElementType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> cxtype,
);
typedef _dart_clang_getArrayElementType_wrap = ffi.Pointer<CXType> Function(
ffi.Pointer<CXType> cxtype,
);