ridl 2.5.6 → 2.8.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|