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
+
2
+
3
+ module Apple{
4
+ struct BlackCherry{
5
+ octet Carrots;
6
+ Object Lemon;
7
+ };
8
+
9
+
10
+ enum Starfruit{
11
+ Rhubarb,
12
+ PassionFruit,
13
+ Pumpkin,
14
+ Mango
15
+ };
16
+
17
+
18
+ typedef sequence<short > WaterMelon;
19
+
20
+ };
21
+
22
+ typedef any BlackEyedBeans;
23
+
24
+ typedef unsigned long Dates;
25
+
26
+ union Cabbage switch (char) {
27
+ case 'a':
28
+ double Coconut;
29
+ default :
30
+ float Lychees;
31
+ };
32
+
33
+
34
+ const boolean Cucumber=TRUE;
35
+
36
+
37
+ const boolean Ginger=FALSE;
38
+
39
+
40
+
41
+ interface idlServer{
42
+
43
+ exception Asparagus{
44
+ ::Dates Leek;
45
+ };
46
+
47
+ readonly attribute string Mint;
48
+
49
+ void GardenPeas(
50
+ out ::BlackEyedBeans p1,
51
+ inout ::BlackEyedBeans p2
52
+ ) raises (Asparagus);
53
+
54
+ oneway void Banana(
55
+ in ::BlackEyedBeans p1
56
+ ) context ("Orange");
57
+ };
58
+
@@ -0,0 +1,25 @@
1
+
2
+
3
+ module Apple{
4
+
5
+ module BlackCherry{
6
+ typedef short Carrots;
7
+ };
8
+
9
+ typedef long Carrots;
10
+
11
+ module BlackCherry{
12
+ typedef float Starfruit;
13
+ };
14
+
15
+ };
16
+
17
+ interface idlServer{
18
+
19
+ void Rhubarb(
20
+ in ::Apple::Carrots p1,
21
+ out ::Apple::BlackCherry::Carrots p2,
22
+ inout ::Apple::BlackCherry::Starfruit p3
23
+ );
24
+ };
25
+
@@ -0,0 +1,22 @@
1
+
2
+
3
+ interface idlServer {
4
+
5
+ const long Apple = 4;
6
+
7
+ typedef float Banana;
8
+
9
+ exception Orange{
10
+ short Starfruit;
11
+ };
12
+
13
+ attribute char Lychees;
14
+
15
+ void Lemon();
16
+ };
17
+
18
+ // Empty interfaces are permitted
19
+ interface emptyInterface
20
+ {
21
+ };
22
+
@@ -0,0 +1,27 @@
1
+
2
+
3
+ interface Banana;
4
+
5
+ struct Corn{
6
+ short Eddo;
7
+ Banana Yam;
8
+ long Rasin;
9
+ float Peach;
10
+ };
11
+
12
+ interface Banana;
13
+
14
+ interface Apple {
15
+ attribute Banana Peanuts;
16
+ };
17
+
18
+ interface Banana {
19
+ void Orange(in Banana p1);
20
+ void Basil(out Banana p1);
21
+ void VineTomatoes(inout Banana p1);
22
+ };
23
+
24
+ interface idlServer : Apple, Banana {
25
+ idlServer Lemon(in Corn p1);
26
+ };
27
+
@@ -0,0 +1,30 @@
1
+
2
+
3
+ interface Banana {
4
+
5
+ const float Apple = 23.4;
6
+
7
+ typedef long Dates;
8
+
9
+ exception Orange{
10
+ short Starfruit;
11
+ };
12
+
13
+ };
14
+
15
+ interface idlServer: Banana {
16
+
17
+ const short Apple = 5;
18
+
19
+ typedef struct Dates{
20
+ char Dill;
21
+ }Oregano;
22
+
23
+ exception Orange{
24
+ float Aniseed;
25
+ double Bayleaf;
26
+ };
27
+
28
+ void Lemon(in Dates p1, inout ::Banana::Dates p2) raises (Orange);
29
+ };
30
+
@@ -0,0 +1,51 @@
1
+
2
+
3
+ interface Apple {
4
+ const long Lemon = 3;
5
+ typedef long Pumpkin;
6
+ exception Oregano{
7
+ long Sultana;
8
+ };
9
+ };
10
+
11
+ interface Banana : Apple {
12
+ const short Lemon = 3;
13
+ typedef short Pumpkin;
14
+ exception Oregano{
15
+ short Sultana;
16
+ };
17
+ };
18
+
19
+ interface Carrots : Apple{
20
+ const float Lemon = 4.5;
21
+ typedef float Pumpkin;
22
+ exception Oregano{
23
+ float Sultana;
24
+ };
25
+ };
26
+
27
+ interface Dates : Banana, Carrots{
28
+ const char Lemon = '6';
29
+ typedef char Pumpkin;
30
+ exception Oregano{
31
+ char Sultana;
32
+ };
33
+ };
34
+
35
+
36
+ interface idlServer: Dates {
37
+
38
+ typedef short Melon[::Apple::Lemon];
39
+
40
+ void Lemon(
41
+ in Melon p1,
42
+ inout ::Apple::Pumpkin p2,
43
+ inout ::Banana::Pumpkin p3,
44
+ inout ::Carrots::Pumpkin p4,
45
+ inout ::Dates::Pumpkin p5)
46
+ raises (::Carrots::Oregano);
47
+ };
48
+
49
+
50
+
51
+
@@ -0,0 +1,20 @@
1
+
2
+
3
+ const long Lime = 3;
4
+
5
+ interface Apple {
6
+ typedef float Cress[Lime];
7
+ void Pumpkin(in Cress p1);
8
+ };
9
+
10
+ interface Banana {
11
+ const long Lime = 40;
12
+ };
13
+
14
+ interface idlServer: Banana, Apple {
15
+
16
+ };
17
+
18
+
19
+
20
+
@@ -0,0 +1,88 @@
1
+
2
+
3
+ interface idlServer {
4
+
5
+ void Bayleaf();
6
+
7
+ float BlackCherry(
8
+ in float p1,
9
+ out float p2,
10
+ inout float p3
11
+ );
12
+
13
+ double Starfruit(
14
+ in double p1,
15
+ out double p2,
16
+ inout double p3
17
+ );
18
+
19
+ long Rhubarb(
20
+ in long p1,
21
+ out long p2,
22
+ inout long p3
23
+ );
24
+
25
+ short PassionFruit(
26
+ in short p1,
27
+ out short p2,
28
+ inout short p3
29
+ );
30
+
31
+
32
+ unsigned long Pumpkin(
33
+ in unsigned long p1,
34
+ out unsigned long p2,
35
+ inout unsigned long p3
36
+ );
37
+
38
+
39
+ unsigned short Mango(
40
+ in unsigned short p1,
41
+ out unsigned short p2,
42
+ inout unsigned short p3
43
+ );
44
+
45
+
46
+ char WaterMelon(
47
+ in char p1,
48
+ out char p2,
49
+ inout char p3
50
+ );
51
+
52
+
53
+ boolean Lime(
54
+ in boolean p1,
55
+ out boolean p2,
56
+ inout boolean p3
57
+ );
58
+
59
+
60
+ octet Dates(
61
+ in octet p1,
62
+ out octet p2,
63
+ inout octet p3
64
+ );
65
+
66
+
67
+ Object Coconut(
68
+ in Object p1,
69
+ out Object p2,
70
+ inout Object p3
71
+ );
72
+
73
+
74
+ string Lychees(
75
+ in string p1,
76
+ out string p2,
77
+ inout string p3
78
+ );
79
+
80
+
81
+ string<20> Cabbage(
82
+ in string<23> p1,
83
+ out string<38> p2,
84
+ inout string<44> p3
85
+ );
86
+
87
+ };
88
+
@@ -0,0 +1,21 @@
1
+
2
+
3
+ typedef any Apple;
4
+
5
+ typedef struct Banana{
6
+ any Orange;
7
+ any Rhubarb;
8
+ }PassionFruit;
9
+
10
+ interface idlServer {
11
+
12
+ any Lime(
13
+ in any p1,
14
+ out any p2,
15
+ inout any p3
16
+ );
17
+
18
+ attribute any Lemon;
19
+
20
+ };
21
+
@@ -0,0 +1,95 @@
1
+
2
+
3
+ enum Sweetcorn{
4
+ Banana,
5
+ Carrots,
6
+ Lemon,
7
+ BlackCherry,
8
+ Starfruit,
9
+ Rhubarb
10
+ };
11
+
12
+ exception Mangetout{
13
+ };
14
+
15
+ exception Cress{
16
+ unsigned long Plum;
17
+ };
18
+
19
+ exception BambooShoot{
20
+ float Plum;
21
+ double KidneyBean;
22
+ long Zucchini;
23
+ unsigned long ButterBean;
24
+ short Avocado;
25
+ unsigned short GoldenDelicous;
26
+ char Lentil;
27
+ boolean Fig;
28
+ octet CrabApple;
29
+ string RedOnion;
30
+ string<23> HazelNut;
31
+ Object Cinnamon;
32
+ any GooseBerry;
33
+ };
34
+
35
+ typedef struct Guava{
36
+ float Sultana;
37
+ } Runnerbean;
38
+
39
+ union BrazilNut switch (long) {
40
+ case 23:
41
+ Runnerbean Parsnip;
42
+ case -25:
43
+ long Celery;
44
+ default :
45
+ short WhiteCabbage;
46
+ };
47
+
48
+ exception Cassava{
49
+ Guava Oregano;
50
+ Runnerbean Almonds;
51
+ Guava Mushroom[3];
52
+ Runnerbean Tofu[1];
53
+ };
54
+
55
+ exception Melon{
56
+ BrazilNut SweetPotato;
57
+ BrazilNut Orange[2];
58
+ sequence<octet> Tangarine;
59
+ sequence<float> GardenPeas[4];
60
+ sequence<octet> CantelopeMelon;
61
+ Sweetcorn Apple;
62
+ Sweetcorn Onion[5];
63
+ };
64
+
65
+ interface idlServer{
66
+
67
+ exception RedGrapes{
68
+ float Plum[34];
69
+ double KidneyBean[12];
70
+ long Zucchini[3];
71
+ unsigned long ButterBean[6];
72
+ short Avocado[1];
73
+ unsigned short GoldenDelicous[32];
74
+ char Lentil[9];
75
+ boolean Fig[2];
76
+ octet CrabApple[13];
77
+ string RedOnion[2];
78
+ string<15> HazelNut[1];
79
+ Object Cinnamon[6];
80
+ any GooseBerry[2];
81
+ };
82
+
83
+ void JuniperBerries(
84
+ in long p1,
85
+ out Sweetcorn p2,
86
+ inout octet p3
87
+ ) raises (Mangetout);
88
+
89
+ void Daikan() raises (Cress, idlServer::RedGrapes);
90
+
91
+ void Thyme() raises (Cress, idlServer::RedGrapes);
92
+
93
+ void Lettuce() raises (Mangetout, Cress, BambooShoot, Cassava, Melon, RedGrapes);
94
+ };
95
+