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.
Files changed (267) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +159 -0
  3. data/LICENSE +59 -0
  4. data/README +62 -0
  5. data/THANKS +52 -0
  6. data/bin/r2corba +8 -0
  7. data/bin/r2corba.bat +20 -0
  8. data/bin/ridlc +11 -0
  9. data/bin/ridlc.bat +23 -0
  10. data/bin/rins +7 -0
  11. data/bin/rins.bat +19 -0
  12. data/ext/.keep +0 -0
  13. data/lib/corba/cbase/IORMap.rb +33 -0
  14. data/lib/corba/cbase/ORB.rb +231 -0
  15. data/lib/corba/cbase/Request.rb +134 -0
  16. data/lib/corba/cbase/Streams.rb +129 -0
  17. data/lib/corba/cbase/Stub.rb +19 -0
  18. data/lib/corba/cbase/Typecode.rb +441 -0
  19. data/lib/corba/cbase/Values.rb +129 -0
  20. data/lib/corba/cbase/exception.rb +66 -0
  21. data/lib/corba/cbase/poa.rb +23 -0
  22. data/lib/corba/cbase/policies.rb +78 -0
  23. data/lib/corba/cbase/post_require.rb +14 -0
  24. data/lib/corba/cbase/require.rb +28 -0
  25. data/lib/corba/cmds/base.rb +85 -0
  26. data/lib/corba/cmds/test.rb +30 -0
  27. data/lib/corba/common/Any.rb +91 -0
  28. data/lib/corba/common/IDL.rb +104 -0
  29. data/lib/corba/common/ORB.rb +368 -0
  30. data/lib/corba/common/Object.rb +208 -0
  31. data/lib/corba/common/Request.rb +20 -0
  32. data/lib/corba/common/Servant.rb +108 -0
  33. data/lib/corba/common/Struct.rb +22 -0
  34. data/lib/corba/common/Stub.rb +79 -0
  35. data/lib/corba/common/Typecode.rb +1121 -0
  36. data/lib/corba/common/Union.rb +56 -0
  37. data/lib/corba/common/Values.rb +92 -0
  38. data/lib/corba/common/const.rb +22 -0
  39. data/lib/corba/common/exception.rb +68 -0
  40. data/lib/corba/common/require.rb +27 -0
  41. data/lib/corba/common/version.rb +22 -0
  42. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  43. data/lib/corba/idl/CosNamingC.rb +461 -0
  44. data/lib/corba/idl/CosNamingS.rb +309 -0
  45. data/lib/corba/idl/IDL.rb +21 -0
  46. data/lib/corba/idl/IORTable.pidl +62 -0
  47. data/lib/corba/idl/IORTableC.rb +117 -0
  48. data/lib/corba/idl/MessagingC.rb +904 -0
  49. data/lib/corba/idl/POAC.rb +930 -0
  50. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  51. data/lib/corba/idl/TAO_ExtC.rb +179 -0
  52. data/lib/corba/idl/r2c_orb.rb +572 -0
  53. data/lib/corba/idl/require.rb +20 -0
  54. data/lib/corba/jbase/Any.rb +273 -0
  55. data/lib/corba/jbase/IORMap.rb +36 -0
  56. data/lib/corba/jbase/ORB.rb +99 -0
  57. data/lib/corba/jbase/Object.rb +98 -0
  58. data/lib/corba/jbase/Request.rb +226 -0
  59. data/lib/corba/jbase/Servant.rb +247 -0
  60. data/lib/corba/jbase/ServerRequest.rb +128 -0
  61. data/lib/corba/jbase/Streams.rb +671 -0
  62. data/lib/corba/jbase/Stub.rb +38 -0
  63. data/lib/corba/jbase/Typecode.rb +520 -0
  64. data/lib/corba/jbase/Values.rb +173 -0
  65. data/lib/corba/jbase/exception.rb +106 -0
  66. data/lib/corba/jbase/poa.rb +229 -0
  67. data/lib/corba/jbase/policies.rb +300 -0
  68. data/lib/corba/jbase/post_require.rb +14 -0
  69. data/lib/corba/jbase/require.rb +86 -0
  70. data/lib/corba/naming.rb +14 -0
  71. data/lib/corba/naming_service.rb +15 -0
  72. data/lib/corba/poa.rb +15 -0
  73. data/lib/corba/policies.rb +18 -0
  74. data/lib/corba/require.rb +17 -0
  75. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  76. data/lib/corba/svcs/ins/ins.rb +526 -0
  77. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  78. data/lib/corba.rb +16 -0
  79. data/lib/ridlbe/ruby/config.rb +336 -0
  80. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  81. data/lib/ridlbe/ruby/require.rb +16 -0
  82. data/lib/ridlbe/ruby/walker.rb +1582 -0
  83. data/mkrf_conf_bingem.rb +101 -0
  84. data/rakelib/bin.rake +80 -0
  85. data/rakelib/bin.rb +146 -0
  86. data/rakelib/build.rake +87 -0
  87. data/rakelib/config.rake +52 -0
  88. data/rakelib/config.rb +450 -0
  89. data/rakelib/ext.rake +242 -0
  90. data/rakelib/ext.rb +308 -0
  91. data/rakelib/ext_r2tao.rb +232 -0
  92. data/rakelib/gem.rake +212 -0
  93. data/rakelib/gem.rb +146 -0
  94. data/rakelib/package.rake +26 -0
  95. data/rakelib/test.rake +23 -0
  96. data/test/BiDirectional/Test.idl +34 -0
  97. data/test/BiDirectional/client.rb +132 -0
  98. data/test/BiDirectional/run_test.rb +68 -0
  99. data/test/BiDirectional/server.ior +1 -0
  100. data/test/BiDirectional/server.rb +169 -0
  101. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  105. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  106. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  107. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  108. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  109. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  110. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  111. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  112. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  113. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  114. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  115. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  116. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  117. data/test/Collocation/Diamond.idl +39 -0
  118. data/test/Collocation/run_test.rb +52 -0
  119. data/test/Collocation/test.rb +195 -0
  120. data/test/Connect_Timeout/Test.idl +27 -0
  121. data/test/Connect_Timeout/client.rb +111 -0
  122. data/test/Connect_Timeout/run_test.rb +52 -0
  123. data/test/DII/Test.idl +27 -0
  124. data/test/DII/client.rb +115 -0
  125. data/test/DII/run_test.rb +69 -0
  126. data/test/DII/server.ior +1 -0
  127. data/test/DII/server.rb +95 -0
  128. data/test/DSI/Test.idl +27 -0
  129. data/test/DSI/client.rb +66 -0
  130. data/test/DSI/run_test.rb +69 -0
  131. data/test/DSI/server.ior +1 -0
  132. data/test/DSI/server.rb +106 -0
  133. data/test/Exceptions/Test.idl +48 -0
  134. data/test/Exceptions/client.rb +118 -0
  135. data/test/Exceptions/run_test.rb +69 -0
  136. data/test/Exceptions/server.ior +1 -0
  137. data/test/Exceptions/server.rb +131 -0
  138. data/test/Hello/Test.idl +27 -0
  139. data/test/Hello/client.rb +78 -0
  140. data/test/Hello/run_test.rb +71 -0
  141. data/test/Hello/server.rb +95 -0
  142. data/test/IDL_Test/Test.idl +113 -0
  143. data/test/IDL_Test/Test_inc.idl +17 -0
  144. data/test/IDL_Test/client.rb +102 -0
  145. data/test/IDL_Test/run_test.rb +69 -0
  146. data/test/IDL_Test/server.ior +1 -0
  147. data/test/IDL_Test/server.rb +99 -0
  148. data/test/IORMap/Test.idl +27 -0
  149. data/test/IORMap/client.rb +73 -0
  150. data/test/IORMap/run_test.rb +69 -0
  151. data/test/IORMap/server.ior +1 -0
  152. data/test/IORMap/server.rb +114 -0
  153. data/test/IORTable/Test.idl +27 -0
  154. data/test/IORTable/client.rb +75 -0
  155. data/test/IORTable/run_test.rb +69 -0
  156. data/test/IORTable/server.ior +1 -0
  157. data/test/IORTable/server.rb +130 -0
  158. data/test/Implicit_Conversion/Test.idl +31 -0
  159. data/test/Implicit_Conversion/client.rb +110 -0
  160. data/test/Implicit_Conversion/run_test.rb +69 -0
  161. data/test/Implicit_Conversion/server.ior +1 -0
  162. data/test/Implicit_Conversion/server.rb +99 -0
  163. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  164. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  165. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  166. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  167. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  168. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  169. data/test/Multi_Threading/Simple/Test.idl +27 -0
  170. data/test/Multi_Threading/Simple/client.rb +88 -0
  171. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  172. data/test/Multi_Threading/Simple/server.ior +1 -0
  173. data/test/Multi_Threading/Simple/server.rb +118 -0
  174. data/test/Multi_Threading/Threads/Test.idl +31 -0
  175. data/test/Multi_Threading/Threads/client.rb +80 -0
  176. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  177. data/test/Multi_Threading/Threads/server.ior +1 -0
  178. data/test/Multi_Threading/Threads/server.rb +119 -0
  179. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  180. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  181. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  182. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  183. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  184. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  185. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  186. data/test/Nil/Test.idl +27 -0
  187. data/test/Nil/run_test.rb +52 -0
  188. data/test/Nil/test.rb +78 -0
  189. data/test/OBV/AbstractInterface/client.rb +179 -0
  190. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  191. data/test/OBV/AbstractInterface/server.ior +1 -0
  192. data/test/OBV/AbstractInterface/server.rb +149 -0
  193. data/test/OBV/AbstractInterface/test.idl +53 -0
  194. data/test/OBV/Custom/OBV.idl +18 -0
  195. data/test/OBV/Custom/OBV_impl.rb +40 -0
  196. data/test/OBV/Custom/client.rb +86 -0
  197. data/test/OBV/Custom/run_test.rb +69 -0
  198. data/test/OBV/Custom/server.ior +1 -0
  199. data/test/OBV/Custom/server.rb +100 -0
  200. data/test/OBV/Simple/OBV.idl +15 -0
  201. data/test/OBV/Simple/OBV_impl.rb +26 -0
  202. data/test/OBV/Simple/client.rb +86 -0
  203. data/test/OBV/Simple/run_test.rb +69 -0
  204. data/test/OBV/Simple/server.ior +1 -0
  205. data/test/OBV/Simple/server.rb +100 -0
  206. data/test/OBV/Simple_Event/Event.idl +15 -0
  207. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  208. data/test/OBV/Simple_Event/client.rb +86 -0
  209. data/test/OBV/Simple_Event/run_test.rb +69 -0
  210. data/test/OBV/Simple_Event/server.ior +1 -0
  211. data/test/OBV/Simple_Event/server.rb +100 -0
  212. data/test/OBV/Supports/client.rb +116 -0
  213. data/test/OBV/Supports/run_test.rb +69 -0
  214. data/test/OBV/Supports/server.ior +1 -0
  215. data/test/OBV/Supports/server.rb +103 -0
  216. data/test/OBV/Supports/supports.idl +33 -0
  217. data/test/OBV/Supports/supports_impl.rb +57 -0
  218. data/test/OBV/Tree/client.rb +116 -0
  219. data/test/OBV/Tree/run_test.rb +69 -0
  220. data/test/OBV/Tree/server.ior +1 -0
  221. data/test/OBV/Tree/server.rb +117 -0
  222. data/test/OBV/Tree/test.idl +32 -0
  223. data/test/OBV/Truncatable/Extra.idl +27 -0
  224. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  225. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  226. data/test/OBV/Truncatable/client.rb +279 -0
  227. data/test/OBV/Truncatable/run_test.rb +69 -0
  228. data/test/OBV/Truncatable/server.ior +1 -0
  229. data/test/OBV/Truncatable/server.rb +89 -0
  230. data/test/OBV/ValueBox/client.rb +497 -0
  231. data/test/OBV/ValueBox/run_test.rb +69 -0
  232. data/test/OBV/ValueBox/server.ior +1 -0
  233. data/test/OBV/ValueBox/server.rb +271 -0
  234. data/test/OBV/ValueBox/valuebox.idl +101 -0
  235. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  236. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  237. data/test/OBV/ValueBox/vb_union.idl +21 -0
  238. data/test/Object/Test.idl +27 -0
  239. data/test/Object/client.rb +103 -0
  240. data/test/Object/run_test.rb +69 -0
  241. data/test/Object/server.ior +1 -0
  242. data/test/Object/server.rb +126 -0
  243. data/test/POA/Test.idl +27 -0
  244. data/test/POA/run_test.rb +52 -0
  245. data/test/POA/test.rb +112 -0
  246. data/test/Param_Test/Test.idl +182 -0
  247. data/test/Param_Test/client.rb +277 -0
  248. data/test/Param_Test/run_test.rb +69 -0
  249. data/test/Param_Test/server.ior +1 -0
  250. data/test/Param_Test/server.rb +296 -0
  251. data/test/Performance/Simple/Test.idl +27 -0
  252. data/test/Performance/Simple/client.rb +90 -0
  253. data/test/Performance/Simple/run_test.rb +69 -0
  254. data/test/Performance/Simple/server.ior +1 -0
  255. data/test/Performance/Simple/server.rb +95 -0
  256. data/test/Policies/Test.idl +27 -0
  257. data/test/Policies/run_test.rb +52 -0
  258. data/test/Policies/test.rb +144 -0
  259. data/test/Timeout/client.rb +207 -0
  260. data/test/Timeout/run_test.rb +69 -0
  261. data/test/Timeout/server.ior +1 -0
  262. data/test/Timeout/server.rb +109 -0
  263. data/test/Timeout/test.idl +19 -0
  264. data/test/lib/assert.rb +43 -0
  265. data/test/lib/test.rb +542 -0
  266. data/test/test_runner.rb +193 -0
  267. 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