/* automatically generated by rust-bindgen */

use core::libc::*;
pub type CXIndex = *c_void;
pub type Struct_CXTranslationUnitImpl = c_void;
pub type CXTranslationUnit = *Struct_CXTranslationUnitImpl;
pub type CXClientData = *c_void;
pub struct Struct_CXUnsavedFile {
    pub Filename: *c_schar,
    pub Contents: *c_schar,
    pub Length: c_ulong,
}
pub type Enum_CXAvailabilityKind = c_uint;
pub static CXAvailability_Available: c_uint = 0;
pub static CXAvailability_Deprecated: c_uint = 1;
pub static CXAvailability_NotAvailable: c_uint = 2;
pub static CXAvailability_NotAccessible: c_uint = 3;
pub struct CXString {
    pub data: *c_void,
    pub private_flags: c_uint,
}
pub type CXGlobalOptFlags = c_uint;
pub static CXGlobalOpt_None: c_uint = 0;
pub static CXGlobalOpt_ThreadBackgroundPriorityForIndexing: c_uint = 1;
pub static CXGlobalOpt_ThreadBackgroundPriorityForEditing: c_uint = 2;
pub static CXGlobalOpt_ThreadBackgroundPriorityForAll: c_uint = 3;
pub type CXFile = *c_void;
pub struct CXSourceLocation {
    pub ptr_data: [*c_void, ..2u],
    pub int_data: c_uint,
}
pub struct CXSourceRange {
    pub ptr_data: [*c_void, ..2u],
    pub begin_int_data: c_uint,
    pub end_int_data: c_uint,
}
pub type Enum_CXDiagnosticSeverity = c_uint;
pub static CXDiagnostic_Ignored: c_uint = 0;
pub static CXDiagnostic_Note: c_uint = 1;
pub static CXDiagnostic_Warning: c_uint = 2;
pub static CXDiagnostic_Error: c_uint = 3;
pub static CXDiagnostic_Fatal: c_uint = 4;
pub type CXDiagnostic = *c_void;
pub type CXDiagnosticSet = *c_void;
pub type Enum_CXLoadDiag_Error = c_uint;
pub static CXLoadDiag_None: c_uint = 0;
pub static CXLoadDiag_Unknown: c_uint = 1;
pub static CXLoadDiag_CannotLoad: c_uint = 2;
pub static CXLoadDiag_InvalidFile: c_uint = 3;
pub type Enum_CXDiagnosticDisplayOptions = c_uint;
pub static CXDiagnostic_DisplaySourceLocation: c_uint = 1;
pub static CXDiagnostic_DisplayColumn: c_uint = 2;
pub static CXDiagnostic_DisplaySourceRanges: c_uint = 4;
pub static CXDiagnostic_DisplayOption: c_uint = 8;
pub static CXDiagnostic_DisplayCategoryId: c_uint = 16;
pub static CXDiagnostic_DisplayCategoryName: c_uint = 32;
pub type Enum_CXTranslationUnit_Flags = c_uint;
pub static CXTranslationUnit_None: c_uint = 0;
pub static CXTranslationUnit_DetailedPreprocessingRecord: c_uint = 1;
pub static CXTranslationUnit_Incomplete: c_uint = 2;
pub static CXTranslationUnit_PrecompiledPreamble: c_uint = 4;
pub static CXTranslationUnit_CacheCompletionResults: c_uint = 8;
pub static CXTranslationUnit_CXXPrecompiledPreamble: c_uint = 16;
pub static CXTranslationUnit_CXXChainedPCH: c_uint = 32;
pub static CXTranslationUnit_SkipFunctionBodies: c_uint = 64;
pub type Enum_CXSaveTranslationUnit_Flags = c_uint;
pub static CXSaveTranslationUnit_None: c_uint = 0;
pub type Enum_CXSaveError = c_uint;
pub static CXSaveError_None: c_uint = 0;
pub static CXSaveError_Unknown: c_uint = 1;
pub static CXSaveError_TranslationErrors: c_uint = 2;
pub static CXSaveError_InvalidTU: c_uint = 3;
pub type Enum_CXReparse_Flags = c_uint;
pub static CXReparse_None: c_uint = 0;
pub type Enum_CXTUResourceUsageKind = c_uint;
pub static CXTUResourceUsage_AST: c_uint = 1;
pub static CXTUResourceUsage_Identifiers: c_uint = 2;
pub static CXTUResourceUsage_Selectors: c_uint = 3;
pub static CXTUResourceUsage_GlobalCompletionResults: c_uint = 4;
pub static CXTUResourceUsage_SourceManagerContentCache: c_uint = 5;
pub static CXTUResourceUsage_AST_SideTables: c_uint = 6;
pub static CXTUResourceUsage_SourceManager_Membuffer_Malloc: c_uint = 7;
pub static CXTUResourceUsage_SourceManager_Membuffer_MMap: c_uint = 8;
pub static CXTUResourceUsage_ExternalASTSource_Membuffer_Malloc: c_uint = 9;
pub static CXTUResourceUsage_ExternalASTSource_Membuffer_MMap: c_uint = 10;
pub static CXTUResourceUsage_Preprocessor: c_uint = 11;
pub static CXTUResourceUsage_PreprocessingRecord: c_uint = 12;
pub static CXTUResourceUsage_SourceManager_DataStructures: c_uint = 13;
pub static CXTUResourceUsage_Preprocessor_HeaderSearch: c_uint = 14;
pub static CXTUResourceUsage_MEMORY_IN_BYTES_BEGIN: c_uint = 1;
pub static CXTUResourceUsage_MEMORY_IN_BYTES_END: c_uint = 14;
pub static CXTUResourceUsage_First: c_uint = 1;
pub static CXTUResourceUsage_Last: c_uint = 14;
pub struct Struct_CXTUResourceUsageEntry {
    pub kind: Enum_CXTUResourceUsageKind,
    pub amount: c_ulong,
}
pub type CXTUResourceUsageEntry = Struct_CXTUResourceUsageEntry;
pub struct Struct_CXTUResourceUsage {
    pub data: *c_void,
    pub numEntries: c_uint,
    pub entries: *CXTUResourceUsageEntry,
}
pub type CXTUResourceUsage = Struct_CXTUResourceUsage;
pub type Enum_CXCursorKind = c_uint;
pub static CXCursor_UnexposedDecl: c_uint = 1;
pub static CXCursor_StructDecl: c_uint = 2;
pub static CXCursor_UnionDecl: c_uint = 3;
pub static CXCursor_ClassDecl: c_uint = 4;
pub static CXCursor_EnumDecl: c_uint = 5;
pub static CXCursor_FieldDecl: c_uint = 6;
pub static CXCursor_EnumConstantDecl: c_uint = 7;
pub static CXCursor_FunctionDecl: c_uint = 8;
pub static CXCursor_VarDecl: c_uint = 9;
pub static CXCursor_ParmDecl: c_uint = 10;
pub static CXCursor_ObjCInterfaceDecl: c_uint = 11;
pub static CXCursor_ObjCCategoryDecl: c_uint = 12;
pub static CXCursor_ObjCProtocolDecl: c_uint = 13;
pub static CXCursor_ObjCPropertyDecl: c_uint = 14;
pub static CXCursor_ObjCIvarDecl: c_uint = 15;
pub static CXCursor_ObjCInstanceMethodDecl: c_uint = 16;
pub static CXCursor_ObjCClassMethodDecl: c_uint = 17;
pub static CXCursor_ObjCImplementationDecl: c_uint = 18;
pub static CXCursor_ObjCCategoryImplDecl: c_uint = 19;
pub static CXCursor_TypedefDecl: c_uint = 20;
pub static CXCursor_CXXMethod: c_uint = 21;
pub static CXCursor_Namespace: c_uint = 22;
pub static CXCursor_LinkageSpec: c_uint = 23;
pub static CXCursor_Constructor: c_uint = 24;
pub static CXCursor_Destructor: c_uint = 25;
pub static CXCursor_ConversionFunction: c_uint = 26;
pub static CXCursor_TemplateTypeParameter: c_uint = 27;
pub static CXCursor_NonTypeTemplateParameter: c_uint = 28;
pub static CXCursor_TemplateTemplateParameter: c_uint = 29;
pub static CXCursor_FunctionTemplate: c_uint = 30;
pub static CXCursor_ClassTemplate: c_uint = 31;
pub static CXCursor_ClassTemplatePartialSpecialization: c_uint = 32;
pub static CXCursor_NamespaceAlias: c_uint = 33;
pub static CXCursor_UsingDirective: c_uint = 34;
pub static CXCursor_UsingDeclaration: c_uint = 35;
pub static CXCursor_TypeAliasDecl: c_uint = 36;
pub static CXCursor_ObjCSynthesizeDecl: c_uint = 37;
pub static CXCursor_ObjCDynamicDecl: c_uint = 38;
pub static CXCursor_CXXAccessSpecifier: c_uint = 39;
pub static CXCursor_FirstDecl: c_uint = 1;
pub static CXCursor_LastDecl: c_uint = 39;
pub static CXCursor_FirstRef: c_uint = 40;
pub static CXCursor_ObjCSuperClassRef: c_uint = 40;
pub static CXCursor_ObjCProtocolRef: c_uint = 41;
pub static CXCursor_ObjCClassRef: c_uint = 42;
pub static CXCursor_TypeRef: c_uint = 43;
pub static CXCursor_CXXBaseSpecifier: c_uint = 44;
pub static CXCursor_TemplateRef: c_uint = 45;
pub static CXCursor_NamespaceRef: c_uint = 46;
pub static CXCursor_MemberRef: c_uint = 47;
pub static CXCursor_LabelRef: c_uint = 48;
pub static CXCursor_OverloadedDeclRef: c_uint = 49;
pub static CXCursor_VariableRef: c_uint = 50;
pub static CXCursor_LastRef: c_uint = 50;
pub static CXCursor_FirstInvalid: c_uint = 70;
pub static CXCursor_InvalidFile: c_uint = 70;
pub static CXCursor_NoDeclFound: c_uint = 71;
pub static CXCursor_NotImplemented: c_uint = 72;
pub static CXCursor_InvalidCode: c_uint = 73;
pub static CXCursor_LastInvalid: c_uint = 73;
pub static CXCursor_FirstExpr: c_uint = 100;
pub static CXCursor_UnexposedExpr: c_uint = 100;
pub static CXCursor_DeclRefExpr: c_uint = 101;
pub static CXCursor_MemberRefExpr: c_uint = 102;
pub static CXCursor_CallExpr: c_uint = 103;
pub static CXCursor_ObjCMessageExpr: c_uint = 104;
pub static CXCursor_BlockExpr: c_uint = 105;
pub static CXCursor_IntegerLiteral: c_uint = 106;
pub static CXCursor_FloatingLiteral: c_uint = 107;
pub static CXCursor_ImaginaryLiteral: c_uint = 108;
pub static CXCursor_StringLiteral: c_uint = 109;
pub static CXCursor_CharacterLiteral: c_uint = 110;
pub static CXCursor_ParenExpr: c_uint = 111;
pub static CXCursor_UnaryOperator: c_uint = 112;
pub static CXCursor_ArraySubscriptExpr: c_uint = 113;
pub static CXCursor_BinaryOperator: c_uint = 114;
pub static CXCursor_CompoundAssignOperator: c_uint = 115;
pub static CXCursor_ConditionalOperator: c_uint = 116;
pub static CXCursor_CStyleCastExpr: c_uint = 117;
pub static CXCursor_CompoundLiteralExpr: c_uint = 118;
pub static CXCursor_InitListExpr: c_uint = 119;
pub static CXCursor_AddrLabelExpr: c_uint = 120;
pub static CXCursor_StmtExpr: c_uint = 121;
pub static CXCursor_GenericSelectionExpr: c_uint = 122;
pub static CXCursor_GNUNullExpr: c_uint = 123;
pub static CXCursor_CXXStaticCastExpr: c_uint = 124;
pub static CXCursor_CXXDynamicCastExpr: c_uint = 125;
pub static CXCursor_CXXReinterpretCastExpr: c_uint = 126;
pub static CXCursor_CXXConstCastExpr: c_uint = 127;
pub static CXCursor_CXXFunctionalCastExpr: c_uint = 128;
pub static CXCursor_CXXTypeidExpr: c_uint = 129;
pub static CXCursor_CXXBoolLiteralExpr: c_uint = 130;
pub static CXCursor_CXXNullPtrLiteralExpr: c_uint = 131;
pub static CXCursor_CXXThisExpr: c_uint = 132;
pub static CXCursor_CXXThrowExpr: c_uint = 133;
pub static CXCursor_CXXNewExpr: c_uint = 134;
pub static CXCursor_CXXDeleteExpr: c_uint = 135;
pub static CXCursor_UnaryExpr: c_uint = 136;
pub static CXCursor_ObjCStringLiteral: c_uint = 137;
pub static CXCursor_ObjCEncodeExpr: c_uint = 138;
pub static CXCursor_ObjCSelectorExpr: c_uint = 139;
pub static CXCursor_ObjCProtocolExpr: c_uint = 140;
pub static CXCursor_ObjCBridgedCastExpr: c_uint = 141;
pub static CXCursor_PackExpansionExpr: c_uint = 142;
pub static CXCursor_SizeOfPackExpr: c_uint = 143;
pub static CXCursor_LambdaExpr: c_uint = 144;
pub static CXCursor_ObjCBoolLiteralExpr: c_uint = 145;
pub static CXCursor_LastExpr: c_uint = 145;
pub static CXCursor_FirstStmt: c_uint = 200;
pub static CXCursor_UnexposedStmt: c_uint = 200;
pub static CXCursor_LabelStmt: c_uint = 201;
pub static CXCursor_CompoundStmt: c_uint = 202;
pub static CXCursor_CaseStmt: c_uint = 203;
pub static CXCursor_DefaultStmt: c_uint = 204;
pub static CXCursor_IfStmt: c_uint = 205;
pub static CXCursor_SwitchStmt: c_uint = 206;
pub static CXCursor_WhileStmt: c_uint = 207;
pub static CXCursor_DoStmt: c_uint = 208;
pub static CXCursor_ForStmt: c_uint = 209;
pub static CXCursor_GotoStmt: c_uint = 210;
pub static CXCursor_IndirectGotoStmt: c_uint = 211;
pub static CXCursor_ContinueStmt: c_uint = 212;
pub static CXCursor_BreakStmt: c_uint = 213;
pub static CXCursor_ReturnStmt: c_uint = 214;
pub static CXCursor_AsmStmt: c_uint = 215;
pub static CXCursor_ObjCAtTryStmt: c_uint = 216;
pub static CXCursor_ObjCAtCatchStmt: c_uint = 217;
pub static CXCursor_ObjCAtFinallyStmt: c_uint = 218;
pub static CXCursor_ObjCAtThrowStmt: c_uint = 219;
pub static CXCursor_ObjCAtSynchronizedStmt: c_uint = 220;
pub static CXCursor_ObjCAutoreleasePoolStmt: c_uint = 221;
pub static CXCursor_ObjCForCollectionStmt: c_uint = 222;
pub static CXCursor_CXXCatchStmt: c_uint = 223;
pub static CXCursor_CXXTryStmt: c_uint = 224;
pub static CXCursor_CXXForRangeStmt: c_uint = 225;
pub static CXCursor_SEHTryStmt: c_uint = 226;
pub static CXCursor_SEHExceptStmt: c_uint = 227;
pub static CXCursor_SEHFinallyStmt: c_uint = 228;
pub static CXCursor_NullStmt: c_uint = 230;
pub static CXCursor_DeclStmt: c_uint = 231;
pub static CXCursor_LastStmt: c_uint = 231;
pub static CXCursor_TranslationUnit: c_uint = 300;
pub static CXCursor_FirstAttr: c_uint = 400;
pub static CXCursor_UnexposedAttr: c_uint = 400;
pub static CXCursor_IBActionAttr: c_uint = 401;
pub static CXCursor_IBOutletAttr: c_uint = 402;
pub static CXCursor_IBOutletCollectionAttr: c_uint = 403;
pub static CXCursor_CXXFinalAttr: c_uint = 404;
pub static CXCursor_CXXOverrideAttr: c_uint = 405;
pub static CXCursor_AnnotateAttr: c_uint = 406;
pub static CXCursor_AsmLabelAttr: c_uint = 407;
pub static CXCursor_LastAttr: c_uint = 407;
pub static CXCursor_PreprocessingDirective: c_uint = 500;
pub static CXCursor_MacroDefinition: c_uint = 501;
pub static CXCursor_MacroExpansion: c_uint = 502;
pub static CXCursor_MacroInstantiation: c_uint = 502;
pub static CXCursor_InclusionDirective: c_uint = 503;
pub static CXCursor_FirstPreprocessing: c_uint = 500;
pub static CXCursor_LastPreprocessing: c_uint = 503;
pub struct CXCursor {
    pub kind: Enum_CXCursorKind,
    pub xdata: c_int,
    pub data: [*c_void, ..3u],
}
pub type Enum_CXLinkageKind = c_uint;
pub static CXLinkage_Invalid: c_uint = 0;
pub static CXLinkage_NoLinkage: c_uint = 1;
pub static CXLinkage_Internal: c_uint = 2;
pub static CXLinkage_UniqueExternal: c_uint = 3;
pub static CXLinkage_External: c_uint = 4;
pub type Enum_CXLanguageKind = c_uint;
pub static CXLanguage_Invalid: c_uint = 0;
pub static CXLanguage_C: c_uint = 1;
pub static CXLanguage_ObjC: c_uint = 2;
pub static CXLanguage_CPlusPlus: c_uint = 3;
pub type Struct_CXCursorSetImpl = c_void;
pub type CXCursorSet = *Struct_CXCursorSetImpl;
pub type Enum_CXTypeKind = c_uint;
pub static CXType_Invalid: c_uint = 0;
pub static CXType_Unexposed: c_uint = 1;
pub static CXType_Void: c_uint = 2;
pub static CXType_Bool: c_uint = 3;
pub static CXType_Char_U: c_uint = 4;
pub static CXType_UChar: c_uint = 5;
pub static CXType_Char16: c_uint = 6;
pub static CXType_Char32: c_uint = 7;
pub static CXType_UShort: c_uint = 8;
pub static CXType_UInt: c_uint = 9;
pub static CXType_ULong: c_uint = 10;
pub static CXType_ULongLong: c_uint = 11;
pub static CXType_UInt128: c_uint = 12;
pub static CXType_Char_S: c_uint = 13;
pub static CXType_SChar: c_uint = 14;
pub static CXType_WChar: c_uint = 15;
pub static CXType_Short: c_uint = 16;
pub static CXType_Int: c_uint = 17;
pub static CXType_Long: c_uint = 18;
pub static CXType_LongLong: c_uint = 19;
pub static CXType_Int128: c_uint = 20;
pub static CXType_Float: c_uint = 21;
pub static CXType_Double: c_uint = 22;
pub static CXType_LongDouble: c_uint = 23;
pub static CXType_NullPtr: c_uint = 24;
pub static CXType_Overload: c_uint = 25;
pub static CXType_Dependent: c_uint = 26;
pub static CXType_ObjCId: c_uint = 27;
pub static CXType_ObjCClass: c_uint = 28;
pub static CXType_ObjCSel: c_uint = 29;
pub static CXType_FirstBuiltin: c_uint = 2;
pub static CXType_LastBuiltin: c_uint = 29;
pub static CXType_Complex: c_uint = 100;
pub static CXType_Pointer: c_uint = 101;
pub static CXType_BlockPointer: c_uint = 102;
pub static CXType_LValueReference: c_uint = 103;
pub static CXType_RValueReference: c_uint = 104;
pub static CXType_Record: c_uint = 105;
pub static CXType_Enum: c_uint = 106;
pub static CXType_Typedef: c_uint = 107;
pub static CXType_ObjCInterface: c_uint = 108;
pub static CXType_ObjCObjectPointer: c_uint = 109;
pub static CXType_FunctionNoProto: c_uint = 110;
pub static CXType_FunctionProto: c_uint = 111;
pub static CXType_ConstantArray: c_uint = 112;
pub static CXType_Vector: c_uint = 113;
pub type Enum_CXCallingConv = c_uint;
pub static CXCallingConv_Default: c_uint = 0;
pub static CXCallingConv_C: c_uint = 1;
pub static CXCallingConv_X86StdCall: c_uint = 2;
pub static CXCallingConv_X86FastCall: c_uint = 3;
pub static CXCallingConv_X86ThisCall: c_uint = 4;
pub static CXCallingConv_X86Pascal: c_uint = 5;
pub static CXCallingConv_AAPCS: c_uint = 6;
pub static CXCallingConv_AAPCS_VFP: c_uint = 7;
pub static CXCallingConv_Invalid: c_uint = 100;
pub static CXCallingConv_Unexposed: c_uint = 200;
pub struct CXType {
    pub kind: Enum_CXTypeKind,
    pub data: [*c_void, ..2u],
}
pub type Enum_CX_CXXAccessSpecifier = c_uint;
pub static CX_CXXInvalidAccessSpecifier: c_uint = 0;
pub static CX_CXXPublic: c_uint = 1;
pub static CX_CXXProtected: c_uint = 2;
pub static CX_CXXPrivate: c_uint = 3;
pub type Enum_CXChildVisitResult = c_uint;
pub static CXChildVisit_Break: c_uint = 0;
pub static CXChildVisit_Continue: c_uint = 1;
pub static CXChildVisit_Recurse: c_uint = 2;
pub type CXCursorVisitor = *u8;
pub type Enum_CXNameRefFlags = c_uint;
pub static CXNameRange_WantQualifier: c_uint = 1;
pub static CXNameRange_WantTemplateArgs: c_uint = 2;
pub static CXNameRange_WantSinglePiece: c_uint = 4;
pub type Enum_CXTokenKind = c_uint;
pub static CXToken_Punctuation: c_uint = 0;
pub static CXToken_Keyword: c_uint = 1;
pub static CXToken_Identifier: c_uint = 2;
pub static CXToken_Literal: c_uint = 3;
pub static CXToken_Comment: c_uint = 4;
pub type CXTokenKind = Enum_CXTokenKind;
pub struct CXToken {
    pub int_data: [c_uint, ..4u],
    pub ptr_data: *c_void,
}
pub type CXCompletionString = *c_void;
pub struct CXCompletionResult {
    pub CursorKind: Enum_CXCursorKind,
    pub CompletionString: CXCompletionString,
}
pub type Enum_CXCompletionChunkKind = c_uint;
pub static CXCompletionChunk_Optional: c_uint = 0;
pub static CXCompletionChunk_TypedText: c_uint = 1;
pub static CXCompletionChunk_Text: c_uint = 2;
pub static CXCompletionChunk_Placeholder: c_uint = 3;
pub static CXCompletionChunk_Informative: c_uint = 4;
pub static CXCompletionChunk_CurrentParameter: c_uint = 5;
pub static CXCompletionChunk_LeftParen: c_uint = 6;
pub static CXCompletionChunk_RightParen: c_uint = 7;
pub static CXCompletionChunk_LeftBracket: c_uint = 8;
pub static CXCompletionChunk_RightBracket: c_uint = 9;
pub static CXCompletionChunk_LeftBrace: c_uint = 10;
pub static CXCompletionChunk_RightBrace: c_uint = 11;
pub static CXCompletionChunk_LeftAngle: c_uint = 12;
pub static CXCompletionChunk_RightAngle: c_uint = 13;
pub static CXCompletionChunk_Comma: c_uint = 14;
pub static CXCompletionChunk_ResultType: c_uint = 15;
pub static CXCompletionChunk_Colon: c_uint = 16;
pub static CXCompletionChunk_SemiColon: c_uint = 17;
pub static CXCompletionChunk_Equal: c_uint = 18;
pub static CXCompletionChunk_HorizontalSpace: c_uint = 19;
pub static CXCompletionChunk_VerticalSpace: c_uint = 20;
pub struct CXCodeCompleteResults {
    pub Results: *CXCompletionResult,
    pub NumResults: c_uint,
}
pub type Enum_CXCodeComplete_Flags = c_uint;
pub static CXCodeComplete_IncludeMacros: c_uint = 1;
pub static CXCodeComplete_IncludeCodePatterns: c_uint = 2;
pub type Enum_CXCompletionContext = c_uint;
pub static CXCompletionContext_Unexposed: c_uint = 0;
pub static CXCompletionContext_AnyType: c_uint = 1;
pub static CXCompletionContext_AnyValue: c_uint = 2;
pub static CXCompletionContext_ObjCObjectValue: c_uint = 4;
pub static CXCompletionContext_ObjCSelectorValue: c_uint = 8;
pub static CXCompletionContext_CXXClassTypeValue: c_uint = 16;
pub static CXCompletionContext_DotMemberAccess: c_uint = 32;
pub static CXCompletionContext_ArrowMemberAccess: c_uint = 64;
pub static CXCompletionContext_ObjCPropertyAccess: c_uint = 128;
pub static CXCompletionContext_EnumTag: c_uint = 256;
pub static CXCompletionContext_UnionTag: c_uint = 512;
pub static CXCompletionContext_StructTag: c_uint = 1024;
pub static CXCompletionContext_ClassTag: c_uint = 2048;
pub static CXCompletionContext_Namespace: c_uint = 4096;
pub static CXCompletionContext_NestedNameSpecifier: c_uint = 8192;
pub static CXCompletionContext_ObjCInterface: c_uint = 16384;
pub static CXCompletionContext_ObjCProtocol: c_uint = 32768;
pub static CXCompletionContext_ObjCCategory: c_uint = 65536;
pub static CXCompletionContext_ObjCInstanceMessage: c_uint = 131072;
pub static CXCompletionContext_ObjCClassMessage: c_uint = 262144;
pub static CXCompletionContext_ObjCSelectorName: c_uint = 524288;
pub static CXCompletionContext_MacroName: c_uint = 1048576;
pub static CXCompletionContext_NaturalLanguage: c_uint = 2097152;
pub static CXCompletionContext_Unknown: c_uint = 4194303;
pub type CXInclusionVisitor = *u8;
pub type CXRemapping = *c_void;
pub type Enum_CXVisitorResult = c_uint;
pub static CXVisit_Break: c_uint = 0;
pub static CXVisit_Continue: c_uint = 1;
pub struct CXCursorAndRangeVisitor {
    pub context: *c_void,
    pub visit: *u8,
}
pub type CXIdxClientFile = *c_void;
pub type CXIdxClientEntity = *c_void;
pub type CXIdxClientContainer = *c_void;
pub type CXIdxClientASTFile = *c_void;
pub struct CXIdxLoc {
    pub ptr_data: [*c_void, ..2u],
    pub int_data: c_uint,
}
pub struct CXIdxIncludedFileInfo {
    pub hashLoc: CXIdxLoc,
    pub filename: *c_schar,
    pub file: CXFile,
    pub isImport: c_int,
    pub isAngled: c_int,
}
pub struct CXIdxImportedASTFileInfo {
    pub file: CXFile,
    pub loc: CXIdxLoc,
    pub isModule: c_int,
}
pub type CXIdxEntityKind = c_uint;
pub static CXIdxEntity_Unexposed: c_uint = 0;
pub static CXIdxEntity_Typedef: c_uint = 1;
pub static CXIdxEntity_Function: c_uint = 2;
pub static CXIdxEntity_Variable: c_uint = 3;
pub static CXIdxEntity_Field: c_uint = 4;
pub static CXIdxEntity_EnumConstant: c_uint = 5;
pub static CXIdxEntity_ObjCClass: c_uint = 6;
pub static CXIdxEntity_ObjCProtocol: c_uint = 7;
pub static CXIdxEntity_ObjCCategory: c_uint = 8;
pub static CXIdxEntity_ObjCInstanceMethod: c_uint = 9;
pub static CXIdxEntity_ObjCClassMethod: c_uint = 10;
pub static CXIdxEntity_ObjCProperty: c_uint = 11;
pub static CXIdxEntity_ObjCIvar: c_uint = 12;
pub static CXIdxEntity_Enum: c_uint = 13;
pub static CXIdxEntity_Struct: c_uint = 14;
pub static CXIdxEntity_Union: c_uint = 15;
pub static CXIdxEntity_CXXClass: c_uint = 16;
pub static CXIdxEntity_CXXNamespace: c_uint = 17;
pub static CXIdxEntity_CXXNamespaceAlias: c_uint = 18;
pub static CXIdxEntity_CXXStaticVariable: c_uint = 19;
pub static CXIdxEntity_CXXStaticMethod: c_uint = 20;
pub static CXIdxEntity_CXXInstanceMethod: c_uint = 21;
pub static CXIdxEntity_CXXConstructor: c_uint = 22;
pub static CXIdxEntity_CXXDestructor: c_uint = 23;
pub static CXIdxEntity_CXXConversionFunction: c_uint = 24;
pub static CXIdxEntity_CXXTypeAlias: c_uint = 25;
pub type CXIdxEntityLanguage = c_uint;
pub static CXIdxEntityLang_None: c_uint = 0;
pub static CXIdxEntityLang_C: c_uint = 1;
pub static CXIdxEntityLang_ObjC: c_uint = 2;
pub static CXIdxEntityLang_CXX: c_uint = 3;
pub type CXIdxEntityCXXTemplateKind = c_uint;
pub static CXIdxEntity_NonTemplate: c_uint = 0;
pub static CXIdxEntity_Template: c_uint = 1;
pub static CXIdxEntity_TemplatePartialSpecialization: c_uint = 2;
pub static CXIdxEntity_TemplateSpecialization: c_uint = 3;
pub type CXIdxAttrKind = c_uint;
pub static CXIdxAttr_Unexposed: c_uint = 0;
pub static CXIdxAttr_IBAction: c_uint = 1;
pub static CXIdxAttr_IBOutlet: c_uint = 2;
pub static CXIdxAttr_IBOutletCollection: c_uint = 3;
pub struct CXIdxAttrInfo {
    pub kind: CXIdxAttrKind,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
}
pub struct CXIdxEntityInfo {
    pub kind: CXIdxEntityKind,
    pub templateKind: CXIdxEntityCXXTemplateKind,
    pub lang: CXIdxEntityLanguage,
    pub name: *c_schar,
    pub USR: *c_schar,
    pub cursor: CXCursor,
    pub attributes: **CXIdxAttrInfo,
    pub numAttributes: c_uint,
}
pub struct CXIdxContainerInfo {
    pub cursor: CXCursor,
}
pub struct CXIdxIBOutletCollectionAttrInfo {
    pub attrInfo: *CXIdxAttrInfo,
    pub objcClass: *CXIdxEntityInfo,
    pub classCursor: CXCursor,
    pub classLoc: CXIdxLoc,
}
pub struct CXIdxDeclInfo {
    pub entityInfo: *CXIdxEntityInfo,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
    pub semanticContainer: *CXIdxContainerInfo,
    pub lexicalContainer: *CXIdxContainerInfo,
    pub isRedeclaration: c_int,
    pub isDefinition: c_int,
    pub isContainer: c_int,
    pub declAsContainer: *CXIdxContainerInfo,
    pub isImplicit: c_int,
    pub attributes: **CXIdxAttrInfo,
    pub numAttributes: c_uint,
}
pub type CXIdxObjCContainerKind = c_uint;
pub static CXIdxObjCContainer_ForwardRef: c_uint = 0;
pub static CXIdxObjCContainer_Interface: c_uint = 1;
pub static CXIdxObjCContainer_Implementation: c_uint = 2;
pub struct CXIdxObjCContainerDeclInfo {
    pub declInfo: *CXIdxDeclInfo,
    pub kind: CXIdxObjCContainerKind,
}
pub struct CXIdxBaseClassInfo {
    pub base: *CXIdxEntityInfo,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
}
pub struct CXIdxObjCProtocolRefInfo {
    pub protocol: *CXIdxEntityInfo,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
}
pub struct CXIdxObjCProtocolRefListInfo {
    pub protocols: **CXIdxObjCProtocolRefInfo,
    pub numProtocols: c_uint,
}
pub struct CXIdxObjCInterfaceDeclInfo {
    pub containerInfo: *CXIdxObjCContainerDeclInfo,
    pub superInfo: *CXIdxBaseClassInfo,
    pub protocols: *CXIdxObjCProtocolRefListInfo,
}
pub struct CXIdxObjCCategoryDeclInfo {
    pub containerInfo: *CXIdxObjCContainerDeclInfo,
    pub objcClass: *CXIdxEntityInfo,
    pub classCursor: CXCursor,
    pub classLoc: CXIdxLoc,
    pub protocols: *CXIdxObjCProtocolRefListInfo,
}
pub struct CXIdxObjCPropertyDeclInfo {
    pub declInfo: *CXIdxDeclInfo,
    pub getter: *CXIdxEntityInfo,
    pub setter: *CXIdxEntityInfo,
}
pub struct CXIdxCXXClassDeclInfo {
    pub declInfo: *CXIdxDeclInfo,
    pub bases: **CXIdxBaseClassInfo,
    pub numBases: c_uint,
}
pub type CXIdxEntityRefKind = c_uint;
pub static CXIdxEntityRef_Direct: c_uint = 1;
pub static CXIdxEntityRef_Implicit: c_uint = 2;
pub struct CXIdxEntityRefInfo {
    pub kind: CXIdxEntityRefKind,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
    pub referencedEntity: *CXIdxEntityInfo,
    pub parentEntity: *CXIdxEntityInfo,
    pub container: *CXIdxContainerInfo,
}
pub struct IndexerCallbacks {
    pub abortQuery: *u8,
    pub diagnostic: *u8,
    pub enteredMainFile: *u8,
    pub ppIncludedFile: *u8,
    pub importedASTFile: *u8,
    pub startedTranslationUnit: *u8,
    pub indexDeclaration: *u8,
    pub indexEntityReference: *u8,
}
pub type CXIndexAction = *c_void;
pub type CXIndexOptFlags = c_uint;
pub static CXIndexOpt_None: c_uint = 0;
pub static CXIndexOpt_SuppressRedundantRefs: c_uint = 1;
pub static CXIndexOpt_IndexFunctionLocalSymbols: c_uint = 2;
pub static CXIndexOpt_IndexImplicitTemplateInstantiations: c_uint = 4;
pub static CXIndexOpt_SuppressWarnings: c_uint = 8;
#[link_args = "-lclang"]
pub extern "C" {
    fn clang_getCString(+string: CXString) -> *c_schar;
    fn clang_disposeString(+string: CXString);
    fn clang_createIndex(+excludeDeclarationsFromPCH: c_int,
                         +displayDiagnostics: c_int) -> CXIndex;
    fn clang_disposeIndex(+index: CXIndex);
    fn clang_CXIndex_setGlobalOptions(+arg1: CXIndex, +options: c_uint);
    fn clang_CXIndex_getGlobalOptions(+arg1: CXIndex) -> c_uint;
    fn clang_getFileName(+SFile: CXFile) -> CXString;
    fn clang_getFileTime(+SFile: CXFile) -> time_t;
    fn clang_isFileMultipleIncludeGuarded(+tu: CXTranslationUnit,
                                          +file: CXFile) -> c_uint;
    fn clang_getFile(+tu: CXTranslationUnit, +file_name: *c_schar) -> CXFile;
    fn clang_getNullLocation() -> CXSourceLocation;
    fn clang_equalLocations(+loc1: CXSourceLocation, +loc2: CXSourceLocation)
     -> c_uint;
    fn clang_getLocation(+tu: CXTranslationUnit, +file: CXFile, +line: c_uint,
                         +column: c_uint) -> CXSourceLocation;
    fn clang_getLocationForOffset(+tu: CXTranslationUnit, +file: CXFile,
                                  +offset: c_uint) -> CXSourceLocation;
    fn clang_getNullRange() -> CXSourceRange;
    fn clang_getRange(+begin: CXSourceLocation, +end: CXSourceLocation) ->
     CXSourceRange;
    fn clang_equalRanges(+range1: CXSourceRange, +range2: CXSourceRange) ->
     c_uint;
    fn clang_Range_isNull(+range: CXSourceRange) -> c_int;
    fn clang_getExpansionLocation(+location: CXSourceLocation, +file: *CXFile,
                                  +line: *c_uint, +column: *c_uint,
                                  +offset: *c_uint);
    fn clang_getPresumedLocation(+location: CXSourceLocation,
                                 +filename: *CXString, +line: *c_uint,
                                 +column: *c_uint);
    fn clang_getInstantiationLocation(+location: CXSourceLocation,
                                      +file: *CXFile, +line: *c_uint,
                                      +column: *c_uint, +offset: *c_uint);
    fn clang_getSpellingLocation(+location: CXSourceLocation, +file: *CXFile,
                                 +line: *c_uint, +column: *c_uint,
                                 +offset: *c_uint);
    fn clang_getRangeStart(+range: CXSourceRange) -> CXSourceLocation;
    fn clang_getRangeEnd(+range: CXSourceRange) -> CXSourceLocation;
    fn clang_getNumDiagnosticsInSet(+Diags: CXDiagnosticSet) -> c_uint;
    fn clang_getDiagnosticInSet(+Diags: CXDiagnosticSet, +Index: c_uint) ->
     CXDiagnostic;
    fn clang_loadDiagnostics(+file: *c_schar, +error: *Enum_CXLoadDiag_Error,
                             +errorString: *CXString) -> CXDiagnosticSet;
    fn clang_disposeDiagnosticSet(+Diags: CXDiagnosticSet);
    fn clang_getChildDiagnostics(+D: CXDiagnostic) -> CXDiagnosticSet;
    fn clang_getNumDiagnostics(+Unit: CXTranslationUnit) -> c_uint;
    fn clang_getDiagnostic(+Unit: CXTranslationUnit, +Index: c_uint) ->
     CXDiagnostic;
    fn clang_getDiagnosticSetFromTU(+Unit: CXTranslationUnit) ->
     CXDiagnosticSet;
    fn clang_disposeDiagnostic(+Diagnostic: CXDiagnostic);
    fn clang_formatDiagnostic(+Diagnostic: CXDiagnostic, +Options: c_uint) ->
     CXString;
    fn clang_defaultDiagnosticDisplayOptions() -> c_uint;
    fn clang_getDiagnosticSeverity(+arg1: CXDiagnostic) ->
     Enum_CXDiagnosticSeverity;
    fn clang_getDiagnosticLocation(+arg1: CXDiagnostic) -> CXSourceLocation;
    fn clang_getDiagnosticSpelling(+arg1: CXDiagnostic) -> CXString;
    fn clang_getDiagnosticOption(+Diag: CXDiagnostic, +Disable: *CXString) ->
     CXString;
    fn clang_getDiagnosticCategory(+arg1: CXDiagnostic) -> c_uint;
    fn clang_getDiagnosticCategoryName(+Category: c_uint) -> CXString;
    fn clang_getDiagnosticCategoryText(+arg1: CXDiagnostic) -> CXString;
    fn clang_getDiagnosticNumRanges(+arg1: CXDiagnostic) -> c_uint;
    fn clang_getDiagnosticRange(+Diagnostic: CXDiagnostic, +Range: c_uint) ->
     CXSourceRange;
    fn clang_getDiagnosticNumFixIts(+Diagnostic: CXDiagnostic) -> c_uint;
    fn clang_getDiagnosticFixIt(+Diagnostic: CXDiagnostic, +FixIt: c_uint,
                                +ReplacementRange: *CXSourceRange) ->
     CXString;
    fn clang_getTranslationUnitSpelling(+CTUnit: CXTranslationUnit) ->
     CXString;
    fn clang_createTranslationUnitFromSourceFile(+CIdx: CXIndex,
                                                 +source_filename: *c_schar,
                                                 +num_clang_command_line_args:
                                                     c_int,
                                                 +clang_command_line_args:
                                                     **c_schar,
                                                 +num_unsaved_files: c_uint,
                                                 +unsaved_files:
                                                     *Struct_CXUnsavedFile) ->
     CXTranslationUnit;
    fn clang_createTranslationUnit(+arg1: CXIndex, +ast_filename: *c_schar) ->
     CXTranslationUnit;
    fn clang_defaultEditingTranslationUnitOptions() -> c_uint;
    fn clang_parseTranslationUnit(+CIdx: CXIndex, +source_filename: *c_schar,
                                  +command_line_args: **c_schar,
                                  +num_command_line_args: c_int,
                                  +unsaved_files: *Struct_CXUnsavedFile,
                                  +num_unsaved_files: c_uint,
                                  +options: c_uint) -> CXTranslationUnit;
    fn clang_defaultSaveOptions(+TU: CXTranslationUnit) -> c_uint;
    fn clang_saveTranslationUnit(+TU: CXTranslationUnit, +FileName: *c_schar,
                                 +options: c_uint) -> c_int;
    fn clang_disposeTranslationUnit(+arg1: CXTranslationUnit);
    fn clang_defaultReparseOptions(+TU: CXTranslationUnit) -> c_uint;
    fn clang_reparseTranslationUnit(+TU: CXTranslationUnit,
                                    +num_unsaved_files: c_uint,
                                    +unsaved_files: *Struct_CXUnsavedFile,
                                    +options: c_uint) -> c_int;
    fn clang_getTUResourceUsageName(+kind: Enum_CXTUResourceUsageKind) ->
     *c_schar;
    fn clang_getCXTUResourceUsage(+TU: CXTranslationUnit) ->
     CXTUResourceUsage;
    fn clang_disposeCXTUResourceUsage(+usage: CXTUResourceUsage);
    fn clang_getNullCursor() -> CXCursor;
    fn clang_getTranslationUnitCursor(+arg1: CXTranslationUnit) -> CXCursor;
    fn clang_equalCursors(+arg1: CXCursor, +arg2: CXCursor) -> c_uint;
    fn clang_Cursor_isNull(+arg1: CXCursor) -> c_int;
    fn clang_hashCursor(+arg1: CXCursor) -> c_uint;
    fn clang_getCursorKind(+arg1: CXCursor) -> Enum_CXCursorKind;
    fn clang_isDeclaration(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isReference(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isExpression(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isStatement(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isAttribute(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isInvalid(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isTranslationUnit(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isPreprocessing(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_isUnexposed(+arg1: Enum_CXCursorKind) -> c_uint;
    fn clang_getCursorLinkage(+cursor: CXCursor) -> Enum_CXLinkageKind;
    fn clang_getCursorAvailability(+cursor: CXCursor) ->
     Enum_CXAvailabilityKind;
    fn clang_getCursorLanguage(+cursor: CXCursor) -> Enum_CXLanguageKind;
    fn clang_Cursor_getTranslationUnit(+arg1: CXCursor) -> CXTranslationUnit;
    fn clang_createCXCursorSet() -> CXCursorSet;
    fn clang_disposeCXCursorSet(+cset: CXCursorSet);
    fn clang_CXCursorSet_contains(+cset: CXCursorSet, +cursor: CXCursor) ->
     c_uint;
    fn clang_CXCursorSet_insert(+cset: CXCursorSet, +cursor: CXCursor) ->
     c_uint;
    fn clang_getCursorSemanticParent(+cursor: CXCursor) -> CXCursor;
    fn clang_getCursorLexicalParent(+cursor: CXCursor) -> CXCursor;
    fn clang_getOverriddenCursors(+cursor: CXCursor, +overridden: **CXCursor,
                                  +num_overridden: *c_uint);
    fn clang_disposeOverriddenCursors(+overridden: *CXCursor);
    fn clang_getIncludedFile(+cursor: CXCursor) -> CXFile;
    fn clang_getCursor(+arg1: CXTranslationUnit, +arg2: CXSourceLocation) ->
     CXCursor;
    fn clang_getCursorLocation(+arg1: CXCursor) -> CXSourceLocation;
    fn clang_getCursorExtent(+arg1: CXCursor) -> CXSourceRange;
    fn clang_getCursorType(+C: CXCursor) -> CXType;
    fn clang_getTypedefDeclUnderlyingType(+C: CXCursor) -> CXType;
    fn clang_getEnumDeclIntegerType(+C: CXCursor) -> CXType;
    fn clang_getEnumConstantDeclValue(+C: CXCursor) -> c_longlong;
    fn clang_getEnumConstantDeclUnsignedValue(+C: CXCursor) -> c_ulonglong;
    fn clang_Cursor_getNumArguments(+C: CXCursor) -> c_int;
    fn clang_Cursor_getArgument(+C: CXCursor, +i: c_uint) -> CXCursor;
    fn clang_equalTypes(+A: CXType, +B: CXType) -> c_uint;
    fn clang_getCanonicalType(+T: CXType) -> CXType;
    fn clang_isConstQualifiedType(+T: CXType) -> c_uint;
    fn clang_isVolatileQualifiedType(+T: CXType) -> c_uint;
    fn clang_isRestrictQualifiedType(+T: CXType) -> c_uint;
    fn clang_getPointeeType(+T: CXType) -> CXType;
    fn clang_getTypeDeclaration(+T: CXType) -> CXCursor;
    fn clang_getDeclObjCTypeEncoding(+C: CXCursor) -> CXString;
    fn clang_getTypeKindSpelling(+K: Enum_CXTypeKind) -> CXString;
    fn clang_getFunctionTypeCallingConv(+T: CXType) -> Enum_CXCallingConv;
    fn clang_getResultType(+T: CXType) -> CXType;
    fn clang_getNumArgTypes(+T: CXType) -> c_int;
    fn clang_getArgType(+T: CXType, +i: c_uint) -> CXType;
    fn clang_isFunctionTypeVariadic(+T: CXType) -> c_uint;
    fn clang_getCursorResultType(+C: CXCursor) -> CXType;
    fn clang_isPODType(+T: CXType) -> c_uint;
    fn clang_getElementType(+T: CXType) -> CXType;
    fn clang_getNumElements(+T: CXType) -> c_longlong;
    fn clang_getArrayElementType(+T: CXType) -> CXType;
    fn clang_getArraySize(+T: CXType) -> c_longlong;
    fn clang_isVirtualBase(+arg1: CXCursor) -> c_uint;
    fn clang_getCXXAccessSpecifier(+arg1: CXCursor) ->
     Enum_CX_CXXAccessSpecifier;
    fn clang_getNumOverloadedDecls(+cursor: CXCursor) -> c_uint;
    fn clang_getOverloadedDecl(+cursor: CXCursor, +index: c_uint) -> CXCursor;
    fn clang_getIBOutletCollectionType(+arg1: CXCursor) -> CXType;
    fn clang_visitChildren(+parent: CXCursor, +visitor: CXCursorVisitor,
                           +client_data: CXClientData) -> c_uint;
    fn clang_getCursorUSR(+arg1: CXCursor) -> CXString;
    fn clang_constructUSR_ObjCClass(+class_name: *c_schar) -> CXString;
    fn clang_constructUSR_ObjCCategory(+class_name: *c_schar,
                                       +category_name: *c_schar) -> CXString;
    fn clang_constructUSR_ObjCProtocol(+protocol_name: *c_schar) -> CXString;
    fn clang_constructUSR_ObjCIvar(+name: *c_schar, +classUSR: CXString) ->
     CXString;
    fn clang_constructUSR_ObjCMethod(+name: *c_schar,
                                     +isInstanceMethod: c_uint,
                                     +classUSR: CXString) -> CXString;
    fn clang_constructUSR_ObjCProperty(+property: *c_schar,
                                       +classUSR: CXString) -> CXString;
    fn clang_getCursorSpelling(+arg1: CXCursor) -> CXString;
    fn clang_Cursor_getSpellingNameRange(+arg1: CXCursor, +pieceIndex: c_uint,
                                         +options: c_uint) -> CXSourceRange;
    fn clang_getCursorDisplayName(+arg1: CXCursor) -> CXString;
    fn clang_getCursorReferenced(+arg1: CXCursor) -> CXCursor;
    fn clang_getCursorDefinition(+arg1: CXCursor) -> CXCursor;
    fn clang_isCursorDefinition(+arg1: CXCursor) -> c_uint;
    fn clang_getCanonicalCursor(+arg1: CXCursor) -> CXCursor;
    fn clang_Cursor_getObjCSelectorIndex(+arg1: CXCursor) -> c_int;
    fn clang_CXXMethod_isStatic(+C: CXCursor) -> c_uint;
    fn clang_CXXMethod_isVirtual(+C: CXCursor) -> c_uint;
    fn clang_getTemplateCursorKind(+C: CXCursor) -> Enum_CXCursorKind;
    fn clang_getSpecializedCursorTemplate(+C: CXCursor) -> CXCursor;
    fn clang_getCursorReferenceNameRange(+C: CXCursor, +NameFlags: c_uint,
                                         +PieceIndex: c_uint) ->
     CXSourceRange;
    fn clang_getTokenKind(+arg1: CXToken) -> CXTokenKind;
    fn clang_getTokenSpelling(+arg1: CXTranslationUnit, +arg2: CXToken) ->
     CXString;
    fn clang_getTokenLocation(+arg1: CXTranslationUnit, +arg2: CXToken) ->
     CXSourceLocation;
    fn clang_getTokenExtent(+arg1: CXTranslationUnit, +arg2: CXToken) ->
     CXSourceRange;
    fn clang_tokenize(+TU: CXTranslationUnit, +Range: CXSourceRange,
                      +Tokens: **CXToken, +NumTokens: *c_uint);
    fn clang_annotateTokens(+TU: CXTranslationUnit, +Tokens: *CXToken,
                            +NumTokens: c_uint, +Cursors: *CXCursor);
    fn clang_disposeTokens(+TU: CXTranslationUnit, +Tokens: *CXToken,
                           +NumTokens: c_uint);
    fn clang_getCursorKindSpelling(+Kind: Enum_CXCursorKind) -> CXString;
    fn clang_getDefinitionSpellingAndExtent(+arg1: CXCursor,
                                            +startBuf: **c_schar,
                                            +endBuf: **c_schar,
                                            +startLine: *c_uint,
                                            +startColumn: *c_uint,
                                            +endLine: *c_uint,
                                            +endColumn: *c_uint);
    fn clang_enableStackTraces();
    fn clang_executeOnThread(+_fn: *u8, +user_data: *c_void,
                             +stack_size: c_uint);
    fn clang_getCompletionChunkKind(+completion_string: CXCompletionString,
                                    +chunk_number: c_uint) ->
     Enum_CXCompletionChunkKind;
    fn clang_getCompletionChunkText(+completion_string: CXCompletionString,
                                    +chunk_number: c_uint) -> CXString;
    fn clang_getCompletionChunkCompletionString(+completion_string:
                                                    CXCompletionString,
                                                +chunk_number: c_uint) ->
     CXCompletionString;
    fn clang_getNumCompletionChunks(+completion_string: CXCompletionString) ->
     c_uint;
    fn clang_getCompletionPriority(+completion_string: CXCompletionString) ->
     c_uint;
    fn clang_getCompletionAvailability(+completion_string: CXCompletionString)
     -> Enum_CXAvailabilityKind;
    fn clang_getCompletionNumAnnotations(+completion_string:
                                             CXCompletionString) -> c_uint;
    fn clang_getCompletionAnnotation(+completion_string: CXCompletionString,
                                     +annotation_number: c_uint) -> CXString;
    fn clang_getCompletionParent(+completion_string: CXCompletionString,
                                 +kind: *Enum_CXCursorKind) -> CXString;
    fn clang_getCursorCompletionString(+cursor: CXCursor) ->
     CXCompletionString;
    fn clang_defaultCodeCompleteOptions() -> c_uint;
    fn clang_codeCompleteAt(+TU: CXTranslationUnit,
                            +complete_filename: *c_schar,
                            +complete_line: c_uint, +complete_column: c_uint,
                            +unsaved_files: *Struct_CXUnsavedFile,
                            +num_unsaved_files: c_uint, +options: c_uint) ->
     *CXCodeCompleteResults;
    fn clang_sortCodeCompletionResults(+Results: *CXCompletionResult,
                                       +NumResults: c_uint);
    fn clang_disposeCodeCompleteResults(+Results: *CXCodeCompleteResults);
    fn clang_codeCompleteGetNumDiagnostics(+Results: *CXCodeCompleteResults)
     -> c_uint;
    fn clang_codeCompleteGetDiagnostic(+Results: *CXCodeCompleteResults,
                                       +Index: c_uint) -> CXDiagnostic;
    fn clang_codeCompleteGetContexts(+Results: *CXCodeCompleteResults) ->
     c_ulonglong;
    fn clang_codeCompleteGetContainerKind(+Results: *CXCodeCompleteResults,
                                          +IsIncomplete: *c_uint) ->
     Enum_CXCursorKind;
    fn clang_codeCompleteGetContainerUSR(+Results: *CXCodeCompleteResults) ->
     CXString;
    fn clang_codeCompleteGetObjCSelector(+Results: *CXCodeCompleteResults) ->
     CXString;
    fn clang_getClangVersion() -> CXString;
    fn clang_toggleCrashRecovery(+isEnabled: c_uint);
    fn clang_getInclusions(+tu: CXTranslationUnit,
                           +visitor: CXInclusionVisitor,
                           +client_data: CXClientData);
    fn clang_getRemappings(+path: *c_schar) -> CXRemapping;
    fn clang_getRemappingsFromFileList(+filePaths: **c_schar,
                                       +numFiles: c_uint) -> CXRemapping;
    fn clang_remap_getNumFiles(+arg1: CXRemapping) -> c_uint;
    fn clang_remap_getFilenames(+arg1: CXRemapping, +index: c_uint,
                                +original: *CXString,
                                +transformed: *CXString);
    fn clang_remap_dispose(+arg1: CXRemapping);
    fn clang_findReferencesInFile(+cursor: CXCursor, +file: CXFile,
                                  +visitor: CXCursorAndRangeVisitor);
    fn clang_index_isEntityObjCContainerKind(+arg1: CXIdxEntityKind) -> c_int;
    fn clang_index_getObjCContainerDeclInfo(+arg1: *CXIdxDeclInfo) ->
     *CXIdxObjCContainerDeclInfo;
    fn clang_index_getObjCInterfaceDeclInfo(+arg1: *CXIdxDeclInfo) ->
     *CXIdxObjCInterfaceDeclInfo;
    fn clang_index_getObjCCategoryDeclInfo(+arg1: *CXIdxDeclInfo) ->
     *CXIdxObjCCategoryDeclInfo;
    fn clang_index_getObjCProtocolRefListInfo(+arg1: *CXIdxDeclInfo) ->
     *CXIdxObjCProtocolRefListInfo;
    fn clang_index_getObjCPropertyDeclInfo(+arg1: *CXIdxDeclInfo) ->
     *CXIdxObjCPropertyDeclInfo;
    fn clang_index_getIBOutletCollectionAttrInfo(+arg1: *CXIdxAttrInfo) ->
     *CXIdxIBOutletCollectionAttrInfo;
    fn clang_index_getCXXClassDeclInfo(+arg1: *CXIdxDeclInfo) ->
     *CXIdxCXXClassDeclInfo;
    fn clang_index_getClientContainer(+arg1: *CXIdxContainerInfo) ->
     CXIdxClientContainer;
    fn clang_index_setClientContainer(+arg1: *CXIdxContainerInfo,
                                      +arg2: CXIdxClientContainer);
    fn clang_index_getClientEntity(+arg1: *CXIdxEntityInfo) ->
     CXIdxClientEntity;
    fn clang_index_setClientEntity(+arg1: *CXIdxEntityInfo,
                                   +arg2: CXIdxClientEntity);
    fn clang_IndexAction_create(+CIdx: CXIndex) -> CXIndexAction;
    fn clang_IndexAction_dispose(+arg1: CXIndexAction);
    fn clang_indexSourceFile(+arg1: CXIndexAction, +client_data: CXClientData,
                             +index_callbacks: *IndexerCallbacks,
                             +index_callbacks_size: c_uint,
                             +index_options: c_uint,
                             +source_filename: *c_schar,
                             +command_line_args: **c_schar,
                             +num_command_line_args: c_int,
                             +unsaved_files: *Struct_CXUnsavedFile,
                             +num_unsaved_files: c_uint,
                             +out_TU: *CXTranslationUnit, +TU_options: c_uint)
     -> c_int;
    fn clang_indexTranslationUnit(+arg1: CXIndexAction,
                                  +client_data: CXClientData,
                                  +index_callbacks: *IndexerCallbacks,
                                  +index_callbacks_size: c_uint,
                                  +index_options: c_uint,
                                  +arg2: CXTranslationUnit) -> c_int;
    fn clang_indexLoc_getFileLocation(+loc: CXIdxLoc,
                                      +indexFile: *CXIdxClientFile,
                                      +file: *CXFile, +line: *c_uint,
                                      +column: *c_uint, +offset: *c_uint);
    fn clang_indexLoc_getCXSourceLocation(+loc: CXIdxLoc) -> CXSourceLocation;
}
