]> gitweb.factorcode.org Git - factor.git/blob - extra/libclang/ffi/ffi.factor
480489710eb8e1f81b0ad056a00821d6a6dba874
[factor.git] / extra / libclang / ffi / ffi.factor
1 ! Copyright (C) 2023 Doug Coleman.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.libraries alien.syntax
4 classes.struct combinators kernel system ;
5 IN: libclang.ffi
6
7 LIBRARY: clang
8
9 << "clang" {
10     { [ os windows? ] [ "libclang.dll" ] }
11     { [ os macosx? ] [ "/Library/Developer/CommandLineTools/usr/lib/libclang.dylib" ] }
12     { [ os unix? ] [ "/usr/lib/llvm-10/lib/libclang.so" ] }
13 } cond cdecl add-library >>
14
15 CONSTANT: UINT_MAX 4294967295
16
17 TYPEDEF: void* CXIndex
18 TYPEDEF: void* CXTranslationUnit
19 TYPEDEF: void* CXClientData
20 TYPEDEF: void* CXFile
21
22 STRUCT: CXToken
23 { int_data uint[4] }
24 { ptr_data void* } ;
25
26 ENUM: CXTokenKind
27 { CXToken_Punctuation 0 }
28 { CXToken_Keyword 1 }
29 { CXToken_Identifier 2 }
30 { CXToken_Literal 3 }
31 { CXToken_Comment 4 } ;
32
33 STRUCT: CXUnsavedFile
34 { Filename char* }
35 { Contents char* }
36 { Length ulong } ;
37
38 ENUM: CXCursorKind
39 { CXCursor_UnexposedDecl 1 } { CXCursor_StructDecl 2 } { CXCursor_UnionDecl 3 } { CXCursor_ClassDecl 4 }
40 { CXCursor_EnumDecl 5 } { CXCursor_FieldDecl 6 } { CXCursor_EnumConstantDecl 7 } { CXCursor_FunctionDecl 8 }
41 { CXCursor_VarDecl 9 } { CXCursor_ParmDecl 10 } { CXCursor_ObjCInterfaceDecl 11 } { CXCursor_ObjCCategoryDecl 12 }
42 { CXCursor_ObjCProtocolDecl 13 } { CXCursor_ObjCPropertyDecl 14 } { CXCursor_ObjCIvarDecl 15 } { CXCursor_ObjCInstanceMethodDecl 16 }
43 { CXCursor_ObjCClassMethodDecl 17 } { CXCursor_ObjCImplementationDecl 18 } { CXCursor_ObjCCategoryImplDecl 19 } { CXCursor_TypedefDecl 20 }
44 { CXCursor_CXXMethod 21 } { CXCursor_Namespace 22 } { CXCursor_LinkageSpec 23 } { CXCursor_Constructor 24 }
45 { CXCursor_Destructor 25 } { CXCursor_ConversionFunction 26 } { CXCursor_TemplateTypeParameter 27 } { CXCursor_NonTypeTemplateParameter 28 }
46 { CXCursor_TemplateTemplateParameter 29 } { CXCursor_FunctionTemplate 30 } { CXCursor_ClassTemplate 31 } { CXCursor_ClassTemplatePartialSpecialization 32 }
47 { CXCursor_NamespaceAlias 33 } { CXCursor_UsingDirective 34 } { CXCursor_UsingDeclaration 35 } { CXCursor_TypeAliasDecl 36 }
48 { CXCursor_ObjCSynthesizeDecl 37 } { CXCursor_ObjCDynamicDecl 38 } { CXCursor_CXXAccessSpecifier 39 } { CXCursor_FirstDecl CXCursor_UnexposedDecl }
49 { CXCursor_LastDecl CXCursor_CXXAccessSpecifier } { CXCursor_FirstRef 40 } { CXCursor_ObjCSuperClassRef 40 } { CXCursor_ObjCProtocolRef 41 }
50 { CXCursor_ObjCClassRef 42 } { CXCursor_TypeRef 43 } { CXCursor_CXXBaseSpecifier 44 } { CXCursor_TemplateRef 45 }
51 { CXCursor_NamespaceRef 46 } { CXCursor_MemberRef 47 } { CXCursor_LabelRef 48 } { CXCursor_OverloadedDeclRef 49 }
52 { CXCursor_VariableRef 50 } { CXCursor_LastRef CXCursor_VariableRef } { CXCursor_FirstInvalid 70 } { CXCursor_InvalidFile 70 }
53 { CXCursor_NoDeclFound 71 } { CXCursor_NotImplemented 72 } { CXCursor_InvalidCode 73 } { CXCursor_LastInvalid CXCursor_InvalidCode }
54 { CXCursor_FirstExpr 100 } { CXCursor_UnexposedExpr 100 } { CXCursor_DeclRefExpr 101 } { CXCursor_MemberRefExpr 102 }
55 { CXCursor_CallExpr 103 } { CXCursor_ObjCMessageExpr 104 } { CXCursor_BlockExpr 105 } { CXCursor_IntegerLiteral 106 }
56 { CXCursor_FloatingLiteral 107 } { CXCursor_ImaginaryLiteral 108 } { CXCursor_StringLiteral 109 } { CXCursor_CharacterLiteral 110 }
57 { CXCursor_ParenExpr 111 } { CXCursor_UnaryOperator 112 } { CXCursor_ArraySubscriptExpr 113 } { CXCursor_BinaryOperator 114 }
58 { CXCursor_CompoundAssignOperator 115 } { CXCursor_ConditionalOperator 116 } { CXCursor_CStyleCastExpr 117 } { CXCursor_CompoundLiteralExpr 118 }
59 { CXCursor_InitListExpr 119 } { CXCursor_AddrLabelExpr 120 } { CXCursor_StmtExpr 121 } { CXCursor_GenericSelectionExpr 122 }
60 { CXCursor_GNUNullExpr 123 } { CXCursor_CXXStaticCastExpr 124 } { CXCursor_CXXDynamicCastExpr 125 } { CXCursor_CXXReinterpretCastExpr 126 }
61 { CXCursor_CXXConstCastExpr 127 } { CXCursor_CXXFunctionalCastExpr 128 } { CXCursor_CXXTypeidExpr 129 } { CXCursor_CXXBoolLiteralExpr 130 }
62 { CXCursor_CXXNullPtrLiteralExpr 131 } { CXCursor_CXXThisExpr 132 } { CXCursor_CXXThrowExpr 133 } { CXCursor_CXXNewExpr 134 }
63 { CXCursor_CXXDeleteExpr 135 } { CXCursor_UnaryExpr 136 } { CXCursor_ObjCStringLiteral 137 } { CXCursor_ObjCEncodeExpr 138 }
64 { CXCursor_ObjCSelectorExpr 139 } { CXCursor_ObjCProtocolExpr 140 } { CXCursor_ObjCBridgedCastExpr 141 } { CXCursor_PackExpansionExpr 142 }
65 { CXCursor_SizeOfPackExpr 143 } { CXCursor_LambdaExpr 144 } { CXCursor_ObjCBoolLiteralExpr 145 } { CXCursor_ObjCSelfExpr 146 }
66 { CXCursor_OMPArraySectionExpr 147 } { CXCursor_ObjCAvailabilityCheckExpr 148 } { CXCursor_FixedPointLiteral 149 } { CXCursor_OMPArrayShapingExpr 150 }
67 { CXCursor_OMPIteratorExpr 151 } { CXCursor_CXXAddrspaceCastExpr 152 } { CXCursor_LastExpr CXCursor_CXXAddrspaceCastExpr } { CXCursor_FirstStmt 200 }
68 { CXCursor_UnexposedStmt 200 } { CXCursor_LabelStmt 201 } { CXCursor_CompoundStmt 202 } { CXCursor_CaseStmt 203 }
69 { CXCursor_DefaultStmt 204 } { CXCursor_IfStmt 205 } { CXCursor_SwitchStmt 206 } { CXCursor_WhileStmt 207 }
70 { CXCursor_DoStmt 208 } { CXCursor_ForStmt 209 } { CXCursor_GotoStmt 210 } { CXCursor_IndirectGotoStmt 211 }
71 { CXCursor_ContinueStmt 212 } { CXCursor_BreakStmt 213 } { CXCursor_ReturnStmt 214 } { CXCursor_GCCAsmStmt 215 }
72 { CXCursor_AsmStmt CXCursor_GCCAsmStmt } { CXCursor_ObjCAtTryStmt 216 } { CXCursor_ObjCAtCatchStmt 217 } { CXCursor_ObjCAtFinallyStmt 218 }
73 { CXCursor_ObjCAtThrowStmt 219 } { CXCursor_ObjCAtSynchronizedStmt 220 } { CXCursor_ObjCAutoreleasePoolStmt 221 } { CXCursor_ObjCForCollectionStmt 222 }
74 { CXCursor_CXXCatchStmt 223 } { CXCursor_CXXTryStmt 224 } { CXCursor_CXXForRangeStmt 225 } { CXCursor_SEHTryStmt 226 }
75 { CXCursor_SEHExceptStmt 227 } { CXCursor_SEHFinallyStmt 228 } { CXCursor_MSAsmStmt 229 } { CXCursor_NullStmt 230 }
76 { CXCursor_DeclStmt 231 } { CXCursor_OMPParallelDirective 232 } { CXCursor_OMPSimdDirective 233 } { CXCursor_OMPForDirective 234 }
77 { CXCursor_OMPSectionsDirective 235 } { CXCursor_OMPSectionDirective 236 } { CXCursor_OMPSingleDirective 237 } { CXCursor_OMPParallelForDirective 238 }
78 { CXCursor_OMPParallelSectionsDirective 239 } { CXCursor_OMPTaskDirective 240 } { CXCursor_OMPMasterDirective 241 } { CXCursor_OMPCriticalDirective 242 }
79 { CXCursor_OMPTaskyieldDirective 243 } { CXCursor_OMPBarrierDirective 244 } { CXCursor_OMPTaskwaitDirective 245 } { CXCursor_OMPFlushDirective 246 }
80 { CXCursor_SEHLeaveStmt 247 } { CXCursor_OMPOrderedDirective 248 } { CXCursor_OMPAtomicDirective 249 } { CXCursor_OMPForSimdDirective 250 }
81 { CXCursor_OMPParallelForSimdDirective 251 } { CXCursor_OMPTargetDirective 252 } { CXCursor_OMPTeamsDirective 253 } { CXCursor_OMPTaskgroupDirective 254 }
82 { CXCursor_OMPCancellationPointDirective 255 } { CXCursor_OMPCancelDirective 256 } { CXCursor_OMPTargetDataDirective 257 } { CXCursor_OMPTaskLoopDirective 258 }
83 { CXCursor_OMPTaskLoopSimdDirective 259 } { CXCursor_OMPDistributeDirective 260 } { CXCursor_OMPTargetEnterDataDirective 261 } { CXCursor_OMPTargetExitDataDirective 262 }
84 { CXCursor_OMPTargetParallelDirective 263 } { CXCursor_OMPTargetParallelForDirective 264 } { CXCursor_OMPTargetUpdateDirective 265 } { CXCursor_OMPDistributeParallelForDirective 266 }
85 { CXCursor_OMPDistributeParallelForSimdDirective 267 } { CXCursor_OMPDistributeSimdDirective 268 } { CXCursor_OMPTargetParallelForSimdDirective 269 } { CXCursor_OMPTargetSimdDirective 270 }
86 { CXCursor_OMPTeamsDistributeDirective 271 } { CXCursor_OMPTeamsDistributeSimdDirective 272 } { CXCursor_OMPTeamsDistributeParallelForSimdDirective 273 } { CXCursor_OMPTeamsDistributeParallelForDirective 274 }
87 { CXCursor_OMPTargetTeamsDirective 275 } { CXCursor_OMPTargetTeamsDistributeDirective 276 } { CXCursor_OMPTargetTeamsDistributeParallelForDirective 277 } { CXCursor_OMPTargetTeamsDistributeParallelForSimdDirective 278 }
88 { CXCursor_OMPTargetTeamsDistributeSimdDirective 279 } { CXCursor_BuiltinBitCastExpr 280 } { CXCursor_OMPMasterTaskLoopDirective 281 } { CXCursor_OMPParallelMasterTaskLoopDirective 282 }
89 { CXCursor_OMPMasterTaskLoopSimdDirective 283 } { CXCursor_OMPParallelMasterTaskLoopSimdDirective 284 } { CXCursor_OMPParallelMasterDirective 285 } { CXCursor_OMPDepobjDirective 286 }
90 { CXCursor_OMPScanDirective 287 } { CXCursor_OMPTileDirective 288 } { CXCursor_OMPCanonicalLoop 289 } { CXCursor_OMPInteropDirective 290 }
91 { CXCursor_OMPDispatchDirective 291 } { CXCursor_OMPMaskedDirective 292 } { CXCursor_OMPUnrollDirective 293 } { CXCursor_OMPMetaDirective 294 }
92 { CXCursor_OMPGenericLoopDirective 295 } { CXCursor_LastStmt CXCursor_OMPGenericLoopDirective } { CXCursor_TranslationUnit 300 } { CXCursor_FirstAttr 400 }
93 { CXCursor_UnexposedAttr 400 } { CXCursor_IBActionAttr 401 } { CXCursor_IBOutletAttr 402 } { CXCursor_IBOutletCollectionAttr 403 }
94 { CXCursor_CXXFinalAttr 404 } { CXCursor_CXXOverrideAttr 405 } { CXCursor_AnnotateAttr 406 } { CXCursor_AsmLabelAttr 407 }
95 { CXCursor_PackedAttr 408 } { CXCursor_PureAttr 409 } { CXCursor_ConstAttr 410 } { CXCursor_NoDuplicateAttr 411 }
96 { CXCursor_CUDAConstantAttr 412 } { CXCursor_CUDADeviceAttr 413 } { CXCursor_CUDAGlobalAttr 414 } { CXCursor_CUDAHostAttr 415 }
97 { CXCursor_CUDASharedAttr 416 } { CXCursor_VisibilityAttr 417 } { CXCursor_DLLExport 418 } { CXCursor_DLLImport 419 }
98 { CXCursor_NSReturnsRetained 420 } { CXCursor_NSReturnsNotRetained 421 } { CXCursor_NSReturnsAutoreleased 422 } { CXCursor_NSConsumesSelf 423 }
99 { CXCursor_NSConsumed 424 } { CXCursor_ObjCException 425 } { CXCursor_ObjCNSObject 426 } { CXCursor_ObjCIndependentClass 427 }
100 { CXCursor_ObjCPreciseLifetime 428 } { CXCursor_ObjCReturnsInnerPointer 429 } { CXCursor_ObjCRequiresSuper 430 } { CXCursor_ObjCRootClass 431 }
101 { CXCursor_ObjCSubclassingRestricted 432 } { CXCursor_ObjCExplicitProtocolImpl 433 } { CXCursor_ObjCDesignatedInitializer 434 } { CXCursor_ObjCRuntimeVisible 435 }
102 { CXCursor_ObjCBoxable 436 } { CXCursor_FlagEnum 437 } { CXCursor_ConvergentAttr 438 } { CXCursor_WarnUnusedAttr 439 }
103 { CXCursor_WarnUnusedResultAttr 440 } { CXCursor_AlignedAttr 441 } { CXCursor_LastAttr CXCursor_AlignedAttr } { CXCursor_PreprocessingDirective 500 }
104 { CXCursor_MacroDefinition 501 } { CXCursor_MacroExpansion 502 } { CXCursor_MacroInstantiation CXCursor_MacroExpansion } { CXCursor_InclusionDirective 503 }
105 { CXCursor_FirstPreprocessing CXCursor_PreprocessingDirective } { CXCursor_LastPreprocessing CXCursor_InclusionDirective } { CXCursor_ModuleImportDecl 600 } { CXCursor_TypeAliasTemplateDecl 601 }
106 { CXCursor_StaticAssert 602 } { CXCursor_FriendDecl 603 } { CXCursor_FirstExtraDecl CXCursor_ModuleImportDecl } { CXCursor_LastExtraDecl CXCursor_FriendDecl }
107 { CXCursor_OverloadCandidate 700 } ;
108
109 ENUM: CXChildVisitResult
110 { CXChildVisit_Break 0 }
111 { CXChildVisit_Continue 1 }
112 { CXChildVisit_Recurse 2 } ;
113
114 ENUM: CXTypeKind { CXType_Invalid 0 } { CXType_Unexposed 1 } { CXType_Void 2 } { CXType_Bool 3 }
115 { CXType_Char_U 4 } { CXType_UChar 5 } { CXType_Char16 6 } { CXType_Char32 7 }
116 { CXType_UShort 8 } { CXType_UInt 9 } { CXType_ULong 10 } { CXType_ULongLong 11 }
117 { CXType_UInt128 12 } { CXType_Char_S 13 } { CXType_SChar 14 } { CXType_WChar 15 }
118 { CXType_Short 16 } { CXType_Int 17 } { CXType_Long 18 } { CXType_LongLong 19 }
119 { CXType_Int128 20 } { CXType_Float 21 } { CXType_Double 22 } { CXType_LongDouble 23 }
120 { CXType_NullPtr 24 } { CXType_Overload 25 } { CXType_Dependent 26 } { CXType_ObjCId 27 }
121 { CXType_ObjCClass 28 } { CXType_ObjCSel 29 } { CXType_Float128 30 } { CXType_Half 31 }
122 { CXType_Float16 32 } { CXType_ShortAccum 33 } { CXType_Accum 34 } { CXType_LongAccum 35 }
123 { CXType_UShortAccum 36 } { CXType_UAccum 37 } { CXType_ULongAccum 38 } { CXType_BFloat16 39 }
124 { CXType_Ibm128 40 } { CXType_FirstBuiltin CXType_Void } { CXType_LastBuiltin CXType_Ibm128 } { CXType_Complex 100 }
125 { CXType_Pointer 101 } { CXType_BlockPointer 102 } { CXType_LValueReference 103 } { CXType_RValueReference 104 }
126 { CXType_Record 105 } { CXType_Enum 106 } { CXType_Typedef 107 } { CXType_ObjCInterface 108 }
127 { CXType_ObjCObjectPointer 109 } { CXType_FunctionNoProto 110 } { CXType_FunctionProto 111 } { CXType_ConstantArray 112 }
128 { CXType_Vector 113 } { CXType_IncompleteArray 114 } { CXType_VariableArray 115 } { CXType_DependentSizedArray 116 }
129 { CXType_MemberPointer 117 } { CXType_Auto 118 } { CXType_Elaborated 119 } { CXType_Pipe 120 }
130 { CXType_OCLImage1dRO 121 } { CXType_OCLImage1dArrayRO 122 } { CXType_OCLImage1dBufferRO 123 } { CXType_OCLImage2dRO 124 }
131 { CXType_OCLImage2dArrayRO 125 } { CXType_OCLImage2dDepthRO 126 } { CXType_OCLImage2dArrayDepthRO 127 } { CXType_OCLImage2dMSAARO 128 }
132 { CXType_OCLImage2dArrayMSAARO 129 } { CXType_OCLImage2dMSAADepthRO 130 } { CXType_OCLImage2dArrayMSAADepthRO 131 } { CXType_OCLImage3dRO 132 }
133 { CXType_OCLImage1dWO 133 } { CXType_OCLImage1dArrayWO 134 } { CXType_OCLImage1dBufferWO 135 } { CXType_OCLImage2dWO 136 }
134 { CXType_OCLImage2dArrayWO 137 } { CXType_OCLImage2dDepthWO 138 } { CXType_OCLImage2dArrayDepthWO 139 } { CXType_OCLImage2dMSAAWO 140 }
135 { CXType_OCLImage2dArrayMSAAWO 141 } { CXType_OCLImage2dMSAADepthWO 142 } { CXType_OCLImage2dArrayMSAADepthWO 143 } { CXType_OCLImage3dWO 144 }
136 { CXType_OCLImage1dRW 145 } { CXType_OCLImage1dArrayRW 146 } { CXType_OCLImage1dBufferRW 147 } { CXType_OCLImage2dRW 148 }
137 { CXType_OCLImage2dArrayRW 149 } { CXType_OCLImage2dDepthRW 150 } { CXType_OCLImage2dArrayDepthRW 151 } { CXType_OCLImage2dMSAARW 152 }
138 { CXType_OCLImage2dArrayMSAARW 153 } { CXType_OCLImage2dMSAADepthRW 154 } { CXType_OCLImage2dArrayMSAADepthRW 155 } { CXType_OCLImage3dRW 156 }
139 { CXType_OCLSampler 157 } { CXType_OCLEvent 158 } { CXType_OCLQueue 159 } { CXType_OCLReserveID 160 }
140 { CXType_ObjCObject 161 } { CXType_ObjCTypeParam 162 } { CXType_Attributed 163 } { CXType_OCLIntelSubgroupAVCMcePayload 164 }
141 { CXType_OCLIntelSubgroupAVCImePayload 165 } { CXType_OCLIntelSubgroupAVCRefPayload 166 } { CXType_OCLIntelSubgroupAVCSicPayload 167 }
142 { CXType_OCLIntelSubgroupAVCMceResult 168 } { CXType_OCLIntelSubgroupAVCImeResult 169 } { CXType_OCLIntelSubgroupAVCRefResult 170 }
143 { CXType_OCLIntelSubgroupAVCSicResult 171 } { CXType_OCLIntelSubgroupAVCImeResultSingleRefStreamout 172 }
144 { CXType_OCLIntelSubgroupAVCImeResultDualRefStreamout 173 } { CXType_OCLIntelSubgroupAVCImeSingleRefStreamin 174 }
145 { CXType_OCLIntelSubgroupAVCImeDualRefStreamin 175 } { CXType_ExtVector 176 } { CXType_Atomic 177 }
146 { CXType_OCLIntelSubgroupAVCImePayloadSingleRefStreamout 178 } { CXType_OCLIntelSubgroupAVCImePayloadDualRefStreamout 179 } { CXType_OCLIntelSubgroupAVCImeInputPayload 180 }
147 { CXType_OCLIntelSubgroupAVCImeInputPayloads 181 }
148 { CXType_OCLIntelSubgroupAVCRefPayloads 182 }
149 { CXType_OCLIntelSubgroupAVCSicPayloads 183 }
150 { CXType_OCLIntelSubgroupAVCMceInputPayload 184 }
151 { CXType_OCLIntelSubgroupAVCMceInputPayloads 185 }
152 { CXType_OCLIntelSubgroupAVCMotionEstimationForwardIntegerINTEL 186 }
153 { CXType_OCLIntelSubgroupAVCMotionEstimationBackwardIntegerINTEL 187 }
154 { CXType_OCLIntelSubgroupAVCMotionEstimationBidirectionalIntegerINTEL 188 }
155 { CXType_OCLIntelSubgroupAVCMotionEstimationForwardDualReferenceINTEL 189 }
156 { CXType_OCLIntelSubgroupAVCMotionEstimationBackwardDualReferenceINTEL 190 }
157 { CXType_OCLIntelSubgroupAVCMotionEstimationBidirectionalDualReferenceINTEL 191 }
158 { CXType_OCLIntelSubgroupAVCMotionEstimationInterlacedINTEL 192 }
159 { CXType_OCLIntelSubgroupAVCMotionEstimationInterlacedDualReferenceINTEL 193 }
160 { CXType_OCLIntelSubgroupAVCEvaluateWithSingleReferenceINTEL 194 }
161 { CXType_OCLIntelSubgroupAVCEvaluateWithDualReferenceINTEL 195 }
162 { CXType_OCLIntelSubgroupAVCDualReferenceInterlacedINTEL 196 }
163 { CXType_OCLIntelSubgroupAVCDualReferenceInterlacedWithSingleReferenceINTEL 197 }
164 { CXType_OCLIntelSubgroupAVCDualReferenceInterlacedWithDualReferenceINTEL 198 }
165 { CXType_OCLIntelSubgroupAVCEvaluateWithSingleReferenceStreaminINTEL 199 }
166 { CXType_OCLIntelSubgroupAVCEvaluateWithDualReferenceStreaminINTEL 200 }
167 { CXType_OCLIntelSubgroupAVCEvaluateWithSingleReferenceStreamoutINTEL 201 }
168 { CXType_OCLIntelSubgroupAVCEvaluateWithDualReferenceStreamoutINTEL 202 } ;
169
170 ENUM: CXTranslationUnit_Flags
171 { CXTranslationUnit_None 0 }
172 { CXTranslationUnit_DetailedPreprocessingRecord 1 }
173 { CXTranslationUnit_Incomplete 2 }
174 { CXTranslationUnit_PrecompiledPreamble 4 }
175 { CXTranslationUnit_CacheCompletionResults 8 }
176 { CXTranslationUnit_ForSerialization 16 }
177 { CXTranslationUnit_CXXChainedPCH 32 }
178 { CXTranslationUnit_SkipFunctionBodies 64 }
179 { CXTranslationUnit_IncludeBriefCommentsInCodeCompletion 128 }
180 { CXTranslationUnit_CreatePreambleOnFirstParse 256 }
181 { CXTranslationUnit_KeepGoing 512 }
182 { CXTranslationUnit_SingleFileParse 1024 }
183 { CXTranslationUnit_LimitSkipFunctionBodiesToPreamble 2048 }
184 { CXTranslationUnit_IncludeAttributedTypes 4096 }
185 { CXTranslationUnit_VisitImplicitAttributes 8192 } ;
186
187 STRUCT: CXCursor
188 { kind CXCursorKind }
189 { xdata int }
190 { data void*[3] } ;
191
192 STRUCT: CXType
193     { kind CXTypeKind }
194     { data void*[2] } ;
195
196 STRUCT: CXString
197     { data c-string }
198     { private_flags uint } ;
199
200 STRUCT: CXStringSet
201     { Strings CXString* }
202     { Count uint } ;
203
204 STRUCT: CXSourceLocation
205     { ptr_data void*[2]  }
206     { data uint } ;
207
208 STRUCT: CXSourceRange
209     { ptr_data void*[2]  }
210     { begin_int_data uint }
211     { end_int_data uint } ;
212
213 STRUCT: CXSourceRangeList
214     { count uint }
215     { ranges CXSourceRange* } ;
216
217 STRUCT: CXDiagnosticSet
218     { data void* } ;
219
220 STRUCT: CXDiagnostic
221     { data void*[3] } ;
222
223 FUNCTION: CXIndex clang_createIndex ( int excludeDeclarationsFromPCH, int displayDiagnostics )
224
225 FUNCTION: CXTranslationUnit clang_parseTranslationUnit (
226     CXIndex CIdx, c-string source_filename,
227     char** command_line_args, int num_command_line_args,
228     CXUnsavedFile *unsaved_files, uint num_unsaved_files,
229     uint options )
230
231 FUNCTION: void clang_disposeIndex ( CXIndex index )
232 FUNCTION: void clang_disposeTranslationUnit ( CXTranslationUnit c )
233
234 FUNCTION: CXCursor clang_getTranslationUnitCursor ( CXTranslationUnit c )
235
236 FUNCTION: CXCursorKind clang_getCursorKind ( CXCursor c )
237
238 CALLBACK: CXChildVisitResult CXCursorVisitor ( CXCursor cursor, CXCursor parent, CXClientData client_data )
239
240 FUNCTION: CXString clang_getCursorKindSpelling ( CXCursorKind Kind )
241 FUNCTION: void clang_getDefinitionSpellingAndExtent (
242     CXCursor cursor, char **startBuf, char **endBuf, uint *startLine,
243     uint *startColumn, uint *endLine, uint *endColumn
244 )
245 FUNCTION: void clang_enableStackTraces ( )
246 FUNCTION: void clang_executeOnThread ( void* fn, void *user_data, uint stack_size )
247
248
249 FUNCTION: CXString clang_getCursorSpelling ( CXCursor C )
250
251 FUNCTION: CXType clang_getCursorType ( CXCursor C )
252 FUNCTION: CXType clang_getCanonicalType ( CXType T )
253 FUNCTION: CXType clang_getPointeeType ( CXType T )
254 FUNCTION: CXType clang_getResultType ( CXType T )
255 FUNCTION: CXType clang_getCursorResultType ( CXCursor C )
256 FUNCTION: CXType clang_getCursorReceiverType ( CXCursor C )
257 FUNCTION: CXType clang_getTypedefDeclUnderlyingType ( CXCursor C )
258 FUNCTION: CXType clang_getEnumDeclIntegerType ( CXCursor C )
259 FUNCTION: longlong clang_getEnumConstantDeclValue ( CXCursor C )
260 FUNCTION: ulonglong clang_getEnumConstantDeclUnsignedValue ( CXCursor C )
261 FUNCTION: CXType clang_getArrayElementType ( CXType T )
262 FUNCTION: uint clang_getArraySize ( CXType T )
263 FUNCTION: CXType clang_Type_getObjCObjectBaseType ( CXType T )
264 FUNCTION: CXType clang_getIBOutletCollectionType ( CXCursor C )
265 FUNCTION: CXType clang_getCursorReferenceQualifier ( CXCursor C )
266 FUNCTION: CXType clang_Cursor_getReceiverType ( CXCursor C )
267
268 FUNCTION: CXTypeKind clang_getTypeKind ( CXType CT )
269 FUNCTION: CXString clang_getTypeSpelling ( CXType CT )
270 FUNCTION: CXString clang_getTypeKindSpelling ( CXTypeKind K )
271
272 FUNCTION: int clang_Cursor_getNumArguments ( CXCursor C )
273 FUNCTION: CXType clang_getArgType ( CXType C, uint i )
274 FUNCTION: CXCursor clang_Cursor_getArgument ( CXCursor C, uint i )
275
276 FUNCTION: CXFile clang_getFile ( CXTranslationUnit tu, c-string file_name )
277 FUNCTION: CXString clang_getFileName ( CXFile SFile )
278 FUNCTION: uint clang_getFileTime ( CXFile SFile )
279 FUNCTION: CXSourceLocation clang_getLocation ( CXTranslationUnit tu, CXFile file, uint line, uint column )
280 FUNCTION: CXSourceLocation clang_getNullLocation ( )
281 FUNCTION: uint clang_equalLocations ( CXSourceLocation loc1, CXSourceLocation loc2 )
282 FUNCTION: CXSourceLocation clang_getLocationForOffset ( CXTranslationUnit tu, CXFile file, uint offset )
283 FUNCTION: int clang_Location_isInSystemHeader ( CXSourceLocation location )
284 FUNCTION: int clang_Location_isFromMainFile ( CXSourceLocation location )
285 FUNCTION: CXSourceRange clang_getNullRange ( )
286 FUNCTION: int clang_equalRanges ( CXSourceRange range1, CXSourceRange range2 )
287 FUNCTION: int clang_Range_isNull ( CXSourceRange range )
288 FUNCTION: void clang_getExpansionLocation (
289     CXSourceLocation location, CXFile *file, uint *line,
290     uint *column, uint *offset
291 )
292 FUNCTION: void clang_getPresumedLocation (
293     CXSourceLocation location, CXString *filename, uint *line,
294     uint *column
295 )
296 FUNCTION: void clang_getInstantiationLocation (
297     CXSourceLocation location, CXFile *file, uint *line,
298     uint *column, uint *offset
299     )
300 FUNCTION: void clang_getSpellingLocation (
301     CXSourceLocation location, CXFile *file, uint *line,
302     uint *column, uint *offset
303 )
304 FUNCTION: void clang_getFileLocation (
305     CXSourceLocation location, CXFile *file, uint *line,
306     uint *column, uint *offset
307 )
308
309 FUNCTION: CXFile clang_getIncludedFile ( CXCursor cursor )
310 FUNCTION: CXSourceLocation clang_getCursorLocation ( CXCursor cursor )
311 FUNCTION: CXSourceRange clang_getCursorExtent ( CXCursor cursor )
312 FUNCTION: CXSourceLocation clang_getRangeStart ( CXSourceRange range )
313 FUNCTION: CXSourceLocation clang_getRangeEnd ( CXSourceRange range )
314 FUNCTION: CXSourceRangeList* clang_getSkippedRanges ( CXTranslationUnit tu, CXFile file )
315 FUNCTION: CXSourceRangeList* clang_getAllSkippedRanges ( CXTranslationUnit tu )
316 FUNCTION: void clang_disposeSourceRangeList ( CXSourceRangeList *ranges )
317 FUNCTION: CXDiagnosticSet clang_getDiagnosticSetFromTU ( CXTranslationUnit Unit )
318
319 FUNCTION: void clang_tokenize ( CXTranslationUnit tu, CXSourceRange range, CXToken **tokens, uint *numTokens )
320 FUNCTION: void clang_disposeTokens ( CXTranslationUnit tu, CXToken *tokens, uint numTokens )
321 FUNCTION: void clang_annotateTokens ( CXTranslationUnit tu, CXToken *tokens, uint numTokens, CXCursor *cursors )
322 FUNCTION: CXToken* clang_getToken ( CXTranslationUnit tu, CXSourceLocation location )
323 FUNCTION: CXSourceRange clang_getTokenExtent ( CXTranslationUnit tu, CXToken token )
324 FUNCTION: CXTokenKind clang_getTokenKind ( CXToken token )
325 FUNCTION: CXString clang_getTokenSpelling ( CXTranslationUnit tu, CXToken token )
326 FUNCTION: CXSourceLocation clang_getTokenLocation ( CXTranslationUnit tu, CXToken token )
327 FUNCTION: CXString clang_getCursorDisplayName ( CXCursor C )
328 FUNCTION: CXString clang_getCursorUSR ( CXCursor C )
329 FUNCTION: CXString clang_constructUSR_ObjCClass ( char *class_name )
330 FUNCTION: CXString clang_constructUSR_ObjCCategory ( char *class_name, char *category_name )
331 FUNCTION: CXString clang_constructUSR_ObjCProtocol ( char *protocol_name )
332 FUNCTION: CXString clang_constructUSR_ObjCIvar ( char *name, CXString classUSR )
333 FUNCTION: CXString clang_constructUSR_ObjCMethod ( char *name, uint isInstanceMethod, CXString classUSR )
334 FUNCTION: CXString clang_constructUSR_ObjCProperty ( char *property, CXString classUSR )
335
336 FUNCTION: CXCursor clang_getTypeDeclaration ( CXType T )
337 FUNCTION: uint clang_getNumFields ( CXType T )
338 FUNCTION: CXCursor clang_getFieldDecl ( CXType T, uint i )
339 FUNCTION: uint clang_Cursor_getNumTemplateArguments ( CXCursor C )
340 FUNCTION: CXType clang_Cursor_getTemplateArgumentType ( CXCursor C, uint i )
341 FUNCTION: int clang_Cursor_getTemplateArgumentValue ( CXCursor C, uint i )
342 FUNCTION: CXCursor clang_Cursor_getTemplateArgumentCursor ( CXCursor C, uint i )
343 FUNCTION: uint clang_Cursor_getNumSpecializations ( CXCursor C )
344 FUNCTION: CXCursor clang_Cursor_getSpecialization ( CXCursor C, uint i )
345 FUNCTION: CXSourceRange clang_Cursor_getCommentRange ( CXCursor C )
346 FUNCTION: CXString clang_Cursor_getRawCommentText ( CXCursor C )
347 FUNCTION: CXString clang_Cursor_getBriefCommentText ( CXCursor C )
348 FUNCTION: CXString clang_Cursor_getMangling ( CXCursor C )
349 FUNCTION: CXString clang_Cursor_getCXXManglings ( CXCursor C )
350 FUNCTION: CXStringSet* clang_Cursor_getObjCManglings ( CXCursor C )
351 FUNCTION: CXString clang_Cursor_getObjCSelectorIndexName ( CXCursor C )
352 FUNCTION: CXString clang_Cursor_getObjCPropertyGetterName ( CXCursor C )
353 FUNCTION: CXString clang_Cursor_getObjCPropertySetterName ( CXCursor C )
354 FUNCTION: CXString clang_Cursor_getObjCDeclQualifiers ( CXCursor C )
355 FUNCTION: CXTranslationUnit clang_Cursor_getTranslationUnit ( CXCursor C )
356 FUNCTION: uint clang_Cursor_isObjCOptional ( CXCursor C )
357 FUNCTION: uint clang_Cursor_isVariadic ( CXCursor C )
358
359 FUNCTION: CXCursor clang_getCursorSemanticParent ( CXCursor cursor )
360 FUNCTION: CXCursor clang_getCursorLexicalParent ( CXCursor cursor )
361 FUNCTION: void clang_getOverriddenCursors ( CXCursor cursor, CXCursor **overridden, uint *num_overridden )
362 FUNCTION: void clang_disposeOverriddenCursors ( CXCursor *overridden )
363 FUNCTION: uint clang_getNumOverloadedDecls ( CXCursor cursor )
364 FUNCTION: void clang_getOverloadedDecl ( CXCursor cursor, uint index )
365
366 FUNCTION: CXString clang_getClangVersion ( )
367 FUNCTION: CXSourceRange clang_getRange ( CXSourceLocation begin, CXSourceLocation end )
368 FUNCTION: char* clang_getCString ( CXString string )
369 FUNCTION: void clang_disposeString ( CXString string )
370 FUNCTION: void clang_disposeStringSet ( CXStringSet *set )
371
372 FUNCTION: uint clang_visitChildren (
373     CXCursor parent,
374     CXCursorVisitor visitor,
375     CXClientData client_data
376 )