ridl 2.8.2 → 2.10.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.
- checksums.yaml +4 -4
- data/README.rdoc +10 -7
- data/lib/ridl/backend.rb +11 -12
- data/lib/ridl/delegate.rb +166 -59
- data/lib/ridl/expression.rb +68 -28
- data/lib/ridl/genfile.rb +22 -16
- data/lib/ridl/node.rb +609 -192
- data/lib/ridl/options.rb +10 -12
- data/lib/ridl/optparse_ext.rb +32 -34
- data/lib/ridl/parser.rb +1919 -1446
- data/lib/ridl/parser.ry +66 -9
- data/lib/ridl/runner.rb +42 -28
- data/lib/ridl/scanner.rb +207 -175
- data/lib/ridl/type.rb +246 -15
- data/lib/ridl/version.rb +2 -4
- metadata +5 -6
- data/lib/ridl/parser.diff +0 -42
data/lib/ridl/type.rb
CHANGED
@@ -14,33 +14,43 @@ module IDL
|
|
14
14
|
def typename
|
15
15
|
self.class.name
|
16
16
|
end
|
17
|
+
|
17
18
|
def typeerror(val)
|
18
19
|
raise "#{val.inspect} cannot narrow to #{self.typename}"
|
19
20
|
end
|
21
|
+
|
20
22
|
def narrow(obj)
|
21
23
|
obj
|
22
24
|
end
|
25
|
+
|
23
26
|
def resolved_type
|
24
27
|
self
|
25
28
|
end
|
29
|
+
|
26
30
|
def is_complete?
|
27
31
|
true
|
28
32
|
end
|
29
|
-
|
33
|
+
|
34
|
+
def is_local?(_recurstk = nil)
|
30
35
|
false
|
31
36
|
end
|
37
|
+
|
32
38
|
def is_anonymous?
|
33
39
|
false
|
34
40
|
end
|
35
|
-
|
41
|
+
|
42
|
+
def is_node?(_node_class)
|
36
43
|
false
|
37
44
|
end
|
45
|
+
|
38
46
|
def resolved_node
|
39
47
|
nil
|
40
48
|
end
|
49
|
+
|
41
50
|
def is_template?
|
42
51
|
false
|
43
52
|
end
|
53
|
+
|
44
54
|
def matches?(idltype)
|
45
55
|
self.class == idltype.class
|
46
56
|
end
|
@@ -50,7 +60,7 @@ module IDL
|
|
50
60
|
end
|
51
61
|
|
52
62
|
class UndefinedType
|
53
|
-
def initialize(*
|
63
|
+
def initialize(*_args)
|
54
64
|
raise "#{self.class.name}'s not implemented yet."
|
55
65
|
end
|
56
66
|
end
|
@@ -64,19 +74,25 @@ module IDL
|
|
64
74
|
|
65
75
|
class NodeType < Type
|
66
76
|
attr_reader :node
|
77
|
+
|
67
78
|
def initialize(node)
|
68
79
|
raise node.inspect if node && !node.is_a?(IDL::AST::Leaf)
|
80
|
+
|
69
81
|
@node = node
|
70
82
|
end
|
71
|
-
|
83
|
+
|
84
|
+
def is_local?(_recurstk = nil)
|
72
85
|
@node.is_local?
|
73
86
|
end
|
87
|
+
|
74
88
|
def is_node?(node_class)
|
75
89
|
@node.is_a?(node_class)
|
76
90
|
end
|
91
|
+
|
77
92
|
def resolved_node
|
78
93
|
@node
|
79
94
|
end
|
95
|
+
|
80
96
|
def matches?(idltype)
|
81
97
|
super && self.resolved_node == idltype.resolved_node
|
82
98
|
end
|
@@ -86,27 +102,35 @@ module IDL
|
|
86
102
|
def typename
|
87
103
|
@node.name
|
88
104
|
end
|
105
|
+
|
89
106
|
def narrow(obj)
|
90
107
|
@node.idltype.narrow(obj)
|
91
108
|
end
|
109
|
+
|
92
110
|
def resolved_type
|
93
111
|
@node.idltype.resolved_type
|
94
112
|
end
|
113
|
+
|
95
114
|
def is_complete?
|
96
115
|
resolved_type.is_complete?
|
97
116
|
end
|
117
|
+
|
98
118
|
def is_local?(recurstk = [])
|
99
119
|
resolved_type.is_local?(recurstk)
|
100
120
|
end
|
121
|
+
|
101
122
|
def is_node?(node_class)
|
102
123
|
@node.is_a?(IDL::AST::Typedef) ? @node.idltype.is_node?(node_class) : @node.is_a?(node_class)
|
103
124
|
end
|
125
|
+
|
104
126
|
def resolved_node
|
105
127
|
@node.is_a?(IDL::AST::Typedef) ? @node.idltype.resolved_node : @node
|
106
128
|
end
|
129
|
+
|
107
130
|
def is_template?
|
108
131
|
@node.is_template?
|
109
132
|
end
|
133
|
+
|
110
134
|
def instantiate(instantiation_context)
|
111
135
|
if self.is_template?
|
112
136
|
cp = IDL::AST::TemplateParam.concrete_param(instantiation_context, @node)
|
@@ -125,7 +149,7 @@ module IDL
|
|
125
149
|
end
|
126
150
|
|
127
151
|
def self.is_unsigned?
|
128
|
-
self::Range.first
|
152
|
+
self::Range.first.zero?
|
129
153
|
end
|
130
154
|
|
131
155
|
def self.bits
|
@@ -152,6 +176,10 @@ module IDL
|
|
152
176
|
val < self.max ? val + 1 : self.min
|
153
177
|
end
|
154
178
|
|
179
|
+
def default
|
180
|
+
0
|
181
|
+
end
|
182
|
+
|
155
183
|
def Integer.newclass(range, bits)
|
156
184
|
k = Class.new(self)
|
157
185
|
k.const_set('Range', range)
|
@@ -160,9 +188,11 @@ module IDL
|
|
160
188
|
end
|
161
189
|
end
|
162
190
|
Octet = Integer.newclass(0..0xFF, 8)
|
191
|
+
UTinyShort = Integer.newclass(0..0xFF, 8)
|
163
192
|
UShort = Integer.newclass(0..0xFFFF, 16)
|
164
193
|
ULong = Integer.newclass(0..0xFFFFFFFF, 32)
|
165
194
|
ULongLong = Integer.newclass(0..0xFFFFFFFFFFFFFFFF, 64)
|
195
|
+
TinyShort = Integer.newclass(-0x80...0x800, 8)
|
166
196
|
Short = Integer.newclass(-0x8000...0x8000, 16)
|
167
197
|
Long = Integer.newclass(-0x80000000...0x80000000, 32)
|
168
198
|
LongLong = Integer.newclass(-0x8000000000000000...0x8000000000000000, 64)
|
@@ -173,37 +203,51 @@ module IDL
|
|
173
203
|
typeerror(obj) unless [TrueClass, FalseClass].include? obj.class
|
174
204
|
obj
|
175
205
|
end
|
206
|
+
|
176
207
|
def range_length
|
177
208
|
2
|
178
209
|
end
|
210
|
+
|
179
211
|
def min
|
180
212
|
false
|
181
213
|
end
|
214
|
+
|
182
215
|
def max
|
183
216
|
true
|
184
217
|
end
|
218
|
+
|
185
219
|
def in_range?(val)
|
186
220
|
Range.include?(val)
|
187
221
|
end
|
222
|
+
|
223
|
+
def default
|
224
|
+
false
|
225
|
+
end
|
226
|
+
|
188
227
|
def next(val)
|
189
228
|
!val
|
190
229
|
end
|
191
230
|
end
|
231
|
+
|
192
232
|
class Char < Type
|
193
233
|
def narrow(obj)
|
194
234
|
typeerror(obj) unless ::Integer === obj
|
195
235
|
typeerror(obj) unless (0..255) === obj
|
196
236
|
obj
|
197
237
|
end
|
238
|
+
|
198
239
|
def range_length
|
199
240
|
256
|
200
241
|
end
|
242
|
+
|
201
243
|
def min
|
202
244
|
0
|
203
245
|
end
|
246
|
+
|
204
247
|
def in_range?(val)
|
205
248
|
val >= self.min && val <= self.max
|
206
249
|
end
|
250
|
+
|
207
251
|
def max
|
208
252
|
255
|
209
253
|
end
|
@@ -212,31 +256,41 @@ module IDL
|
|
212
256
|
val < self.max ? val + 1 : self.min
|
213
257
|
end
|
214
258
|
end
|
259
|
+
|
215
260
|
class Float < Type
|
216
261
|
def narrow(obj)
|
217
262
|
typeerror(obj) unless ::Float === obj
|
218
263
|
obj
|
219
264
|
end
|
220
265
|
end
|
266
|
+
|
221
267
|
class Double < Float; end
|
222
268
|
class LongDouble < Float; end
|
269
|
+
|
223
270
|
class Fixed < Type
|
224
271
|
attr_reader :digits, :scale
|
225
|
-
|
272
|
+
|
273
|
+
def initialize(digits = nil, scale = nil)
|
274
|
+
raise "anonymous fixed definitions are not allowed!" if digits.nil? || scale.nil?
|
226
275
|
raise "significant digits for Fixed should be in the range 0-31" unless digits.nil? || (0..31) === digits.to_i
|
227
|
-
|
228
|
-
@
|
276
|
+
|
277
|
+
@digits = digits.to_i
|
278
|
+
@scale = scale.to_i
|
229
279
|
end
|
280
|
+
|
230
281
|
def narrow(obj)
|
231
|
-
#typeerror(obj)
|
282
|
+
# typeerror(obj)
|
232
283
|
obj
|
233
284
|
end
|
285
|
+
|
234
286
|
def is_anonymous?
|
235
287
|
false
|
236
288
|
end
|
289
|
+
|
237
290
|
def is_template?
|
238
291
|
(@size && @size.is_a?(IDL::Expression) && @size.is_template?)
|
239
292
|
end
|
293
|
+
|
240
294
|
def instantiate(instantiation_context)
|
241
295
|
self.is_template? ? (Type::Fixed.new(@size.instantiate(instantiation_context).value)) : self
|
242
296
|
end
|
@@ -244,11 +298,15 @@ module IDL
|
|
244
298
|
|
245
299
|
class String < Type
|
246
300
|
attr_reader :size
|
247
|
-
|
301
|
+
|
302
|
+
def length
|
303
|
+
@size
|
304
|
+
end
|
248
305
|
|
249
306
|
def initialize(size = nil)
|
250
307
|
@size = size
|
251
308
|
end
|
309
|
+
|
252
310
|
def narrow(obj)
|
253
311
|
typeerror(obj) unless ::String === obj
|
254
312
|
if @size.nil?
|
@@ -259,15 +317,19 @@ module IDL
|
|
259
317
|
obj
|
260
318
|
end
|
261
319
|
end
|
320
|
+
|
262
321
|
def is_anonymous?
|
263
322
|
@size ? true : false
|
264
323
|
end
|
324
|
+
|
265
325
|
def is_template?
|
266
326
|
(@size && @size.is_a?(IDL::Expression) && @size.is_template?)
|
267
327
|
end
|
328
|
+
|
268
329
|
def matches?(idltype)
|
269
330
|
super && self.size == idltype.size
|
270
331
|
end
|
332
|
+
|
271
333
|
def instantiate(instantiation_context)
|
272
334
|
self.is_template? ? (Type::String.new(@size.instantiate(instantiation_context).value)) : self
|
273
335
|
end
|
@@ -276,9 +338,14 @@ module IDL
|
|
276
338
|
class Sequence < Type
|
277
339
|
attr_reader :size, :basetype
|
278
340
|
attr_accessor :recursive
|
279
|
-
|
341
|
+
|
342
|
+
def length
|
343
|
+
@size
|
344
|
+
end
|
345
|
+
|
280
346
|
def initialize(t, size)
|
281
347
|
raise "Anonymous type definitions are not allowed!" if t.is_anonymous?
|
348
|
+
|
282
349
|
@basetype = t
|
283
350
|
@size = size
|
284
351
|
@typename = format("sequence<%s%s>", t.typename,
|
@@ -289,30 +356,39 @@ module IDL
|
|
289
356
|
end)
|
290
357
|
@recursive = false
|
291
358
|
end
|
359
|
+
|
292
360
|
def typename
|
293
361
|
@typename
|
294
362
|
end
|
363
|
+
|
295
364
|
def narrow(obj)
|
296
365
|
typeerror(obj)
|
297
366
|
end
|
367
|
+
|
298
368
|
def is_complete?
|
299
369
|
@basetype.resolved_type.is_complete?
|
300
370
|
end
|
371
|
+
|
301
372
|
def is_local?(recurstk = [])
|
302
373
|
@basetype.resolved_type.is_local?(recurstk)
|
303
374
|
end
|
375
|
+
|
304
376
|
def is_recursive?
|
305
377
|
@recursive
|
306
378
|
end
|
379
|
+
|
307
380
|
def is_anonymous?
|
308
381
|
true
|
309
382
|
end
|
383
|
+
|
310
384
|
def is_template?
|
311
385
|
(@size && @size.is_a?(IDL::Expression::ScopedName) && @size.node.is_a?(IDL::AST::TemplateParam)) || @basetype.is_template?
|
312
386
|
end
|
387
|
+
|
313
388
|
def matches?(idltype)
|
314
389
|
super && self.size == idltype.size && self.basetype.resolved_type.matches?(idltype.basetype.resolved_type)
|
315
390
|
end
|
391
|
+
|
316
392
|
def instantiate(instantiation_context)
|
317
393
|
if self.is_template?
|
318
394
|
Type::Sequence.new(@basetype.instantiate(instantiation_context), @size ? @size.instantiate(instantiation_context).value : nil)
|
@@ -322,11 +398,76 @@ module IDL
|
|
322
398
|
end
|
323
399
|
end
|
324
400
|
|
401
|
+
class Map < Type
|
402
|
+
attr_reader :size, :keytype, :valuetype
|
403
|
+
attr_accessor :recursive
|
404
|
+
|
405
|
+
def length
|
406
|
+
@size
|
407
|
+
end
|
408
|
+
|
409
|
+
def initialize(key, value, size)
|
410
|
+
raise "Anonymous type definitions are not allowed!" if key.is_anonymous? || value.is_anonymous?
|
411
|
+
|
412
|
+
@keytype = key
|
413
|
+
@valuetype = value
|
414
|
+
@size = size
|
415
|
+
@typename = format("map<%s,%s%s>", key.typename, value.typename,
|
416
|
+
if @size.nil? then
|
417
|
+
""
|
418
|
+
else
|
419
|
+
", #{IDL::Expression::ScopedName === size ? size.node.name : size.to_s}"
|
420
|
+
end)
|
421
|
+
@recursive = false
|
422
|
+
end
|
423
|
+
|
424
|
+
def typename
|
425
|
+
@typename
|
426
|
+
end
|
427
|
+
|
428
|
+
def narrow(obj)
|
429
|
+
typeerror(obj)
|
430
|
+
end
|
431
|
+
|
432
|
+
def is_complete?
|
433
|
+
@keytype.resolved_type.is_complete? && @valuetype.resolved_type.is_complete?
|
434
|
+
end
|
435
|
+
|
436
|
+
def is_local?(recurstk = [])
|
437
|
+
@keytype.resolved_type.is_local?(recurstk) && @valuetype.resolved_type.is_local?(recurstk)
|
438
|
+
end
|
439
|
+
|
440
|
+
def is_recursive?
|
441
|
+
@recursive
|
442
|
+
end
|
443
|
+
|
444
|
+
def is_anonymous?
|
445
|
+
true
|
446
|
+
end
|
447
|
+
|
448
|
+
def is_template?
|
449
|
+
(@size && @size.is_a?(IDL::Expression::ScopedName) && @size.node.is_a?(IDL::AST::TemplateParam)) || @basetype.is_template?
|
450
|
+
end
|
451
|
+
|
452
|
+
def matches?(idltype)
|
453
|
+
super && self.size == idltype.size && self.keytype.resolved_type.matches?(idltype.keytype.resolved_type) && self.valuetype.resolved_type.matches?(idltype.valuetype.resolved_type)
|
454
|
+
end
|
455
|
+
|
456
|
+
def instantiate(instantiation_context)
|
457
|
+
if self.is_template?
|
458
|
+
Type::Map.new(@keytype.instantiate(instantiation_context), @valuetype.instantiate(instantiation_context), @size ? @size.instantiate(instantiation_context).value : nil)
|
459
|
+
else
|
460
|
+
self
|
461
|
+
end
|
462
|
+
end
|
463
|
+
end
|
464
|
+
|
325
465
|
class Array < Type
|
326
|
-
attr_reader :basetype
|
327
|
-
|
466
|
+
attr_reader :basetype, :sizes
|
467
|
+
|
328
468
|
def initialize(t, sizes)
|
329
469
|
raise "Anonymous type definitions are not allowed!" if t.is_anonymous?
|
470
|
+
|
330
471
|
@basetype = t
|
331
472
|
if sizes.nil?
|
332
473
|
@sizes = []
|
@@ -336,27 +477,35 @@ module IDL
|
|
336
477
|
@typename = t.typename + sizes.collect { |s| "[#{IDL::Expression::ScopedName === s ? s.node.name : s.to_s}]" }.join
|
337
478
|
end
|
338
479
|
end
|
480
|
+
|
339
481
|
def typename
|
340
482
|
@typename
|
341
483
|
end
|
484
|
+
|
342
485
|
def narrow(obj)
|
343
486
|
typeerror(obj)
|
344
487
|
end
|
488
|
+
|
345
489
|
def is_complete?
|
346
490
|
@basetype.resolved_type.is_complete?
|
347
491
|
end
|
492
|
+
|
348
493
|
def is_local?(recurstk = [])
|
349
494
|
@basetype.resolved_type.is_local?(recurstk)
|
350
495
|
end
|
496
|
+
|
351
497
|
def is_anonymous?
|
352
498
|
true
|
353
499
|
end
|
500
|
+
|
354
501
|
def is_template?
|
355
502
|
@sizes.any? { |sz| (sz.is_a?(IDL::Expression::ScopedName) && sz.node.is_a?(IDL::AST::TemplateParam)) } || @basetype.is_template?
|
356
503
|
end
|
504
|
+
|
357
505
|
def matches?(idltype)
|
358
506
|
super && self.sizes == idltype.sizes && self.basetype.resolved_type.matches?(idltype.basetype.resolved_type)
|
359
507
|
end
|
508
|
+
|
360
509
|
def instantiate(instantiation_context)
|
361
510
|
self.is_template? ? Type::Array.new(@basetype.instantiate(instantiation_context), @sizes.collect { |sz| sz.instantiate(instantiation_context).value }) : self
|
362
511
|
end
|
@@ -364,11 +513,15 @@ module IDL
|
|
364
513
|
|
365
514
|
class WString < Type
|
366
515
|
attr_reader :size
|
367
|
-
|
516
|
+
|
517
|
+
def length
|
518
|
+
@size
|
519
|
+
end
|
368
520
|
|
369
521
|
def initialize(size = nil)
|
370
522
|
@size = size
|
371
523
|
end
|
524
|
+
|
372
525
|
def narrow(obj)
|
373
526
|
typeerror(obj) unless ::Array === obj
|
374
527
|
if @size.nil?
|
@@ -379,15 +532,19 @@ module IDL
|
|
379
532
|
obj
|
380
533
|
end
|
381
534
|
end
|
535
|
+
|
382
536
|
def is_anonymous?
|
383
537
|
@size ? true : false
|
384
538
|
end
|
539
|
+
|
385
540
|
def is_template?
|
386
541
|
(@size && @size.is_a?(IDL::Expression::ScopedName) && @size.node.is_a?(IDL::AST::TemplateParam))
|
387
542
|
end
|
543
|
+
|
388
544
|
def matches?(idltype)
|
389
545
|
super && self.size == idltype.size
|
390
546
|
end
|
547
|
+
|
391
548
|
def instantiate(instantiation_context)
|
392
549
|
self.is_template? ? Type::WString.new(@size.instantiate(instantiation_context).value) : self
|
393
550
|
end
|
@@ -438,6 +595,7 @@ module IDL
|
|
438
595
|
def is_complete?
|
439
596
|
node.is_defined?
|
440
597
|
end
|
598
|
+
|
441
599
|
def is_local?(recurstk = [])
|
442
600
|
node.is_local?(recurstk)
|
443
601
|
end
|
@@ -450,6 +608,7 @@ module IDL
|
|
450
608
|
def is_complete?
|
451
609
|
node.is_defined?
|
452
610
|
end
|
611
|
+
|
453
612
|
def is_local?(recurstk = [])
|
454
613
|
node.is_local?(recurstk)
|
455
614
|
end
|
@@ -462,6 +621,7 @@ module IDL
|
|
462
621
|
def is_complete?
|
463
622
|
node.is_defined?
|
464
623
|
end
|
624
|
+
|
465
625
|
def is_local?(recurstk = [])
|
466
626
|
node.is_local?(recurstk)
|
467
627
|
end
|
@@ -473,18 +633,79 @@ module IDL
|
|
473
633
|
typeerror(obj) unless (0...@node.enumerators.length) === obj
|
474
634
|
obj
|
475
635
|
end
|
636
|
+
|
476
637
|
def range_length
|
477
638
|
@node.enumerators.length
|
478
639
|
end
|
640
|
+
|
479
641
|
def min
|
480
642
|
0
|
481
643
|
end
|
644
|
+
|
482
645
|
def max
|
483
646
|
@node.enumerators.length - 1
|
484
647
|
end
|
648
|
+
|
649
|
+
def in_range?(val)
|
650
|
+
val >= self.min && val <= self.max
|
651
|
+
end
|
652
|
+
|
653
|
+
def next(val)
|
654
|
+
val < self.max ? val + 1 : self.min
|
655
|
+
end
|
656
|
+
end
|
657
|
+
|
658
|
+
class BitMask < NodeType
|
659
|
+
def narrow(obj)
|
660
|
+
typeerror(obj) unless ::Integer === obj
|
661
|
+
typeerror(obj) unless (0...@node.bitvalues.length) === obj
|
662
|
+
obj
|
663
|
+
end
|
664
|
+
|
665
|
+
def range_length
|
666
|
+
@node.bitvalues.length
|
667
|
+
end
|
668
|
+
|
669
|
+
def min
|
670
|
+
0
|
671
|
+
end
|
672
|
+
|
673
|
+
def max
|
674
|
+
@node.bitvalues.length - 1
|
675
|
+
end
|
676
|
+
|
485
677
|
def in_range?(val)
|
486
678
|
val >= self.min && val <= self.max
|
487
679
|
end
|
680
|
+
|
681
|
+
def next(val)
|
682
|
+
val < self.max ? val + 1 : self.min
|
683
|
+
end
|
684
|
+
end
|
685
|
+
|
686
|
+
class BitSet < NodeType
|
687
|
+
def narrow(obj)
|
688
|
+
typeerror(obj) unless ::Integer === obj
|
689
|
+
typeerror(obj) unless (0...@node.bitfields.length) === obj
|
690
|
+
obj
|
691
|
+
end
|
692
|
+
|
693
|
+
def range_length
|
694
|
+
@node.bitfields.length
|
695
|
+
end
|
696
|
+
|
697
|
+
def min
|
698
|
+
0
|
699
|
+
end
|
700
|
+
|
701
|
+
def max
|
702
|
+
@node.bitfields.length - 1
|
703
|
+
end
|
704
|
+
|
705
|
+
def in_range?(val)
|
706
|
+
val >= self.min && val <= self.max
|
707
|
+
end
|
708
|
+
|
488
709
|
def next(val)
|
489
710
|
val < self.max ? val + 1 : self.min
|
490
711
|
end
|
@@ -492,41 +713,51 @@ module IDL
|
|
492
713
|
|
493
714
|
class Const < Type
|
494
715
|
attr_reader :type
|
716
|
+
|
495
717
|
def initialize(t)
|
496
718
|
@type = t
|
497
719
|
@typename = "const #{t.typename}"
|
498
720
|
end
|
721
|
+
|
499
722
|
def typename
|
500
723
|
@typename
|
501
724
|
end
|
725
|
+
|
502
726
|
def narrow(obj)
|
503
727
|
@type.narrow(obj)
|
504
728
|
end
|
729
|
+
|
505
730
|
def is_complete?
|
506
731
|
@type.resolved_type.is_complete?
|
507
732
|
end
|
733
|
+
|
508
734
|
def is_local?(recurstk = [])
|
509
735
|
@type.resolved_type.is_local?(recurstk)
|
510
736
|
end
|
737
|
+
|
511
738
|
def is_anonymous?
|
512
739
|
t.resolved_type.is_anonymous?
|
513
740
|
end
|
741
|
+
|
514
742
|
def is_template?
|
515
743
|
@type.is_template?
|
516
744
|
end
|
745
|
+
|
517
746
|
def instantiate(instantiation_context)
|
518
747
|
self.is_template? ? Type::Const.new(@type.instantiate(instantiation_context)) : self
|
519
748
|
end
|
749
|
+
|
520
750
|
def is_node?(node_class)
|
521
751
|
@type.is_node?(node_class)
|
522
752
|
end
|
753
|
+
|
523
754
|
def resolved_node
|
524
755
|
@type.resolved_node
|
525
756
|
end
|
757
|
+
|
526
758
|
def matches?(idltype)
|
527
759
|
super && self.type.resolved_type.matches?(idltype.type.resolved_type)
|
528
760
|
end
|
529
761
|
end
|
530
|
-
|
531
762
|
end
|
532
763
|
end
|
data/lib/ridl/version.rb
CHANGED
@@ -11,11 +11,9 @@
|
|
11
11
|
#--------------------------------------------------------------------
|
12
12
|
|
13
13
|
module IDL
|
14
|
-
|
15
14
|
RIDL_VERSION_MAJOR = 2
|
16
|
-
RIDL_VERSION_MINOR =
|
17
|
-
RIDL_VERSION_RELEASE =
|
15
|
+
RIDL_VERSION_MINOR = 10
|
16
|
+
RIDL_VERSION_RELEASE = 0
|
18
17
|
RIDL_VERSION = "#{RIDL_VERSION_MAJOR}.#{RIDL_VERSION_MINOR}.#{RIDL_VERSION_RELEASE}"
|
19
18
|
RIDL_COPYRIGHT = "Copyright (c) 2007-#{Time.now.year} Remedy IT Expertise BV, The Netherlands".freeze
|
20
|
-
|
21
19
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ridl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Corino
|
8
8
|
- Johnny Willemsen
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2025-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: OMG v3.3 compliant native Ruby IDL compiler frontend with support for
|
15
15
|
pluggable (and stackable) backends.
|
@@ -29,7 +29,6 @@ files:
|
|
29
29
|
- lib/ridl/node.rb
|
30
30
|
- lib/ridl/options.rb
|
31
31
|
- lib/ridl/optparse_ext.rb
|
32
|
-
- lib/ridl/parser.diff
|
33
32
|
- lib/ridl/parser.rb
|
34
33
|
- lib/ridl/parser.ry
|
35
34
|
- lib/ridl/require.rb
|
@@ -44,7 +43,7 @@ licenses:
|
|
44
43
|
metadata:
|
45
44
|
bug_tracker_uri: https://github.com/RemedyIT/ridl/issues
|
46
45
|
source_code_uri: https://github.com/RemedyIT/ridl
|
47
|
-
post_install_message:
|
46
|
+
post_install_message:
|
48
47
|
rdoc_options:
|
49
48
|
- "--main"
|
50
49
|
- README.rdoc
|
@@ -64,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
63
|
version: '0'
|
65
64
|
requirements: []
|
66
65
|
rubygems_version: 3.1.6
|
67
|
-
signing_key:
|
66
|
+
signing_key:
|
68
67
|
specification_version: 4
|
69
68
|
summary: Ruby OMG IDL compiler
|
70
69
|
test_files: []
|