aaronp-zomg 1.0.2.20080827232412

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 (236) hide show
  1. data/History.txt +25 -0
  2. data/Manifest.txt +238 -0
  3. data/README.txt +59 -0
  4. data/Rakefile +43 -0
  5. data/bin/omfg +56 -0
  6. data/lib/scanner.rex +169 -0
  7. data/lib/yacc.y +861 -0
  8. data/lib/zomg.rb +22 -0
  9. data/lib/zomg/idl.rb +14 -0
  10. data/lib/zomg/idl/nodes/attribute.rb +15 -0
  11. data/lib/zomg/idl/nodes/binary.rb +19 -0
  12. data/lib/zomg/idl/nodes/constant.rb +15 -0
  13. data/lib/zomg/idl/nodes/interface.rb +13 -0
  14. data/lib/zomg/idl/nodes/interface_header.rb +14 -0
  15. data/lib/zomg/idl/nodes/member.rb +14 -0
  16. data/lib/zomg/idl/nodes/node.rb +54 -0
  17. data/lib/zomg/idl/nodes/operation.rb +17 -0
  18. data/lib/zomg/idl/nodes/parameter.rb +18 -0
  19. data/lib/zomg/idl/nodes/typedef.rb +13 -0
  20. data/lib/zomg/idl/nodes/union.rb +14 -0
  21. data/lib/zomg/idl/parser.rb +54 -0
  22. data/lib/zomg/idl/visitable.rb +15 -0
  23. data/lib/zomg/idl/visitors/duhr.rb +24 -0
  24. data/lib/zomg/idl/visitors/ruby_sexp.rb +204 -0
  25. data/lib/zomg/idl/visitors/sexp.rb +274 -0
  26. data/lib/zomg/version.rb +3 -0
  27. data/test/assets/array/array1.idl +60 -0
  28. data/test/assets/array/array2.idl +38 -0
  29. data/test/assets/array/array3.idl +8 -0
  30. data/test/assets/array/array4.idl +7 -0
  31. data/test/assets/array/array5.idl +80 -0
  32. data/test/assets/attribute/grid_0attribs_2methods.idl +16 -0
  33. data/test/assets/attribute/grid_1ROattribs_1attribs_0methods.idl +19 -0
  34. data/test/assets/attribute/grid_1ROattribs_1attribs_1methods.idl +19 -0
  35. data/test/assets/attribute/grid_1ROattribs_1attribs_2methods.idl +17 -0
  36. data/test/assets/attribute/grid_1ROattribs_1methods.idl +16 -0
  37. data/test/assets/attribute/grid_1ROattribs_2methods.idl +16 -0
  38. data/test/assets/attribute/grid_1attribs_1methods.idl +17 -0
  39. data/test/assets/attribute/grid_1attribs_2methods.idl +17 -0
  40. data/test/assets/attribute/grid_2ROattribs_0methods.idl +16 -0
  41. data/test/assets/attribute/grid_2ROattribs_1methods.idl +16 -0
  42. data/test/assets/attribute/grid_2ROattribs_2methods.idl +16 -0
  43. data/test/assets/attribute/grid_2attribs_0methods.idl +19 -0
  44. data/test/assets/attribute/grid_2attribs_1methods.idl +19 -0
  45. data/test/assets/attribute/grid_2attribs_2methods.idl +19 -0
  46. data/test/assets/comment/c_style_comments.idl +63 -0
  47. data/test/assets/comment/comment1.idl +57 -0
  48. data/test/assets/comment/cpp_style_comments.idl +168 -0
  49. data/test/assets/comment/shortform.idl +0 -0
  50. data/test/assets/complex/TestCodeSets.idl +10 -0
  51. data/test/assets/complex/TestIntfContext.idl +13 -0
  52. data/test/assets/complex/TestIntfLongLong.idl +51 -0
  53. data/test/assets/complex/TestIntfWChar.idl +52 -0
  54. data/test/assets/complex/any1.idl +22 -0
  55. data/test/assets/complex/complex1.idl +495 -0
  56. data/test/assets/complex/complex2.idl +730 -0
  57. data/test/assets/complex/complex3.idl +181 -0
  58. data/test/assets/complex/complex4.idl +181 -0
  59. data/test/assets/complex/interop_wchar.idl +60 -0
  60. data/test/assets/constant/constant1.idl +37 -0
  61. data/test/assets/constant/constant2.idl +29 -0
  62. data/test/assets/constant/constant3.idl +50 -0
  63. data/test/assets/constant/constant4.idl +21 -0
  64. data/test/assets/constant/constant5.idl +65 -0
  65. data/test/assets/constant/constant6.idl +144 -0
  66. data/test/assets/constant/constant7.idl +30 -0
  67. data/test/assets/enum/enum1.idl +13 -0
  68. data/test/assets/exception/TestIntfExceptions.idl +69 -0
  69. data/test/assets/exception/TestIntfExceptionsExt_2_0.idl +34 -0
  70. data/test/assets/exception/TestIntfExceptionsExt_2_3.idl +24 -0
  71. data/test/assets/exception/ex1.idl +6 -0
  72. data/test/assets/exception/ex2.idl +18 -0
  73. data/test/assets/exception/ex3.idl +10 -0
  74. data/test/assets/exception/ex4.idl +20 -0
  75. data/test/assets/exception/sc.idl +0 -0
  76. data/test/assets/exception/simple1.idl +18 -0
  77. data/test/assets/exception/simple2.idl +25 -0
  78. data/test/assets/factory/factory1.idl +77 -0
  79. data/test/assets/factory/objref.idl +25 -0
  80. data/test/assets/forward/forward.idl +15 -0
  81. data/test/assets/forward/forward1.idl +13 -0
  82. data/test/assets/forward/fwd_incl1.idl +6 -0
  83. data/test/assets/forward/fwd_incl2.idl +7 -0
  84. data/test/assets/include/a.idl +23 -0
  85. data/test/assets/include/b.idl +16 -0
  86. data/test/assets/include/employee.idl +12 -0
  87. data/test/assets/include/include1.idl +10 -0
  88. data/test/assets/include/include2.idl +5 -0
  89. data/test/assets/include/manager.idl +10 -0
  90. data/test/assets/include/pragma.idl +41 -0
  91. data/test/assets/include/rookie.idl +13 -0
  92. data/test/assets/include/rookiemanager.idl +15 -0
  93. data/test/assets/include/sample.idl +58 -0
  94. data/test/assets/include/sample_incl.idl +406 -0
  95. data/test/assets/inherit/IDL1.idl +18 -0
  96. data/test/assets/inherit/IDL2.idl +18 -0
  97. data/test/assets/inherit/IDL3.idl +18 -0
  98. data/test/assets/inherit/IDL4.idl +17 -0
  99. data/test/assets/inherit/diamond_inheritance.idl +31 -0
  100. data/test/assets/inherit/inherit.idl +27 -0
  101. data/test/assets/limit/longidentifiers.idl +25 -0
  102. data/test/assets/limit/namelens.idl +26 -0
  103. data/test/assets/limit/tpztest.idl +21 -0
  104. data/test/assets/module/module1.idl +29 -0
  105. data/test/assets/module/module2.idl +34 -0
  106. data/test/assets/module/module3.idl +20 -0
  107. data/test/assets/module/module4.idl +15 -0
  108. data/test/assets/nested/nested1.idl +5 -0
  109. data/test/assets/nested/nested2.idl +11 -0
  110. data/test/assets/operations/Benchmark.idl +331 -0
  111. data/test/assets/operations/CCS.idl +82 -0
  112. data/test/assets/operations/TestIntf.idl +40 -0
  113. data/test/assets/operations/TestIntfBasic.idl +653 -0
  114. data/test/assets/operations/atomic.idl +40 -0
  115. data/test/assets/operations/dif2.idl +48 -0
  116. data/test/assets/operations/interface1.idl +16 -0
  117. data/test/assets/operations/parameters.idl +111 -0
  118. data/test/assets/operations/perf.idl +84 -0
  119. data/test/assets/operations/timer.idl +104 -0
  120. data/test/assets/preprocess/base_for_diamond_inheritance_with_macros.idl +17 -0
  121. data/test/assets/preprocess/basic_macro_marshalling.idl +54 -0
  122. data/test/assets/preprocess/diamond_inheritance_with_macros.idl +74 -0
  123. data/test/assets/preprocess/macro1.idl +52 -0
  124. data/test/assets/preprocess/preprocess1.idl +246 -0
  125. data/test/assets/preprocess/preprocess2.idl +3 -0
  126. data/test/assets/recursion/loop.idl +28 -0
  127. data/test/assets/recursion/recursion1.idl +47 -0
  128. data/test/assets/recursion/recursion2.idl +74 -0
  129. data/test/assets/scenarios/filestat.idl +69 -0
  130. data/test/assets/scenarios/gateway.idl +176 -0
  131. data/test/assets/scenarios/library.idl +20 -0
  132. data/test/assets/scenarios/phone.idl +24 -0
  133. data/test/assets/scenarios/ticketservice.idl +118 -0
  134. data/test/assets/scope/scope01.idl +58 -0
  135. data/test/assets/scope/scope02.idl +25 -0
  136. data/test/assets/scope/scope03.idl +22 -0
  137. data/test/assets/scope/scope04.idl +27 -0
  138. data/test/assets/scope/scope05.idl +30 -0
  139. data/test/assets/scope/scope06.idl +51 -0
  140. data/test/assets/scope/scope07.idl +20 -0
  141. data/test/assets/scope/scope08.idl +88 -0
  142. data/test/assets/scope/scope09.idl +21 -0
  143. data/test/assets/scope/scope10.idl +95 -0
  144. data/test/assets/scope/scope11.idl +62 -0
  145. data/test/assets/scope/scope12.idl +117 -0
  146. data/test/assets/scope/scope13.idl +117 -0
  147. data/test/assets/scope/scope14.idl +117 -0
  148. data/test/assets/scope/scope15.idl +117 -0
  149. data/test/assets/scope/scope16.idl +117 -0
  150. data/test/assets/scope/scope17.idl +117 -0
  151. data/test/assets/scope/scope18.idl +117 -0
  152. data/test/assets/scope/scope19.idl +117 -0
  153. data/test/assets/scope/scope20.idl +215 -0
  154. data/test/assets/scope/scope21.idl +215 -0
  155. data/test/assets/scope/scope22.idl +205 -0
  156. data/test/assets/scope/scope23.idl +261 -0
  157. data/test/assets/scope/scope24.idl +376 -0
  158. data/test/assets/scope/scope25.idl +266 -0
  159. data/test/assets/scope/scope26.idl +180 -0
  160. data/test/assets/scope/scope27.idl +184 -0
  161. data/test/assets/scope/scope28.idl +182 -0
  162. data/test/assets/scope/scope29.idl +182 -0
  163. data/test/assets/scope/scope30.idl +40 -0
  164. data/test/assets/scope/scope31.idl +33 -0
  165. data/test/assets/scope/scope32.idl +37 -0
  166. data/test/assets/scope/scope33.idl +50 -0
  167. data/test/assets/scope/scope34.idl +97 -0
  168. data/test/assets/scope/scope35.idl +72 -0
  169. data/test/assets/scope/scope36.idl +167 -0
  170. data/test/assets/scope/scope37.idl +57 -0
  171. data/test/assets/scope/scope38.idl +38 -0
  172. data/test/assets/scope/scope39.idl +38 -0
  173. data/test/assets/scope/scope40.idl +38 -0
  174. data/test/assets/scope/scope41.idl +24 -0
  175. data/test/assets/scope/scope42.idl +64 -0
  176. data/test/assets/scope/scope43.idl +66 -0
  177. data/test/assets/scope/scope44.idl +52 -0
  178. data/test/assets/sequence/sequence1.idl +24 -0
  179. data/test/assets/sequence/sequence2.idl +9 -0
  180. data/test/assets/simple/basictypes1.idl +80 -0
  181. data/test/assets/simple/basictypes2.idl +197 -0
  182. data/test/assets/simple/basictypes3.idl +23 -0
  183. data/test/assets/simple/basictypes4.idl +73 -0
  184. data/test/assets/simple/basictypes5.idl +29 -0
  185. data/test/assets/simple/basictypes6.idl +63 -0
  186. data/test/assets/simple/simple1.idl +45 -0
  187. data/test/assets/simple/simple2.idl +61 -0
  188. data/test/assets/simple/simple3.idl +36 -0
  189. data/test/assets/string/string1.idl +11 -0
  190. data/test/assets/string/string2.idl +29 -0
  191. data/test/assets/struct/struct1.idl +20 -0
  192. data/test/assets/struct/struct2.idl +21 -0
  193. data/test/assets/struct/struct3.idl +42 -0
  194. data/test/assets/struct/struct4.idl +57 -0
  195. data/test/assets/struct/struct5.idl +71 -0
  196. data/test/assets/typecode/orb.idl +0 -0
  197. data/test/assets/typecode/pseudo.idl +25 -0
  198. data/test/assets/typedef/shorthand_typedef_struct_insideIF.idl +17 -0
  199. data/test/assets/typedef/shorthand_typedef_struct_insideIF_noMO.idl +16 -0
  200. data/test/assets/typedef/shorthand_typedef_struct_insideMO.idl +17 -0
  201. data/test/assets/typedef/shorthand_typedef_struct_outsideMO.idl +17 -0
  202. data/test/assets/typedef/typedef1.idl +8 -0
  203. data/test/assets/typedef/typedef2.idl +22 -0
  204. data/test/assets/typedef/typedef_struct_insideIF.idl +18 -0
  205. data/test/assets/typedef/typedef_struct_insideMO.idl +18 -0
  206. data/test/assets/typedef/typedef_struct_outsideMO.idl +18 -0
  207. data/test/assets/union/union1.idl +31 -0
  208. data/test/assets/union/union2.idl +22 -0
  209. data/test/assets/union/union3.idl +26 -0
  210. data/test/conversions/test_attribute.rb +46 -0
  211. data/test/conversions/test_enum.rb +25 -0
  212. data/test/conversions/test_exception.rb +24 -0
  213. data/test/conversions/test_forward_declaration.rb +22 -0
  214. data/test/conversions/test_interface.rb +30 -0
  215. data/test/conversions/test_module.rb +24 -0
  216. data/test/conversions/test_struct.rb +25 -0
  217. data/test/conversions/test_typedef.rb +22 -0
  218. data/test/conversions/test_union.rb +27 -0
  219. data/test/conversions/test_value_box_dcl.rb +22 -0
  220. data/test/helper.rb +23 -0
  221. data/test/simple/test_basictypes1.rb +87 -0
  222. data/test/simple/test_basictypes2.rb +18 -0
  223. data/test/simple/test_basictypes3.rb +32 -0
  224. data/test/simple/test_basictypes4.rb +25 -0
  225. data/test/simple/test_basictypes5.rb +17 -0
  226. data/test/simple/test_basictypes6.rb +19 -0
  227. data/test/simple/test_simple1.rb +40 -0
  228. data/test/simple/test_simple2.rb +48 -0
  229. data/test/simple/test_simple3.rb +20 -0
  230. data/test/test_array.rb +22 -0
  231. data/test/test_assets.rb +33 -0
  232. data/test/test_complex.rb +17 -0
  233. data/test/test_node.rb +16 -0
  234. data/test/test_parser.rb +17 -0
  235. data/test/test_scanner.rb +234 -0
  236. metadata +334 -0
