ridl 2.5.6 → 2.8.1
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 +5 -5
- data/LICENSE +21 -49
- data/README.rdoc +31 -25
- data/lib/ridl/backend.rb +7 -11
- data/lib/ridl/delegate.rb +84 -98
- data/lib/ridl/expression.rb +25 -33
- data/lib/ridl/genfile.rb +8 -9
- data/lib/ridl/node.rb +324 -395
- data/lib/ridl/options.rb +176 -0
- data/lib/ridl/optparse_ext.rb +8 -8
- data/lib/ridl/parser.rb +1504 -1311
- data/lib/ridl/parser.ry +41 -44
- data/lib/ridl/require.rb +0 -1
- data/lib/ridl/ridl.rb +0 -1
- data/lib/ridl/runner.rb +246 -82
- data/lib/ridl/scanner.rb +103 -104
- data/lib/ridl/type.rb +47 -22
- data/lib/ridl/version.rb +3 -4
- metadata +17 -21
- data/lib/idl/BiDirPolicy.pidl +0 -28
- data/lib/idl/CosNaming.idl +0 -260
- data/lib/idl/IOP.pidl +0 -98
- data/lib/idl/Messaging.pidl +0 -152
- data/lib/idl/PortableServer.pidl +0 -371
- data/lib/idl/TimeBase.pidl +0 -40
- data/lib/idl/orb.idl +0 -200
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d24bac3b0aa52e6c84a1ef61d0939d84b3277b139a69db8cfc1f7f95130bf6a2
|
4
|
+
data.tar.gz: 3f773ed9d639811aaba53a68e0ace506b5e6b11591875326665d102faeff5a8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aa10dbfdb821544c474bc3f41bf48c156a42bf51d909ed631c6030ebd546145f9f9e70945bf4aa54a68e74cfe4a4d27b38dfab937e1576338febc67ea18dc8c
|
7
|
+
data.tar.gz: b96af7bb90418102bfb030dbd798bd15384232ab2547887fd68d4a3e1dc4142c0d997ab15f4de93daf06f39e764d8d8d04720774e81031b537b343daf6570862
|
data/LICENSE
CHANGED
@@ -1,49 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
Warranty
|
24
|
-
|
25
|
-
LICENSED PRODUCT IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
|
26
|
-
THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
27
|
-
PURPOSE, NON-INFRINGEMENT, OR ARISING FROM A COURSE OF DEALING, USAGE OR
|
28
|
-
TRADE PRACTICE.
|
29
|
-
|
30
|
-
Support
|
31
|
-
|
32
|
-
LICENSED PRODUCT IS PROVIDED WITH NO SUPPORT AND WITHOUT ANY OBLIGATION ON
|
33
|
-
THE PART OF REMEDY IT OR ANY OF ITS SUBSIDIARIES OR AFFILIATES TO ASSIST IN
|
34
|
-
ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
|
35
|
-
|
36
|
-
Remedy IT provides support to users who have agreed on the terms of a support
|
37
|
-
contract.
|
38
|
-
|
39
|
-
Liability
|
40
|
-
|
41
|
-
REMEDY IT OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY
|
42
|
-
WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS
|
43
|
-
BY LICENSED PRODUCT OR ANY PART THEREOF.
|
44
|
-
|
45
|
-
IN NO EVENT WILL REMEDY IT OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE
|
46
|
-
FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
|
47
|
-
DAMAGES, EVEN IF REMEDY IT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
48
|
-
|
49
|
-
RIDL is Copyright Remedy IT. Nijkerk, The Netherlands, 2006-2015.
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2019 Remedy IT Expertise BV
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.rdoc
CHANGED
@@ -1,42 +1,48 @@
|
|
1
|
-
=
|
1
|
+
{<img src="https://badge.fury.io/rb/ridl.svg" alt="Gem Version" />}[https://badge.fury.io/rb/ridl]
|
2
|
+
{<img src="https://github.com/RemedyIT/ridl/workflows/linux/badge.svg" alt="Linux CI" />}[https://github.com/RemedyIT/ridl/actions?query=workflow%3Alinux]
|
3
|
+
{<img src="https://www.codefactor.io/repository/github/remedyit/ridl/badge" alt="CodeFactor" />}[https://www.codefactor.io/repository/github/remedyit/ridl]
|
2
4
|
|
3
|
-
|
5
|
+
= RIDL Compiler
|
4
6
|
|
5
7
|
== Description
|
6
|
-
|
7
|
-
RIDL is a Ruby library implementing an OMG \IDL parser/compiler
|
8
|
-
frontend with support for pluggable (and stackable) backends.
|
9
8
|
|
10
|
-
|
9
|
+
{RIDL}[https://www.remedy.nl/opensource/ridl.html] is a Ruby library implementing an Object Management Group (OMG) {IDL}[https://www.omg.org/spec/IDL] parser/compiler frontend with support for pluggable (and stackable) backends created by {Remedy IT}[https://www.remedy.nl].
|
11
10
|
|
12
|
-
|
13
|
-
OMG standard \IDL interface definitions.
|
14
|
-
The framework includes:
|
11
|
+
== Synopsis
|
15
12
|
|
16
|
-
|
17
|
-
* a
|
13
|
+
RIDL provides a framework for implementing compiler/generators for OMG standard IDL definitions. The framework includes:
|
14
|
+
* a {RACC}[https://github.com/ruby/racc] based parser supplemented with a custom scanner/tokenizer
|
15
|
+
* a complete AST class hierarchy for representing parsed IDL specifications
|
18
16
|
* a complete Type class hierarchy
|
19
|
-
*
|
20
|
-
* a builtin
|
17
|
+
* IDL constants expression support
|
18
|
+
* a builtin IDL preprocessor expression parser/evaluator
|
21
19
|
* a flexible framework for pluggable (and stackable) backends
|
22
|
-
* basic support for backend code
|
20
|
+
* basic support for backend code re-generation
|
21
|
+
* compliant with the {OMG IDL 3.5}[https://www.omg.org/spec/IDL/3.5] standard.
|
22
|
+
|
23
|
+
Remedy IT has developed multiple backends for RIDL. These include:
|
24
|
+
* {R2CORBA}[https://www.remedy.nl/opensource/r2corba.html] generating Ruby code
|
25
|
+
* {TAOX11}[https://www.taox11.org] generating C++11 code
|
26
|
+
* {AXCIOMA}[https://www.axcioma.org] generating C++11 code
|
23
27
|
|
24
|
-
|
28
|
+
When you want to know more about how Remedy IT can assist you with developing your own backend for RIDL contact {sales@remedy.nl}[mailto:sales@remedy.nl].
|
25
29
|
|
26
30
|
== Bugs
|
27
31
|
|
28
|
-
If you find a bug, please report it
|
29
|
-
{issues tracker}[https://osportal.remedy.nl/projects/ridl/issues].
|
32
|
+
If you find a bug, please report it as {RIDL issue}[https://github.com/RemedyIT/ridl/issues].
|
30
33
|
|
31
|
-
==
|
34
|
+
== Warranty
|
32
35
|
|
33
|
-
|
36
|
+
This software is provided "as is" and without any express or implied warranties, including, without limitation, the implied warranties of merchantibility and fitness for a particular purpose.
|
34
37
|
|
35
|
-
|
36
|
-
the LICENSE file.
|
38
|
+
== Installing RIDL
|
37
39
|
|
38
|
-
|
40
|
+
RIDL is distributed as a Ruby Gem. You can download and install RIDL as a Ruby Gem from the common {Rubygems.org}[https://www.rubygems.org/gems/ridl] repository by executing the following command:
|
41
|
+
|
42
|
+
$ gem install ridl
|
43
|
+
|
44
|
+
The RIDL Gem is a Ruby-only Gem without any dependencies.
|
45
|
+
|
46
|
+
== Releasing new RIDL Ruby Gem
|
39
47
|
|
40
|
-
|
41
|
-
warranties, including, without limitation, the implied warranties of
|
42
|
-
merchantibility and fitness for a particular purpose.
|
48
|
+
A new RIDL ruby gem release can be made by incrementing the RIDL version in link:lib/ridl/version.rb and create a new release on {github}[https://github.com/RemedyIT/ridl/releases] matching the new version (for example v2.7.0). The github {Ruby Gem Release}[https://github.com/RemedyIT/ridl/actions?query=workflow%3A%22Ruby+Gem+Release%22] action will automatically create a new gem and push it to {Rubygems.org}[https://www.rubygems.org/gems/ridl].
|
data/lib/ridl/backend.rb
CHANGED
@@ -8,7 +8,6 @@
|
|
8
8
|
# included with this program.
|
9
9
|
#
|
10
10
|
# Copyright (c) Remedy IT Expertise BV
|
11
|
-
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
11
|
#--------------------------------------------------------------------
|
13
12
|
|
14
13
|
module IDL
|
@@ -51,7 +50,7 @@ module IDL
|
|
51
50
|
rescue LoadError => ex
|
52
51
|
IDL.error "ERROR: Cannot load RIDL backend [:#{be_name}]"
|
53
52
|
IDL.error ex.inspect
|
54
|
-
IDL.error(ex.backtrace.join("\n")) if IDL.verbose_level>0
|
53
|
+
IDL.error(ex.backtrace.join("\n")) if IDL.verbose_level > 0
|
55
54
|
exit 1
|
56
55
|
end
|
57
56
|
end
|
@@ -97,28 +96,25 @@ module IDL
|
|
97
96
|
# base settings
|
98
97
|
@base_backends.reverse.each {|be| be.setup_be(optlist, idl_options) }
|
99
98
|
# initialize this backend
|
100
|
-
_setup_be(optlist, idl_options)
|
99
|
+
_setup_be(optlist, idl_options) if self.respond_to?(:_setup_be, true)
|
101
100
|
end
|
102
101
|
|
103
102
|
def process_input(parser, params)
|
104
|
-
# process input
|
105
|
-
|
106
|
-
|
103
|
+
# process input bottom-up
|
104
|
+
@base_backends.reverse.each {|be| be.process_input(parser, params) }
|
105
|
+
_process_input(parser, params) if self.respond_to?(:_process_input, true)
|
107
106
|
end
|
108
107
|
|
109
108
|
@@null_be = nil
|
110
109
|
|
111
110
|
def self.null_be
|
112
|
-
@@null_be ||= self.configure('null', '.', 'RIDL Null backend',
|
111
|
+
@@null_be ||= self.configure('null', '.', 'RIDL Null backend', "Copyright (c) 2013-#{Time.now.year} Remedy IT Expertise BV, The Netherlands", 1) do |becfg|
|
113
112
|
becfg.on_setup do |optlist, params|
|
114
113
|
# noop
|
115
114
|
IDL.log(0, "Setup called for #{becfg.backend.title}")
|
116
115
|
end
|
117
|
-
becfg.on_process_input do |parser, params|
|
118
|
-
# noop
|
119
|
-
end
|
120
116
|
end
|
121
117
|
end
|
122
118
|
|
123
119
|
end
|
124
|
-
end
|
120
|
+
end
|
data/lib/ridl/delegate.rb
CHANGED
@@ -8,14 +8,13 @@
|
|
8
8
|
# included with this program.
|
9
9
|
#
|
10
10
|
# Copyright (c) Remedy IT Expertise BV
|
11
|
-
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
11
|
#--------------------------------------------------------------------
|
13
12
|
require 'ridl/node'
|
14
13
|
require 'ridl/expression'
|
15
14
|
|
16
15
|
module IDL
|
17
16
|
|
18
|
-
ORB_PIDL = 'orb.pidlc'
|
17
|
+
ORB_PIDL = 'orb.pidlc'.freeze
|
19
18
|
|
20
19
|
class Delegator
|
21
20
|
|
@@ -26,7 +25,7 @@ class Delegator
|
|
26
25
|
@@pragma_handlers = {}
|
27
26
|
|
28
27
|
def self.add_pragma_handler(key, h = nil, &block)
|
29
|
-
raise
|
28
|
+
raise 'add_pragma_handler requires a callable object or a block' unless (h && h.respond_to?(:call)) || block_given?
|
30
29
|
@@pragma_handlers[key] = block_given? ? block : h
|
31
30
|
end
|
32
31
|
|
@@ -202,14 +201,10 @@ class Delegator
|
|
202
201
|
when IDL::AST::Enumerator
|
203
202
|
w.visit_enumerator(m)
|
204
203
|
else
|
205
|
-
raise
|
204
|
+
raise "Invalid IDL member type for walkthrough: #{m.class.name}"
|
206
205
|
end
|
207
206
|
end
|
208
207
|
|
209
|
-
def cur_parsed_name_scope
|
210
|
-
@cur ? @cur.parsed_name_scope : ''
|
211
|
-
end
|
212
|
-
|
213
208
|
def is_included?(s)
|
214
209
|
@includes.has_key?(s)
|
215
210
|
end
|
@@ -218,7 +213,7 @@ class Delegator
|
|
218
213
|
params = { :filename => s, :fullpath => fullpath }
|
219
214
|
params[:defined] = true
|
220
215
|
params[:preprocessed] = @preprocess
|
221
|
-
@cur = @cur.define(IDL::AST::Include, "$INC:"+s, params)
|
216
|
+
@cur = @cur.define(IDL::AST::Include, "$INC:" + s, params)
|
222
217
|
@includes[s] = @cur
|
223
218
|
set_last
|
224
219
|
@cur
|
@@ -233,7 +228,7 @@ class Delegator
|
|
233
228
|
params = { :filename => s, :fullpath => @includes[s].fullpath }
|
234
229
|
params[:defined] = false
|
235
230
|
params[:preprocessed] = @includes[s].is_preprocessed?
|
236
|
-
@cur.define(IDL::AST::Include, "$INC:"+s, params)
|
231
|
+
@cur.define(IDL::AST::Include, "$INC:" + s, params)
|
237
232
|
end
|
238
233
|
|
239
234
|
def pragma_prefix(s)
|
@@ -263,7 +258,7 @@ class Delegator
|
|
263
258
|
end
|
264
259
|
|
265
260
|
def handle_pragma(pragma_string)
|
266
|
-
unless @@pragma_handlers.values.
|
261
|
+
unless @@pragma_handlers.values.reduce(false) {|rc, h| h.call(self, @cur, pragma_string) || rc }
|
267
262
|
IDL.log(1, "RIDL - unrecognized pragma encountered: #{pragma_string}.")
|
268
263
|
end
|
269
264
|
end
|
@@ -289,8 +284,8 @@ class Delegator
|
|
289
284
|
|
290
285
|
def define_module(name)
|
291
286
|
@cur = @cur.define(IDL::AST::Module, name)
|
292
|
-
@cur.annotations.concat(@annotation_stack)
|
293
|
-
@annotation_stack.
|
287
|
+
@cur.annotations.concat(@annotation_stack)
|
288
|
+
@annotation_stack = IDL::AST::Annotations.new
|
294
289
|
set_last
|
295
290
|
@cur
|
296
291
|
end
|
@@ -304,12 +299,12 @@ class Delegator
|
|
304
299
|
end
|
305
300
|
|
306
301
|
def define_template_module(global, names)
|
307
|
-
if global || names.size>1
|
308
|
-
raise
|
302
|
+
if global || names.size > 1
|
303
|
+
raise "no scoped identifier allowed for template module: #{(global ? '::' : '') + names.join('::')}"
|
309
304
|
end
|
310
305
|
@cur = @cur.define(IDL::AST::TemplateModule, names[0])
|
311
|
-
@cur.annotations.concat(@annotation_stack)
|
312
|
-
@annotation_stack.
|
306
|
+
@cur.annotations.concat(@annotation_stack)
|
307
|
+
@annotation_stack = IDL::AST::Annotations.new
|
313
308
|
set_last
|
314
309
|
@cur
|
315
310
|
end
|
@@ -322,8 +317,8 @@ class Delegator
|
|
322
317
|
define_template_module(*tmp)
|
323
318
|
end
|
324
319
|
params = { :type => type }
|
325
|
-
params[:annotations] = @annotation_stack
|
326
|
-
@annotation_stack.
|
320
|
+
params[:annotations] = @annotation_stack
|
321
|
+
@annotation_stack = IDL::AST::Annotations.new
|
327
322
|
set_last(@cur.define(IDL::AST::TemplateParam, name, params))
|
328
323
|
@cur
|
329
324
|
end
|
@@ -333,12 +328,12 @@ class Delegator
|
|
333
328
|
@template_module_name = nil # reset
|
334
329
|
template_type = parse_scopedname(*tmp)
|
335
330
|
unless template_type.node.is_a?(IDL::AST::TemplateModule)
|
336
|
-
raise
|
331
|
+
raise "invalid module template specification: #{template_type.node.typename} #{template_type.node.scoped_lm_name}"
|
337
332
|
end
|
338
333
|
params = { :template => template_type.node, :template_params => parameters }
|
339
334
|
mod_inst = @cur.define(IDL::AST::Module, name, params)
|
340
|
-
mod_inst.annotations.concat(@annotation_stack)
|
341
|
-
@annotation_stack.
|
335
|
+
mod_inst.annotations.concat(@annotation_stack)
|
336
|
+
@annotation_stack = IDL::AST::Annotations.new
|
342
337
|
set_last(mod_inst.template.instantiate(mod_inst))
|
343
338
|
@cur
|
344
339
|
end
|
@@ -347,8 +342,8 @@ class Delegator
|
|
347
342
|
params = {}
|
348
343
|
params[:tpl_type] = type
|
349
344
|
params[:tpl_params] = tpl_params || []
|
350
|
-
params[:annotations] = @annotation_stack
|
351
|
-
@annotation_stack.
|
345
|
+
params[:annotations] = @annotation_stack
|
346
|
+
@annotation_stack = IDL::AST::Annotations.new
|
352
347
|
set_last(@cur.define(IDL::AST::TemplateModuleReference, name, params))
|
353
348
|
@cur
|
354
349
|
end
|
@@ -359,8 +354,7 @@ class Delegator
|
|
359
354
|
params[:local] = attrib == :local
|
360
355
|
params[:forward] = true
|
361
356
|
params[:pseudo] = false
|
362
|
-
raise
|
363
|
-
"annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
357
|
+
raise "annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
364
358
|
@cur.define(IDL::AST::Interface, name, params)
|
365
359
|
set_last
|
366
360
|
@cur
|
@@ -373,8 +367,8 @@ class Delegator
|
|
373
367
|
params[:pseudo] = attrib == :pseudo
|
374
368
|
params[:forward] = false
|
375
369
|
params[:inherits] = inherits
|
376
|
-
params[:annotations] = @annotation_stack
|
377
|
-
@annotation_stack.
|
370
|
+
params[:annotations] = @annotation_stack
|
371
|
+
@annotation_stack = IDL::AST::Annotations.new
|
378
372
|
set_last
|
379
373
|
@cur = @cur.define(IDL::AST::Interface, name, params)
|
380
374
|
end
|
@@ -389,8 +383,8 @@ class Delegator
|
|
389
383
|
params[:component] = component
|
390
384
|
params[:key] = key
|
391
385
|
params[:supports] = supports || []
|
392
|
-
params[:annotations] = @annotation_stack
|
393
|
-
@annotation_stack.
|
386
|
+
params[:annotations] = @annotation_stack
|
387
|
+
@annotation_stack = IDL::AST::Annotations.new
|
394
388
|
set_last
|
395
389
|
@cur = @cur.define(IDL::AST::Home, name, params)
|
396
390
|
end
|
@@ -403,8 +397,7 @@ class Delegator
|
|
403
397
|
def declare_component(name)
|
404
398
|
params = {}
|
405
399
|
params[:forward] = true
|
406
|
-
raise
|
407
|
-
"annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
400
|
+
raise "annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
408
401
|
set_last
|
409
402
|
@cur.define(IDL::AST::Component, name, params)
|
410
403
|
end
|
@@ -413,8 +406,8 @@ class Delegator
|
|
413
406
|
params = {}
|
414
407
|
params[:base] = base
|
415
408
|
params[:supports] = supports || []
|
416
|
-
params[:annotations] = @annotation_stack
|
417
|
-
@annotation_stack.
|
409
|
+
params[:annotations] = @annotation_stack
|
410
|
+
@annotation_stack = IDL::AST::Annotations.new
|
418
411
|
set_last
|
419
412
|
@cur = @cur.define(IDL::AST::Component, name, params)
|
420
413
|
end
|
@@ -427,8 +420,8 @@ class Delegator
|
|
427
420
|
def define_connector(name, base = nil)
|
428
421
|
params = {}
|
429
422
|
params[:base] = base
|
430
|
-
params[:annotations] = @annotation_stack
|
431
|
-
@annotation_stack.
|
423
|
+
params[:annotations] = @annotation_stack
|
424
|
+
@annotation_stack = IDL::AST::Annotations.new
|
432
425
|
set_last
|
433
426
|
@cur = @cur.define(IDL::AST::Connector, name, params)
|
434
427
|
end
|
@@ -440,8 +433,8 @@ class Delegator
|
|
440
433
|
|
441
434
|
def define_porttype(name)
|
442
435
|
params = {}
|
443
|
-
params[:annotations] = @annotation_stack
|
444
|
-
@annotation_stack.
|
436
|
+
params[:annotations] = @annotation_stack
|
437
|
+
@annotation_stack = IDL::AST::Annotations.new
|
445
438
|
set_last
|
446
439
|
@cur = @cur.define(IDL::AST::Porttype, name, params)
|
447
440
|
end
|
@@ -456,8 +449,8 @@ class Delegator
|
|
456
449
|
params[:porttype] = porttype
|
457
450
|
params[:type] = type
|
458
451
|
params[:multiple] = multiple
|
459
|
-
params[:annotations] = @annotation_stack
|
460
|
-
@annotation_stack.
|
452
|
+
params[:annotations] = @annotation_stack
|
453
|
+
@annotation_stack = IDL::AST::Annotations.new
|
461
454
|
set_last(@cur.define(IDL::AST::Port, name, params))
|
462
455
|
@cur
|
463
456
|
end
|
@@ -466,8 +459,7 @@ class Delegator
|
|
466
459
|
params = {}
|
467
460
|
params[:abstract] = attrib == :abstract
|
468
461
|
params[:forward] = true
|
469
|
-
raise
|
470
|
-
"annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
462
|
+
raise "annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
471
463
|
set_last
|
472
464
|
@cur.define(IDL::AST::Eventtype, name, params)
|
473
465
|
@cur
|
@@ -479,8 +471,8 @@ class Delegator
|
|
479
471
|
params[:custom] = attrib == :custom
|
480
472
|
params[:forward] = false
|
481
473
|
params[:inherits] = inherits
|
482
|
-
params[:annotations] = @annotation_stack
|
483
|
-
@annotation_stack.
|
474
|
+
params[:annotations] = @annotation_stack
|
475
|
+
@annotation_stack = IDL::AST::Annotations.new
|
484
476
|
set_last
|
485
477
|
@cur = @cur.define(IDL::AST::Eventtype, name, params)
|
486
478
|
@cur
|
@@ -490,8 +482,7 @@ class Delegator
|
|
490
482
|
params = {}
|
491
483
|
params[:abstract] = attrib == :abstract
|
492
484
|
params[:forward] = true
|
493
|
-
raise
|
494
|
-
"annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
485
|
+
raise "annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
495
486
|
set_last
|
496
487
|
@cur.define(IDL::AST::Valuetype, name, params)
|
497
488
|
@cur
|
@@ -503,8 +494,8 @@ class Delegator
|
|
503
494
|
params[:custom] = attrib == :custom
|
504
495
|
params[:forward] = false
|
505
496
|
params[:inherits] = inherits
|
506
|
-
params[:annotations] = @annotation_stack
|
507
|
-
@annotation_stack.
|
497
|
+
params[:annotations] = @annotation_stack
|
498
|
+
@annotation_stack = IDL::AST::Annotations.new
|
508
499
|
set_last
|
509
500
|
@cur = @cur.define(IDL::AST::Valuetype, name, params)
|
510
501
|
@cur
|
@@ -523,16 +514,16 @@ class Delegator
|
|
523
514
|
params = {}
|
524
515
|
params[:type] = type
|
525
516
|
params[:visibility] = (public_ ? :public : :private)
|
526
|
-
params[:annotations] = @annotation_stack
|
527
|
-
@annotation_stack.
|
517
|
+
params[:annotations] = @annotation_stack
|
518
|
+
@annotation_stack = IDL::AST::Annotations.new
|
528
519
|
set_last(@cur.define(IDL::AST::StateMember, name, params))
|
529
520
|
@cur
|
530
521
|
end
|
531
522
|
|
532
523
|
def define_valuebox(name, type)
|
533
524
|
params = { :type => type }
|
534
|
-
params[:annotations] = @annotation_stack
|
535
|
-
@annotation_stack.
|
525
|
+
params[:annotations] = @annotation_stack
|
526
|
+
@annotation_stack = IDL::AST::Annotations.new
|
536
527
|
set_last(@cur.define(IDL::AST::Valuebox, name, params))
|
537
528
|
@cur
|
538
529
|
end
|
@@ -541,8 +532,8 @@ class Delegator
|
|
541
532
|
params = {}
|
542
533
|
params[:params] = params_
|
543
534
|
params[:raises] = raises_
|
544
|
-
params[:annotations] = @annotation_stack
|
545
|
-
@annotation_stack.
|
535
|
+
params[:annotations] = @annotation_stack
|
536
|
+
@annotation_stack = IDL::AST::Annotations.new
|
546
537
|
set_last(@cur.define(IDL::AST::Initializer, name, params))
|
547
538
|
@cur
|
548
539
|
end
|
@@ -551,8 +542,8 @@ class Delegator
|
|
551
542
|
params = {}
|
552
543
|
params[:params] = params_
|
553
544
|
params[:raises] = raises_
|
554
|
-
params[:annotations] = @annotation_stack
|
555
|
-
@annotation_stack.
|
545
|
+
params[:annotations] = @annotation_stack
|
546
|
+
@annotation_stack = IDL::AST::Annotations.new
|
556
547
|
set_last(@cur.define(IDL::AST::Finder, name, params))
|
557
548
|
@cur
|
558
549
|
end
|
@@ -563,8 +554,7 @@ class Delegator
|
|
563
554
|
namelist.each do |nm|
|
564
555
|
n = node.resolve(nm)
|
565
556
|
if n.nil?
|
566
|
-
raise
|
567
|
-
"cannot find type name '#{nm}' in scope '#{node.scoped_name}'"
|
557
|
+
raise "cannot find type name '#{nm}' in scope '#{node.scoped_name}'"
|
568
558
|
end
|
569
559
|
node = n
|
570
560
|
first = node if first.nil?
|
@@ -572,7 +562,7 @@ class Delegator
|
|
572
562
|
root.introduce(first)
|
573
563
|
case node
|
574
564
|
when IDL::AST::Module, IDL::AST::TemplateModule,
|
575
|
-
IDL::AST::Interface,IDL::AST::Home, IDL::AST::Component,
|
565
|
+
IDL::AST::Interface, IDL::AST::Home, IDL::AST::Component,
|
576
566
|
IDL::AST::Porttype, IDL::AST::Connector,
|
577
567
|
IDL::AST::Struct, IDL::AST::Union, IDL::AST::Typedef,
|
578
568
|
IDL::AST::Exception, IDL::AST::Enum,
|
@@ -589,8 +579,7 @@ class Delegator
|
|
589
579
|
when IDL::AST::Enumerator
|
590
580
|
Expression::Enumerator.new(node)
|
591
581
|
else
|
592
|
-
raise
|
593
|
-
"invalid reference to #{node.class.name}: #{node.scoped_name}"
|
582
|
+
raise "invalid reference to #{node.class.name}: #{node.scoped_name}"
|
594
583
|
end
|
595
584
|
end
|
596
585
|
|
@@ -608,8 +597,7 @@ class Delegator
|
|
608
597
|
Type::ULongLong,
|
609
598
|
].detect {|t| t::Range === _value }
|
610
599
|
if _type.nil?
|
611
|
-
raise
|
612
|
-
"it's not a valid integer: #{v.to_s}"
|
600
|
+
raise "it's not a valid integer: #{v.to_s}"
|
613
601
|
end
|
614
602
|
k.new(_type.new, _value)
|
615
603
|
when :string
|
@@ -634,9 +622,9 @@ class Delegator
|
|
634
622
|
_expression
|
635
623
|
else
|
636
624
|
if not ::Integer === _expression.value
|
637
|
-
raise
|
625
|
+
raise "must be integer: #{_expression.value.inspect}"
|
638
626
|
elsif _expression.value < 0
|
639
|
-
raise
|
627
|
+
raise "must be positive integer: #{_expression.value.to_s}"
|
640
628
|
end
|
641
629
|
_expression.value
|
642
630
|
end
|
@@ -644,8 +632,8 @@ class Delegator
|
|
644
632
|
|
645
633
|
def define_const(_type, _name, _expression)
|
646
634
|
params = { :type => _type, :expression => _expression }
|
647
|
-
params[:annotations] = @annotation_stack
|
648
|
-
@annotation_stack.
|
635
|
+
params[:annotations] = @annotation_stack
|
636
|
+
@annotation_stack = IDL::AST::Annotations.new
|
649
637
|
set_last(@cur.define(IDL::AST::Const, _name, params))
|
650
638
|
@cur
|
651
639
|
end
|
@@ -654,8 +642,8 @@ class Delegator
|
|
654
642
|
params = Hash.new
|
655
643
|
params[:oneway] = (_oneway == :oneway)
|
656
644
|
params[:type] = _type
|
657
|
-
params[:annotations] = @annotation_stack
|
658
|
-
@annotation_stack.
|
645
|
+
params[:annotations] = @annotation_stack
|
646
|
+
@annotation_stack = IDL::AST::Annotations.new
|
659
647
|
set_last
|
660
648
|
@cur = @cur.define(IDL::AST::Operation, _name, params)
|
661
649
|
end
|
@@ -663,16 +651,16 @@ class Delegator
|
|
663
651
|
params = Hash.new
|
664
652
|
params[:attribute] = _attribute
|
665
653
|
params[:type] = _type
|
666
|
-
params[:annotations] = @annotation_stack
|
667
|
-
@annotation_stack.
|
654
|
+
params[:annotations] = @annotation_stack
|
655
|
+
@annotation_stack = IDL::AST::Annotations.new
|
668
656
|
set_last(@cur.define(IDL::AST::Parameter, _name, params))
|
669
657
|
@cur
|
670
658
|
end
|
671
|
-
def declare_op_footer(_raises,
|
659
|
+
def declare_op_footer(_raises, instantiation_context)
|
672
660
|
@cur.raises = _raises || []
|
673
|
-
@cur.context =
|
661
|
+
@cur.context = instantiation_context
|
674
662
|
if not @cur.context.nil?
|
675
|
-
raise
|
663
|
+
raise "context phrase's not supported"
|
676
664
|
end
|
677
665
|
set_last(@cur)
|
678
666
|
@cur = @cur.enclosure
|
@@ -682,31 +670,30 @@ class Delegator
|
|
682
670
|
params = Hash.new
|
683
671
|
params[:type] = _type
|
684
672
|
params[:readonly] = _readonly
|
685
|
-
params[:annotations] = @annotation_stack
|
686
|
-
@annotation_stack.
|
673
|
+
params[:annotations] = @annotation_stack
|
674
|
+
@annotation_stack = IDL::AST::Annotations.new
|
687
675
|
set_last(@cur.define(IDL::AST::Attribute, _name, params))
|
688
676
|
end
|
689
677
|
|
690
678
|
def declare_struct(_name)
|
691
679
|
params = { :forward => true }
|
692
|
-
raise
|
693
|
-
"annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
680
|
+
raise "annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
694
681
|
set_last
|
695
682
|
@cur.define(IDL::AST::Struct, _name, params)
|
696
683
|
@cur
|
697
684
|
end
|
698
685
|
def define_struct(_name)
|
699
686
|
params = { :forward => false }
|
700
|
-
params[:annotations] = @annotation_stack
|
701
|
-
@annotation_stack.
|
687
|
+
params[:annotations] = @annotation_stack
|
688
|
+
@annotation_stack = IDL::AST::Annotations.new
|
702
689
|
set_last
|
703
690
|
@cur = @cur.define(IDL::AST::Struct, _name, params)
|
704
691
|
end
|
705
692
|
def declare_member(_type, _name)
|
706
693
|
params = Hash.new
|
707
694
|
params[:type] = _type
|
708
|
-
params[:annotations] = @annotation_stack
|
709
|
-
@annotation_stack.
|
695
|
+
params[:annotations] = @annotation_stack
|
696
|
+
@annotation_stack = IDL::AST::Annotations.new
|
710
697
|
set_last(@cur.define(IDL::AST::Member, _name, params))
|
711
698
|
@cur
|
712
699
|
end
|
@@ -719,8 +706,8 @@ class Delegator
|
|
719
706
|
end
|
720
707
|
def define_exception(_name)
|
721
708
|
params = { :forward => false }
|
722
|
-
params[:annotations] = @annotation_stack
|
723
|
-
@annotation_stack.
|
709
|
+
params[:annotations] = @annotation_stack
|
710
|
+
@annotation_stack = IDL::AST::Annotations.new
|
724
711
|
set_last
|
725
712
|
@cur = @cur.define(IDL::AST::Exception, _name, params)
|
726
713
|
end
|
@@ -733,31 +720,30 @@ class Delegator
|
|
733
720
|
|
734
721
|
def declare_union(_name)
|
735
722
|
params = { :forward => true }
|
736
|
-
raise
|
737
|
-
"annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
723
|
+
raise "annotations with forward declaration of #{name} not allowed" unless @annotation_stack.empty?
|
738
724
|
set_last
|
739
725
|
@cur.define(IDL::AST::Union, _name, params)
|
740
726
|
@cur
|
741
727
|
end
|
742
728
|
def define_union(_name)
|
743
729
|
params = { :forward => false }
|
744
|
-
params[:annotations] = @annotation_stack
|
745
|
-
@annotation_stack.
|
730
|
+
params[:annotations] = @annotation_stack
|
731
|
+
@annotation_stack = IDL::AST::Annotations.new
|
746
732
|
set_last
|
747
733
|
@cur = @cur.define(IDL::AST::Union, _name, params)
|
748
734
|
end
|
749
735
|
def define_union_switchtype(union_node, switchtype)
|
750
736
|
union_node.set_switchtype(switchtype)
|
751
|
-
union_node.annotations.concat(@annotation_stack)
|
752
|
-
@annotation_stack.
|
737
|
+
union_node.annotations.concat(@annotation_stack)
|
738
|
+
@annotation_stack = IDL::AST::Annotations.new
|
753
739
|
union_node
|
754
740
|
end
|
755
741
|
def define_case(_labels, _type, _name)
|
756
742
|
params = Hash.new
|
757
743
|
params[:type] = _type
|
758
744
|
params[:labels] = _labels
|
759
|
-
params[:annotations] = @annotation_stack
|
760
|
-
@annotation_stack.
|
745
|
+
params[:annotations] = @annotation_stack
|
746
|
+
@annotation_stack = IDL::AST::Annotations.new
|
761
747
|
set_last(@cur.define(IDL::AST::UnionMember, _name, params))
|
762
748
|
@cur
|
763
749
|
end
|
@@ -772,8 +758,8 @@ class Delegator
|
|
772
758
|
|
773
759
|
def define_enum(_name)
|
774
760
|
params = {}
|
775
|
-
params[:annotations] = @annotation_stack
|
776
|
-
@annotation_stack.
|
761
|
+
params[:annotations] = @annotation_stack
|
762
|
+
@annotation_stack = IDL::AST::Annotations.new
|
777
763
|
set_last
|
778
764
|
@cur = @cur.define(IDL::AST::Enum, _name, params)
|
779
765
|
end
|
@@ -783,8 +769,8 @@ class Delegator
|
|
783
769
|
:value => n,
|
784
770
|
:enum => @cur
|
785
771
|
}
|
786
|
-
params[:annotations] = @annotation_stack
|
787
|
-
@annotation_stack.
|
772
|
+
params[:annotations] = @annotation_stack
|
773
|
+
@annotation_stack = IDL::AST::Annotations.new
|
788
774
|
set_last(@cur.enclosure.define(IDL::AST::Enumerator, _name, params))
|
789
775
|
@cur
|
790
776
|
end
|
@@ -798,8 +784,8 @@ class Delegator
|
|
798
784
|
def declare_typedef(_type, _name)
|
799
785
|
params = Hash.new
|
800
786
|
params[:type] = _type
|
801
|
-
params[:annotations] = @annotation_stack
|
802
|
-
@annotation_stack.
|
787
|
+
params[:annotations] = @annotation_stack
|
788
|
+
@annotation_stack = IDL::AST::Annotations.new
|
803
789
|
set_last(@cur.define(IDL::AST::Typedef, _name, params))
|
804
790
|
@cur
|
805
791
|
end
|