]> gitweb.factorcode.org Git - factor.git/blob - extra/llvm/clang/ffi/ffi.factor
use radix literals
[factor.git] / extra / llvm / clang / ffi / ffi.factor
1 USING: alien alien.c-types alien.libraries alien.syntax
2 classes.struct combinators system unix.types ;
3 IN: llvm.clang.ffi
4
5 <<
6 "libclang" {
7     { [ os macosx?  ] [ "libclang.dylib" ] }
8     { [ os windows? ] [ "clang.dll"      ] }
9     { [ os unix?    ] [ "/usrlibclang.so"    ] }
10 } cond cdecl add-library
11 >>
12 LIBRARY: libclang
13
14 C-TYPE: CXTranslationUnitImpl
15
16 TYPEDEF: void* CXIndex
17 TYPEDEF: CXTranslationUnitImpl* CXTranslationUnit
18 TYPEDEF: void* CXClientData
19
20 STRUCT: CXUnsavedFile
21     { Filename c-string }
22     { Contents c-string }
23     { Length   ulong    } ;
24
25 ENUM: CXAvailabilityKind
26   CXAvailability_Available
27   CXAvailability_Deprecated
28   CXAvailability_NotAvailable ;
29
30 STRUCT: CXString
31     { data          void* }
32     { private_flags uint  } ;
33
34 FUNCTION: c-string clang_getCString ( CXString string ) ;
35 FUNCTION: void clang_disposeString ( CXString string ) ;
36
37 FUNCTION: CXIndex clang_createIndex ( int excludeDeclarationsFromPCH,
38                                       int displayDiagnostics ) ;
39 FUNCTION: void clang_disposeIndex ( CXIndex index ) ;
40
41 TYPEDEF: void* CXFile
42
43 FUNCTION: CXString clang_getFileName ( CXFile SFile ) ;
44 FUNCTION: time_t clang_getFileTime ( CXFile SFile ) ;
45 FUNCTION: uint clang_isFileMultipleIncludeGuarded ( CXTranslationUnit tu, CXFile file ) ;
46 FUNCTION: CXFile clang_getFile ( CXTranslationUnit tu, c-string file_name ) ;
47
48 STRUCT: CXSourceLocation
49     { ptr_data void*[2] }
50     { int_data uint     } ;
51
52 STRUCT: CXSourceRange
53     { ptr_data       void*[2] }
54     { begin_int_data uint     }
55     { end_int_data   uint     } ;
56
57 FUNCTION: CXSourceLocation clang_getNullLocation ( ) ;
58 FUNCTION: uint clang_equalLocations ( CXSourceLocation loc1, CXSourceLocation loc2 ) ;
59
60 FUNCTION: CXSourceLocation clang_getLocation ( CXTranslationUnit tu, CXFile file, uint line, uint column ) ;
61 FUNCTION: CXSourceLocation clang_getLocationForOffset ( CXTranslationUnit tu,
62                                                         CXFile            file,
63                                                         uint              offset ) ;
64
65 FUNCTION: CXSourceRange clang_getNullRange ( ) ;
66
67 FUNCTION: CXSourceRange clang_getRange ( CXSourceLocation begin,
68                                          CXSourceLocation end ) ;
69
70 FUNCTION: void clang_getInstantiationLocation ( CXSourceLocation location,
71                                                 CXFile*          file,
72                                                 uint*            line,
73                                                 uint*            column,
74                                                 uint*            offset ) ;
75
76 FUNCTION: void clang_getSpellingLocation ( CXSourceLocation location,
77                                            CXFile*          file,
78                                            uint*            line,
79                                            uint*            column,
80                                            uint*            offset ) ;
81
82 FUNCTION: CXSourceLocation clang_getRangeStart ( CXSourceRange range ) ;
83 FUNCTION: CXSourceLocation clang_getRangeEnd ( CXSourceRange range ) ;
84
85 ENUM: CXDiagnosticSeverity
86   CXDiagnostic_Ignored
87   CXDiagnostic_Note
88   CXDiagnostic_Warning
89   CXDiagnostic_Error
90   CXDiagnostic_Fatal ;
91
92 TYPEDEF: void* CXDiagnostic
93
94 FUNCTION: uint clang_getNumDiagnostics ( CXTranslationUnit Unit ) ;
95 FUNCTION: CXDiagnostic clang_getDiagnostic ( CXTranslationUnit Unit,
96                                              uint              Index ) ;
97 FUNCTION: void clang_disposeDiagnostic ( CXDiagnostic Diagnostic ) ;
98
99 ENUM: CXDiagnosticDisplayOptions
100     { CXDiagnostic_DisplaySourceLocation 0x01 }
101     { CXDiagnostic_DisplayColumn         0x02 }
102     { CXDiagnostic_DisplaySourceRanges   0x04 }
103     { CXDiagnostic_DisplayOption         0x08 }
104     { CXDiagnostic_DisplayCategoryId     0x10 }
105     { CXDiagnostic_DisplayCategoryName   0x20 } ;
106
107 FUNCTION: CXString clang_formatDiagnostic ( CXDiagnostic Diagnostic,
108                                             uint         Options ) ;
109 FUNCTION: uint clang_defaultDiagnosticDisplayOptions ( ) ;
110
111 FUNCTION: CXDiagnosticSeverity clang_getDiagnosticSeverity ( CXDiagnostic ) ;
112 FUNCTION: CXSourceLocation clang_getDiagnosticLocation ( CXDiagnostic ) ;
113 FUNCTION: CXString clang_getDiagnosticSpelling ( CXDiagnostic ) ;
114 FUNCTION: CXString clang_getDiagnosticOption ( CXDiagnostic Diag, CXString* Disable ) ;
115 FUNCTION: uint clang_getDiagnosticCategory ( CXDiagnostic ) ;
116 FUNCTION: CXString clang_getDiagnosticCategoryName ( uint Category ) ;
117 FUNCTION: uint clang_getDiagnosticNumRanges ( CXDiagnostic ) ;
118 FUNCTION: CXSourceRange clang_getDiagnosticRange ( CXDiagnostic Diagnostic, uint Range ) ;
119 FUNCTION: uint clang_getDiagnosticNumFixIts ( CXDiagnostic Diagnostic ) ;
120 FUNCTION: CXString clang_getDiagnosticFixIt ( CXDiagnostic   Diagnostic,
121                                               uint           FixIt,
122                                               CXSourceRange* ReplacementRange ) ;
123 FUNCTION: CXString clang_getTranslationUnitSpelling ( CXTranslationUnit CTUnit ) ;
124 FUNCTION: CXTranslationUnit clang_createTranslationUnitFromSourceFile ( CXIndex        CIdx,
125                                                                         c-string       source_filename,
126                                                                         int            num_clang_command_line_args,
127                                                                         char**         clang_command_line_args,
128                                                                         uint           num_unsaved_files,
129                                                                         CXUnsavedFile* unsaved_files ) ;
130 FUNCTION: CXTranslationUnit clang_createTranslationUnit ( CXIndex CIdx, c-string ast_filename ) ;
131
132 ENUM: CXTranslationUnit_Flags
133     { CXTranslationUnit_None                        0x00 }
134     { CXTranslationUnit_DetailedPreprocessingRecord 0x01 }
135     { CXTranslationUnit_Incomplete                  0x02 }
136     { CXTranslationUnit_PrecompiledPreamble         0x04 }
137     { CXTranslationUnit_CacheCompletionResults      0x08 }
138     { CXTranslationUnit_CXXPrecompiledPreamble      0x10 }
139     { CXTranslationUnit_CXXChainedPCH               0x20 }
140     { CXTranslationUnit_NestedMacroInstantiations   0x40 } ;
141
142 FUNCTION: uint clang_defaultEditingTranslationUnitOptions ( ) ;
143 FUNCTION: CXTranslationUnit clang_parseTranslationUnit ( CXIndex        CIdx,
144                                                          c-string       source_filename,
145                                                          char**         command_line_args,
146                                                          int            num_command_line_args,
147                                                          CXUnsavedFile* unsaved_files,
148                                                          uint           num_unsaved_files,
149                                                          uint           options ) ;
150
151 ENUM: CXSaveTranslationUnit_Flags CXSaveTranslationUnit_None ;
152
153 FUNCTION: uint clang_defaultSaveOptions ( CXTranslationUnit TU ) ;
154 FUNCTION: int clang_saveTranslationUnit ( CXTranslationUnit TU,
155                                           c-string          FileName,
156                                           uint              options ) ;
157 FUNCTION: void clang_disposeTranslationUnit ( CXTranslationUnit ) ;
158
159 ENUM: CXReparse_Flags CXReparse_None ;
160
161 FUNCTION: uint clang_defaultReparseOptions ( CXTranslationUnit TU ) ;
162 FUNCTION: int clang_reparseTranslationUnit ( CXTranslationUnit TU,
163                                              uint              num_unsaved_files,
164                                              CXUnsavedFile*    unsaved_files,
165                                              uint              options ) ;
166
167 ENUM: CXTUResourceUsageKind
168     { CXTUResourceUsage_AST                                 1 }
169     { CXTUResourceUsage_Identifiers                         2 }
170     { CXTUResourceUsage_Selectors                           3 }
171     { CXTUResourceUsage_GlobalCompletionResults             4 }
172     { CXTUResourceUsage_SourceManagerContentCache           5 }
173     { CXTUResourceUsage_AST_SideTables                      6 }
174     { CXTUResourceUsage_SourceManager_Membuffer_Malloc      7 }
175     { CXTUResourceUsage_SourceManager_Membuffer_MMap        8 }
176     { CXTUResourceUsage_ExternalASTSource_Membuffer_Malloc  9 }
177     { CXTUResourceUsage_ExternalASTSource_Membuffer_MMap   10 }
178     { CXTUResourceUsage_Preprocessor                       11 }
179     { CXTUResourceUsage_PreprocessingRecord                12 }
180     { CXTUResourceUsage_MEMORY_IN_BYTES_BEGIN               1 }
181     { CXTUResourceUsage_MEMORY_IN_BYTES_END                12 }
182     { CXTUResourceUsage_First                               1 }
183     { CXTUResourceUsage_Last                               12 } ;
184
185 FUNCTION: c-string clang_getTUResourceUsageName ( CXTUResourceUsageKind kind ) ;
186
187 STRUCT: CXTUResourceUsageEntry
188     { kind   CXTUResourceUsageKind }
189     { amount ulong                 } ;
190
191 STRUCT: CXTUResourceUsage
192     { data       void*                   }
193     { numEntries uint                    }
194     { entries    CXTUResourceUsageEntry* } ;
195
196 FUNCTION: CXTUResourceUsage clang_getCXTUResourceUsage ( CXTranslationUnit TU ) ;
197 FUNCTION: void clang_disposeCXTUResourceUsage ( CXTUResourceUsage usage ) ;
198
199 ENUM: CXCursorKind
200     { CXCursor_UnexposedDecl                        1 }
201     { CXCursor_StructDecl                           2 }
202     { CXCursor_UnionDecl                            3 }
203     { CXCursor_ClassDecl                            4 }
204     { CXCursor_EnumDecl                             5 }
205     { CXCursor_FieldDecl                            6 }
206     { CXCursor_EnumConstantDecl                     7 }
207     { CXCursor_FunctionDecl                         8 }
208     { CXCursor_VarDecl                              9 }
209     { CXCursor_ParmDecl                            10 }
210     { CXCursor_ObjCInterfaceDecl                   11 }
211     { CXCursor_ObjCCategoryDecl                    12 }
212     { CXCursor_ObjCProtocolDecl                    13 }
213     { CXCursor_ObjCPropertyDecl                    14 }
214     { CXCursor_ObjCIvarDecl                        15 }
215     { CXCursor_ObjCInstanceMethodDecl              16 }
216     { CXCursor_ObjCClassMethodDecl                 17 }
217     { CXCursor_ObjCImplementationDecl              18 }
218     { CXCursor_ObjCCategoryImplDecl                19 }
219     { CXCursor_TypedefDecl                         20 }
220     { CXCursor_CXXMethod                           21 }
221     { CXCursor_Namespace                           22 }
222     { CXCursor_LinkageSpec                         23 }
223     { CXCursor_Constructor                         24 }
224     { CXCursor_Destructor                          25 }
225     { CXCursor_ConversionFunction                  26 }
226     { CXCursor_TemplateTypeParameter               27 }
227     { CXCursor_NonTypeTemplateParameter            28 }
228     { CXCursor_TemplateTemplateParameter           29 }
229     { CXCursor_FunctionTemplate                    30 }
230     { CXCursor_ClassTemplate                       31 }
231     { CXCursor_ClassTemplatePartialSpecialization  32 }
232     { CXCursor_NamespaceAlias                      33 }
233     { CXCursor_UsingDirective                      34 }
234     { CXCursor_UsingDeclaration                    35 }
235     { CXCursor_TypeAliasDecl                       36 }
236     { CXCursor_FirstDecl                            1 }
237     { CXCursor_LastDecl                            36 }
238     { CXCursor_FirstRef                            40 }
239     { CXCursor_ObjCSuperClassRef                   40 }
240     { CXCursor_ObjCProtocolRef                     41 }
241     { CXCursor_ObjCClassRef                        42 }
242     { CXCursor_TypeRef                             43 }
243     { CXCursor_CXXBaseSpecifier                    44 }
244     { CXCursor_TemplateRef                         45 }
245     { CXCursor_NamespaceRef                        46 }
246     { CXCursor_MemberRef                           47 }
247     { CXCursor_LabelRef                            48 }
248     { CXCursor_OverloadedDeclRef                   49 }
249     { CXCursor_LastRef                             49 }
250     { CXCursor_FirstInvalid                        70 }
251     { CXCursor_InvalidFile                         70 }
252     { CXCursor_NoDeclFound                         71 }
253     { CXCursor_NotImplemented                      72 }
254     { CXCursor_InvalidCode                         73 }
255     { CXCursor_LastInvalid                         73 }
256     { CXCursor_FirstExpr                          100 }
257     { CXCursor_UnexposedExpr                      100 }
258     { CXCursor_DeclRefExpr                        101 }
259     { CXCursor_MemberRefExpr                      102 }
260     { CXCursor_CallExpr                           103 }
261     { CXCursor_ObjCMessageExpr                    104 }
262     { CXCursor_BlockExpr                          105 }
263     { CXCursor_LastExpr                           105 }
264     { CXCursor_FirstStmt                          200 }
265     { CXCursor_UnexposedStmt                      200 }
266     { CXCursor_LabelStmt                          201 }
267     { CXCursor_LastStmt                           201 }
268     { CXCursor_TranslationUnit                    300 }
269     { CXCursor_FirstAttr                          400 }
270     { CXCursor_UnexposedAttr                      400 }
271     { CXCursor_IBActionAttr                       401 }
272     { CXCursor_IBOutletAttr                       402 }
273     { CXCursor_IBOutletCollectionAttr             403 }
274     { CXCursor_LastAttr                           403 }
275     { CXCursor_PreprocessingDirective             500 }
276     { CXCursor_MacroDefinition                    501 }
277     { CXCursor_MacroInstantiation                 502 }
278     { CXCursor_InclusionDirective                 503 }
279     { CXCursor_FirstPreprocessing                 500 }
280     { CXCursor_LastPreprocessing                  503 } ;
281
282 STRUCT: CXCursor
283     { kind CXCursorKind }
284     { data void*[3]     } ;
285
286 FUNCTION: CXCursor clang_getNullCursor ( ) ;
287 FUNCTION: CXCursor clang_getTranslationUnitCursor ( CXTranslationUnit ) ;
288 FUNCTION: uint clang_equalCursors ( CXCursor c1, CXCursor c2 ) ;
289 FUNCTION: uint clang_hashCursor ( CXCursor ) ;
290 FUNCTION: CXCursorKind clang_getCursorKind ( CXCursor ) ;
291 FUNCTION: uint clang_isDeclaration ( CXCursorKind ) ;
292 FUNCTION: uint clang_isReference ( CXCursorKind ) ;
293 FUNCTION: uint clang_isExpression ( CXCursorKind ) ;
294 FUNCTION: uint clang_isStatement ( CXCursorKind ) ;
295 FUNCTION: uint clang_isInvalid ( CXCursorKind ) ;
296 FUNCTION: uint clang_isTranslationUnit ( CXCursorKind ) ;
297 FUNCTION: uint clang_isPreprocessing ( CXCursorKind ) ;
298 FUNCTION: uint clang_isUnexposed ( CXCursorKind ) ;
299
300 ENUM: CXLinkageKind
301   CXLinkage_Invalid
302   CXLinkage_NoLinkage
303   CXLinkage_Internal
304   CXLinkage_UniqueExternal
305   CXLinkage_External ;
306
307 ENUM: CXLanguageKind
308   CXLanguage_Invalid
309   CXLanguage_C
310   CXLanguage_ObjC
311   CXLanguage_CPlusPlus ;
312
313 FUNCTION: CXLinkageKind clang_getCursorLinkage ( CXCursor cursor ) ;
314 FUNCTION: CXAvailabilityKind clang_getCursorAvailability ( CXCursor cursor ) ;
315 FUNCTION: CXLanguageKind clang_getCursorLanguage ( CXCursor cursor ) ;
316
317 C-TYPE: CXCursorSetImpl
318 TYPEDEF: CXCursorSetImpl* CXCursorSet
319
320 FUNCTION: CXCursorSet clang_createCXCursorSet ( ) ;
321 FUNCTION: void clang_disposeCXCursorSet ( CXCursorSet cset ) ;
322 FUNCTION: uint clang_CXCursorSet_contains ( CXCursorSet cset, CXCursor cursor ) ;
323 FUNCTION: uint clang_CXCursorSet_insert ( CXCursorSet cset, CXCursor cursor ) ;
324 FUNCTION: CXCursor clang_getCursorSemanticParent ( CXCursor cursor ) ;
325 FUNCTION: CXCursor clang_getCursorLexicalParent ( CXCursor cursor ) ;
326 FUNCTION: void clang_getOverriddenCursors ( CXCursor cursor, CXCursor** overridden, uint* num_overridden ) ;
327 FUNCTION: void clang_disposeOverriddenCursors ( CXCursor* overridden ) ;
328 FUNCTION: CXFile clang_getIncludedFile ( CXCursor cursor ) ;
329 FUNCTION: CXCursor clang_getCursor ( CXTranslationUnit TU,
330                                      CXSourceLocation location ) ;
331 FUNCTION: CXSourceLocation clang_getCursorLocation ( CXCursor ) ;
332 FUNCTION: CXSourceRange clang_getCursorExtent ( CXCursor ) ;
333
334 ENUM: CXTypeKind
335     { CXType_Invalid             0 }
336     { CXType_Unexposed           1 }
337     { CXType_Void                2 }
338     { CXType_Bool                3 }
339     { CXType_Char_U              4 }
340     { CXType_UChar               5 }
341     { CXType_Char16              6 }
342     { CXType_Char32              7 }
343     { CXType_UShort              8 }
344     { CXType_UInt                9 }
345     { CXType_ULong              10 }
346     { CXType_ULongLong          11 }
347     { CXType_UInt128            12 }
348     { CXType_Char_S             13 }
349     { CXType_SChar              14 }
350     { CXType_WChar              15 }
351     { CXType_Short              16 }
352     { CXType_Int                17 }
353     { CXType_Long               18 }
354     { CXType_LongLong           19 }
355     { CXType_Int128             20 }
356     { CXType_Float              21 }
357     { CXType_Double             22 }
358     { CXType_LongDouble         23 }
359     { CXType_NullPtr            24 }
360     { CXType_Overload           25 }
361     { CXType_Dependent          26 }
362     { CXType_ObjCId             27 }
363     { CXType_ObjCClass          28 }
364     { CXType_ObjCSel            29 }
365     { CXType_FirstBuiltin        2 }
366     { CXType_LastBuiltin        29 }
367     { CXType_Complex           100 }
368     { CXType_Pointer           101 }
369     { CXType_BlockPointer      102 }
370     { CXType_LValueReference   103 }
371     { CXType_RValueReference   104 }
372     { CXType_Record            105 }
373     { CXType_Enum              106 }
374     { CXType_Typedef           107 }
375     { CXType_ObjCInterface     108 }
376     { CXType_ObjCObjectPointer 109 }
377     { CXType_FunctionNoProto   110 }
378     { CXType_FunctionProto     111 } ;
379
380 STRUCT: CXType
381     { kind CXTypeKind }
382     { data void*[2]   } ;
383
384 FUNCTION: CXType clang_getCursorType ( CXCursor C ) ;
385 FUNCTION: uint clang_equalTypes ( CXType A, CXType B ) ;
386 FUNCTION: CXType clang_getCanonicalType ( CXType T ) ;
387 FUNCTION: uint clang_isConstQualifiedType ( CXType T ) ;
388 FUNCTION: uint clang_isVolatileQualifiedType ( CXType T ) ;
389 FUNCTION: uint clang_isRestrictQualifiedType ( CXType T ) ;
390 FUNCTION: CXType clang_getPointeeType ( CXType T ) ;
391 FUNCTION: CXCursor clang_getTypeDeclaration ( CXType T ) ;
392 FUNCTION: CXString clang_getDeclObjCTypeEncoding ( CXCursor C ) ;
393 FUNCTION: CXString clang_getTypeKindSpelling ( CXTypeKind K ) ;
394 FUNCTION: CXType clang_getResultType ( CXType T ) ;
395 FUNCTION: CXType clang_getCursorResultType ( CXCursor C ) ;
396 FUNCTION: uint clang_isPODType ( CXType T ) ;
397 FUNCTION: uint clang_isVirtualBase ( CXCursor ) ;
398
399 ENUM: CX_CXXAccessSpecifier
400   CX_CXXInvalidAccessSpecifier
401   CX_CXXPublic
402   CX_CXXProtected
403   CX_CXXPrivate ;
404
405 FUNCTION: CX_CXXAccessSpecifier clang_getCXXAccessSpecifier ( CXCursor ) ;
406 FUNCTION: uint clang_getNumOverloadedDecls ( CXCursor cursor ) ;
407 FUNCTION: CXCursor clang_getOverloadedDecl ( CXCursor cursor, uint index ) ;
408 FUNCTION: CXType clang_getIBOutletCollectionType ( CXCursor ) ;
409
410 ENUM: CXChildVisitResult
411   CXChildVisit_Break
412   CXChildVisit_Continue
413   CXChildVisit_Recurse ;
414
415 CALLBACK: CXChildVisitResult CXCursorVisitor ( CXCursor     cursor,
416                                                CXCursor     parent,
417                                                CXClientData client_data ) ;
418
419 FUNCTION: uint clang_visitChildren ( CXCursor        parent,
420                                      CXCursorVisitor visitor,
421                                      CXClientData    client_data ) ;
422 FUNCTION: CXString clang_getCursorUSR ( CXCursor ) ;
423 FUNCTION: CXString clang_constructUSR_ObjCClass ( c-string class_name ) ;
424 FUNCTION: CXString clang_constructUSR_ObjCCategory ( c-string class_name,
425                                                      c-string category_name ) ;
426 FUNCTION: CXString clang_constructUSR_ObjCProtocol ( c-string protocol_name ) ;
427 FUNCTION: CXString clang_constructUSR_ObjCIvar ( c-string name,
428                                                  CXString classUSR ) ;
429 FUNCTION: CXString clang_constructUSR_ObjCMethod ( c-string name,
430                                                    uint     isInstanceMethod,
431                                                    CXString classUSR ) ;
432 FUNCTION: CXString clang_constructUSR_ObjCProperty ( c-string property,
433                                                      CXString classUSR ) ;
434 FUNCTION: CXString clang_getCursorSpelling ( CXCursor ) ;
435 FUNCTION: CXString clang_getCursorDisplayName ( CXCursor ) ;
436 FUNCTION: CXCursor clang_getCursorReferenced ( CXCursor ) ;
437 FUNCTION: CXCursor clang_getCursorDefinition ( CXCursor ) ;
438 FUNCTION: uint clang_isCursorDefinition ( CXCursor ) ;
439 FUNCTION: CXCursor clang_getCanonicalCursor ( CXCursor ) ;
440 FUNCTION: uint clang_CXXMethod_isStatic ( CXCursor C ) ;
441 FUNCTION: uint clang_CXXMethod_isVirtual ( CXCursor C ) ;
442 FUNCTION: CXCursorKind clang_getTemplateCursorKind ( CXCursor C ) ;
443 FUNCTION: CXCursor clang_getSpecializedCursorTemplate ( CXCursor C ) ;
444
445 ENUM: CXTokenKind
446   CXToken_Punctuation
447   CXToken_Keyword
448   CXToken_Identifier
449   CXToken_Literal
450   CXToken_Comment ;
451
452 STRUCT: CXToken
453     { int_data uint[4] }
454     { ptr_data void*   } ;
455
456 FUNCTION: CXTokenKind clang_getTokenKind ( CXToken ) ;
457 FUNCTION: CXString clang_getTokenSpelling ( CXTranslationUnit TU,
458                                             CXToken           Token ) ;
459 FUNCTION: CXSourceLocation clang_getTokenLocation ( CXTranslationUnit TU,
460                                                     CXToken           Token ) ;
461 FUNCTION: CXSourceRange clang_getTokenExtent ( CXTranslationUnit TU,
462                                                CXToken           Token ) ;
463 FUNCTION: void clang_tokenize ( CXTranslationUnit TU,
464                                 CXSourceRange     Range,
465                                 CXToken**         Tokens,
466                                 uint*             NumTokens ) ;
467 FUNCTION: void clang_annotateTokens ( CXTranslationUnit TU,
468                                       CXToken*          Tokens,
469                                       uint              NumTokens,
470                                       CXCursor*         Cursors ) ;
471 FUNCTION: void clang_disposeTokens ( CXTranslationUnit TU,
472                                      CXToken*          Tokens,
473                                      uint              NumTokens ) ;
474
475 FUNCTION: CXString clang_getCursorKindSpelling ( CXCursorKind Kind ) ;
476 FUNCTION: void clang_getDefinitionSpellingAndExtent ( CXCursor cursor,
477                                                       char**   startBuf,
478                                                       char**   endBuf,
479                                                       uint*    startLine,
480                                                       uint*    startColumn,
481                                                       uint*    endLine,
482                                                       uint*    endColumn ) ;
483 FUNCTION: void clang_enableStackTraces ( ) ;
484
485 CALLBACK: void executeOnThreadCallback ( void* ) ;
486 FUNCTION: void clang_executeOnThread ( executeOnThreadCallback* callback,
487                                        void*                    user_data,
488                                        uint                     stack_size ) ;
489
490 TYPEDEF: void* CXCompletionString
491
492 STRUCT: CXCompletionResult
493     { CursorKind       CXCursorKind       }
494     { CompletionString CXCompletionString } ;
495
496 ENUM: CXCompletionChunkKind
497   CXCompletionChunk_Optional
498   CXCompletionChunk_TypedText
499   CXCompletionChunk_Text
500   CXCompletionChunk_Placeholder
501   CXCompletionChunk_Informative
502   CXCompletionChunk_CurrentParameter
503   CXCompletionChunk_LeftParen
504   CXCompletionChunk_RightParen
505   CXCompletionChunk_LeftBracket
506   CXCompletionChunk_RightBracket
507   CXCompletionChunk_LeftBrace
508   CXCompletionChunk_RightBrace
509   CXCompletionChunk_LeftAngle
510   CXCompletionChunk_RightAngle
511   CXCompletionChunk_Comma
512   CXCompletionChunk_ResultType
513   CXCompletionChunk_Colon
514   CXCompletionChunk_SemiColon
515   CXCompletionChunk_Equal
516   CXCompletionChunk_HorizontalSpace
517   CXCompletionChunk_VerticalSpace ;
518
519 FUNCTION: CXCompletionChunkKind clang_getCompletionChunkKind ( CXCompletionString completion_string,
520                                                                uint               chunk_number ) ;
521 FUNCTION: CXString clang_getCompletionChunkText ( CXCompletionString completion_string,
522                                                   uint               chunk_number ) ;
523 FUNCTION: CXCompletionString clang_getCompletionChunkCompletionString ( CXCompletionString completion_string,
524                                                                         uint               chunk_number ) ;
525 FUNCTION: uint clang_getNumCompletionChunks ( CXCompletionString completion_string ) ;
526 FUNCTION: uint clang_getCompletionPriority ( CXCompletionString completion_string ) ;
527 FUNCTION: CXAvailabilityKind clang_getCompletionAvailability ( CXCompletionString completion_string ) ;
528
529 STRUCT: CXCodeCompleteResults
530     { Results CXCompletionResult* }
531     { NumResults uint             } ;
532
533 ENUM: CXCodeComplete_Flags
534     { CXCodeComplete_IncludeMacros       1 }
535     { CXCodeComplete_IncludeCodePatterns 2 } ;
536
537 FUNCTION: uint clang_defaultCodeCompleteOptions ( ) ;
538
539 FUNCTION: CXCodeCompleteResults* clang_codeCompleteAt ( CXTranslationUnit TU,
540                                                         c-string          complete_filename,
541                                                         uint              complete_line,
542                                                         uint              complete_column,
543                                                         CXUnsavedFile*    unsaved_files,
544                                                         uint              num_unsaved_files,
545                                                         uint              options ) ;
546
547 FUNCTION: void clang_sortCodeCompletionResults ( CXCompletionResult* Results, uint NumResults ) ;
548 FUNCTION: void clang_disposeCodeCompleteResults ( CXCodeCompleteResults* Results ) ;
549 FUNCTION: uint clang_codeCompleteGetNumDiagnostics ( CXCodeCompleteResults* Results ) ;
550
551 FUNCTION: CXDiagnostic clang_codeCompleteGetDiagnostic ( CXCodeCompleteResults* Results,
552                                                          uint                   Index ) ;
553
554 FUNCTION: CXString clang_getClangVersion ( ) ;
555 FUNCTION: void clang_toggleCrashRecovery ( uint isEnabled ) ;
556
557 CALLBACK: void CXInclusionVisitor ( CXFile            included_file,
558                                     CXSourceLocation* inclusion_stack,
559                                     uint              include_len,
560                                     CXClientData      client_data ) ;
561
562 FUNCTION: void clang_getInclusions ( CXTranslationUnit  tu,
563                                      CXInclusionVisitor visitor,
564                                      CXClientData       client_data ) ;