@@ -0,0 +1,58 @@
1
+ #include "sample_incl.idl"
2
+
3
+ interface OWTEST {
4
+ oneway void foo(in short x);
5
+ };
6
+
7
+ module RVModule4 {
8
+
9
+ interface RVInterface0 : RVModule2::RVModule21::RVInterface0 {
10
+ void RVM0(in GSTRUCT1 gs) raises (RVModule1::RVInterface1::IEXCEPTION1);
11
+ };
12
+
13
+ interface RVInterface1 : RVModule1::RVInterface1 {
14
+ };
15
+ };
16
+
17
+ module RVModule3 {
18
+ interface RVInterface2 : RVModule2::RVModule21::RVInterface0 {
19
+ void RVM21 ();
20
+ };
21
+ };
22
+
23
+
24
+
25
+
26
+ // object reference
27
+
28
+ interface myYetAnotherInterface {
29
+ struct myStruct {
30
+ RVModule3::RVInterface2 my_if;
31
+ string str;
32
+ } ;
33
+
34
+ myStruct myOperation( in RVModule3::RVInterface2 if, out RVModule3::RVInterface2 aif);
35
+ };
36
+
37
+ // factory. use option -factory myFactoryIF, to generate
38
+ // a schema with the appropriate information.
39
+
40
+ interface myFactoryIF {
41
+ attribute short temp;
42
+ void myOperation(in string istr, out string ostr);
43
+ };
44
+
45
+ // same as above, but within a module.
46
+ // use option -factory M1/myFactoryIF, to generate a
47
+ // schema with the appropriate information.
48
+
49
+ module M1 {
50
+ interface myFactoryIF {
51
+ attribute short temp;
52
+ void myOperation(in string istr, out string ostr);
53
+ };
54
+
55
+ interface myIF {
56
+ void myOperation( in string istr, out string ostr);
57
+ };
58
+ };
@@ -0,0 +1,406 @@
1
+ // Description : Included by sample.idl
2
+
3
+ /* NOTES:
4
+ G -> Global
5
+ M -> Module
6
+ I -> Interface
7
+ A -> Alias to primitive or user defined
8
+ A -> Alias to Alias
9
+ */
10
+
11
+ typedef short GSTYPE;
12
+ typedef GSTYPE GSTYPEA;
13
+ typedef GSTYPEA GSTYPEAA;
14
+
15
+ typedef sequence<short> seqShort;
16
+ typedef sequence<short> seqShort1;
17
+
18
+
19
+ typedef sequence<octet, 100> seqOctet;
20
+
21
+ enum Color {red, green, blue, black, mauve, orange};
22
+ typedef sequence<sequence<Color> > mycolor;
23
+
24
+ typedef long myLong;
25
+ typedef sequence<sequence<octet> > seq3;
26
+ typedef seq3 seq33;
27
+
28
+ typedef sequence<sequence<myLong> > seqMyLong;
29
+ typedef sequence<sequence<seqMyLong> >seqseqMyLong;
30
+ typedef long arrGS1[10];
31
+
32
+ module M1 {
33
+ interface I1 {
34
+ typedef sequence<short> seq;
35
+ };
36
+ };
37
+
38
+ exception GEXCEPTION11{
39
+
40
+ struct GS1234 {
41
+ struct GS123{
42
+ short i;
43
+ struct S12 {
44
+ short i;
45
+ }gs1;
46
+ }gs2;
47
+
48
+ string s;
49
+ } mi;
50
+
51
+ };
52
+
53
+ struct GS2 {
54
+ struct GS123{
55
+ short i;
56
+ struct S12 {
57
+ short i;
58
+ }gs1;
59
+ }gs22;
60
+
61
+ };
62
+
63
+
64
+ struct GS3 {
65
+ struct S123{
66
+ short i;
67
+ long j;
68
+ struct S12 {
69
+ short i;
70
+ long ii;
71
+ }gs1;
72
+ }gs2;
73
+ };
74
+
75
+ module M2 {
76
+ struct TEST1 {
77
+ short i;
78
+ struct TEST11 {
79
+ short i;
80
+ } gs1;
81
+ };
82
+
83
+ struct TEST2 {
84
+ short i;
85
+ struct TEST11 {
86
+ short i;
87
+ } gs2;
88
+ };
89
+ module M21 {
90
+ struct TEST1 {
91
+ long i;
92
+ struct TEST11 {
93
+ short i;
94
+ } gs1;
95
+ };
96
+ interface I1 {
97
+ struct TEST1 {
98
+ struct TEST11 {
99
+ sequence<short> seqS;
100
+ struct TEST111 {
101
+ short i;
102
+ }gs1;
103
+ } gs2;
104
+ };
105
+ };
106
+ };
107
+ };
108
+
109
+
110
+ struct GSTRUCT1 {
111
+ short s;
112
+ long l;
113
+ unsigned short us;
114
+ unsigned long ul;
115
+ float f;
116
+ double d;
117
+ char c;
118
+ string str;
119
+ boolean b;
120
+ octet o;
121
+ any a;
122
+
123
+ sequence<long> j; // Creates Anonymous type.
124
+ sequence <GSTRUCT1> seqGS1; // Legal recursion. Anonymous type
125
+ sequence <seqShort> seqS;
126
+ sequence <arrGS1> astr;
127
+ sequence <seqOctet> seqOct;
128
+
129
+ struct GSTRUCT11 {
130
+ short s;
131
+ boolean b;
132
+ // GSTRUCT1 gs; -> Illegal recursion.
133
+ // typedef sequence<GSTRUCT1> seq1; -> Illegal
134
+ } gs11;
135
+
136
+
137
+ };
138
+
139
+
140
+ typedef GSTRUCT1 arr2GS1[10][20];
141
+ typedef GSTRUCT1 arr3GS1[10][20][30];
142
+
143
+ exception GEXCEPTION1 {
144
+ string s;
145
+ sequence<sequence<GSTRUCT1> >k;
146
+ sequence<sequence<sequence<long> > > j; // Anonymous type.
147
+
148
+ };
149
+
150
+
151
+ /*
152
+ Illegal:
153
+ exception GEXCEPTION2 {
154
+ GEXCEPTION1 g;
155
+ };
156
+ typedef sequence <GEXCEPTION1> g; illegal
157
+ */
158
+
159
+
160
+
161
+ module RVModule1 {
162
+
163
+ enum Color {red, green, blue, black, mauve, orange, brown};
164
+ enum OpType {OP_AND, OP_OR, OP_NOT};
165
+
166
+ union ColorCount switch (Color) {
167
+ case red:
168
+ union InnerUnion switch (OpType) {
169
+ case OP_AND:
170
+ unsigned short and;
171
+ case OP_OR:
172
+ unsigned short or;
173
+ case OP_NOT:
174
+ unsigned short not;
175
+
176
+ } iu;
177
+ case green:
178
+ case blue:
179
+ unsigned long num_in_stock;
180
+ case black:
181
+ float discount;
182
+ case brown:
183
+ short j;
184
+ case mauve:
185
+ struct UnaryOp {
186
+ OpType op;
187
+ sequence<ColorCount, 1> child;
188
+ } uop;
189
+
190
+ default:
191
+ string order_details;
192
+ };
193
+
194
+ struct MSTRUCT1 {
195
+ GSTRUCT1 gs;
196
+ arr3GS1 arr;
197
+ union InnerUnion switch (OpType) {
198
+ case OP_AND:
199
+ string and;
200
+ case OP_OR:
201
+ string or;
202
+ case OP_NOT:
203
+ unsigned short not;
204
+
205
+ } iu;
206
+
207
+ };
208
+
209
+ typedef MSTRUCT1 MS1;
210
+
211
+ interface RVInterface0 {
212
+ };
213
+
214
+
215
+ interface RVInterface1 {
216
+ typedef sequence<octet, 10000> seqOctet;
217
+
218
+ struct GSTRUCT1 {
219
+ MSTRUCT1 ms;
220
+ };
221
+
222
+ exception GEXCEPTION1 {
223
+ short i;
224
+ ::GSTRUCT1 j;
225
+ };
226
+
227
+ exception IEXCEPTION1 {
228
+ MS1 ms;
229
+ };
230
+
231
+ struct ISTRUCT {
232
+ GSTRUCT1 gs1;
233
+ ::GSTRUCT1 gs2;
234
+
235
+ MSTRUCT1 ms;
236
+ };
237
+ attribute short temparature;
238
+ readonly attribute GSTRUCT1 info;
239
+
240
+ void RVM0();
241
+
242
+ short RVM1(in GSTYPEAA p1, out GSTYPEA p2) ;
243
+ GSTRUCT1 RVM2(in ::GSTRUCT1 p1, out ISTRUCT p2);
244
+ MS1 RVM3(in seqOctet so, out arr2GS1 ags1) raises (GEXCEPTION1, IEXCEPTION1);
245
+ ISTRUCT RVM4 (inout ISTRUCT p1) raises (::GEXCEPTION1);
246
+ void RVM5(inout ColorCount cc);
247
+ void RVM6(in short i);
248
+
249
+
250
+ };
251
+
252
+
253
+ };
254
+
255
+
256
+
257
+ // forward declartion.
258
+
259
+ module RVModule3 {
260
+ interface RVInterface0;
261
+ };
262
+
263
+
264
+
265
+ module RVModule2 {
266
+ struct MSTRUCT {
267
+ RVModule1::MSTRUCT1 s;
268
+ RVModule1::RVInterface1::ISTRUCT is;
269
+ };
270
+ typedef sequence<octet> seq5;
271
+ typedef sequence<sequence<octet> > seq4;
272
+ typedef sequence<sequence<MSTRUCT> > seq6;
273
+ interface RVInterface1;
274
+
275
+ interface RVInterface0 {
276
+ RVInterface1 RVM01(in MSTRUCT i);
277
+ };
278
+
279
+ interface RVInterface1 {
280
+ RVModule3::RVInterface0 RVM11(in short i);
281
+ };
282
+
283
+ interface RVInterface2 : RVModule1::RVInterface1, RVInterface1, RVInterface0 {
284
+ void RVM21(out ISTRUCT p1);
285
+ };
286
+
287
+ module RVModule21 {
288
+ struct MSTRUCT {
289
+ arr3GS1 gs;
290
+ };
291
+ interface RVInterface0 {
292
+ void RVM01 (in MSTRUCT p1, out RVModule2::MSTRUCT p2);
293
+ };
294
+ };
295
+ struct MSTRUCT1 {
296
+ short i;
297
+ };
298
+ interface RVInterface3 {
299
+ void RVM31 (in short p1);
300
+ };
301
+ enum Color {red, green, blue, black, mauve, orange};
302
+ enum OpType {OP_AND, OP_OR, OP_NOT};
303
+
304
+ union ColorCount switch (Color) {
305
+ case red:
306
+ case green:
307
+ case blue:
308
+ RVModule2::RVInterface2 rvi;
309
+ case black:
310
+ short i;
311
+ case mauve:
312
+ struct UnaryOp {
313
+ OpType op;
314
+ sequence<ColorCount, 1> child;
315
+ } uop;
316
+
317
+ default:
318
+ short seq;
319
+ };
320
+ typedef ColorCount cca;
321
+ typedef cca ccaa;
322
+ };
323
+
324
+ typedef RVModule2::RVInterface2 RVM2RVI2;
325
+ typedef RVM2RVI2 ARVM2RVI2;
326
+ typedef ARVM2RVI2 AARVM2RVI2;
327
+
328
+ typedef sequence<GSTRUCT1> seqStruct1;
329
+ typedef sequence<sequence<sequence<RVModule2::RVInterface2> > > seqRVMRVI2;
330
+ typedef sequence<sequence<octet> > seq4; // same as seq3.
331
+
332
+ typedef seqRVMRVI2 aseqRVMRVI2;
333
+ typedef aseqRVMRVI2 aaseqRVMRVI2;
334
+ typedef seq4 aseq4;
335
+ typedef RVModule2::MSTRUCT ams;
336
+ typedef ams aams;
337
+ typedef aams aaams;
338
+
339
+
340
+ module RVModule3 {
341
+ interface RVInterface0 {
342
+
343
+ enum Color {red, green, blue, black, mauve, orange};
344
+ enum OpType {OP_AND, OP_OR, OP_NOT};
345
+
346
+ union ColorCount switch (Color) {
347
+ case red:
348
+ case green:
349
+ case blue:
350
+ RVModule2::RVInterface2 rvi;
351
+ case black:
352
+ RVM2RVI2 arvi;
353
+ case mauve:
354
+ struct UnaryOp {
355
+ seqStruct1 seq;
356
+ OpType op;
357
+ sequence<ColorCount, 1> child;
358
+ } uop;
359
+
360
+ default:
361
+ seqRVMRVI2 seq;
362
+ };
363
+ typedef ColorCount cca;
364
+
365
+
366
+ typedef sequence<ColorCount> auseq;
367
+ typedef auseq aauseq;
368
+ typedef sequence<RVModule2::MSTRUCT> asseq;
369
+ typedef asseq aasseq;
370
+ typedef aasseq aaasseq;
371
+
372
+ struct MSTRUCT33 {
373
+
374
+ aaams aaamsv;
375
+ cca ccav;
376
+ RVModule2::ccaa ccaav;
377
+ AARVM2RVI2 aav;
378
+ RVModule2::seq5 seq1;
379
+ RVModule2::seq4 seq2;
380
+
381
+ RVModule2::MSTRUCT rvms;
382
+ RVModule2::RVInterface2 rvi;
383
+ RVM2RVI2 arvi;
384
+ RVModule2::MSTRUCT ms;
385
+
386
+ seqRVMRVI2 seq3;
387
+ aseqRVMRVI2 seq4;
388
+ aaseqRVMRVI2 seq5;
389
+ aseq4 seq6;
390
+ auseq seq7;
391
+ aauseq seq8;
392
+ asseq seq9;
393
+
394
+ RVModule2::seq6 seq13;
395
+ aasseq seq10;
396
+ aaasseq seq11;
397
+ seq33 seq12;
398
+ };
399
+
400
+
401
+ RVModule2::RVInterface2 RVM04 ();
402
+ };
403
+ interface RVInterface1 : RVModule2::RVModule21::RVInterface0 {
404
+ void RVM11 ();
405
+ };
406
+ };