ffi_gen 0.8 → 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +20 -0
- data/README.md +77 -0
- data/lib/ffi_gen.rb +195 -108
- data/lib/ffi_gen/clang.rb +351 -349
- metadata +6 -4
data/lib/ffi_gen/clang.rb
CHANGED
@@ -5,14 +5,11 @@ require 'ffi'
|
|
5
5
|
module Clang
|
6
6
|
extend FFI::Library
|
7
7
|
ffi_lib 'clang'
|
8
|
-
|
8
|
+
|
9
9
|
# A single translation unit, which resides in an index.
|
10
|
-
#
|
11
|
-
# = Fields:
|
12
|
-
#
|
13
10
|
class TranslationUnitImpl < FFI::Struct
|
14
11
|
end
|
15
|
-
|
12
|
+
|
16
13
|
# Provides the contents of a file that has not yet been saved to disk.
|
17
14
|
#
|
18
15
|
# Each CXUnsavedFile instance provides the name of a file on the
|
@@ -28,17 +25,18 @@ module Clang
|
|
28
25
|
# (String) A buffer containing the unsaved contents of this file.
|
29
26
|
# :length ::
|
30
27
|
# (Integer) The length of the unsaved contents of this buffer.
|
31
|
-
#
|
32
28
|
class UnsavedFile < FFI::Struct
|
33
29
|
layout :filename, :string,
|
34
30
|
:contents, :string,
|
35
31
|
:length, :ulong
|
36
32
|
end
|
37
|
-
|
33
|
+
|
38
34
|
# Describes the availability of a particular entity, which indicates
|
39
35
|
# whether the use of this entity will result in a warning or error due to
|
40
36
|
# it being deprecated or unavailable.
|
41
37
|
#
|
38
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:availability_kind).</em>
|
39
|
+
#
|
42
40
|
# === Options:
|
43
41
|
# :available ::
|
44
42
|
# The entity is available.
|
@@ -50,18 +48,17 @@ module Clang
|
|
50
48
|
# :not_accessible ::
|
51
49
|
# The entity is available, but not accessible; any use of it will be
|
52
50
|
# an error.
|
53
|
-
#
|
54
|
-
# @
|
55
|
-
|
56
|
-
|
57
|
-
end
|
51
|
+
#
|
52
|
+
# @method _enum_availability_kind_
|
53
|
+
# @return [Symbol]
|
54
|
+
# @scope class
|
58
55
|
enum :availability_kind, [
|
59
56
|
:available,
|
60
57
|
:deprecated,
|
61
58
|
:not_available,
|
62
59
|
:not_accessible
|
63
60
|
]
|
64
|
-
|
61
|
+
|
65
62
|
# A character string.
|
66
63
|
#
|
67
64
|
# The \c CXString type is used to return strings from the interface when
|
@@ -74,12 +71,11 @@ module Clang
|
|
74
71
|
# (FFI::Pointer(*Void))
|
75
72
|
# :private_flags ::
|
76
73
|
# (Integer)
|
77
|
-
#
|
78
74
|
class String < FFI::Struct
|
79
75
|
layout :data, :pointer,
|
80
76
|
:private_flags, :uint
|
81
77
|
end
|
82
|
-
|
78
|
+
|
83
79
|
# Retrieve the character data associated with the given string.
|
84
80
|
#
|
85
81
|
# @method get_c_string(string)
|
@@ -87,7 +83,7 @@ module Clang
|
|
87
83
|
# @return [String]
|
88
84
|
# @scope class
|
89
85
|
attach_function :get_c_string, :clang_getCString, [String.by_value], :string
|
90
|
-
|
86
|
+
|
91
87
|
# Free the given string,
|
92
88
|
#
|
93
89
|
# @method dispose_string(string)
|
@@ -95,7 +91,7 @@ module Clang
|
|
95
91
|
# @return [nil]
|
96
92
|
# @scope class
|
97
93
|
attach_function :dispose_string, :clang_disposeString, [String.by_value], :void
|
98
|
-
|
94
|
+
|
99
95
|
# clang_createIndex() provides a shared context for creating
|
100
96
|
# translation units. It provides two options:
|
101
97
|
#
|
@@ -138,7 +134,7 @@ module Clang
|
|
138
134
|
# @return [FFI::Pointer(Index)]
|
139
135
|
# @scope class
|
140
136
|
attach_function :create_index, :clang_createIndex, [:int, :int], :pointer
|
141
|
-
|
137
|
+
|
142
138
|
# Destroy the given index.
|
143
139
|
#
|
144
140
|
# The index must not be destroyed until all of the translation units created
|
@@ -149,7 +145,7 @@ module Clang
|
|
149
145
|
# @return [nil]
|
150
146
|
# @scope class
|
151
147
|
attach_function :dispose_index, :clang_disposeIndex, [:pointer], :void
|
152
|
-
|
148
|
+
|
153
149
|
# Retrieve the complete file and path name of the given file.
|
154
150
|
#
|
155
151
|
# @method get_file_name(s_file)
|
@@ -157,7 +153,7 @@ module Clang
|
|
157
153
|
# @return [String]
|
158
154
|
# @scope class
|
159
155
|
attach_function :get_file_name, :clang_getFileName, [:pointer], String.by_value
|
160
|
-
|
156
|
+
|
161
157
|
# Retrieve the last modification time of the given file.
|
162
158
|
#
|
163
159
|
# @method get_file_time(s_file)
|
@@ -165,7 +161,7 @@ module Clang
|
|
165
161
|
# @return [Integer]
|
166
162
|
# @scope class
|
167
163
|
attach_function :get_file_time, :clang_getFileTime, [:pointer], :long
|
168
|
-
|
164
|
+
|
169
165
|
# Determine whether the given header is guarded against
|
170
166
|
# multiple inclusions, either with the conventional
|
171
167
|
# #ifndef/#define/#endif macro guards or with #pragma once.
|
@@ -176,7 +172,7 @@ module Clang
|
|
176
172
|
# @return [Integer]
|
177
173
|
# @scope class
|
178
174
|
attach_function :is_file_multiple_include_guarded, :clang_isFileMultipleIncludeGuarded, [:pointer, :pointer], :uint
|
179
|
-
|
175
|
+
|
180
176
|
# Retrieve a file handle within the given translation unit.
|
181
177
|
#
|
182
178
|
# @method get_file(tu, file_name)
|
@@ -186,7 +182,7 @@ module Clang
|
|
186
182
|
# or a NULL file handle if the file was not a part of this translation unit.
|
187
183
|
# @scope class
|
188
184
|
attach_function :get_file, :clang_getFile, [:pointer, :string], :pointer
|
189
|
-
|
185
|
+
|
190
186
|
# Identifies a specific source location within a translation
|
191
187
|
# unit.
|
192
188
|
#
|
@@ -198,12 +194,11 @@ module Clang
|
|
198
194
|
# (Array<FFI::Pointer(*Void)>)
|
199
195
|
# :int_data ::
|
200
196
|
# (Integer)
|
201
|
-
#
|
202
197
|
class SourceLocation < FFI::Struct
|
203
198
|
layout :ptr_data, [:pointer, 2],
|
204
199
|
:int_data, :uint
|
205
200
|
end
|
206
|
-
|
201
|
+
|
207
202
|
# Identifies a half-open character range in the source code.
|
208
203
|
#
|
209
204
|
# Use clang_getRangeStart() and clang_getRangeEnd() to retrieve the
|
@@ -216,20 +211,19 @@ module Clang
|
|
216
211
|
# (Integer)
|
217
212
|
# :end_int_data ::
|
218
213
|
# (Integer)
|
219
|
-
#
|
220
214
|
class SourceRange < FFI::Struct
|
221
215
|
layout :ptr_data, [:pointer, 2],
|
222
216
|
:begin_int_data, :uint,
|
223
217
|
:end_int_data, :uint
|
224
218
|
end
|
225
|
-
|
219
|
+
|
226
220
|
# Retrieve a NULL (invalid) source location.
|
227
221
|
#
|
228
222
|
# @method get_null_location()
|
229
223
|
# @return [SourceLocation]
|
230
224
|
# @scope class
|
231
225
|
attach_function :get_null_location, :clang_getNullLocation, [], SourceLocation.by_value
|
232
|
-
|
226
|
+
|
233
227
|
# Determine whether two source locations, which must refer into
|
234
228
|
# the same translation unit, refer to exactly the same point in the source
|
235
229
|
# code.
|
@@ -241,7 +235,7 @@ module Clang
|
|
241
235
|
# if they refer to different locations.
|
242
236
|
# @scope class
|
243
237
|
attach_function :equal_locations, :clang_equalLocations, [SourceLocation.by_value, SourceLocation.by_value], :uint
|
244
|
-
|
238
|
+
|
245
239
|
# Retrieves the source location associated with a given file/line/column
|
246
240
|
# in a particular translation unit.
|
247
241
|
#
|
@@ -253,7 +247,7 @@ module Clang
|
|
253
247
|
# @return [SourceLocation]
|
254
248
|
# @scope class
|
255
249
|
attach_function :get_location, :clang_getLocation, [:pointer, :pointer, :uint, :uint], SourceLocation.by_value
|
256
|
-
|
250
|
+
|
257
251
|
# Retrieves the source location associated with a given character offset
|
258
252
|
# in a particular translation unit.
|
259
253
|
#
|
@@ -264,14 +258,14 @@ module Clang
|
|
264
258
|
# @return [SourceLocation]
|
265
259
|
# @scope class
|
266
260
|
attach_function :get_location_for_offset, :clang_getLocationForOffset, [:pointer, :pointer, :uint], SourceLocation.by_value
|
267
|
-
|
261
|
+
|
268
262
|
# Retrieve a NULL (invalid) source range.
|
269
263
|
#
|
270
264
|
# @method get_null_range()
|
271
265
|
# @return [SourceRange]
|
272
266
|
# @scope class
|
273
267
|
attach_function :get_null_range, :clang_getNullRange, [], SourceRange.by_value
|
274
|
-
|
268
|
+
|
275
269
|
# Retrieve a source range given the beginning and ending source
|
276
270
|
# locations.
|
277
271
|
#
|
@@ -281,7 +275,7 @@ module Clang
|
|
281
275
|
# @return [SourceRange]
|
282
276
|
# @scope class
|
283
277
|
attach_function :get_range, :clang_getRange, [SourceLocation.by_value, SourceLocation.by_value], SourceRange.by_value
|
284
|
-
|
278
|
+
|
285
279
|
# Determine whether two ranges are equivalent.
|
286
280
|
#
|
287
281
|
# @method equal_ranges(range1, range2)
|
@@ -290,7 +284,7 @@ module Clang
|
|
290
284
|
# @return [Integer] non-zero if the ranges are the same, zero if they differ.
|
291
285
|
# @scope class
|
292
286
|
attach_function :equal_ranges, :clang_equalRanges, [SourceRange.by_value, SourceRange.by_value], :uint
|
293
|
-
|
287
|
+
|
294
288
|
# Returns non-zero if \arg range is null.
|
295
289
|
#
|
296
290
|
# @method range_is_null(range)
|
@@ -298,7 +292,7 @@ module Clang
|
|
298
292
|
# @return [Integer]
|
299
293
|
# @scope class
|
300
294
|
attach_function :range_is_null, :clang_Range_isNull, [SourceRange.by_value], :int
|
301
|
-
|
295
|
+
|
302
296
|
# Retrieve the file, line, column, and offset represented by
|
303
297
|
# the given source location, as specified in a # line directive.
|
304
298
|
#
|
@@ -336,7 +330,7 @@ module Clang
|
|
336
330
|
# @return [nil]
|
337
331
|
# @scope class
|
338
332
|
attach_function :get_presumed_location, :clang_getPresumedLocation, [SourceLocation.by_value, :pointer, :pointer, :pointer], :void
|
339
|
-
|
333
|
+
|
340
334
|
# Legacy API to retrieve the file, line, column, and offset represented
|
341
335
|
# by the given source location.
|
342
336
|
#
|
@@ -353,7 +347,7 @@ module Clang
|
|
353
347
|
# @return [nil]
|
354
348
|
# @scope class
|
355
349
|
attach_function :get_instantiation_location, :clang_getInstantiationLocation, [SourceLocation.by_value, :pointer, :pointer, :pointer, :pointer], :void
|
356
|
-
|
350
|
+
|
357
351
|
# Retrieve the file, line, column, and offset represented by
|
358
352
|
# the given source location.
|
359
353
|
#
|
@@ -374,7 +368,7 @@ module Clang
|
|
374
368
|
# @return [nil]
|
375
369
|
# @scope class
|
376
370
|
attach_function :get_spelling_location, :clang_getSpellingLocation, [SourceLocation.by_value, :pointer, :pointer, :pointer, :pointer], :void
|
377
|
-
|
371
|
+
|
378
372
|
# Retrieve a source location representing the first character within a
|
379
373
|
# source range.
|
380
374
|
#
|
@@ -383,7 +377,7 @@ module Clang
|
|
383
377
|
# @return [SourceLocation]
|
384
378
|
# @scope class
|
385
379
|
attach_function :get_range_start, :clang_getRangeStart, [SourceRange.by_value], SourceLocation.by_value
|
386
|
-
|
380
|
+
|
387
381
|
# Retrieve a source location representing the last character within a
|
388
382
|
# source range.
|
389
383
|
#
|
@@ -392,9 +386,11 @@ module Clang
|
|
392
386
|
# @return [SourceLocation]
|
393
387
|
# @scope class
|
394
388
|
attach_function :get_range_end, :clang_getRangeEnd, [SourceRange.by_value], SourceLocation.by_value
|
395
|
-
|
389
|
+
|
396
390
|
# Describes the severity of a particular diagnostic.
|
397
391
|
#
|
392
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:diagnostic_severity).</em>
|
393
|
+
#
|
398
394
|
# === Options:
|
399
395
|
# :ignored ::
|
400
396
|
# A diagnostic that has been suppressed, e.g., by a command-line
|
@@ -411,11 +407,10 @@ module Clang
|
|
411
407
|
# This diagnostic indicates that the code is ill-formed such
|
412
408
|
# that future parser recovery is unlikely to produce useful
|
413
409
|
# results.
|
414
|
-
#
|
415
|
-
# @
|
416
|
-
|
417
|
-
|
418
|
-
end
|
410
|
+
#
|
411
|
+
# @method _enum_diagnostic_severity_
|
412
|
+
# @return [Symbol]
|
413
|
+
# @scope class
|
419
414
|
enum :diagnostic_severity, [
|
420
415
|
:ignored, 0,
|
421
416
|
:note, 1,
|
@@ -423,7 +418,7 @@ module Clang
|
|
423
418
|
:error, 3,
|
424
419
|
:fatal, 4
|
425
420
|
]
|
426
|
-
|
421
|
+
|
427
422
|
# Determine the number of diagnostics produced for the given
|
428
423
|
# translation unit.
|
429
424
|
#
|
@@ -432,7 +427,7 @@ module Clang
|
|
432
427
|
# @return [Integer]
|
433
428
|
# @scope class
|
434
429
|
attach_function :get_num_diagnostics, :clang_getNumDiagnostics, [:pointer], :uint
|
435
|
-
|
430
|
+
|
436
431
|
# Retrieve a diagnostic associated with the given translation unit.
|
437
432
|
#
|
438
433
|
# @method get_diagnostic(unit, index)
|
@@ -442,7 +437,7 @@ module Clang
|
|
442
437
|
# via a call to \c clang_disposeDiagnostic().
|
443
438
|
# @scope class
|
444
439
|
attach_function :get_diagnostic, :clang_getDiagnostic, [:pointer, :uint], :pointer
|
445
|
-
|
440
|
+
|
446
441
|
# Destroy a diagnostic.
|
447
442
|
#
|
448
443
|
# @method dispose_diagnostic(diagnostic)
|
@@ -450,12 +445,14 @@ module Clang
|
|
450
445
|
# @return [nil]
|
451
446
|
# @scope class
|
452
447
|
attach_function :dispose_diagnostic, :clang_disposeDiagnostic, [:pointer], :void
|
453
|
-
|
448
|
+
|
454
449
|
# Options to control the display of diagnostics.
|
455
450
|
#
|
456
451
|
# The values in this enum are meant to be combined to customize the
|
457
452
|
# behavior of \c clang_displayDiagnostic().
|
458
453
|
#
|
454
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:diagnostic_display_options).</em>
|
455
|
+
#
|
459
456
|
# === Options:
|
460
457
|
# :display_source_location ::
|
461
458
|
# Display the source-location information where the
|
@@ -499,11 +496,10 @@ module Clang
|
|
499
496
|
# The category name is displayed within brackets after the diagnostic text.
|
500
497
|
# This option corresponds to the clang flag
|
501
498
|
# \c -fdiagnostics-show-category=name.
|
502
|
-
#
|
503
|
-
# @
|
504
|
-
|
505
|
-
|
506
|
-
end
|
499
|
+
#
|
500
|
+
# @method _enum_diagnostic_display_options_
|
501
|
+
# @return [Symbol]
|
502
|
+
# @scope class
|
507
503
|
enum :diagnostic_display_options, [
|
508
504
|
:display_source_location, 0x01,
|
509
505
|
:display_column, 0x02,
|
@@ -512,7 +508,7 @@ module Clang
|
|
512
508
|
:display_category_id, 0x10,
|
513
509
|
:display_category_name, 0x20
|
514
510
|
]
|
515
|
-
|
511
|
+
|
516
512
|
# Format the given diagnostic in a manner that is suitable for display.
|
517
513
|
#
|
518
514
|
# This routine will format the given diagnostic to a string, rendering
|
@@ -527,7 +523,7 @@ module Clang
|
|
527
523
|
# @return [String] A new string containing for formatted diagnostic.
|
528
524
|
# @scope class
|
529
525
|
attach_function :format_diagnostic, :clang_formatDiagnostic, [:pointer, :uint], String.by_value
|
530
|
-
|
526
|
+
|
531
527
|
# Retrieve the set of display options most similar to the
|
532
528
|
# default behavior of the clang compiler.
|
533
529
|
#
|
@@ -536,15 +532,15 @@ module Clang
|
|
536
532
|
# clang_displayDiagnostic().
|
537
533
|
# @scope class
|
538
534
|
attach_function :default_diagnostic_display_options, :clang_defaultDiagnosticDisplayOptions, [], :uint
|
539
|
-
|
535
|
+
|
540
536
|
# Determine the severity of the given diagnostic.
|
541
537
|
#
|
542
538
|
# @method get_diagnostic_severity(diagnostic)
|
543
539
|
# @param [FFI::Pointer(Diagnostic)] diagnostic
|
544
|
-
# @return [Symbol from
|
540
|
+
# @return [Symbol from _enum_diagnostic_severity_]
|
545
541
|
# @scope class
|
546
542
|
attach_function :get_diagnostic_severity, :clang_getDiagnosticSeverity, [:pointer], :diagnostic_severity
|
547
|
-
|
543
|
+
|
548
544
|
# Retrieve the source location of the given diagnostic.
|
549
545
|
#
|
550
546
|
# This location is where Clang would print the caret ('^') when
|
@@ -555,7 +551,7 @@ module Clang
|
|
555
551
|
# @return [SourceLocation]
|
556
552
|
# @scope class
|
557
553
|
attach_function :get_diagnostic_location, :clang_getDiagnosticLocation, [:pointer], SourceLocation.by_value
|
558
|
-
|
554
|
+
|
559
555
|
# Retrieve the text of the given diagnostic.
|
560
556
|
#
|
561
557
|
# @method get_diagnostic_spelling(diagnostic)
|
@@ -563,7 +559,7 @@ module Clang
|
|
563
559
|
# @return [String]
|
564
560
|
# @scope class
|
565
561
|
attach_function :get_diagnostic_spelling, :clang_getDiagnosticSpelling, [:pointer], String.by_value
|
566
|
-
|
562
|
+
|
567
563
|
# Retrieve the name of the command-line option that enabled this
|
568
564
|
# diagnostic.
|
569
565
|
#
|
@@ -575,7 +571,7 @@ module Clang
|
|
575
571
|
# warning, such as "-Wconversion" or "-pedantic".
|
576
572
|
# @scope class
|
577
573
|
attach_function :get_diagnostic_option, :clang_getDiagnosticOption, [:pointer, :pointer], String.by_value
|
578
|
-
|
574
|
+
|
579
575
|
# Retrieve the category number for this diagnostic.
|
580
576
|
#
|
581
577
|
# Diagnostics can be categorized into groups along with other, related
|
@@ -588,7 +584,7 @@ module Clang
|
|
588
584
|
# if this diagnostic is uncategorized.
|
589
585
|
# @scope class
|
590
586
|
attach_function :get_diagnostic_category, :clang_getDiagnosticCategory, [:pointer], :uint
|
591
|
-
|
587
|
+
|
592
588
|
# Retrieve the name of a particular diagnostic category.
|
593
589
|
#
|
594
590
|
# @method get_diagnostic_category_name(category)
|
@@ -597,7 +593,7 @@ module Clang
|
|
597
593
|
# @return [String] The name of the given diagnostic category.
|
598
594
|
# @scope class
|
599
595
|
attach_function :get_diagnostic_category_name, :clang_getDiagnosticCategoryName, [:uint], String.by_value
|
600
|
-
|
596
|
+
|
601
597
|
# Determine the number of source ranges associated with the given
|
602
598
|
# diagnostic.
|
603
599
|
#
|
@@ -606,7 +602,7 @@ module Clang
|
|
606
602
|
# @return [Integer]
|
607
603
|
# @scope class
|
608
604
|
attach_function :get_diagnostic_num_ranges, :clang_getDiagnosticNumRanges, [:pointer], :uint
|
609
|
-
|
605
|
+
|
610
606
|
# Retrieve a source range associated with the diagnostic.
|
611
607
|
#
|
612
608
|
# A diagnostic's source ranges highlight important elements in the source
|
@@ -619,7 +615,7 @@ module Clang
|
|
619
615
|
# @return [SourceRange] the requested source range.
|
620
616
|
# @scope class
|
621
617
|
attach_function :get_diagnostic_range, :clang_getDiagnosticRange, [:pointer, :uint], SourceRange.by_value
|
622
|
-
|
618
|
+
|
623
619
|
# Determine the number of fix-it hints associated with the
|
624
620
|
# given diagnostic.
|
625
621
|
#
|
@@ -628,7 +624,7 @@ module Clang
|
|
628
624
|
# @return [Integer]
|
629
625
|
# @scope class
|
630
626
|
attach_function :get_diagnostic_num_fix_its, :clang_getDiagnosticNumFixIts, [:pointer], :uint
|
631
|
-
|
627
|
+
|
632
628
|
# Retrieve the replacement information for a given fix-it.
|
633
629
|
#
|
634
630
|
# Fix-its are described in terms of a source range whose contents
|
@@ -652,7 +648,7 @@ module Clang
|
|
652
648
|
# code indicated by the \c ReplacementRange.
|
653
649
|
# @scope class
|
654
650
|
attach_function :get_diagnostic_fix_it, :clang_getDiagnosticFixIt, [:pointer, :uint, :pointer], String.by_value
|
655
|
-
|
651
|
+
|
656
652
|
# Get the original translation unit source file name.
|
657
653
|
#
|
658
654
|
# @method get_translation_unit_spelling(ct_unit)
|
@@ -660,7 +656,7 @@ module Clang
|
|
660
656
|
# @return [String]
|
661
657
|
# @scope class
|
662
658
|
attach_function :get_translation_unit_spelling, :clang_getTranslationUnitSpelling, [:pointer], String.by_value
|
663
|
-
|
659
|
+
|
664
660
|
# Return the CXTranslationUnit for a given source file and the provided
|
665
661
|
# command line arguments one would pass to the compiler.
|
666
662
|
#
|
@@ -698,7 +694,7 @@ module Clang
|
|
698
694
|
# @return [FFI::Pointer(TranslationUnit)]
|
699
695
|
# @scope class
|
700
696
|
attach_function :create_translation_unit_from_source_file, :clang_createTranslationUnitFromSourceFile, [:pointer, :string, :int, :pointer, :uint, :pointer], :pointer
|
701
|
-
|
697
|
+
|
702
698
|
# Create a translation unit from an AST file (-emit-ast).
|
703
699
|
#
|
704
700
|
# @method create_translation_unit(index, ast_filename)
|
@@ -707,13 +703,15 @@ module Clang
|
|
707
703
|
# @return [FFI::Pointer(TranslationUnit)]
|
708
704
|
# @scope class
|
709
705
|
attach_function :create_translation_unit, :clang_createTranslationUnit, [:pointer, :string], :pointer
|
710
|
-
|
706
|
+
|
711
707
|
# Flags that control the creation of translation units.
|
712
708
|
#
|
713
709
|
# The enumerators in this enumeration type are meant to be bitwise
|
714
710
|
# ORed together to specify which options should be used when
|
715
711
|
# constructing the translation unit.
|
716
712
|
#
|
713
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:translation_unit_flags).</em>
|
714
|
+
#
|
717
715
|
# === Options:
|
718
716
|
# :none ::
|
719
717
|
# Used to indicate that no special translation-unit options are
|
@@ -775,11 +773,10 @@ module Clang
|
|
775
773
|
# inside another macro expansion) can, in some code bases, require
|
776
774
|
# a large amount of storage to due preprocessor metaprogramming. Moreover,
|
777
775
|
# its fairly rare that this information is useful for libclang clients.
|
778
|
-
#
|
779
|
-
# @
|
780
|
-
|
781
|
-
|
782
|
-
end
|
776
|
+
#
|
777
|
+
# @method _enum_translation_unit_flags_
|
778
|
+
# @return [Symbol]
|
779
|
+
# @scope class
|
783
780
|
enum :translation_unit_flags, [
|
784
781
|
:none, 0x0,
|
785
782
|
:detailed_preprocessing_record, 0x01,
|
@@ -790,7 +787,7 @@ module Clang
|
|
790
787
|
:x_chained_pch, 0x20,
|
791
788
|
:nested_macro_expansions, 0x40
|
792
789
|
]
|
793
|
-
|
790
|
+
|
794
791
|
# Returns the set of flags that is suitable for parsing a translation
|
795
792
|
# unit that is being edited.
|
796
793
|
#
|
@@ -806,7 +803,7 @@ module Clang
|
|
806
803
|
# @return [Integer]
|
807
804
|
# @scope class
|
808
805
|
attach_function :default_editing_translation_unit_options, :clang_defaultEditingTranslationUnitOptions, [], :uint
|
809
|
-
|
806
|
+
|
810
807
|
# Parse the given source file and the translation unit corresponding
|
811
808
|
# to that file.
|
812
809
|
#
|
@@ -843,25 +840,26 @@ module Clang
|
|
843
840
|
# the compiler cannot recover, returns NULL.
|
844
841
|
# @scope class
|
845
842
|
attach_function :parse_translation_unit, :clang_parseTranslationUnit, [:pointer, :string, :pointer, :int, :pointer, :uint, :uint], :pointer
|
846
|
-
|
843
|
+
|
847
844
|
# Flags that control how translation units are saved.
|
848
845
|
#
|
849
846
|
# The enumerators in this enumeration type are meant to be bitwise
|
850
847
|
# ORed together to specify which options should be used when
|
851
848
|
# saving the translation unit.
|
852
849
|
#
|
850
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:save_translation_unit_flags).</em>
|
851
|
+
#
|
853
852
|
# === Options:
|
854
853
|
# :save_translation_unit_none ::
|
855
854
|
# Used to indicate that no special saving options are needed.
|
856
|
-
#
|
857
|
-
# @
|
858
|
-
|
859
|
-
|
860
|
-
end
|
855
|
+
#
|
856
|
+
# @method _enum_save_translation_unit_flags_
|
857
|
+
# @return [Symbol]
|
858
|
+
# @scope class
|
861
859
|
enum :save_translation_unit_flags, [
|
862
860
|
:save_translation_unit_none, 0x0
|
863
861
|
]
|
864
|
-
|
862
|
+
|
865
863
|
# Returns the set of flags that is suitable for saving a translation
|
866
864
|
# unit.
|
867
865
|
#
|
@@ -875,10 +873,12 @@ module Clang
|
|
875
873
|
# @return [Integer]
|
876
874
|
# @scope class
|
877
875
|
attach_function :default_save_options, :clang_defaultSaveOptions, [:pointer], :uint
|
878
|
-
|
876
|
+
|
879
877
|
# Describes the kind of error that occurred (if any) in a call to
|
880
878
|
# \c clang_saveTranslationUnit().
|
881
879
|
#
|
880
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:save_error).</em>
|
881
|
+
#
|
882
882
|
# === Options:
|
883
883
|
# :none ::
|
884
884
|
# Indicates that no error occurred while saving a translation unit.
|
@@ -897,18 +897,17 @@ module Clang
|
|
897
897
|
# :invalid_tu ::
|
898
898
|
# Indicates that the translation unit to be saved was somehow
|
899
899
|
# invalid (e.g., NULL).
|
900
|
-
#
|
901
|
-
# @
|
902
|
-
|
903
|
-
|
904
|
-
end
|
900
|
+
#
|
901
|
+
# @method _enum_save_error_
|
902
|
+
# @return [Symbol]
|
903
|
+
# @scope class
|
905
904
|
enum :save_error, [
|
906
905
|
:none, 0,
|
907
906
|
:unknown, 1,
|
908
907
|
:translation_errors, 2,
|
909
908
|
:invalid_tu, 3
|
910
909
|
]
|
911
|
-
|
910
|
+
|
912
911
|
# Saves a translation unit into a serialized representation of
|
913
912
|
# that translation unit on disk.
|
914
913
|
#
|
@@ -930,7 +929,7 @@ module Clang
|
|
930
929
|
# saved successfully, while a non-zero value indicates that a problem occurred.
|
931
930
|
# @scope class
|
932
931
|
attach_function :save_translation_unit, :clang_saveTranslationUnit, [:pointer, :string, :uint], :int
|
933
|
-
|
932
|
+
|
934
933
|
# Destroy the specified CXTranslationUnit object.
|
935
934
|
#
|
936
935
|
# @method dispose_translation_unit(translation_unit)
|
@@ -938,25 +937,26 @@ module Clang
|
|
938
937
|
# @return [nil]
|
939
938
|
# @scope class
|
940
939
|
attach_function :dispose_translation_unit, :clang_disposeTranslationUnit, [:pointer], :void
|
941
|
-
|
940
|
+
|
942
941
|
# Flags that control the reparsing of translation units.
|
943
942
|
#
|
944
943
|
# The enumerators in this enumeration type are meant to be bitwise
|
945
944
|
# ORed together to specify which options should be used when
|
946
945
|
# reparsing the translation unit.
|
947
946
|
#
|
947
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:reparse_flags).</em>
|
948
|
+
#
|
948
949
|
# === Options:
|
949
950
|
# :reparse_none ::
|
950
951
|
# Used to indicate that no special reparsing options are needed.
|
951
|
-
#
|
952
|
-
# @
|
953
|
-
|
954
|
-
|
955
|
-
end
|
952
|
+
#
|
953
|
+
# @method _enum_reparse_flags_
|
954
|
+
# @return [Symbol]
|
955
|
+
# @scope class
|
956
956
|
enum :reparse_flags, [
|
957
957
|
:reparse_none, 0x0
|
958
958
|
]
|
959
|
-
|
959
|
+
|
960
960
|
# Returns the set of flags that is suitable for reparsing a translation
|
961
961
|
# unit.
|
962
962
|
#
|
@@ -971,7 +971,7 @@ module Clang
|
|
971
971
|
# @return [Integer]
|
972
972
|
# @scope class
|
973
973
|
attach_function :default_reparse_options, :clang_defaultReparseOptions, [:pointer], :uint
|
974
|
-
|
974
|
+
|
975
975
|
# Reparse the source files that produced this translation unit.
|
976
976
|
#
|
977
977
|
# This routine can be used to re-parse the source files that originally
|
@@ -1007,9 +1007,11 @@ module Clang
|
|
1007
1007
|
# \c clang_disposeTranslationUnit(TU).
|
1008
1008
|
# @scope class
|
1009
1009
|
attach_function :reparse_translation_unit, :clang_reparseTranslationUnit, [:pointer, :uint, :pointer, :uint], :int
|
1010
|
-
|
1010
|
+
|
1011
1011
|
# Categorizes how memory is being used by a translation unit.
|
1012
1012
|
#
|
1013
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:tu_resource_usage_kind).</em>
|
1014
|
+
#
|
1013
1015
|
# === Options:
|
1014
1016
|
# :ast ::
|
1015
1017
|
#
|
@@ -1039,11 +1041,10 @@ module Clang
|
|
1039
1041
|
#
|
1040
1042
|
# :preprocessor_header_search ::
|
1041
1043
|
#
|
1042
|
-
#
|
1043
|
-
# @
|
1044
|
-
|
1045
|
-
|
1046
|
-
end
|
1044
|
+
#
|
1045
|
+
# @method _enum_tu_resource_usage_kind_
|
1046
|
+
# @return [Symbol]
|
1047
|
+
# @scope class
|
1047
1048
|
enum :tu_resource_usage_kind, [
|
1048
1049
|
:ast, 1,
|
1049
1050
|
:identifiers, 2,
|
@@ -1060,30 +1061,29 @@ module Clang
|
|
1060
1061
|
:source_manager_data_structures, 13,
|
1061
1062
|
:preprocessor_header_search, 14
|
1062
1063
|
]
|
1063
|
-
|
1064
|
+
|
1064
1065
|
# Returns the human-readable null-terminated C string that represents
|
1065
1066
|
# the name of the memory category. This string should never be freed.
|
1066
1067
|
#
|
1067
1068
|
# @method get_tu_resource_usage_name(kind)
|
1068
|
-
# @param [Symbol from
|
1069
|
+
# @param [Symbol from _enum_tu_resource_usage_kind_] kind
|
1069
1070
|
# @return [String]
|
1070
1071
|
# @scope class
|
1071
1072
|
attach_function :get_tu_resource_usage_name, :clang_getTUResourceUsageName, [:tu_resource_usage_kind], :string
|
1072
|
-
|
1073
|
+
|
1073
1074
|
# (Not documented)
|
1074
1075
|
#
|
1075
1076
|
# = Fields:
|
1076
1077
|
# :kind ::
|
1077
|
-
# (Symbol from
|
1078
|
+
# (Symbol from _enum_tu_resource_usage_kind_) The memory usage category.
|
1078
1079
|
# :amount ::
|
1079
1080
|
# (Integer) Amount of resources used.
|
1080
1081
|
# The units will depend on the resource kind.
|
1081
|
-
#
|
1082
1082
|
class TUResourceUsageEntry < FFI::Struct
|
1083
1083
|
layout :kind, :tu_resource_usage_kind,
|
1084
1084
|
:amount, :ulong
|
1085
1085
|
end
|
1086
|
-
|
1086
|
+
|
1087
1087
|
# The memory usage of a CXTranslationUnit, broken into categories.
|
1088
1088
|
#
|
1089
1089
|
# = Fields:
|
@@ -1094,13 +1094,12 @@ module Clang
|
|
1094
1094
|
# :entries ::
|
1095
1095
|
# (FFI::Pointer(*TUResourceUsageEntry)) An array of key-value pairs, representing the breakdown of memory
|
1096
1096
|
# usage.
|
1097
|
-
#
|
1098
1097
|
class TUResourceUsage < FFI::Struct
|
1099
1098
|
layout :data, :pointer,
|
1100
1099
|
:num_entries, :uint,
|
1101
1100
|
:entries, :pointer
|
1102
1101
|
end
|
1103
|
-
|
1102
|
+
|
1104
1103
|
# Return the memory usage of a translation unit. This object
|
1105
1104
|
# should be released with clang_disposeCXTUResourceUsage().
|
1106
1105
|
#
|
@@ -1109,7 +1108,7 @@ module Clang
|
|
1109
1108
|
# @return [TUResourceUsage]
|
1110
1109
|
# @scope class
|
1111
1110
|
attach_function :get_cxtu_resource_usage, :clang_getCXTUResourceUsage, [:pointer], TUResourceUsage.by_value
|
1112
|
-
|
1111
|
+
|
1113
1112
|
# (Not documented)
|
1114
1113
|
#
|
1115
1114
|
# @method dispose_cxtu_resource_usage(usage)
|
@@ -1117,9 +1116,11 @@ module Clang
|
|
1117
1116
|
# @return [nil]
|
1118
1117
|
# @scope class
|
1119
1118
|
attach_function :dispose_cxtu_resource_usage, :clang_disposeCXTUResourceUsage, [TUResourceUsage.by_value], :void
|
1120
|
-
|
1119
|
+
|
1121
1120
|
# Describes the kind of entity that a cursor refers to.
|
1122
1121
|
#
|
1122
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:cursor_kind).</em>
|
1123
|
+
#
|
1123
1124
|
# === Options:
|
1124
1125
|
# :unexposed_decl ::
|
1125
1126
|
# A declaration whose specific kind is not exposed via this
|
@@ -1558,11 +1559,10 @@ module Clang
|
|
1558
1559
|
#
|
1559
1560
|
# :inclusion_directive ::
|
1560
1561
|
#
|
1561
|
-
#
|
1562
|
-
# @
|
1563
|
-
|
1564
|
-
|
1565
|
-
end
|
1562
|
+
#
|
1563
|
+
# @method _enum_cursor_kind_
|
1564
|
+
# @return [Symbol]
|
1565
|
+
# @scope class
|
1566
1566
|
enum :cursor_kind, [
|
1567
1567
|
:unexposed_decl, 1,
|
1568
1568
|
:struct_decl, 2,
|
@@ -1710,7 +1710,7 @@ module Clang
|
|
1710
1710
|
:macro_expansion, 502,
|
1711
1711
|
:inclusion_directive, 503
|
1712
1712
|
]
|
1713
|
-
|
1713
|
+
|
1714
1714
|
# A cursor representing some element in the abstract syntax tree for
|
1715
1715
|
# a translation unit.
|
1716
1716
|
#
|
@@ -1730,25 +1730,24 @@ module Clang
|
|
1730
1730
|
#
|
1731
1731
|
# = Fields:
|
1732
1732
|
# :kind ::
|
1733
|
-
# (Symbol from
|
1733
|
+
# (Symbol from _enum_cursor_kind_)
|
1734
1734
|
# :xdata ::
|
1735
1735
|
# (Integer)
|
1736
1736
|
# :data ::
|
1737
1737
|
# (Array<FFI::Pointer(*Void)>)
|
1738
|
-
#
|
1739
1738
|
class Cursor < FFI::Struct
|
1740
1739
|
layout :kind, :cursor_kind,
|
1741
1740
|
:xdata, :int,
|
1742
1741
|
:data, [:pointer, 3]
|
1743
1742
|
end
|
1744
|
-
|
1743
|
+
|
1745
1744
|
# Retrieve the NULL cursor, which represents no entity.
|
1746
1745
|
#
|
1747
1746
|
# @method get_null_cursor()
|
1748
1747
|
# @return [Cursor]
|
1749
1748
|
# @scope class
|
1750
1749
|
attach_function :get_null_cursor, :clang_getNullCursor, [], Cursor.by_value
|
1751
|
-
|
1750
|
+
|
1752
1751
|
# Retrieve the cursor that represents the given translation unit.
|
1753
1752
|
#
|
1754
1753
|
# The translation unit cursor can be used to start traversing the
|
@@ -1759,7 +1758,7 @@ module Clang
|
|
1759
1758
|
# @return [Cursor]
|
1760
1759
|
# @scope class
|
1761
1760
|
attach_function :get_translation_unit_cursor, :clang_getTranslationUnitCursor, [:pointer], Cursor.by_value
|
1762
|
-
|
1761
|
+
|
1763
1762
|
# Determine whether two cursors are equivalent.
|
1764
1763
|
#
|
1765
1764
|
# @method equal_cursors(cursor, cursor)
|
@@ -1768,7 +1767,7 @@ module Clang
|
|
1768
1767
|
# @return [Integer]
|
1769
1768
|
# @scope class
|
1770
1769
|
attach_function :equal_cursors, :clang_equalCursors, [Cursor.by_value, Cursor.by_value], :uint
|
1771
|
-
|
1770
|
+
|
1772
1771
|
# Returns non-zero if \arg cursor is null.
|
1773
1772
|
#
|
1774
1773
|
# @method cursor_is_null(cursor)
|
@@ -1776,7 +1775,7 @@ module Clang
|
|
1776
1775
|
# @return [Integer]
|
1777
1776
|
# @scope class
|
1778
1777
|
attach_function :cursor_is_null, :clang_Cursor_isNull, [Cursor.by_value], :int
|
1779
|
-
|
1778
|
+
|
1780
1779
|
# Compute a hash value for the given cursor.
|
1781
1780
|
#
|
1782
1781
|
# @method hash_cursor(cursor)
|
@@ -1784,23 +1783,23 @@ module Clang
|
|
1784
1783
|
# @return [Integer]
|
1785
1784
|
# @scope class
|
1786
1785
|
attach_function :hash_cursor, :clang_hashCursor, [Cursor.by_value], :uint
|
1787
|
-
|
1786
|
+
|
1788
1787
|
# Retrieve the kind of the given cursor.
|
1789
1788
|
#
|
1790
1789
|
# @method get_cursor_kind(cursor)
|
1791
1790
|
# @param [Cursor] cursor
|
1792
|
-
# @return [Symbol from
|
1791
|
+
# @return [Symbol from _enum_cursor_kind_]
|
1793
1792
|
# @scope class
|
1794
1793
|
attach_function :get_cursor_kind, :clang_getCursorKind, [Cursor.by_value], :cursor_kind
|
1795
|
-
|
1794
|
+
|
1796
1795
|
# Determine whether the given cursor kind represents a declaration.
|
1797
1796
|
#
|
1798
1797
|
# @method is_declaration(cursor_kind)
|
1799
|
-
# @param [Symbol from
|
1798
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1800
1799
|
# @return [Integer]
|
1801
1800
|
# @scope class
|
1802
1801
|
attach_function :is_declaration, :clang_isDeclaration, [:cursor_kind], :uint
|
1803
|
-
|
1802
|
+
|
1804
1803
|
# Determine whether the given cursor kind represents a simple
|
1805
1804
|
# reference.
|
1806
1805
|
#
|
@@ -1809,73 +1808,75 @@ module Clang
|
|
1809
1808
|
# particular cursor refers to another entity.
|
1810
1809
|
#
|
1811
1810
|
# @method is_reference(cursor_kind)
|
1812
|
-
# @param [Symbol from
|
1811
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1813
1812
|
# @return [Integer]
|
1814
1813
|
# @scope class
|
1815
1814
|
attach_function :is_reference, :clang_isReference, [:cursor_kind], :uint
|
1816
|
-
|
1815
|
+
|
1817
1816
|
# Determine whether the given cursor kind represents an expression.
|
1818
1817
|
#
|
1819
1818
|
# @method is_expression(cursor_kind)
|
1820
|
-
# @param [Symbol from
|
1819
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1821
1820
|
# @return [Integer]
|
1822
1821
|
# @scope class
|
1823
1822
|
attach_function :is_expression, :clang_isExpression, [:cursor_kind], :uint
|
1824
|
-
|
1823
|
+
|
1825
1824
|
# Determine whether the given cursor kind represents a statement.
|
1826
1825
|
#
|
1827
1826
|
# @method is_statement(cursor_kind)
|
1828
|
-
# @param [Symbol from
|
1827
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1829
1828
|
# @return [Integer]
|
1830
1829
|
# @scope class
|
1831
1830
|
attach_function :is_statement, :clang_isStatement, [:cursor_kind], :uint
|
1832
|
-
|
1831
|
+
|
1833
1832
|
# Determine whether the given cursor kind represents an attribute.
|
1834
1833
|
#
|
1835
1834
|
# @method is_attribute(cursor_kind)
|
1836
|
-
# @param [Symbol from
|
1835
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1837
1836
|
# @return [Integer]
|
1838
1837
|
# @scope class
|
1839
1838
|
attach_function :is_attribute, :clang_isAttribute, [:cursor_kind], :uint
|
1840
|
-
|
1839
|
+
|
1841
1840
|
# Determine whether the given cursor kind represents an invalid
|
1842
1841
|
# cursor.
|
1843
1842
|
#
|
1844
1843
|
# @method is_invalid(cursor_kind)
|
1845
|
-
# @param [Symbol from
|
1844
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1846
1845
|
# @return [Integer]
|
1847
1846
|
# @scope class
|
1848
1847
|
attach_function :is_invalid, :clang_isInvalid, [:cursor_kind], :uint
|
1849
|
-
|
1848
|
+
|
1850
1849
|
# Determine whether the given cursor kind represents a translation
|
1851
1850
|
# unit.
|
1852
1851
|
#
|
1853
1852
|
# @method is_translation_unit(cursor_kind)
|
1854
|
-
# @param [Symbol from
|
1853
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1855
1854
|
# @return [Integer]
|
1856
1855
|
# @scope class
|
1857
1856
|
attach_function :is_translation_unit, :clang_isTranslationUnit, [:cursor_kind], :uint
|
1858
|
-
|
1857
|
+
|
1859
1858
|
# Determine whether the given cursor represents a preprocessing
|
1860
1859
|
# element, such as a preprocessor directive or macro instantiation.
|
1861
1860
|
#
|
1862
1861
|
# @method is_preprocessing(cursor_kind)
|
1863
|
-
# @param [Symbol from
|
1862
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1864
1863
|
# @return [Integer]
|
1865
1864
|
# @scope class
|
1866
1865
|
attach_function :is_preprocessing, :clang_isPreprocessing, [:cursor_kind], :uint
|
1867
|
-
|
1866
|
+
|
1868
1867
|
# Determine whether the given cursor represents a currently
|
1869
1868
|
# unexposed piece of the AST (e.g., CXCursor_UnexposedStmt).
|
1870
1869
|
#
|
1871
1870
|
# @method is_unexposed(cursor_kind)
|
1872
|
-
# @param [Symbol from
|
1871
|
+
# @param [Symbol from _enum_cursor_kind_] cursor_kind
|
1873
1872
|
# @return [Integer]
|
1874
1873
|
# @scope class
|
1875
1874
|
attach_function :is_unexposed, :clang_isUnexposed, [:cursor_kind], :uint
|
1876
|
-
|
1875
|
+
|
1877
1876
|
# Describe the linkage of the entity referred to by a cursor.
|
1878
1877
|
#
|
1878
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:linkage_kind).</em>
|
1879
|
+
#
|
1879
1880
|
# === Options:
|
1880
1881
|
# :invalid ::
|
1881
1882
|
# This value indicates that no linkage information is available
|
@@ -1890,11 +1891,10 @@ module Clang
|
|
1890
1891
|
# in C++ anonymous namespaces.
|
1891
1892
|
# :external ::
|
1892
1893
|
# This is the linkage for entities with true, external linkage.
|
1893
|
-
#
|
1894
|
-
# @
|
1895
|
-
|
1896
|
-
|
1897
|
-
end
|
1894
|
+
#
|
1895
|
+
# @method _enum_linkage_kind_
|
1896
|
+
# @return [Symbol]
|
1897
|
+
# @scope class
|
1898
1898
|
enum :linkage_kind, [
|
1899
1899
|
:invalid,
|
1900
1900
|
:no_linkage,
|
@@ -1902,25 +1902,27 @@ module Clang
|
|
1902
1902
|
:unique_external,
|
1903
1903
|
:external
|
1904
1904
|
]
|
1905
|
-
|
1905
|
+
|
1906
1906
|
# Determine the linkage of the entity referred to by a given cursor.
|
1907
1907
|
#
|
1908
1908
|
# @method get_cursor_linkage(cursor)
|
1909
1909
|
# @param [Cursor] cursor
|
1910
|
-
# @return [Symbol from
|
1910
|
+
# @return [Symbol from _enum_linkage_kind_]
|
1911
1911
|
# @scope class
|
1912
1912
|
attach_function :get_cursor_linkage, :clang_getCursorLinkage, [Cursor.by_value], :linkage_kind
|
1913
|
-
|
1913
|
+
|
1914
1914
|
# Determine the availability of the entity that this cursor refers to.
|
1915
1915
|
#
|
1916
1916
|
# @method get_cursor_availability(cursor)
|
1917
1917
|
# @param [Cursor] cursor The cursor to query.
|
1918
|
-
# @return [Symbol from
|
1918
|
+
# @return [Symbol from _enum_availability_kind_] The availability of the cursor.
|
1919
1919
|
# @scope class
|
1920
1920
|
attach_function :get_cursor_availability, :clang_getCursorAvailability, [Cursor.by_value], :availability_kind
|
1921
|
-
|
1921
|
+
|
1922
1922
|
# Describe the "language" of the entity referred to by a cursor.
|
1923
1923
|
#
|
1924
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:language_kind).</em>
|
1925
|
+
#
|
1924
1926
|
# === Options:
|
1925
1927
|
# :invalid ::
|
1926
1928
|
#
|
@@ -1930,26 +1932,25 @@ module Clang
|
|
1930
1932
|
#
|
1931
1933
|
# :c_plus_plus ::
|
1932
1934
|
#
|
1933
|
-
#
|
1934
|
-
# @
|
1935
|
-
|
1936
|
-
|
1937
|
-
end
|
1935
|
+
#
|
1936
|
+
# @method _enum_language_kind_
|
1937
|
+
# @return [Symbol]
|
1938
|
+
# @scope class
|
1938
1939
|
enum :language_kind, [
|
1939
1940
|
:invalid, 0,
|
1940
1941
|
:c,
|
1941
1942
|
:obj_c,
|
1942
1943
|
:c_plus_plus
|
1943
1944
|
]
|
1944
|
-
|
1945
|
+
|
1945
1946
|
# Determine the "language" of the entity referred to by a given cursor.
|
1946
1947
|
#
|
1947
1948
|
# @method get_cursor_language(cursor)
|
1948
1949
|
# @param [Cursor] cursor
|
1949
|
-
# @return [Symbol from
|
1950
|
+
# @return [Symbol from _enum_language_kind_]
|
1950
1951
|
# @scope class
|
1951
1952
|
attach_function :get_cursor_language, :clang_getCursorLanguage, [Cursor.by_value], :language_kind
|
1952
|
-
|
1953
|
+
|
1953
1954
|
# Returns the translation unit that a cursor originated from.
|
1954
1955
|
#
|
1955
1956
|
# @method cursor_get_translation_unit(cursor)
|
@@ -1957,21 +1958,18 @@ module Clang
|
|
1957
1958
|
# @return [FFI::Pointer(TranslationUnit)]
|
1958
1959
|
# @scope class
|
1959
1960
|
attach_function :cursor_get_translation_unit, :clang_Cursor_getTranslationUnit, [Cursor.by_value], :pointer
|
1960
|
-
|
1961
|
+
|
1961
1962
|
# A fast container representing a set of CXCursors.
|
1962
|
-
#
|
1963
|
-
# = Fields:
|
1964
|
-
#
|
1965
1963
|
class CursorSetImpl < FFI::Struct
|
1966
1964
|
end
|
1967
|
-
|
1965
|
+
|
1968
1966
|
# Creates an empty CXCursorSet.
|
1969
1967
|
#
|
1970
1968
|
# @method create_cx_cursor_set()
|
1971
1969
|
# @return [FFI::Pointer(CursorSet)]
|
1972
1970
|
# @scope class
|
1973
1971
|
attach_function :create_cx_cursor_set, :clang_createCXCursorSet, [], :pointer
|
1974
|
-
|
1972
|
+
|
1975
1973
|
# Disposes a CXCursorSet and releases its associated memory.
|
1976
1974
|
#
|
1977
1975
|
# @method dispose_cx_cursor_set(cset)
|
@@ -1979,7 +1977,7 @@ module Clang
|
|
1979
1977
|
# @return [nil]
|
1980
1978
|
# @scope class
|
1981
1979
|
attach_function :dispose_cx_cursor_set, :clang_disposeCXCursorSet, [:pointer], :void
|
1982
|
-
|
1980
|
+
|
1983
1981
|
# Queries a CXCursorSet to see if it contains a specific CXCursor.
|
1984
1982
|
#
|
1985
1983
|
# @method cx_cursor_set_contains(cset, cursor)
|
@@ -1988,7 +1986,7 @@ module Clang
|
|
1988
1986
|
# @return [Integer] non-zero if the set contains the specified cursor.
|
1989
1987
|
# @scope class
|
1990
1988
|
attach_function :cx_cursor_set_contains, :clang_CXCursorSet_contains, [:pointer, Cursor.by_value], :uint
|
1991
|
-
|
1989
|
+
|
1992
1990
|
# Inserts a CXCursor into a CXCursorSet.
|
1993
1991
|
#
|
1994
1992
|
# @method cx_cursor_set_insert(cset, cursor)
|
@@ -1997,7 +1995,7 @@ module Clang
|
|
1997
1995
|
# @return [Integer] zero if the CXCursor was already in the set, and non-zero otherwise.
|
1998
1996
|
# @scope class
|
1999
1997
|
attach_function :cx_cursor_set_insert, :clang_CXCursorSet_insert, [:pointer, Cursor.by_value], :uint
|
2000
|
-
|
1998
|
+
|
2001
1999
|
# Determine the semantic parent of the given cursor.
|
2002
2000
|
#
|
2003
2001
|
# The semantic parent of a cursor is the cursor that semantically contains
|
@@ -2035,7 +2033,7 @@ module Clang
|
|
2035
2033
|
# @return [Cursor]
|
2036
2034
|
# @scope class
|
2037
2035
|
attach_function :get_cursor_semantic_parent, :clang_getCursorSemanticParent, [Cursor.by_value], Cursor.by_value
|
2038
|
-
|
2036
|
+
|
2039
2037
|
# Determine the lexical parent of the given cursor.
|
2040
2038
|
#
|
2041
2039
|
# The lexical parent of a cursor is the cursor in which the given \p cursor
|
@@ -2074,7 +2072,7 @@ module Clang
|
|
2074
2072
|
# @return [Cursor]
|
2075
2073
|
# @scope class
|
2076
2074
|
attach_function :get_cursor_lexical_parent, :clang_getCursorLexicalParent, [Cursor.by_value], Cursor.by_value
|
2077
|
-
|
2075
|
+
|
2078
2076
|
# Determine the set of methods that are overridden by the given
|
2079
2077
|
# method.
|
2080
2078
|
#
|
@@ -2117,7 +2115,7 @@ module Clang
|
|
2117
2115
|
# @return [nil]
|
2118
2116
|
# @scope class
|
2119
2117
|
attach_function :get_overridden_cursors, :clang_getOverriddenCursors, [Cursor.by_value, :pointer, :pointer], :void
|
2120
|
-
|
2118
|
+
|
2121
2119
|
# Free the set of overridden cursors returned by \c
|
2122
2120
|
# clang_getOverriddenCursors().
|
2123
2121
|
#
|
@@ -2126,7 +2124,7 @@ module Clang
|
|
2126
2124
|
# @return [nil]
|
2127
2125
|
# @scope class
|
2128
2126
|
attach_function :dispose_overridden_cursors, :clang_disposeOverriddenCursors, [:pointer], :void
|
2129
|
-
|
2127
|
+
|
2130
2128
|
# Retrieve the file that is included by the given inclusion directive
|
2131
2129
|
# cursor.
|
2132
2130
|
#
|
@@ -2135,7 +2133,7 @@ module Clang
|
|
2135
2133
|
# @return [FFI::Pointer(File)]
|
2136
2134
|
# @scope class
|
2137
2135
|
attach_function :get_included_file, :clang_getIncludedFile, [Cursor.by_value], :pointer
|
2138
|
-
|
2136
|
+
|
2139
2137
|
# Map a source location to the cursor that describes the entity at that
|
2140
2138
|
# location in the source code.
|
2141
2139
|
#
|
@@ -2154,7 +2152,7 @@ module Clang
|
|
2154
2152
|
# a NULL cursor if no such entity can be found.
|
2155
2153
|
# @scope class
|
2156
2154
|
attach_function :get_cursor, :clang_getCursor, [:pointer, SourceLocation.by_value], Cursor.by_value
|
2157
|
-
|
2155
|
+
|
2158
2156
|
# Retrieve the physical location of the source constructor referenced
|
2159
2157
|
# by the given cursor.
|
2160
2158
|
#
|
@@ -2169,7 +2167,7 @@ module Clang
|
|
2169
2167
|
# @return [SourceLocation]
|
2170
2168
|
# @scope class
|
2171
2169
|
attach_function :get_cursor_location, :clang_getCursorLocation, [Cursor.by_value], SourceLocation.by_value
|
2172
|
-
|
2170
|
+
|
2173
2171
|
# Retrieve the physical extent of the source construct referenced by
|
2174
2172
|
# the given cursor.
|
2175
2173
|
#
|
@@ -2185,9 +2183,11 @@ module Clang
|
|
2185
2183
|
# @return [SourceRange]
|
2186
2184
|
# @scope class
|
2187
2185
|
attach_function :get_cursor_extent, :clang_getCursorExtent, [Cursor.by_value], SourceRange.by_value
|
2188
|
-
|
2186
|
+
|
2189
2187
|
# Describes the kind of type
|
2190
2188
|
#
|
2189
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:type_kind).</em>
|
2190
|
+
#
|
2191
2191
|
# === Options:
|
2192
2192
|
# :invalid ::
|
2193
2193
|
# Reprents an invalid type (e.g., where no type is available).
|
@@ -2276,11 +2276,10 @@ module Clang
|
|
2276
2276
|
#
|
2277
2277
|
# :constant_array ::
|
2278
2278
|
#
|
2279
|
-
#
|
2280
|
-
# @
|
2281
|
-
|
2282
|
-
|
2283
|
-
end
|
2279
|
+
#
|
2280
|
+
# @method _enum_type_kind_
|
2281
|
+
# @return [Symbol]
|
2282
|
+
# @scope class
|
2284
2283
|
enum :type_kind, [
|
2285
2284
|
:invalid, 0,
|
2286
2285
|
:unexposed, 1,
|
@@ -2326,20 +2325,19 @@ module Clang
|
|
2326
2325
|
:function_proto, 111,
|
2327
2326
|
:constant_array, 112
|
2328
2327
|
]
|
2329
|
-
|
2328
|
+
|
2330
2329
|
# The type of an element in the abstract syntax tree.
|
2331
2330
|
#
|
2332
2331
|
# = Fields:
|
2333
2332
|
# :kind ::
|
2334
|
-
# (Symbol from
|
2333
|
+
# (Symbol from _enum_type_kind_)
|
2335
2334
|
# :data ::
|
2336
2335
|
# (Array<FFI::Pointer(*Void)>)
|
2337
|
-
#
|
2338
2336
|
class Type < FFI::Struct
|
2339
2337
|
layout :kind, :type_kind,
|
2340
2338
|
:data, [:pointer, 2]
|
2341
2339
|
end
|
2342
|
-
|
2340
|
+
|
2343
2341
|
# Retrieve the type of a CXCursor (if any).
|
2344
2342
|
#
|
2345
2343
|
# @method get_cursor_type(c)
|
@@ -2347,7 +2345,7 @@ module Clang
|
|
2347
2345
|
# @return [Type]
|
2348
2346
|
# @scope class
|
2349
2347
|
attach_function :get_cursor_type, :clang_getCursorType, [Cursor.by_value], Type.by_value
|
2350
|
-
|
2348
|
+
|
2351
2349
|
# Determine whether two CXTypes represent the same type.
|
2352
2350
|
#
|
2353
2351
|
# @method equal_types(a, b)
|
@@ -2357,7 +2355,7 @@ module Clang
|
|
2357
2355
|
# zero otherwise.
|
2358
2356
|
# @scope class
|
2359
2357
|
attach_function :equal_types, :clang_equalTypes, [Type.by_value, Type.by_value], :uint
|
2360
|
-
|
2358
|
+
|
2361
2359
|
# Return the canonical type for a CXType.
|
2362
2360
|
#
|
2363
2361
|
# Clang's type system explicitly models typedefs and all the ways
|
@@ -2370,7 +2368,7 @@ module Clang
|
|
2370
2368
|
# @return [Type]
|
2371
2369
|
# @scope class
|
2372
2370
|
attach_function :get_canonical_type, :clang_getCanonicalType, [Type.by_value], Type.by_value
|
2373
|
-
|
2371
|
+
|
2374
2372
|
# Determine whether a CXType has the "const" qualifier set,
|
2375
2373
|
# without looking through typedefs that may have added "const" at a different level.
|
2376
2374
|
#
|
@@ -2379,7 +2377,7 @@ module Clang
|
|
2379
2377
|
# @return [Integer]
|
2380
2378
|
# @scope class
|
2381
2379
|
attach_function :is_const_qualified_type, :clang_isConstQualifiedType, [Type.by_value], :uint
|
2382
|
-
|
2380
|
+
|
2383
2381
|
# Determine whether a CXType has the "volatile" qualifier set,
|
2384
2382
|
# without looking through typedefs that may have added "volatile" at a different level.
|
2385
2383
|
#
|
@@ -2388,7 +2386,7 @@ module Clang
|
|
2388
2386
|
# @return [Integer]
|
2389
2387
|
# @scope class
|
2390
2388
|
attach_function :is_volatile_qualified_type, :clang_isVolatileQualifiedType, [Type.by_value], :uint
|
2391
|
-
|
2389
|
+
|
2392
2390
|
# Determine whether a CXType has the "restrict" qualifier set,
|
2393
2391
|
# without looking through typedefs that may have added "restrict" at a different level.
|
2394
2392
|
#
|
@@ -2397,7 +2395,7 @@ module Clang
|
|
2397
2395
|
# @return [Integer]
|
2398
2396
|
# @scope class
|
2399
2397
|
attach_function :is_restrict_qualified_type, :clang_isRestrictQualifiedType, [Type.by_value], :uint
|
2400
|
-
|
2398
|
+
|
2401
2399
|
# For pointer types, returns the type of the pointee.
|
2402
2400
|
#
|
2403
2401
|
# @method get_pointee_type(t)
|
@@ -2405,7 +2403,7 @@ module Clang
|
|
2405
2403
|
# @return [Type]
|
2406
2404
|
# @scope class
|
2407
2405
|
attach_function :get_pointee_type, :clang_getPointeeType, [Type.by_value], Type.by_value
|
2408
|
-
|
2406
|
+
|
2409
2407
|
# Return the cursor for the declaration of the given type.
|
2410
2408
|
#
|
2411
2409
|
# @method get_type_declaration(t)
|
@@ -2413,7 +2411,7 @@ module Clang
|
|
2413
2411
|
# @return [Cursor]
|
2414
2412
|
# @scope class
|
2415
2413
|
attach_function :get_type_declaration, :clang_getTypeDeclaration, [Type.by_value], Cursor.by_value
|
2416
|
-
|
2414
|
+
|
2417
2415
|
# Returns the Objective-C type encoding for the specified declaration.
|
2418
2416
|
#
|
2419
2417
|
# @method get_decl_obj_c_type_encoding(c)
|
@@ -2421,15 +2419,15 @@ module Clang
|
|
2421
2419
|
# @return [String]
|
2422
2420
|
# @scope class
|
2423
2421
|
attach_function :get_decl_obj_c_type_encoding, :clang_getDeclObjCTypeEncoding, [Cursor.by_value], String.by_value
|
2424
|
-
|
2422
|
+
|
2425
2423
|
# Retrieve the spelling of a given CXTypeKind.
|
2426
2424
|
#
|
2427
2425
|
# @method get_type_kind_spelling(k)
|
2428
|
-
# @param [Symbol from
|
2426
|
+
# @param [Symbol from _enum_type_kind_] k
|
2429
2427
|
# @return [String]
|
2430
2428
|
# @scope class
|
2431
2429
|
attach_function :get_type_kind_spelling, :clang_getTypeKindSpelling, [:type_kind], String.by_value
|
2432
|
-
|
2430
|
+
|
2433
2431
|
# Retrieve the result type associated with a function type.
|
2434
2432
|
#
|
2435
2433
|
# @method get_result_type(t)
|
@@ -2437,7 +2435,7 @@ module Clang
|
|
2437
2435
|
# @return [Type]
|
2438
2436
|
# @scope class
|
2439
2437
|
attach_function :get_result_type, :clang_getResultType, [Type.by_value], Type.by_value
|
2440
|
-
|
2438
|
+
|
2441
2439
|
# Retrieve the result type associated with a given cursor. This only
|
2442
2440
|
# returns a valid type of the cursor refers to a function or method.
|
2443
2441
|
#
|
@@ -2446,7 +2444,7 @@ module Clang
|
|
2446
2444
|
# @return [Type]
|
2447
2445
|
# @scope class
|
2448
2446
|
attach_function :get_cursor_result_type, :clang_getCursorResultType, [Cursor.by_value], Type.by_value
|
2449
|
-
|
2447
|
+
|
2450
2448
|
# Return 1 if the CXType is a POD (plain old data) type, and 0
|
2451
2449
|
# otherwise.
|
2452
2450
|
#
|
@@ -2455,7 +2453,7 @@ module Clang
|
|
2455
2453
|
# @return [Integer]
|
2456
2454
|
# @scope class
|
2457
2455
|
attach_function :is_pod_type, :clang_isPODType, [Type.by_value], :uint
|
2458
|
-
|
2456
|
+
|
2459
2457
|
# Return the element type of an array type.
|
2460
2458
|
#
|
2461
2459
|
# If a non-array type is passed in, an invalid type is returned.
|
@@ -2465,7 +2463,7 @@ module Clang
|
|
2465
2463
|
# @return [Type]
|
2466
2464
|
# @scope class
|
2467
2465
|
attach_function :get_array_element_type, :clang_getArrayElementType, [Type.by_value], Type.by_value
|
2468
|
-
|
2466
|
+
|
2469
2467
|
# Return the the array size of a constant array.
|
2470
2468
|
#
|
2471
2469
|
# If a non-array type is passed in, -1 is returned.
|
@@ -2475,7 +2473,7 @@ module Clang
|
|
2475
2473
|
# @return [Integer]
|
2476
2474
|
# @scope class
|
2477
2475
|
attach_function :get_array_size, :clang_getArraySize, [Type.by_value], :long_long
|
2478
|
-
|
2476
|
+
|
2479
2477
|
# Returns 1 if the base class specified by the cursor with kind
|
2480
2478
|
# CX_CXXBaseSpecifier is virtual.
|
2481
2479
|
#
|
@@ -2484,10 +2482,12 @@ module Clang
|
|
2484
2482
|
# @return [Integer]
|
2485
2483
|
# @scope class
|
2486
2484
|
attach_function :is_virtual_base, :clang_isVirtualBase, [Cursor.by_value], :uint
|
2487
|
-
|
2485
|
+
|
2488
2486
|
# Represents the C++ access control level to a base class for a
|
2489
2487
|
# cursor with kind CX_CXXBaseSpecifier.
|
2490
2488
|
#
|
2489
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:cxx_access_specifier).</em>
|
2490
|
+
#
|
2491
2491
|
# === Options:
|
2492
2492
|
# :x_invalid_access_specifier ::
|
2493
2493
|
#
|
@@ -2497,28 +2497,27 @@ module Clang
|
|
2497
2497
|
#
|
2498
2498
|
# :x_private ::
|
2499
2499
|
#
|
2500
|
-
#
|
2501
|
-
# @
|
2502
|
-
|
2503
|
-
|
2504
|
-
end
|
2500
|
+
#
|
2501
|
+
# @method _enum_cxx_access_specifier_
|
2502
|
+
# @return [Symbol]
|
2503
|
+
# @scope class
|
2505
2504
|
enum :cxx_access_specifier, [
|
2506
2505
|
:x_invalid_access_specifier,
|
2507
2506
|
:x_public,
|
2508
2507
|
:x_protected,
|
2509
2508
|
:x_private
|
2510
2509
|
]
|
2511
|
-
|
2510
|
+
|
2512
2511
|
# Returns the access control level for the C++ base specifier
|
2513
2512
|
# represented by a cursor with kind CXCursor_CXXBaseSpecifier or
|
2514
2513
|
# CXCursor_AccessSpecifier.
|
2515
2514
|
#
|
2516
2515
|
# @method get_cxx_access_specifier(cursor)
|
2517
2516
|
# @param [Cursor] cursor
|
2518
|
-
# @return [Symbol from
|
2517
|
+
# @return [Symbol from _enum_cxx_access_specifier_]
|
2519
2518
|
# @scope class
|
2520
2519
|
attach_function :get_cxx_access_specifier, :clang_getCXXAccessSpecifier, [Cursor.by_value], :cxx_access_specifier
|
2521
|
-
|
2520
|
+
|
2522
2521
|
# Determine the number of overloaded declarations referenced by a
|
2523
2522
|
# \c CXCursor_OverloadedDeclRef cursor.
|
2524
2523
|
#
|
@@ -2528,7 +2527,7 @@ module Clang
|
|
2528
2527
|
# is not a \c CXCursor_OverloadedDeclRef cursor, returns 0.
|
2529
2528
|
# @scope class
|
2530
2529
|
attach_function :get_num_overloaded_decls, :clang_getNumOverloadedDecls, [Cursor.by_value], :uint
|
2531
|
-
|
2530
|
+
|
2532
2531
|
# Retrieve a cursor for one of the overloaded declarations referenced
|
2533
2532
|
# by a \c CXCursor_OverloadedDeclRef cursor.
|
2534
2533
|
#
|
@@ -2542,7 +2541,7 @@ module Clang
|
|
2542
2541
|
# returns \c clang_getNullCursor();
|
2543
2542
|
# @scope class
|
2544
2543
|
attach_function :get_overloaded_decl, :clang_getOverloadedDecl, [Cursor.by_value, :uint], Cursor.by_value
|
2545
|
-
|
2544
|
+
|
2546
2545
|
# For cursors representing an iboutletcollection attribute,
|
2547
2546
|
# this function returns the collection element type.
|
2548
2547
|
#
|
@@ -2551,13 +2550,15 @@ module Clang
|
|
2551
2550
|
# @return [Type]
|
2552
2551
|
# @scope class
|
2553
2552
|
attach_function :get_ib_outlet_collection_type, :clang_getIBOutletCollectionType, [Cursor.by_value], Type.by_value
|
2554
|
-
|
2553
|
+
|
2555
2554
|
# Describes how the traversal of the children of a particular
|
2556
2555
|
# cursor should proceed after visiting a particular child cursor.
|
2557
2556
|
#
|
2558
2557
|
# A value of this enumeration type should be returned by each
|
2559
2558
|
# \c CXCursorVisitor to indicate how clang_visitChildren() proceed.
|
2560
2559
|
#
|
2560
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:child_visit_result).</em>
|
2561
|
+
#
|
2561
2562
|
# === Options:
|
2562
2563
|
# :break ::
|
2563
2564
|
# Terminates the cursor traversal.
|
@@ -2567,19 +2568,16 @@ module Clang
|
|
2567
2568
|
# :recurse ::
|
2568
2569
|
# Recursively traverse the children of this cursor, using
|
2569
2570
|
# the same visitor and client data.
|
2570
|
-
#
|
2571
|
-
# @
|
2572
|
-
|
2573
|
-
|
2574
|
-
end
|
2571
|
+
#
|
2572
|
+
# @method _enum_child_visit_result_
|
2573
|
+
# @return [Symbol]
|
2574
|
+
# @scope class
|
2575
2575
|
enum :child_visit_result, [
|
2576
2576
|
:break,
|
2577
2577
|
:continue,
|
2578
2578
|
:recurse
|
2579
2579
|
]
|
2580
|
-
|
2581
|
-
# <em>This is no real method. This entry is only for documentation of the callback.</em>
|
2582
|
-
#
|
2580
|
+
|
2583
2581
|
# Visitor invoked for each cursor found by a traversal.
|
2584
2582
|
#
|
2585
2583
|
# This visitor function will be invoked for each cursor found by
|
@@ -2591,14 +2589,16 @@ module Clang
|
|
2591
2589
|
# The visitor should return one of the \c CXChildVisitResult values
|
2592
2590
|
# to direct clang_visitCursorChildren().
|
2593
2591
|
#
|
2594
|
-
#
|
2592
|
+
# <em>This entry is only for documentation and no real method.</em>
|
2593
|
+
#
|
2594
|
+
# @method _callback_cursor_visitor_(cursor, parent, client_data)
|
2595
2595
|
# @param [Cursor] cursor
|
2596
2596
|
# @param [Cursor] parent
|
2597
2597
|
# @param [FFI::Pointer(ClientData)] client_data
|
2598
|
-
# @return [Symbol from
|
2598
|
+
# @return [Symbol from _enum_child_visit_result_]
|
2599
2599
|
# @scope class
|
2600
2600
|
callback :cursor_visitor, [Cursor.by_value, Cursor.by_value, :pointer], :child_visit_result
|
2601
|
-
|
2601
|
+
|
2602
2602
|
# Visit the children of a particular cursor.
|
2603
2603
|
#
|
2604
2604
|
# This function visits all the direct children of the given cursor,
|
@@ -2611,7 +2611,7 @@ module Clang
|
|
2611
2611
|
# @param [Cursor] parent the cursor whose child may be visited. All kinds of
|
2612
2612
|
# cursors can be visited, including invalid cursors (which, by
|
2613
2613
|
# definition, have no children).
|
2614
|
-
# @param [Proc(
|
2614
|
+
# @param [Proc(_callback_cursor_visitor_)] visitor the visitor function that will be invoked for each
|
2615
2615
|
# child of \p parent.
|
2616
2616
|
# @param [FFI::Pointer(ClientData)] client_data pointer data supplied by the client, which will
|
2617
2617
|
# be passed to the visitor each time it is invoked.
|
@@ -2619,7 +2619,7 @@ module Clang
|
|
2619
2619
|
# prematurely by the visitor returning \c CXChildVisit_Break.
|
2620
2620
|
# @scope class
|
2621
2621
|
attach_function :visit_children, :clang_visitChildren, [Cursor.by_value, :cursor_visitor, :pointer], :uint
|
2622
|
-
|
2622
|
+
|
2623
2623
|
# Retrieve a Unified Symbol Resolution (USR) for the entity referenced
|
2624
2624
|
# by the given cursor.
|
2625
2625
|
#
|
@@ -2633,7 +2633,7 @@ module Clang
|
|
2633
2633
|
# @return [String]
|
2634
2634
|
# @scope class
|
2635
2635
|
attach_function :get_cursor_usr, :clang_getCursorUSR, [Cursor.by_value], String.by_value
|
2636
|
-
|
2636
|
+
|
2637
2637
|
# Construct a USR for a specified Objective-C class.
|
2638
2638
|
#
|
2639
2639
|
# @method construct_usr_obj_c_class(class_name)
|
@@ -2641,7 +2641,7 @@ module Clang
|
|
2641
2641
|
# @return [String]
|
2642
2642
|
# @scope class
|
2643
2643
|
attach_function :construct_usr_obj_c_class, :clang_constructUSR_ObjCClass, [:string], String.by_value
|
2644
|
-
|
2644
|
+
|
2645
2645
|
# Construct a USR for a specified Objective-C category.
|
2646
2646
|
#
|
2647
2647
|
# @method construct_usr_obj_c_category(class_name, category_name)
|
@@ -2650,7 +2650,7 @@ module Clang
|
|
2650
2650
|
# @return [String]
|
2651
2651
|
# @scope class
|
2652
2652
|
attach_function :construct_usr_obj_c_category, :clang_constructUSR_ObjCCategory, [:string, :string], String.by_value
|
2653
|
-
|
2653
|
+
|
2654
2654
|
# Construct a USR for a specified Objective-C protocol.
|
2655
2655
|
#
|
2656
2656
|
# @method construct_usr_obj_c_protocol(protocol_name)
|
@@ -2658,7 +2658,7 @@ module Clang
|
|
2658
2658
|
# @return [String]
|
2659
2659
|
# @scope class
|
2660
2660
|
attach_function :construct_usr_obj_c_protocol, :clang_constructUSR_ObjCProtocol, [:string], String.by_value
|
2661
|
-
|
2661
|
+
|
2662
2662
|
# Construct a USR for a specified Objective-C instance variable and
|
2663
2663
|
# the USR for its containing class.
|
2664
2664
|
#
|
@@ -2668,7 +2668,7 @@ module Clang
|
|
2668
2668
|
# @return [String]
|
2669
2669
|
# @scope class
|
2670
2670
|
attach_function :construct_usr_obj_c_ivar, :clang_constructUSR_ObjCIvar, [:string, String.by_value], String.by_value
|
2671
|
-
|
2671
|
+
|
2672
2672
|
# Construct a USR for a specified Objective-C method and
|
2673
2673
|
# the USR for its containing class.
|
2674
2674
|
#
|
@@ -2679,7 +2679,7 @@ module Clang
|
|
2679
2679
|
# @return [String]
|
2680
2680
|
# @scope class
|
2681
2681
|
attach_function :construct_usr_obj_c_method, :clang_constructUSR_ObjCMethod, [:string, :uint, String.by_value], String.by_value
|
2682
|
-
|
2682
|
+
|
2683
2683
|
# Construct a USR for a specified Objective-C property and the USR
|
2684
2684
|
# for its containing class.
|
2685
2685
|
#
|
@@ -2689,7 +2689,7 @@ module Clang
|
|
2689
2689
|
# @return [String]
|
2690
2690
|
# @scope class
|
2691
2691
|
attach_function :construct_usr_obj_c_property, :clang_constructUSR_ObjCProperty, [:string, String.by_value], String.by_value
|
2692
|
-
|
2692
|
+
|
2693
2693
|
# Retrieve a name for the entity referenced by this cursor.
|
2694
2694
|
#
|
2695
2695
|
# @method get_cursor_spelling(cursor)
|
@@ -2697,7 +2697,7 @@ module Clang
|
|
2697
2697
|
# @return [String]
|
2698
2698
|
# @scope class
|
2699
2699
|
attach_function :get_cursor_spelling, :clang_getCursorSpelling, [Cursor.by_value], String.by_value
|
2700
|
-
|
2700
|
+
|
2701
2701
|
# Retrieve the display name for the entity referenced by this cursor.
|
2702
2702
|
#
|
2703
2703
|
# The display name contains extra information that helps identify the cursor,
|
@@ -2709,7 +2709,7 @@ module Clang
|
|
2709
2709
|
# @return [String]
|
2710
2710
|
# @scope class
|
2711
2711
|
attach_function :get_cursor_display_name, :clang_getCursorDisplayName, [Cursor.by_value], String.by_value
|
2712
|
-
|
2712
|
+
|
2713
2713
|
# For a cursor that is a reference, retrieve a cursor representing the
|
2714
2714
|
# entity that it references.
|
2715
2715
|
#
|
@@ -2725,7 +2725,7 @@ module Clang
|
|
2725
2725
|
# @return [Cursor]
|
2726
2726
|
# @scope class
|
2727
2727
|
attach_function :get_cursor_referenced, :clang_getCursorReferenced, [Cursor.by_value], Cursor.by_value
|
2728
|
-
|
2728
|
+
|
2729
2729
|
# For a cursor that is either a reference to or a declaration
|
2730
2730
|
# of some entity, retrieve a cursor that describes the definition of
|
2731
2731
|
# that entity.
|
@@ -2758,7 +2758,7 @@ module Clang
|
|
2758
2758
|
# @return [Cursor]
|
2759
2759
|
# @scope class
|
2760
2760
|
attach_function :get_cursor_definition, :clang_getCursorDefinition, [Cursor.by_value], Cursor.by_value
|
2761
|
-
|
2761
|
+
|
2762
2762
|
# Determine whether the declaration pointed to by this cursor
|
2763
2763
|
# is also a definition of that entity.
|
2764
2764
|
#
|
@@ -2767,7 +2767,7 @@ module Clang
|
|
2767
2767
|
# @return [Integer]
|
2768
2768
|
# @scope class
|
2769
2769
|
attach_function :is_cursor_definition, :clang_isCursorDefinition, [Cursor.by_value], :uint
|
2770
|
-
|
2770
|
+
|
2771
2771
|
# Retrieve the canonical cursor corresponding to the given cursor.
|
2772
2772
|
#
|
2773
2773
|
# In the C family of languages, many kinds of entities can be declared several
|
@@ -2794,7 +2794,7 @@ module Clang
|
|
2794
2794
|
# @return [Cursor] The canonical cursor for the entity referred to by the given cursor.
|
2795
2795
|
# @scope class
|
2796
2796
|
attach_function :get_canonical_cursor, :clang_getCanonicalCursor, [Cursor.by_value], Cursor.by_value
|
2797
|
-
|
2797
|
+
|
2798
2798
|
# Determine if a C++ member function or member function template is
|
2799
2799
|
# declared 'static'.
|
2800
2800
|
#
|
@@ -2803,7 +2803,7 @@ module Clang
|
|
2803
2803
|
# @return [Integer]
|
2804
2804
|
# @scope class
|
2805
2805
|
attach_function :cxx_method_is_static, :clang_CXXMethod_isStatic, [Cursor.by_value], :uint
|
2806
|
-
|
2806
|
+
|
2807
2807
|
# Determine if a C++ member function or member function template is
|
2808
2808
|
# explicitly declared 'virtual' or if it overrides a virtual method from
|
2809
2809
|
# one of the base classes.
|
@@ -2813,7 +2813,7 @@ module Clang
|
|
2813
2813
|
# @return [Integer]
|
2814
2814
|
# @scope class
|
2815
2815
|
attach_function :cxx_method_is_virtual, :clang_CXXMethod_isVirtual, [Cursor.by_value], :uint
|
2816
|
-
|
2816
|
+
|
2817
2817
|
# Given a cursor that represents a template, determine
|
2818
2818
|
# the cursor kind of the specializations would be generated by instantiating
|
2819
2819
|
# the template.
|
@@ -2826,12 +2826,12 @@ module Clang
|
|
2826
2826
|
# @method get_template_cursor_kind(c)
|
2827
2827
|
# @param [Cursor] c The cursor to query. This cursor should represent a template
|
2828
2828
|
# declaration.
|
2829
|
-
# @return [Symbol from
|
2829
|
+
# @return [Symbol from _enum_cursor_kind_] The cursor kind of the specializations that would be generated
|
2830
2830
|
# by instantiating the template \p C. If \p C is not a template, returns
|
2831
2831
|
# \c CXCursor_NoDeclFound.
|
2832
2832
|
# @scope class
|
2833
2833
|
attach_function :get_template_cursor_kind, :clang_getTemplateCursorKind, [Cursor.by_value], :cursor_kind
|
2834
|
-
|
2834
|
+
|
2835
2835
|
# Given a cursor that may represent a specialization or instantiation
|
2836
2836
|
# of a template, retrieve the cursor that represents the template that it
|
2837
2837
|
# specializes or from which it was instantiated.
|
@@ -2860,7 +2860,7 @@ module Clang
|
|
2860
2860
|
# from which it was instantiated. Otherwise, returns a NULL cursor.
|
2861
2861
|
# @scope class
|
2862
2862
|
attach_function :get_specialized_cursor_template, :clang_getSpecializedCursorTemplate, [Cursor.by_value], Cursor.by_value
|
2863
|
-
|
2863
|
+
|
2864
2864
|
# Given a cursor that references something else, return the source range
|
2865
2865
|
# covering that reference.
|
2866
2866
|
#
|
@@ -2879,9 +2879,11 @@ module Clang
|
|
2879
2879
|
# name, or if the PieceIndex is out-of-range, a null-cursor will be returned.
|
2880
2880
|
# @scope class
|
2881
2881
|
attach_function :get_cursor_reference_name_range, :clang_getCursorReferenceNameRange, [Cursor.by_value, :uint, :uint], SourceRange.by_value
|
2882
|
-
|
2882
|
+
|
2883
2883
|
# (Not documented)
|
2884
2884
|
#
|
2885
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:name_ref_flags).</em>
|
2886
|
+
#
|
2885
2887
|
# === Options:
|
2886
2888
|
# :want_qualifier ::
|
2887
2889
|
# Include the nested-name-specifier, e.g. Foo:: in x.Foo::y, in the
|
@@ -2898,19 +2900,20 @@ module Clang
|
|
2898
2900
|
# (object doSomething:here withValue:there); // ObjC
|
2899
2901
|
# return some_vector(1); // C++
|
2900
2902
|
# \endcode
|
2901
|
-
#
|
2902
|
-
# @
|
2903
|
-
|
2904
|
-
|
2905
|
-
end
|
2903
|
+
#
|
2904
|
+
# @method _enum_name_ref_flags_
|
2905
|
+
# @return [Symbol]
|
2906
|
+
# @scope class
|
2906
2907
|
enum :name_ref_flags, [
|
2907
2908
|
:want_qualifier, 0x1,
|
2908
2909
|
:want_template_args, 0x2,
|
2909
2910
|
:want_single_piece, 0x4
|
2910
2911
|
]
|
2911
|
-
|
2912
|
+
|
2912
2913
|
# Describes a kind of token.
|
2913
2914
|
#
|
2915
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:token_kind).</em>
|
2916
|
+
#
|
2914
2917
|
# === Options:
|
2915
2918
|
# :punctuation ::
|
2916
2919
|
# A token that contains some kind of punctuation.
|
@@ -2922,11 +2925,10 @@ module Clang
|
|
2922
2925
|
# A numeric, string, or character literal.
|
2923
2926
|
# :comment ::
|
2924
2927
|
# A comment.
|
2925
|
-
#
|
2926
|
-
# @
|
2927
|
-
|
2928
|
-
|
2929
|
-
end
|
2928
|
+
#
|
2929
|
+
# @method _enum_token_kind_
|
2930
|
+
# @return [Symbol]
|
2931
|
+
# @scope class
|
2930
2932
|
enum :token_kind, [
|
2931
2933
|
:punctuation,
|
2932
2934
|
:keyword,
|
@@ -2934,7 +2936,7 @@ module Clang
|
|
2934
2936
|
:literal,
|
2935
2937
|
:comment
|
2936
2938
|
]
|
2937
|
-
|
2939
|
+
|
2938
2940
|
# Describes a single preprocessing token.
|
2939
2941
|
#
|
2940
2942
|
# = Fields:
|
@@ -2942,20 +2944,19 @@ module Clang
|
|
2942
2944
|
# (Array<Integer>)
|
2943
2945
|
# :ptr_data ::
|
2944
2946
|
# (FFI::Pointer(*Void))
|
2945
|
-
#
|
2946
2947
|
class Token < FFI::Struct
|
2947
2948
|
layout :int_data, [:uint, 4],
|
2948
2949
|
:ptr_data, :pointer
|
2949
2950
|
end
|
2950
|
-
|
2951
|
+
|
2951
2952
|
# Determine the kind of the given token.
|
2952
2953
|
#
|
2953
2954
|
# @method get_token_kind(token)
|
2954
2955
|
# @param [Token] token
|
2955
|
-
# @return [Symbol from
|
2956
|
+
# @return [Symbol from _enum_token_kind_]
|
2956
2957
|
# @scope class
|
2957
2958
|
attach_function :get_token_kind, :clang_getTokenKind, [Token.by_value], :token_kind
|
2958
|
-
|
2959
|
+
|
2959
2960
|
# Determine the spelling of the given token.
|
2960
2961
|
#
|
2961
2962
|
# The spelling of a token is the textual representation of that token, e.g.,
|
@@ -2967,7 +2968,7 @@ module Clang
|
|
2967
2968
|
# @return [String]
|
2968
2969
|
# @scope class
|
2969
2970
|
attach_function :get_token_spelling, :clang_getTokenSpelling, [:pointer, Token.by_value], String.by_value
|
2970
|
-
|
2971
|
+
|
2971
2972
|
# Retrieve the source location of the given token.
|
2972
2973
|
#
|
2973
2974
|
# @method get_token_location(translation_unit, token)
|
@@ -2976,7 +2977,7 @@ module Clang
|
|
2976
2977
|
# @return [SourceLocation]
|
2977
2978
|
# @scope class
|
2978
2979
|
attach_function :get_token_location, :clang_getTokenLocation, [:pointer, Token.by_value], SourceLocation.by_value
|
2979
|
-
|
2980
|
+
|
2980
2981
|
# Retrieve a source range that covers the given token.
|
2981
2982
|
#
|
2982
2983
|
# @method get_token_extent(translation_unit, token)
|
@@ -2985,7 +2986,7 @@ module Clang
|
|
2985
2986
|
# @return [SourceRange]
|
2986
2987
|
# @scope class
|
2987
2988
|
attach_function :get_token_extent, :clang_getTokenExtent, [:pointer, Token.by_value], SourceRange.by_value
|
2988
|
-
|
2989
|
+
|
2989
2990
|
# Tokenize the source code described by the given range into raw
|
2990
2991
|
# lexical tokens.
|
2991
2992
|
#
|
@@ -3001,7 +3002,7 @@ module Clang
|
|
3001
3002
|
# @return [nil]
|
3002
3003
|
# @scope class
|
3003
3004
|
attach_function :tokenize, :clang_tokenize, [:pointer, SourceRange.by_value, :pointer, :pointer], :void
|
3004
|
-
|
3005
|
+
|
3005
3006
|
# Annotate the given set of tokens by providing cursors for each token
|
3006
3007
|
# that can be mapped to a specific entity within the abstract syntax tree.
|
3007
3008
|
#
|
@@ -3031,7 +3032,7 @@ module Clang
|
|
3031
3032
|
# @return [nil]
|
3032
3033
|
# @scope class
|
3033
3034
|
attach_function :annotate_tokens, :clang_annotateTokens, [:pointer, :pointer, :uint, :pointer], :void
|
3034
|
-
|
3035
|
+
|
3035
3036
|
# Free the given set of tokens.
|
3036
3037
|
#
|
3037
3038
|
# @method dispose_tokens(tu, tokens, num_tokens)
|
@@ -3041,15 +3042,15 @@ module Clang
|
|
3041
3042
|
# @return [nil]
|
3042
3043
|
# @scope class
|
3043
3044
|
attach_function :dispose_tokens, :clang_disposeTokens, [:pointer, :pointer, :uint], :void
|
3044
|
-
|
3045
|
+
|
3045
3046
|
# for debug/testing
|
3046
3047
|
#
|
3047
3048
|
# @method get_cursor_kind_spelling(kind)
|
3048
|
-
# @param [Symbol from
|
3049
|
+
# @param [Symbol from _enum_cursor_kind_] kind
|
3049
3050
|
# @return [String]
|
3050
3051
|
# @scope class
|
3051
3052
|
attach_function :get_cursor_kind_spelling, :clang_getCursorKindSpelling, [:cursor_kind], String.by_value
|
3052
|
-
|
3053
|
+
|
3053
3054
|
# (Not documented)
|
3054
3055
|
#
|
3055
3056
|
# @method get_definition_spelling_and_extent(cursor, start_buf, end_buf, start_line, start_column, end_line, end_column)
|
@@ -3063,14 +3064,14 @@ module Clang
|
|
3063
3064
|
# @return [nil]
|
3064
3065
|
# @scope class
|
3065
3066
|
attach_function :get_definition_spelling_and_extent, :clang_getDefinitionSpellingAndExtent, [Cursor.by_value, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :void
|
3066
|
-
|
3067
|
+
|
3067
3068
|
# (Not documented)
|
3068
3069
|
#
|
3069
3070
|
# @method enable_stack_traces()
|
3070
3071
|
# @return [nil]
|
3071
3072
|
# @scope class
|
3072
3073
|
attach_function :enable_stack_traces, :clang_enableStackTraces, [], :void
|
3073
|
-
|
3074
|
+
|
3074
3075
|
# (Not documented)
|
3075
3076
|
#
|
3076
3077
|
# @method execute_on_thread(fn, user_data, stack_size)
|
@@ -3080,12 +3081,12 @@ module Clang
|
|
3080
3081
|
# @return [nil]
|
3081
3082
|
# @scope class
|
3082
3083
|
attach_function :execute_on_thread, :clang_executeOnThread, [:pointer, :pointer, :uint], :void
|
3083
|
-
|
3084
|
+
|
3084
3085
|
# A single result of code completion.
|
3085
3086
|
#
|
3086
3087
|
# = Fields:
|
3087
3088
|
# :cursor_kind ::
|
3088
|
-
# (Symbol from
|
3089
|
+
# (Symbol from _enum_cursor_kind_) The kind of entity that this completion refers to.
|
3089
3090
|
#
|
3090
3091
|
# The cursor kind will be a macro, keyword, or a declaration (one of the
|
3091
3092
|
# *Decl cursor kinds), describing the entity that the completion is
|
@@ -3096,18 +3097,19 @@ module Clang
|
|
3096
3097
|
# :completion_string ::
|
3097
3098
|
# (FFI::Pointer(CompletionString)) The code-completion string that describes how to insert this
|
3098
3099
|
# code-completion result into the editing buffer.
|
3099
|
-
#
|
3100
3100
|
class CompletionResult < FFI::Struct
|
3101
3101
|
layout :cursor_kind, :cursor_kind,
|
3102
3102
|
:completion_string, :pointer
|
3103
3103
|
end
|
3104
|
-
|
3104
|
+
|
3105
3105
|
# Describes a single piece of text within a code-completion string.
|
3106
3106
|
#
|
3107
3107
|
# Each "chunk" within a code-completion string (\c CXCompletionString) is
|
3108
3108
|
# either a piece of text with a specific "kind" that describes how that text
|
3109
3109
|
# should be interpreted by the client or is another completion string.
|
3110
3110
|
#
|
3111
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:completion_chunk_kind).</em>
|
3112
|
+
#
|
3111
3113
|
# === Options:
|
3112
3114
|
# :optional ::
|
3113
3115
|
# A code-completion string that describes "optional" text that
|
@@ -3228,11 +3230,10 @@ module Clang
|
|
3228
3230
|
# :vertical_space ::
|
3229
3231
|
# Vertical space ('\n'), after which it is generally a good idea to
|
3230
3232
|
# perform indentation.
|
3231
|
-
#
|
3232
|
-
# @
|
3233
|
-
|
3234
|
-
|
3235
|
-
end
|
3233
|
+
#
|
3234
|
+
# @method _enum_completion_chunk_kind_
|
3235
|
+
# @return [Symbol]
|
3236
|
+
# @scope class
|
3236
3237
|
enum :completion_chunk_kind, [
|
3237
3238
|
:optional,
|
3238
3239
|
:typed_text,
|
@@ -3256,16 +3257,16 @@ module Clang
|
|
3256
3257
|
:horizontal_space,
|
3257
3258
|
:vertical_space
|
3258
3259
|
]
|
3259
|
-
|
3260
|
+
|
3260
3261
|
# Determine the kind of a particular chunk within a completion string.
|
3261
3262
|
#
|
3262
3263
|
# @method get_completion_chunk_kind(completion_string, chunk_number)
|
3263
3264
|
# @param [FFI::Pointer(CompletionString)] completion_string the completion string to query.
|
3264
3265
|
# @param [Integer] chunk_number the 0-based index of the chunk in the completion string.
|
3265
|
-
# @return [Symbol from
|
3266
|
+
# @return [Symbol from _enum_completion_chunk_kind_] the kind of the chunk at the index \c chunk_number.
|
3266
3267
|
# @scope class
|
3267
3268
|
attach_function :get_completion_chunk_kind, :clang_getCompletionChunkKind, [:pointer, :uint], :completion_chunk_kind
|
3268
|
-
|
3269
|
+
|
3269
3270
|
# Retrieve the text associated with a particular chunk within a
|
3270
3271
|
# completion string.
|
3271
3272
|
#
|
@@ -3275,7 +3276,7 @@ module Clang
|
|
3275
3276
|
# @return [String] the text associated with the chunk at index \c chunk_number.
|
3276
3277
|
# @scope class
|
3277
3278
|
attach_function :get_completion_chunk_text, :clang_getCompletionChunkText, [:pointer, :uint], String.by_value
|
3278
|
-
|
3279
|
+
|
3279
3280
|
# Retrieve the completion string associated with a particular chunk
|
3280
3281
|
# within a completion string.
|
3281
3282
|
#
|
@@ -3286,7 +3287,7 @@ module Clang
|
|
3286
3287
|
# \c chunk_number.
|
3287
3288
|
# @scope class
|
3288
3289
|
attach_function :get_completion_chunk_completion_string, :clang_getCompletionChunkCompletionString, [:pointer, :uint], :pointer
|
3289
|
-
|
3290
|
+
|
3290
3291
|
# Retrieve the number of chunks in the given code-completion string.
|
3291
3292
|
#
|
3292
3293
|
# @method get_num_completion_chunks(completion_string)
|
@@ -3294,7 +3295,7 @@ module Clang
|
|
3294
3295
|
# @return [Integer]
|
3295
3296
|
# @scope class
|
3296
3297
|
attach_function :get_num_completion_chunks, :clang_getNumCompletionChunks, [:pointer], :uint
|
3297
|
-
|
3298
|
+
|
3298
3299
|
# Determine the priority of this code completion.
|
3299
3300
|
#
|
3300
3301
|
# The priority of a code completion indicates how likely it is that this
|
@@ -3307,16 +3308,16 @@ module Clang
|
|
3307
3308
|
# higher-priority (more likely) completions.
|
3308
3309
|
# @scope class
|
3309
3310
|
attach_function :get_completion_priority, :clang_getCompletionPriority, [:pointer], :uint
|
3310
|
-
|
3311
|
+
|
3311
3312
|
# Determine the availability of the entity that this code-completion
|
3312
3313
|
# string refers to.
|
3313
3314
|
#
|
3314
3315
|
# @method get_completion_availability(completion_string)
|
3315
3316
|
# @param [FFI::Pointer(CompletionString)] completion_string The completion string to query.
|
3316
|
-
# @return [Symbol from
|
3317
|
+
# @return [Symbol from _enum_availability_kind_] The availability of the completion string.
|
3317
3318
|
# @scope class
|
3318
3319
|
attach_function :get_completion_availability, :clang_getCompletionAvailability, [:pointer], :availability_kind
|
3319
|
-
|
3320
|
+
|
3320
3321
|
# Retrieve the number of annotations associated with the given
|
3321
3322
|
# completion string.
|
3322
3323
|
#
|
@@ -3326,7 +3327,7 @@ module Clang
|
|
3326
3327
|
# string.
|
3327
3328
|
# @scope class
|
3328
3329
|
attach_function :get_completion_num_annotations, :clang_getCompletionNumAnnotations, [:pointer], :uint
|
3329
|
-
|
3330
|
+
|
3330
3331
|
# Retrieve the annotation associated with the given completion string.
|
3331
3332
|
#
|
3332
3333
|
# @method get_completion_annotation(completion_string, annotation_number)
|
@@ -3337,7 +3338,7 @@ module Clang
|
|
3337
3338
|
# \c annotation_number, or a NULL string if that annotation is not available.
|
3338
3339
|
# @scope class
|
3339
3340
|
attach_function :get_completion_annotation, :clang_getCompletionAnnotation, [:pointer, :uint], String.by_value
|
3340
|
-
|
3341
|
+
|
3341
3342
|
# Retrieve a completion string for an arbitrary declaration or macro
|
3342
3343
|
# definition cursor.
|
3343
3344
|
#
|
@@ -3347,7 +3348,7 @@ module Clang
|
|
3347
3348
|
# definition cursors, or NULL for other kinds of cursors.
|
3348
3349
|
# @scope class
|
3349
3350
|
attach_function :get_cursor_completion_string, :clang_getCursorCompletionString, [Cursor.by_value], :pointer
|
3350
|
-
|
3351
|
+
|
3351
3352
|
# Contains the results of code-completion.
|
3352
3353
|
#
|
3353
3354
|
# This data structure contains the results of code completion, as
|
@@ -3360,18 +3361,19 @@ module Clang
|
|
3360
3361
|
# :num_results ::
|
3361
3362
|
# (Integer) The number of code-completion results stored in the
|
3362
3363
|
# \c Results array.
|
3363
|
-
#
|
3364
3364
|
class CodeCompleteResults < FFI::Struct
|
3365
3365
|
layout :results, :pointer,
|
3366
3366
|
:num_results, :uint
|
3367
3367
|
end
|
3368
|
-
|
3368
|
+
|
3369
3369
|
# Flags that can be passed to \c clang_codeCompleteAt() to
|
3370
3370
|
# modify its behavior.
|
3371
3371
|
#
|
3372
3372
|
# The enumerators in this enumeration can be bitwise-OR'd together to
|
3373
3373
|
# provide multiple options to \c clang_codeCompleteAt().
|
3374
3374
|
#
|
3375
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:code_complete_flags).</em>
|
3376
|
+
#
|
3375
3377
|
# === Options:
|
3376
3378
|
# :include_macros ::
|
3377
3379
|
# Whether to include macros within the set of code
|
@@ -3379,34 +3381,34 @@ module Clang
|
|
3379
3381
|
# :include_code_patterns ::
|
3380
3382
|
# Whether to include code patterns for language constructs
|
3381
3383
|
# within the set of code completions, e.g., for loops.
|
3382
|
-
#
|
3383
|
-
# @
|
3384
|
-
|
3385
|
-
|
3386
|
-
end
|
3384
|
+
#
|
3385
|
+
# @method _enum_code_complete_flags_
|
3386
|
+
# @return [Symbol]
|
3387
|
+
# @scope class
|
3387
3388
|
enum :code_complete_flags, [
|
3388
3389
|
:include_macros, 0x01,
|
3389
3390
|
:include_code_patterns, 0x02
|
3390
3391
|
]
|
3391
|
-
|
3392
|
+
|
3392
3393
|
# Bits that represent the context under which completion is occurring.
|
3393
3394
|
#
|
3394
3395
|
# The enumerators in this enumeration may be bitwise-OR'd together if multiple
|
3395
3396
|
# contexts are occurring simultaneously.
|
3396
3397
|
#
|
3398
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:completion_context).</em>
|
3399
|
+
#
|
3397
3400
|
# === Options:
|
3398
3401
|
# :completion_context_unexposed ::
|
3399
3402
|
# The context for completions is unexposed, as only Clang results
|
3400
3403
|
# should be included. (This is equivalent to having no context bits set.)
|
3401
|
-
#
|
3402
|
-
# @
|
3403
|
-
|
3404
|
-
|
3405
|
-
end
|
3404
|
+
#
|
3405
|
+
# @method _enum_completion_context_
|
3406
|
+
# @return [Symbol]
|
3407
|
+
# @scope class
|
3406
3408
|
enum :completion_context, [
|
3407
3409
|
:completion_context_unexposed, 0
|
3408
3410
|
]
|
3409
|
-
|
3411
|
+
|
3410
3412
|
# Returns a default set of code-completion options that can be
|
3411
3413
|
# passed to\c clang_codeCompleteAt().
|
3412
3414
|
#
|
@@ -3414,7 +3416,7 @@ module Clang
|
|
3414
3416
|
# @return [Integer]
|
3415
3417
|
# @scope class
|
3416
3418
|
attach_function :default_code_complete_options, :clang_defaultCodeCompleteOptions, [], :uint
|
3417
|
-
|
3419
|
+
|
3418
3420
|
# Perform code completion at a given location in a translation unit.
|
3419
3421
|
#
|
3420
3422
|
# This function performs code completion at a particular file, line, and
|
@@ -3477,7 +3479,7 @@ module Clang
|
|
3477
3479
|
# completion fails, returns NULL.
|
3478
3480
|
# @scope class
|
3479
3481
|
attach_function :code_complete_at, :clang_codeCompleteAt, [:pointer, :string, :uint, :uint, :pointer, :uint, :uint], :pointer
|
3480
|
-
|
3482
|
+
|
3481
3483
|
# Sort the code-completion results in case-insensitive alphabetical
|
3482
3484
|
# order.
|
3483
3485
|
#
|
@@ -3487,7 +3489,7 @@ module Clang
|
|
3487
3489
|
# @return [nil]
|
3488
3490
|
# @scope class
|
3489
3491
|
attach_function :sort_code_completion_results, :clang_sortCodeCompletionResults, [:pointer, :uint], :void
|
3490
|
-
|
3492
|
+
|
3491
3493
|
# Free the given set of code-completion results.
|
3492
3494
|
#
|
3493
3495
|
# @method dispose_code_complete_results(results)
|
@@ -3495,7 +3497,7 @@ module Clang
|
|
3495
3497
|
# @return [nil]
|
3496
3498
|
# @scope class
|
3497
3499
|
attach_function :dispose_code_complete_results, :clang_disposeCodeCompleteResults, [:pointer], :void
|
3498
|
-
|
3500
|
+
|
3499
3501
|
# Determine the number of diagnostics produced prior to the
|
3500
3502
|
# location where code completion was performed.
|
3501
3503
|
#
|
@@ -3504,7 +3506,7 @@ module Clang
|
|
3504
3506
|
# @return [Integer]
|
3505
3507
|
# @scope class
|
3506
3508
|
attach_function :code_complete_get_num_diagnostics, :clang_codeCompleteGetNumDiagnostics, [:pointer], :uint
|
3507
|
-
|
3509
|
+
|
3508
3510
|
# Retrieve a diagnostic associated with the given code completion.
|
3509
3511
|
#
|
3510
3512
|
# Result:
|
@@ -3517,7 +3519,7 @@ module Clang
|
|
3517
3519
|
# via a call to \c clang_disposeDiagnostic().
|
3518
3520
|
# @scope class
|
3519
3521
|
attach_function :code_complete_get_diagnostic, :clang_codeCompleteGetDiagnostic, [:pointer, :uint], :pointer
|
3520
|
-
|
3522
|
+
|
3521
3523
|
# Determines what compeltions are appropriate for the context
|
3522
3524
|
# the given code completion.
|
3523
3525
|
#
|
@@ -3527,7 +3529,7 @@ module Clang
|
|
3527
3529
|
# along with the given code completion results.
|
3528
3530
|
# @scope class
|
3529
3531
|
attach_function :code_complete_get_contexts, :clang_codeCompleteGetContexts, [:pointer], :ulong_long
|
3530
|
-
|
3532
|
+
|
3531
3533
|
# Returns the cursor kind for the container for the current code
|
3532
3534
|
# completion context. The container is only guaranteed to be set for
|
3533
3535
|
# contexts where a container exists (i.e. member accesses or Objective-C
|
@@ -3539,11 +3541,11 @@ module Clang
|
|
3539
3541
|
# @param [FFI::Pointer(*UInt)] is_incomplete on return, this value will be false if Clang has complete
|
3540
3542
|
# information about the container. If Clang does not have complete
|
3541
3543
|
# information, this value will be true.
|
3542
|
-
# @return [Symbol from
|
3544
|
+
# @return [Symbol from _enum_cursor_kind_] the container kind, or CXCursor_InvalidCode if there is not a
|
3543
3545
|
# container
|
3544
3546
|
# @scope class
|
3545
3547
|
attach_function :code_complete_get_container_kind, :clang_codeCompleteGetContainerKind, [:pointer, :pointer], :cursor_kind
|
3546
|
-
|
3548
|
+
|
3547
3549
|
# Returns the USR for the container for the current code completion
|
3548
3550
|
# context. If there is not a container for the current context, this
|
3549
3551
|
# function will return the empty string.
|
@@ -3553,7 +3555,7 @@ module Clang
|
|
3553
3555
|
# @return [String] the USR for the container
|
3554
3556
|
# @scope class
|
3555
3557
|
attach_function :code_complete_get_container_usr, :clang_codeCompleteGetContainerUSR, [:pointer], String.by_value
|
3556
|
-
|
3558
|
+
|
3557
3559
|
# Returns the currently-entered selector for an Objective-C message
|
3558
3560
|
# send, formatted like "initWithFoo:bar:". Only guaranteed to return a
|
3559
3561
|
# non-empty string for CXCompletionContext_ObjCInstanceMessage and
|
@@ -3565,7 +3567,7 @@ module Clang
|
|
3565
3567
|
# for an Objective-C message send.
|
3566
3568
|
# @scope class
|
3567
3569
|
attach_function :code_complete_get_obj_c_selector, :clang_codeCompleteGetObjCSelector, [:pointer], String.by_value
|
3568
|
-
|
3570
|
+
|
3569
3571
|
# Return a version string, suitable for showing to a user, but not
|
3570
3572
|
# intended to be parsed (the format is not guaranteed to be stable).
|
3571
3573
|
#
|
@@ -3573,7 +3575,7 @@ module Clang
|
|
3573
3575
|
# @return [String]
|
3574
3576
|
# @scope class
|
3575
3577
|
attach_function :get_clang_version, :clang_getClangVersion, [], String.by_value
|
3576
|
-
|
3578
|
+
|
3577
3579
|
# Enable/disable crash recovery.
|
3578
3580
|
#
|
3579
3581
|
# Flag:
|
@@ -3585,9 +3587,7 @@ module Clang
|
|
3585
3587
|
# @return [nil]
|
3586
3588
|
# @scope class
|
3587
3589
|
attach_function :toggle_crash_recovery, :clang_toggleCrashRecovery, [:uint], :void
|
3588
|
-
|
3589
|
-
# <em>This is no real method. This entry is only for documentation of the callback.</em>
|
3590
|
-
#
|
3590
|
+
|
3591
3591
|
# Visitor invoked for each file in a translation unit
|
3592
3592
|
# (used with clang_getInclusions()).
|
3593
3593
|
#
|
@@ -3598,14 +3598,16 @@ module Clang
|
|
3598
3598
|
# array is sorted in order of immediate inclusion. For example,
|
3599
3599
|
# the first element refers to the location that included 'included_file'.
|
3600
3600
|
#
|
3601
|
-
#
|
3601
|
+
# <em>This entry is only for documentation and no real method.</em>
|
3602
|
+
#
|
3603
|
+
# @method _callback_inclusion_visitor_(inclusion_stack, include_len, client_data)
|
3602
3604
|
# @param [FFI::Pointer(*SourceLocation)] inclusion_stack
|
3603
3605
|
# @param [Integer] include_len
|
3604
3606
|
# @param [FFI::Pointer(ClientData)] client_data
|
3605
3607
|
# @return [FFI::Pointer(File)]
|
3606
3608
|
# @scope class
|
3607
3609
|
callback :inclusion_visitor, [:pointer, :uint, :pointer], :pointer
|
3608
|
-
|
3610
|
+
|
3609
3611
|
# Visit the set of preprocessor inclusions in a translation unit.
|
3610
3612
|
# The visitor function is called with the provided data for every included
|
3611
3613
|
# file. This does not include headers included by the PCH file (unless one
|
@@ -3613,12 +3615,12 @@ module Clang
|
|
3613
3615
|
#
|
3614
3616
|
# @method get_inclusions(tu, visitor, client_data)
|
3615
3617
|
# @param [FFI::Pointer(TranslationUnit)] tu
|
3616
|
-
# @param [Proc(
|
3618
|
+
# @param [Proc(_callback_inclusion_visitor_)] visitor
|
3617
3619
|
# @param [FFI::Pointer(ClientData)] client_data
|
3618
3620
|
# @return [nil]
|
3619
3621
|
# @scope class
|
3620
3622
|
attach_function :get_inclusions, :clang_getInclusions, [:pointer, :inclusion_visitor, :pointer], :void
|
3621
|
-
|
3623
|
+
|
3622
3624
|
# Retrieve a remapping.
|
3623
3625
|
#
|
3624
3626
|
# @method get_remappings(path)
|
@@ -3627,7 +3629,7 @@ module Clang
|
|
3627
3629
|
# via a call to \c clang_remap_dispose(). Can return NULL if an error occurred.
|
3628
3630
|
# @scope class
|
3629
3631
|
attach_function :get_remappings, :clang_getRemappings, [:string], :pointer
|
3630
|
-
|
3632
|
+
|
3631
3633
|
# Determine the number of remappings.
|
3632
3634
|
#
|
3633
3635
|
# @method remap_get_num_files(remapping)
|
@@ -3635,7 +3637,7 @@ module Clang
|
|
3635
3637
|
# @return [Integer]
|
3636
3638
|
# @scope class
|
3637
3639
|
attach_function :remap_get_num_files, :clang_remap_getNumFiles, [:pointer], :uint
|
3638
|
-
|
3640
|
+
|
3639
3641
|
# Get the original and the associated filename from the remapping.
|
3640
3642
|
#
|
3641
3643
|
# @method remap_get_filenames(remapping, index, original, transformed)
|
@@ -3647,7 +3649,7 @@ module Clang
|
|
3647
3649
|
# @return [nil]
|
3648
3650
|
# @scope class
|
3649
3651
|
attach_function :remap_get_filenames, :clang_remap_getFilenames, [:pointer, :uint, :pointer, :pointer], :void
|
3650
|
-
|
3652
|
+
|
3651
3653
|
# Dispose the remapping.
|
3652
3654
|
#
|
3653
3655
|
# @method remap_dispose(remapping)
|
@@ -3655,26 +3657,27 @@ module Clang
|
|
3655
3657
|
# @return [nil]
|
3656
3658
|
# @scope class
|
3657
3659
|
attach_function :remap_dispose, :clang_remap_dispose, [:pointer], :void
|
3658
|
-
|
3660
|
+
|
3659
3661
|
# \defgroup CINDEX_HIGH Higher level API functions
|
3660
3662
|
#
|
3661
3663
|
# @{
|
3662
3664
|
#
|
3665
|
+
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:visitor_result).</em>
|
3666
|
+
#
|
3663
3667
|
# === Options:
|
3664
3668
|
# :break ::
|
3665
3669
|
#
|
3666
3670
|
# :continue ::
|
3667
3671
|
#
|
3668
|
-
#
|
3669
|
-
# @
|
3670
|
-
|
3671
|
-
|
3672
|
-
end
|
3672
|
+
#
|
3673
|
+
# @method _enum_visitor_result_
|
3674
|
+
# @return [Symbol]
|
3675
|
+
# @scope class
|
3673
3676
|
enum :visitor_result, [
|
3674
3677
|
:break,
|
3675
3678
|
:continue
|
3676
3679
|
]
|
3677
|
-
|
3680
|
+
|
3678
3681
|
# \defgroup CINDEX_HIGH Higher level API functions
|
3679
3682
|
#
|
3680
3683
|
# @{
|
@@ -3684,12 +3687,11 @@ module Clang
|
|
3684
3687
|
# (FFI::Pointer(*Void))
|
3685
3688
|
# :visit ::
|
3686
3689
|
# (FFI::Pointer(*))
|
3687
|
-
#
|
3688
3690
|
class CursorAndRangeVisitor < FFI::Struct
|
3689
3691
|
layout :context, :pointer,
|
3690
3692
|
:visit, :pointer
|
3691
3693
|
end
|
3692
|
-
|
3694
|
+
|
3693
3695
|
# Find references of a declaration in a specific file.
|
3694
3696
|
#
|
3695
3697
|
# @method find_references_in_file(cursor, file, visitor)
|
@@ -3702,5 +3704,5 @@ module Clang
|
|
3702
3704
|
# @return [nil]
|
3703
3705
|
# @scope class
|
3704
3706
|
attach_function :find_references_in_file, :clang_findReferencesInFile, [Cursor.by_value, :pointer, CursorAndRangeVisitor.by_value], :void
|
3705
|
-
|
3706
|
-
end
|
3707
|
+
|
3708
|
+
end
|