r2corba 1.4.1-x86-mingw32
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 +7 -0
- data/CHANGES +159 -0
- data/LICENSE +59 -0
- data/README +62 -0
- data/THANKS +52 -0
- data/bin/r2corba +8 -0
- data/bin/r2corba.bat +20 -0
- data/bin/ridlc +11 -0
- data/bin/ridlc.bat +23 -0
- data/bin/rins +7 -0
- data/bin/rins.bat +19 -0
- data/ext/.keep +0 -0
- data/lib/corba/cbase/IORMap.rb +33 -0
- data/lib/corba/cbase/ORB.rb +231 -0
- data/lib/corba/cbase/Request.rb +134 -0
- data/lib/corba/cbase/Streams.rb +129 -0
- data/lib/corba/cbase/Stub.rb +19 -0
- data/lib/corba/cbase/Typecode.rb +441 -0
- data/lib/corba/cbase/Values.rb +129 -0
- data/lib/corba/cbase/exception.rb +66 -0
- data/lib/corba/cbase/poa.rb +23 -0
- data/lib/corba/cbase/policies.rb +78 -0
- data/lib/corba/cbase/post_require.rb +14 -0
- data/lib/corba/cbase/require.rb +28 -0
- data/lib/corba/cmds/base.rb +85 -0
- data/lib/corba/cmds/test.rb +30 -0
- data/lib/corba/common/Any.rb +91 -0
- data/lib/corba/common/IDL.rb +104 -0
- data/lib/corba/common/ORB.rb +368 -0
- data/lib/corba/common/Object.rb +208 -0
- data/lib/corba/common/Request.rb +20 -0
- data/lib/corba/common/Servant.rb +108 -0
- data/lib/corba/common/Struct.rb +22 -0
- data/lib/corba/common/Stub.rb +79 -0
- data/lib/corba/common/Typecode.rb +1121 -0
- data/lib/corba/common/Union.rb +56 -0
- data/lib/corba/common/Values.rb +92 -0
- data/lib/corba/common/const.rb +22 -0
- data/lib/corba/common/exception.rb +68 -0
- data/lib/corba/common/require.rb +27 -0
- data/lib/corba/common/version.rb +22 -0
- data/lib/corba/idl/BiDirPolicyC.rb +63 -0
- data/lib/corba/idl/CosNamingC.rb +461 -0
- data/lib/corba/idl/CosNamingS.rb +309 -0
- data/lib/corba/idl/IDL.rb +21 -0
- data/lib/corba/idl/IORTable.pidl +62 -0
- data/lib/corba/idl/IORTableC.rb +117 -0
- data/lib/corba/idl/MessagingC.rb +904 -0
- data/lib/corba/idl/POAC.rb +930 -0
- data/lib/corba/idl/TAO_Ext.pidl +46 -0
- data/lib/corba/idl/TAO_ExtC.rb +179 -0
- data/lib/corba/idl/r2c_orb.rb +572 -0
- data/lib/corba/idl/require.rb +20 -0
- data/lib/corba/jbase/Any.rb +273 -0
- data/lib/corba/jbase/IORMap.rb +36 -0
- data/lib/corba/jbase/ORB.rb +99 -0
- data/lib/corba/jbase/Object.rb +98 -0
- data/lib/corba/jbase/Request.rb +226 -0
- data/lib/corba/jbase/Servant.rb +247 -0
- data/lib/corba/jbase/ServerRequest.rb +128 -0
- data/lib/corba/jbase/Streams.rb +671 -0
- data/lib/corba/jbase/Stub.rb +38 -0
- data/lib/corba/jbase/Typecode.rb +520 -0
- data/lib/corba/jbase/Values.rb +173 -0
- data/lib/corba/jbase/exception.rb +106 -0
- data/lib/corba/jbase/poa.rb +229 -0
- data/lib/corba/jbase/policies.rb +300 -0
- data/lib/corba/jbase/post_require.rb +14 -0
- data/lib/corba/jbase/require.rb +86 -0
- data/lib/corba/naming.rb +14 -0
- data/lib/corba/naming_service.rb +15 -0
- data/lib/corba/poa.rb +15 -0
- data/lib/corba/policies.rb +18 -0
- data/lib/corba/require.rb +17 -0
- data/lib/corba/svcs/ins/cos_naming.rb +426 -0
- data/lib/corba/svcs/ins/ins.rb +526 -0
- data/lib/corba/svcs/ins/naming_service.rb +119 -0
- data/lib/corba.rb +16 -0
- data/lib/ridlbe/ruby/config.rb +336 -0
- data/lib/ridlbe/ruby/orb.pidlc +0 -0
- data/lib/ridlbe/ruby/require.rb +16 -0
- data/lib/ridlbe/ruby/walker.rb +1582 -0
- data/mkrf_conf_bingem.rb +101 -0
- data/rakelib/bin.rake +80 -0
- data/rakelib/bin.rb +146 -0
- data/rakelib/build.rake +87 -0
- data/rakelib/config.rake +52 -0
- data/rakelib/config.rb +450 -0
- data/rakelib/ext.rake +242 -0
- data/rakelib/ext.rb +308 -0
- data/rakelib/ext_r2tao.rb +232 -0
- data/rakelib/gem.rake +212 -0
- data/rakelib/gem.rb +146 -0
- data/rakelib/package.rake +26 -0
- data/rakelib/test.rake +23 -0
- data/test/BiDirectional/Test.idl +34 -0
- data/test/BiDirectional/client.rb +132 -0
- data/test/BiDirectional/run_test.rb +68 -0
- data/test/BiDirectional/server.ior +1 -0
- data/test/BiDirectional/server.rb +169 -0
- data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
- data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
- data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
- data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
- data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
- data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
- data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
- data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
- data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
- data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
- data/test/Collocation/Diamond.idl +39 -0
- data/test/Collocation/run_test.rb +52 -0
- data/test/Collocation/test.rb +195 -0
- data/test/Connect_Timeout/Test.idl +27 -0
- data/test/Connect_Timeout/client.rb +111 -0
- data/test/Connect_Timeout/run_test.rb +52 -0
- data/test/DII/Test.idl +27 -0
- data/test/DII/client.rb +115 -0
- data/test/DII/run_test.rb +69 -0
- data/test/DII/server.ior +1 -0
- data/test/DII/server.rb +95 -0
- data/test/DSI/Test.idl +27 -0
- data/test/DSI/client.rb +66 -0
- data/test/DSI/run_test.rb +69 -0
- data/test/DSI/server.ior +1 -0
- data/test/DSI/server.rb +106 -0
- data/test/Exceptions/Test.idl +48 -0
- data/test/Exceptions/client.rb +118 -0
- data/test/Exceptions/run_test.rb +69 -0
- data/test/Exceptions/server.ior +1 -0
- data/test/Exceptions/server.rb +131 -0
- data/test/Hello/Test.idl +27 -0
- data/test/Hello/client.rb +78 -0
- data/test/Hello/run_test.rb +71 -0
- data/test/Hello/server.rb +95 -0
- data/test/IDL_Test/Test.idl +113 -0
- data/test/IDL_Test/Test_inc.idl +17 -0
- data/test/IDL_Test/client.rb +102 -0
- data/test/IDL_Test/run_test.rb +69 -0
- data/test/IDL_Test/server.ior +1 -0
- data/test/IDL_Test/server.rb +99 -0
- data/test/IORMap/Test.idl +27 -0
- data/test/IORMap/client.rb +73 -0
- data/test/IORMap/run_test.rb +69 -0
- data/test/IORMap/server.ior +1 -0
- data/test/IORMap/server.rb +114 -0
- data/test/IORTable/Test.idl +27 -0
- data/test/IORTable/client.rb +75 -0
- data/test/IORTable/run_test.rb +69 -0
- data/test/IORTable/server.ior +1 -0
- data/test/IORTable/server.rb +130 -0
- data/test/Implicit_Conversion/Test.idl +31 -0
- data/test/Implicit_Conversion/client.rb +110 -0
- data/test/Implicit_Conversion/run_test.rb +69 -0
- data/test/Implicit_Conversion/server.ior +1 -0
- data/test/Implicit_Conversion/server.rb +99 -0
- data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
- data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
- data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
- data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
- data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
- data/test/Multi_Threading/Simple/Test.idl +27 -0
- data/test/Multi_Threading/Simple/client.rb +88 -0
- data/test/Multi_Threading/Simple/run_test.rb +69 -0
- data/test/Multi_Threading/Simple/server.ior +1 -0
- data/test/Multi_Threading/Simple/server.rb +118 -0
- data/test/Multi_Threading/Threads/Test.idl +31 -0
- data/test/Multi_Threading/Threads/client.rb +80 -0
- data/test/Multi_Threading/Threads/run_test.rb +76 -0
- data/test/Multi_Threading/Threads/server.ior +1 -0
- data/test/Multi_Threading/Threads/server.rb +119 -0
- data/test/Multi_Threading/Threads/watchdog.ior +1 -0
- data/test/Multi_Threading/Threads/watchdog.rb +87 -0
- data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
- data/test/Multiple_Servant_Interfaces/client.rb +70 -0
- data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
- data/test/Multiple_Servant_Interfaces/server.ior +1 -0
- data/test/Multiple_Servant_Interfaces/server.rb +102 -0
- data/test/Nil/Test.idl +27 -0
- data/test/Nil/run_test.rb +52 -0
- data/test/Nil/test.rb +78 -0
- data/test/OBV/AbstractInterface/client.rb +179 -0
- data/test/OBV/AbstractInterface/run_test.rb +69 -0
- data/test/OBV/AbstractInterface/server.ior +1 -0
- data/test/OBV/AbstractInterface/server.rb +149 -0
- data/test/OBV/AbstractInterface/test.idl +53 -0
- data/test/OBV/Custom/OBV.idl +18 -0
- data/test/OBV/Custom/OBV_impl.rb +40 -0
- data/test/OBV/Custom/client.rb +86 -0
- data/test/OBV/Custom/run_test.rb +69 -0
- data/test/OBV/Custom/server.ior +1 -0
- data/test/OBV/Custom/server.rb +100 -0
- data/test/OBV/Simple/OBV.idl +15 -0
- data/test/OBV/Simple/OBV_impl.rb +26 -0
- data/test/OBV/Simple/client.rb +86 -0
- data/test/OBV/Simple/run_test.rb +69 -0
- data/test/OBV/Simple/server.ior +1 -0
- data/test/OBV/Simple/server.rb +100 -0
- data/test/OBV/Simple_Event/Event.idl +15 -0
- data/test/OBV/Simple_Event/Event_impl.rb +26 -0
- data/test/OBV/Simple_Event/client.rb +86 -0
- data/test/OBV/Simple_Event/run_test.rb +69 -0
- data/test/OBV/Simple_Event/server.ior +1 -0
- data/test/OBV/Simple_Event/server.rb +100 -0
- data/test/OBV/Supports/client.rb +116 -0
- data/test/OBV/Supports/run_test.rb +69 -0
- data/test/OBV/Supports/server.ior +1 -0
- data/test/OBV/Supports/server.rb +103 -0
- data/test/OBV/Supports/supports.idl +33 -0
- data/test/OBV/Supports/supports_impl.rb +57 -0
- data/test/OBV/Tree/client.rb +116 -0
- data/test/OBV/Tree/run_test.rb +69 -0
- data/test/OBV/Tree/server.ior +1 -0
- data/test/OBV/Tree/server.rb +117 -0
- data/test/OBV/Tree/test.idl +32 -0
- data/test/OBV/Truncatable/Extra.idl +27 -0
- data/test/OBV/Truncatable/Truncatable.idl +105 -0
- data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
- data/test/OBV/Truncatable/client.rb +279 -0
- data/test/OBV/Truncatable/run_test.rb +69 -0
- data/test/OBV/Truncatable/server.ior +1 -0
- data/test/OBV/Truncatable/server.rb +89 -0
- data/test/OBV/ValueBox/client.rb +497 -0
- data/test/OBV/ValueBox/run_test.rb +69 -0
- data/test/OBV/ValueBox/server.ior +1 -0
- data/test/OBV/ValueBox/server.rb +271 -0
- data/test/OBV/ValueBox/valuebox.idl +101 -0
- data/test/OBV/ValueBox/vb_basic.idl +75 -0
- data/test/OBV/ValueBox/vb_struct.idl +68 -0
- data/test/OBV/ValueBox/vb_union.idl +21 -0
- data/test/Object/Test.idl +27 -0
- data/test/Object/client.rb +103 -0
- data/test/Object/run_test.rb +69 -0
- data/test/Object/server.ior +1 -0
- data/test/Object/server.rb +126 -0
- data/test/POA/Test.idl +27 -0
- data/test/POA/run_test.rb +52 -0
- data/test/POA/test.rb +112 -0
- data/test/Param_Test/Test.idl +182 -0
- data/test/Param_Test/client.rb +277 -0
- data/test/Param_Test/run_test.rb +69 -0
- data/test/Param_Test/server.ior +1 -0
- data/test/Param_Test/server.rb +296 -0
- data/test/Performance/Simple/Test.idl +27 -0
- data/test/Performance/Simple/client.rb +90 -0
- data/test/Performance/Simple/run_test.rb +69 -0
- data/test/Performance/Simple/server.ior +1 -0
- data/test/Performance/Simple/server.rb +95 -0
- data/test/Policies/Test.idl +27 -0
- data/test/Policies/run_test.rb +52 -0
- data/test/Policies/test.rb +144 -0
- data/test/Timeout/client.rb +207 -0
- data/test/Timeout/run_test.rb +69 -0
- data/test/Timeout/server.ior +1 -0
- data/test/Timeout/server.rb +109 -0
- data/test/Timeout/test.idl +19 -0
- data/test/lib/assert.rb +43 -0
- data/test/lib/test.rb +542 -0
- data/test/test_runner.rb +193 -0
- metadata +342 -0
@@ -0,0 +1,336 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# config.rb - IDL language mapping configuration for Ruby
|
3
|
+
#
|
4
|
+
# Author: Martin Corino
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
8
|
+
# included with this program.
|
9
|
+
#
|
10
|
+
# Copyright (c) Remedy IT Expertise BV
|
11
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
|
+
#--------------------------------------------------------------------
|
13
|
+
|
14
|
+
module IDL
|
15
|
+
|
16
|
+
class StrOStream
|
17
|
+
def initialize()
|
18
|
+
@str = ""
|
19
|
+
end
|
20
|
+
def clear
|
21
|
+
@str = ""
|
22
|
+
end
|
23
|
+
def to_s
|
24
|
+
@str
|
25
|
+
end
|
26
|
+
def <<(s)
|
27
|
+
@str << s
|
28
|
+
end
|
29
|
+
end # class StrOStream
|
30
|
+
|
31
|
+
class RIDL
|
32
|
+
private
|
33
|
+
def RIDL.merge_params(params)
|
34
|
+
opts = IDL::OPTIONS.dup
|
35
|
+
params.each do |k,v|
|
36
|
+
case opts[k]
|
37
|
+
when Array
|
38
|
+
opts[k] = opts[k] + (Array === v ? v : [v])
|
39
|
+
when Hash
|
40
|
+
opts[k] = opts[k].merge(v) if Hash === v
|
41
|
+
else
|
42
|
+
opts[k] = v
|
43
|
+
end
|
44
|
+
end
|
45
|
+
opts
|
46
|
+
end
|
47
|
+
def RIDL.parse0(src, params)
|
48
|
+
params = merge_params(params)
|
49
|
+
IDL.verbose_level = params[:verbose]
|
50
|
+
parser = ::IDL::Parser.new(params)
|
51
|
+
parser.parse(src)
|
52
|
+
s = ::IDL::StrOStream.new
|
53
|
+
s.clear
|
54
|
+
IDL::Ruby.process_input(parser,params,s)
|
55
|
+
s
|
56
|
+
end
|
57
|
+
def RIDL.parse(src, params)
|
58
|
+
s = parse0(src, params)
|
59
|
+
s.to_s
|
60
|
+
end
|
61
|
+
public
|
62
|
+
def RIDL.eval(src, params={})
|
63
|
+
params[:idl_eval] = true
|
64
|
+
params[:expand_includes] = true
|
65
|
+
params[:client_stubs] = true if params[:client_stubs].nil?
|
66
|
+
params[:stubs_only] ||= false
|
67
|
+
s = parse0(src, params)
|
68
|
+
Kernel.eval(s.to_s, ::TOPLEVEL_BINDING)
|
69
|
+
s = nil
|
70
|
+
end
|
71
|
+
def RIDL.fparse(fname, params = {})
|
72
|
+
params[:client_stubs] = true if params[:client_stubs].nil?
|
73
|
+
params[:stubs_only] ||= false
|
74
|
+
f = File.open(fname, "r")
|
75
|
+
self.parse(f, params)
|
76
|
+
ensure
|
77
|
+
f.close
|
78
|
+
end
|
79
|
+
def RIDL.feval(fname, params = {})
|
80
|
+
File.open(fname, "r") { |io| self.eval(io, params) }
|
81
|
+
end
|
82
|
+
end # module RIDL
|
83
|
+
|
84
|
+
module Ruby
|
85
|
+
COPYRIGHT = 'Copyright (c) 2007-2013 Remedy IT Expertise BV, The Netherlands'.freeze
|
86
|
+
TITLE = 'RIDL Ruby backend'.freeze
|
87
|
+
VERSION = {
|
88
|
+
:major => 1,
|
89
|
+
:minor => 9,
|
90
|
+
:release => 2
|
91
|
+
}
|
92
|
+
|
93
|
+
## Configure Ruby backend
|
94
|
+
#
|
95
|
+
Backend.configure('ruby', File.dirname(__FILE__), TITLE, COPYRIGHT, VERSION) do |becfg|
|
96
|
+
|
97
|
+
# setup backend option handling
|
98
|
+
#
|
99
|
+
becfg.on_setup do |optlist, ridl_params|
|
100
|
+
# defaults
|
101
|
+
ridl_params[:stub_pfx] = 'C'
|
102
|
+
ridl_params[:srv_pfx] = 'S'
|
103
|
+
ridl_params[:stubs_only] = false
|
104
|
+
ridl_params[:client_stubs] = true
|
105
|
+
ridl_params[:expand_includes] = false
|
106
|
+
ridl_params[:libinit] = true
|
107
|
+
ridl_params[:class_interfaces] = []
|
108
|
+
|
109
|
+
# ruby specific option switches
|
110
|
+
|
111
|
+
unless IDL.preprocessing? # same switch defined for IDL preprocessing mode
|
112
|
+
optlist.for_switch "--output=FILE", :type => String,
|
113
|
+
:description => ['Specifies filename to generate output in.',
|
114
|
+
'Default: File.basename(idlfile, \'.idl\')+<postfix>+<ext>'] do |swcfg|
|
115
|
+
swcfg.on_exec do |arg, params|
|
116
|
+
params[:output] = arg
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
optlist.for_switch '-o PATH', :type => String,
|
123
|
+
:description => ["Specifies output directory.",
|
124
|
+
"Default: ./"] do |swcfg|
|
125
|
+
swcfg.on_exec do |arg, params|
|
126
|
+
params[:outputdir] = arg
|
127
|
+
end
|
128
|
+
end
|
129
|
+
optlist.for_switch '--stubs-only',
|
130
|
+
:description => ["Only generate client stubs, no servant code.",
|
131
|
+
"Default: off"] do |swcfg|
|
132
|
+
swcfg.on_exec do |arg, params|
|
133
|
+
params[:client_stubs] = true
|
134
|
+
params[:stubs_only] = true
|
135
|
+
end
|
136
|
+
end
|
137
|
+
optlist.for_switch '--no-stubs',
|
138
|
+
:description => ["Do not generate client stubs, only servant code.",
|
139
|
+
"Default: off"] do |swcfg|
|
140
|
+
swcfg.on_exec do |arg, params|
|
141
|
+
params[:client_stubs] = false
|
142
|
+
params[:stubs_only] = false
|
143
|
+
end
|
144
|
+
end
|
145
|
+
optlist.for_switch '--stub-pfx=POSTFIX', :type => String,
|
146
|
+
:description => ['Specifies postfix for generated client stub source filename.',
|
147
|
+
'Filenames are formed like: <idl basename><postfix>.<language extension>',
|
148
|
+
"Default: #{ridl_params[:stub_pfx]}"] do |swcfg|
|
149
|
+
swcfg.on_exec do |arg, params|
|
150
|
+
params[:stub_pfx] = arg
|
151
|
+
end
|
152
|
+
end
|
153
|
+
optlist.for_switch '--skel-pfx=POSTFIX', :type => String,
|
154
|
+
:description => ['Specifies postfix for generated servant skeleton source filename.',
|
155
|
+
'Filenames are formed like: <idl basename><postfix>.<language extension>',
|
156
|
+
"Default: #{ridl_params[:srv_pfx]}"] do |swcfg|
|
157
|
+
swcfg.on_exec do |arg, params|
|
158
|
+
params[:srv_pfx] = arg
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
optlist.for_switch '--skel-directory=PATH', :type => String,
|
163
|
+
:description => ["Specifies output directory for servant files.",
|
164
|
+
"Default: outputdir or ./"] do |swcfg|
|
165
|
+
swcfg.on_exec do |arg, params|
|
166
|
+
params[:skel_outputdir] = arg
|
167
|
+
end
|
168
|
+
end
|
169
|
+
optlist.for_switch '--expand-includes',
|
170
|
+
:description => ["Generate code for included IDL inline.",
|
171
|
+
"Default: off"] do |swcfg|
|
172
|
+
swcfg.on_exec do |arg, params|
|
173
|
+
params[:expand_includes] = true
|
174
|
+
end
|
175
|
+
end
|
176
|
+
optlist.for_switch '--no-libinit',
|
177
|
+
:description => ["Do not generate library initialization code as preamble.",
|
178
|
+
"Default: on"] do |swcfg|
|
179
|
+
swcfg.on_exec do |arg, params|
|
180
|
+
params[:libinit] = false
|
181
|
+
end
|
182
|
+
end
|
183
|
+
optlist.for_switch '--interface-as-class=INTF', :type => String,
|
184
|
+
:description => ["Generate a Ruby class for interface INTF instead of a module in client stubs.",
|
185
|
+
"Default: module"] do |swcfg|
|
186
|
+
swcfg.on_exec do |arg, params|
|
187
|
+
params[:class_interfaces] << arg
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
# process input / generate code
|
193
|
+
# arguments:
|
194
|
+
# in parser - parser object with full AST from parsed source
|
195
|
+
# in options - initialized option hash
|
196
|
+
#
|
197
|
+
becfg.on_process_input do |parser, options|
|
198
|
+
IDL::Ruby.process_input(parser,options)
|
199
|
+
end # becfg.on_process_input
|
200
|
+
|
201
|
+
end # Backend.configure
|
202
|
+
|
203
|
+
def self.process_input(parser, options, outstream = nil)
|
204
|
+
# has a user defined output filename been set
|
205
|
+
fixed_output = !options[:output].nil?
|
206
|
+
|
207
|
+
# determine output file path for client stub code
|
208
|
+
unless fixed_output || options[:idlfile].nil?
|
209
|
+
options[:output] = options[:outputdir]+'/'+File.basename(options[:idlfile], '.idl')+options[:stub_pfx]+'.rb'
|
210
|
+
end
|
211
|
+
# generate client stubs if requested
|
212
|
+
if options[:client_stubs]
|
213
|
+
# open output file
|
214
|
+
co = outstream || (if options[:output].nil?
|
215
|
+
GenFile.new(nil, :output_file => $stdout)
|
216
|
+
else
|
217
|
+
GenFile.new(options[:output])
|
218
|
+
end)
|
219
|
+
begin
|
220
|
+
# process StubWriter
|
221
|
+
parser.visit_nodes(::IDL::RubyStubWriter.new(co, options))
|
222
|
+
rescue => ex
|
223
|
+
IDL.log(0, ex)
|
224
|
+
IDL.log(0, ex.backtrace.join("\n")) unless ex.is_a? IDL::ParseError
|
225
|
+
exit 1
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
# determin output file path for servant code and open file
|
230
|
+
unless options[:stubs_only]
|
231
|
+
so = outstream || (unless fixed_output || options[:idlfile].nil?
|
232
|
+
options[:srv_output] = if fixed_output
|
233
|
+
options[:output]
|
234
|
+
else
|
235
|
+
options[:outputdir]+'/'+File.basename(options[:idlfile], '.idl')+options[:srv_pfx]+'.rb'
|
236
|
+
end
|
237
|
+
if fixed_output && options[:client_stubs]
|
238
|
+
co
|
239
|
+
else
|
240
|
+
GenFile.new(options[:srv_output])
|
241
|
+
end
|
242
|
+
else
|
243
|
+
GenFile.new(nil, :output_file => $stdout)
|
244
|
+
end)
|
245
|
+
begin
|
246
|
+
# process ServantWriter
|
247
|
+
parser.visit_nodes(::IDL::RubyServantWriter.new(so, options))
|
248
|
+
rescue => ex
|
249
|
+
IDL.log(0, ex)
|
250
|
+
IDL.log(0, ex.backtrace.join("\n")) unless ex.is_a? IDL::ParseError
|
251
|
+
exit 1
|
252
|
+
end
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
module LeafMixin
|
257
|
+
|
258
|
+
RESERVED_RUBY_CONST = [
|
259
|
+
'Array', 'Bignum', 'Binding', 'Class', 'Continuation', 'Dir', 'Exception',
|
260
|
+
'FalseClass', 'File', 'Fixnum', 'Float', 'Hash', 'Integer', 'IO', 'MatchData',
|
261
|
+
'Method', 'Module', 'NilClass', 'Numeric', 'Object', 'Proc', 'Process', 'Range',
|
262
|
+
'Regexp', 'String', 'Struct', 'Symbol', 'Thread', 'ThreadGroup', 'Time', 'TrueClass',
|
263
|
+
'UnboundMethod', 'Comparable', 'Enumerable', 'Errno', 'FileTest', 'GC', 'Kernel',
|
264
|
+
'Marshal', 'Math', 'ObjectSpace', 'Signal'
|
265
|
+
]
|
266
|
+
|
267
|
+
RESERVED_RUBY_MEMBER = [
|
268
|
+
"untaint", "id", "instance_variable_get", "inspect", "taint", "public_methods", "__send__", "to_a", "display", "instance_eval",
|
269
|
+
"extend", "clone", "protected_methods", "hash", "freeze", "type", "instance_variable_set", "methods", "instance_variables", "to_s", "method", "dup",
|
270
|
+
"private_methods", "object_id", "send", "__id__", "singleton_methods",
|
271
|
+
"proc", "readline", "global_variables", "singleton_method_removed", "callcc", "syscall", "fail", "untrace_var", "load", "srand", "puts", "catch", "chomp",
|
272
|
+
"initialize_copy", "format", "scan", "print", "abort", "fork", "gsub", "trap", "test", "select", "initialize", "method_missing", "lambda", "readlines",
|
273
|
+
"local_variables", "singleton_method_undefined", "system", "open", "caller", "eval", "set_trace_func", "require", "rand", "singleton_method_added",
|
274
|
+
"throw", "gets", "binding", "raise", "warn", "getc", "exec", "trace_var", "irb_binding", "at_exit", "split", "putc", "loop", "chop", "sprintf", "p",
|
275
|
+
"remove_instance_variable", "exit", "printf", "sleep", "sub", "autoload"
|
276
|
+
]
|
277
|
+
|
278
|
+
def self.included(klass)
|
279
|
+
klass.extend ClassMethods
|
280
|
+
end
|
281
|
+
|
282
|
+
def rubyname
|
283
|
+
lm_name
|
284
|
+
end
|
285
|
+
|
286
|
+
def scoped_rubyname
|
287
|
+
scoped_lm_name
|
288
|
+
end
|
289
|
+
|
290
|
+
module ClassMethods
|
291
|
+
def mk_name(nm, is_scoped)
|
292
|
+
ret = nm.dup
|
293
|
+
case self::NAMETYPE
|
294
|
+
when :class
|
295
|
+
ret = ret[0,1].upcase + ret[1,ret.size].to_s
|
296
|
+
ret = 'R_'+ret if !is_scoped && IDL::Ruby::LeafMixin::RESERVED_RUBY_CONST.include?(ret)
|
297
|
+
when :member
|
298
|
+
ret = ret[0,1].downcase + ret[1,ret.size].to_s
|
299
|
+
ret = 'r_'+ret if IDL::Ruby::LeafMixin::RESERVED_RUBY_MEMBER.include?(ret)
|
300
|
+
else
|
301
|
+
raise RuntimeError,
|
302
|
+
"invalid nametype for #{self.class}: #{self::NAMETYPE}"
|
303
|
+
end
|
304
|
+
ret
|
305
|
+
end
|
306
|
+
end
|
307
|
+
end # module LeafMixin
|
308
|
+
|
309
|
+
IDL::AST::Leaf.class_eval do
|
310
|
+
include LeafMixin
|
311
|
+
end
|
312
|
+
|
313
|
+
module ScannerMixin
|
314
|
+
|
315
|
+
RUBYKW = [
|
316
|
+
'__FILE__', 'and', 'def', 'end', 'in', 'or', 'self', 'unless',
|
317
|
+
'__LINE__', 'begin', 'defined?', 'ensure', 'module', 'redo', 'super', 'until',
|
318
|
+
'BEGIN', 'break', 'do', 'false', 'next', 'rescue', 'then', 'when',
|
319
|
+
'END', 'case', 'else', 'for', 'nil', 'retry', 'true', 'while',
|
320
|
+
'alias', 'class', 'elsif', 'if', 'not', 'return', 'undef', 'yield',
|
321
|
+
].collect! { |w| w.to_sym }
|
322
|
+
|
323
|
+
def chk_identifier(ident)
|
324
|
+
# prefix Ruby keywords with 'r_'
|
325
|
+
RUBYKW.include?(ident.to_sym) ? 'r_'+ident : ident
|
326
|
+
end
|
327
|
+
|
328
|
+
end # module ScannerMixin
|
329
|
+
|
330
|
+
IDL::Scanner.class_eval do
|
331
|
+
include ScannerMixin
|
332
|
+
end
|
333
|
+
|
334
|
+
end # module Ruby
|
335
|
+
|
336
|
+
end # module IDL
|
Binary file
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#--------------------------------------------------------------------
|
2
|
+
# require.rb - IDL language mapping loader
|
3
|
+
#
|
4
|
+
# Author: Martin Corino
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the R2CORBA LICENSE which is
|
8
|
+
# included with this program.
|
9
|
+
#
|
10
|
+
# Copyright (c) Remedy IT Expertise BV
|
11
|
+
# Chamber of commerce Rotterdam nr.276339, The Netherlands
|
12
|
+
#--------------------------------------------------------------------
|
13
|
+
|
14
|
+
(Dir.glob(File.join(File.dirname(__FILE__), '*.rb')) - [__FILE__]).each do |f|
|
15
|
+
require f
|
16
|
+
end
|