ffi-clang 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/ffi/clang/cursor.rb +11 -0
- data/lib/ffi/clang/lib/cursor.rb +14 -0
- data/lib/ffi/clang/lib/type.rb +15 -0
- data/lib/ffi/clang/types/function.rb +16 -0
- data/lib/ffi/clang/types/type.rb +5 -1
- data/lib/ffi/clang/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54ebc6d99d0f99d46028bd950f969bacaaf32e95b8824fa504902974357882d2
|
4
|
+
data.tar.gz: 9732b945316e50383c601f5f9938f555445d13f5ce25428a6acadfacb57df284
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3bb22b3b0e304d05edd4628570642efb0ef7dea8fe588bd37c6d284e06291d0cf7561ceffc8ff9ded5450e1f7751943e91843cb29eaca5c59227cb891ea39cb
|
7
|
+
data.tar.gz: 74d1a5920126e62a88a089fa205cdfa1b117ea2e0b8ca90ebc7807395172c436c0d72ccdcb6384a00c6d1d47b96c30e5568e0e991a2bcb0d2fc4d36df8a02731
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/ffi/clang/cursor.rb
CHANGED
@@ -146,6 +146,9 @@ module FFI
|
|
146
146
|
|
147
147
|
def qualified_name
|
148
148
|
if self.kind != :cursor_translation_unit
|
149
|
+
if self.semantic_parent.kind == :cursor_invalid_file
|
150
|
+
raise(ArgumentError, "Invalid semantic parent: #{self}")
|
151
|
+
end
|
149
152
|
result = self.semantic_parent.qualified_name
|
150
153
|
result ? "#{result}::#{self.spelling}" : self.spelling
|
151
154
|
end
|
@@ -298,6 +301,10 @@ module FFI
|
|
298
301
|
Lib.visit_children(@cursor, adapter, nil)
|
299
302
|
end
|
300
303
|
|
304
|
+
def visit_children(&block)
|
305
|
+
each(false, &block)
|
306
|
+
end
|
307
|
+
|
301
308
|
def ancestors_by_kind(*kinds)
|
302
309
|
result = Array.new
|
303
310
|
|
@@ -341,6 +348,10 @@ module FFI
|
|
341
348
|
Lib.get_cursor_linkage(@cursor)
|
342
349
|
end
|
343
350
|
|
351
|
+
def exception_specification
|
352
|
+
Lib.get_cursor_exception_specification_type(@cursor)
|
353
|
+
end
|
354
|
+
|
344
355
|
def availability
|
345
356
|
Lib.get_cursor_availability(@cursor)
|
346
357
|
end
|
data/lib/ffi/clang/lib/cursor.rb
CHANGED
@@ -319,6 +319,19 @@ module FFI
|
|
319
319
|
:external, 4,
|
320
320
|
]
|
321
321
|
|
322
|
+
enum :exception_specification_type, [
|
323
|
+
:none,
|
324
|
+
:dynamic_none,
|
325
|
+
:dynamic,
|
326
|
+
:ms_any,
|
327
|
+
:basic_noexcept,
|
328
|
+
:computed_noexcept,
|
329
|
+
:unevaluated,
|
330
|
+
:uninstantiated,
|
331
|
+
:unparsed,
|
332
|
+
:no_throw
|
333
|
+
]
|
334
|
+
|
322
335
|
class CXCursor < FFI::Struct
|
323
336
|
layout(
|
324
337
|
:kind, :cursor_kind,
|
@@ -454,6 +467,7 @@ module FFI
|
|
454
467
|
|
455
468
|
attach_function :get_cursor_availability, :clang_getCursorAvailability, [CXCursor.by_value], :availability
|
456
469
|
attach_function :get_cursor_linkage, :clang_getCursorLinkage, [CXCursor.by_value], :linkage_kind
|
470
|
+
attach_function :get_cursor_exception_specification_type, :clang_getCursorExceptionSpecificationType, [CXCursor.by_value], :exception_specification_type
|
457
471
|
attach_function :get_included_file, :clang_getIncludedFile, [CXCursor.by_value], :CXFile
|
458
472
|
attach_function :get_cursor_hash, :clang_hashCursor, [CXCursor.by_value], :uint
|
459
473
|
|
data/lib/ffi/clang/lib/type.rb
CHANGED
@@ -169,6 +169,20 @@ module FFI
|
|
169
169
|
:layout_error_undeduced, -6
|
170
170
|
]
|
171
171
|
|
172
|
+
# Also defined in cursor.rb
|
173
|
+
enum :exception_specification_type, [
|
174
|
+
:none,
|
175
|
+
:dynamic_none,
|
176
|
+
:dynamic,
|
177
|
+
:ms_any,
|
178
|
+
:basic_noexcept,
|
179
|
+
:computed_noexcept,
|
180
|
+
:unevaluated,
|
181
|
+
:uninstantiated,
|
182
|
+
:unparsed,
|
183
|
+
:no_throw
|
184
|
+
]
|
185
|
+
|
172
186
|
class CXType < FFI::Struct
|
173
187
|
layout(
|
174
188
|
:kind, :kind,
|
@@ -206,6 +220,7 @@ module FFI
|
|
206
220
|
attach_function :type_get_cxx_ref_qualifier, :clang_Type_getCXXRefQualifier, [CXType.by_value], :ref_qualifier_kind
|
207
221
|
|
208
222
|
attach_function :get_fuction_type_calling_conv, :clang_getFunctionTypeCallingConv, [CXType.by_value], :calling_conv
|
223
|
+
attach_function :get_exception_specification_type, :clang_getExceptionSpecificationType, [CXType.by_value], :exception_specification_type
|
209
224
|
|
210
225
|
attach_function :equal_types, :clang_equalTypes, [CXType.by_value, CXType.by_value], :uint
|
211
226
|
end
|
@@ -2,6 +2,8 @@ module FFI
|
|
2
2
|
module Clang
|
3
3
|
module Types
|
4
4
|
class Function < Type
|
5
|
+
include Enumerable
|
6
|
+
|
5
7
|
def variadic?
|
6
8
|
Lib.is_function_type_variadic(@type) != 0
|
7
9
|
end
|
@@ -14,6 +16,16 @@ module FFI
|
|
14
16
|
Type.create Lib.get_arg_type(@type, i), @translation_unit
|
15
17
|
end
|
16
18
|
|
19
|
+
def arg_types
|
20
|
+
return to_enum(:arg_types) unless block_given?
|
21
|
+
|
22
|
+
self.args_size.times do |i|
|
23
|
+
yield self.arg_type(i)
|
24
|
+
end
|
25
|
+
|
26
|
+
self
|
27
|
+
end
|
28
|
+
|
17
29
|
def result_type
|
18
30
|
Type.create Lib.get_result_type(@type), @translation_unit
|
19
31
|
end
|
@@ -21,6 +33,10 @@ module FFI
|
|
21
33
|
def calling_conv
|
22
34
|
Lib.get_fuction_type_calling_conv(@type)
|
23
35
|
end
|
36
|
+
|
37
|
+
def exception_specification
|
38
|
+
Lib.get_exception_specification_type(@type)
|
39
|
+
end
|
24
40
|
end
|
25
41
|
end
|
26
42
|
end
|
data/lib/ffi/clang/types/type.rb
CHANGED
@@ -14,7 +14,7 @@ module FFI
|
|
14
14
|
class Type
|
15
15
|
attr_reader :type, :translation_unit
|
16
16
|
|
17
|
-
# Just hard code the types - they
|
17
|
+
# Just hard code the types - they are not likely to change
|
18
18
|
def self.create(cxtype, translation_unit)
|
19
19
|
case cxtype[:kind]
|
20
20
|
when :type_pointer, :type_block_pointer, :type_obj_c_object_pointer, :type_member_pointer
|
@@ -85,6 +85,10 @@ module FFI
|
|
85
85
|
Cursor.new Lib.get_type_declaration(@type), @translation_unit
|
86
86
|
end
|
87
87
|
|
88
|
+
def non_reference_type
|
89
|
+
Type.create Lib.get_non_reference_type(@type),@translation_unit
|
90
|
+
end
|
91
|
+
|
88
92
|
def ==(other)
|
89
93
|
Lib.equal_types(@type, other.type) != 0
|
90
94
|
end
|
data/lib/ffi/clang/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-clang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -55,7 +55,7 @@ cert_chain:
|
|
55
55
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
56
56
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
57
57
|
-----END CERTIFICATE-----
|
58
|
-
date: 2024-
|
58
|
+
date: 2024-11-13 00:00:00.000000000 Z
|
59
59
|
dependencies:
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: ffi
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
requirements: []
|
146
|
-
rubygems_version: 3.5.
|
146
|
+
rubygems_version: 3.5.22
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: Ruby FFI bindings for libclang C interface.
|
metadata.gz.sig
CHANGED
Binary file
|