zomg 1.0.0
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.
- data/History.txt +6 -0
- data/Manifest.txt +237 -0
- data/README.txt +59 -0
- data/Rakefile +34 -0
- data/bin/omfg +56 -0
- data/lib/scanner.rex +169 -0
- data/lib/yacc.y +861 -0
- data/lib/zomg.rb +22 -0
- data/lib/zomg/idl.rb +14 -0
- data/lib/zomg/idl/lexer.rb +2151 -0
- data/lib/zomg/idl/nodes/attribute.rb +15 -0
- data/lib/zomg/idl/nodes/binary.rb +19 -0
- data/lib/zomg/idl/nodes/constant.rb +15 -0
- data/lib/zomg/idl/nodes/interface.rb +13 -0
- data/lib/zomg/idl/nodes/interface_header.rb +14 -0
- data/lib/zomg/idl/nodes/member.rb +14 -0
- data/lib/zomg/idl/nodes/node.rb +52 -0
- data/lib/zomg/idl/nodes/operation.rb +17 -0
- data/lib/zomg/idl/nodes/parameter.rb +18 -0
- data/lib/zomg/idl/nodes/typedef.rb +13 -0
- data/lib/zomg/idl/nodes/union.rb +14 -0
- data/lib/zomg/idl/parser.rb +54 -0
- data/lib/zomg/idl/scanner.rb +367 -0
- data/lib/zomg/idl/visitable.rb +15 -0
- data/lib/zomg/idl/visitors/duhr.rb +24 -0
- data/lib/zomg/idl/visitors/ruby_sexp.rb +173 -0
- data/lib/zomg/idl/visitors/sexp.rb +274 -0
- data/lib/zomg/version.rb +3 -0
- data/test/assets/array/array1.idl +60 -0
- data/test/assets/array/array2.idl +38 -0
- data/test/assets/array/array3.idl +8 -0
- data/test/assets/array/array4.idl +7 -0
- data/test/assets/array/array5.idl +80 -0
- data/test/assets/attribute/grid_0attribs_2methods.idl +16 -0
- data/test/assets/attribute/grid_1ROattribs_1attribs_0methods.idl +19 -0
- data/test/assets/attribute/grid_1ROattribs_1attribs_1methods.idl +19 -0
- data/test/assets/attribute/grid_1ROattribs_1attribs_2methods.idl +17 -0
- data/test/assets/attribute/grid_1ROattribs_1methods.idl +16 -0
- data/test/assets/attribute/grid_1ROattribs_2methods.idl +16 -0
- data/test/assets/attribute/grid_1attribs_1methods.idl +17 -0
- data/test/assets/attribute/grid_1attribs_2methods.idl +17 -0
- data/test/assets/attribute/grid_2ROattribs_0methods.idl +16 -0
- data/test/assets/attribute/grid_2ROattribs_1methods.idl +16 -0
- data/test/assets/attribute/grid_2ROattribs_2methods.idl +16 -0
- data/test/assets/attribute/grid_2attribs_0methods.idl +19 -0
- data/test/assets/attribute/grid_2attribs_1methods.idl +19 -0
- data/test/assets/attribute/grid_2attribs_2methods.idl +19 -0
- data/test/assets/comment/c_style_comments.idl +63 -0
- data/test/assets/comment/comment1.idl +57 -0
- data/test/assets/comment/cpp_style_comments.idl +168 -0
- data/test/assets/comment/shortform.idl +0 -0
- data/test/assets/complex/TestCodeSets.idl +10 -0
- data/test/assets/complex/TestIntfContext.idl +13 -0
- data/test/assets/complex/TestIntfLongLong.idl +51 -0
- data/test/assets/complex/TestIntfWChar.idl +52 -0
- data/test/assets/complex/any1.idl +22 -0
- data/test/assets/complex/complex1.idl +495 -0
- data/test/assets/complex/complex2.idl +730 -0
- data/test/assets/complex/complex3.idl +181 -0
- data/test/assets/complex/complex4.idl +181 -0
- data/test/assets/complex/interop_wchar.idl +60 -0
- data/test/assets/constant/constant1.idl +37 -0
- data/test/assets/constant/constant2.idl +29 -0
- data/test/assets/constant/constant3.idl +50 -0
- data/test/assets/constant/constant4.idl +21 -0
- data/test/assets/constant/constant5.idl +65 -0
- data/test/assets/constant/constant6.idl +144 -0
- data/test/assets/constant/constant7.idl +30 -0
- data/test/assets/enum/enum1.idl +13 -0
- data/test/assets/exception/TestIntfExceptions.idl +69 -0
- data/test/assets/exception/TestIntfExceptionsExt_2_0.idl +34 -0
- data/test/assets/exception/TestIntfExceptionsExt_2_3.idl +24 -0
- data/test/assets/exception/ex1.idl +6 -0
- data/test/assets/exception/ex2.idl +18 -0
- data/test/assets/exception/ex3.idl +10 -0
- data/test/assets/exception/ex4.idl +20 -0
- data/test/assets/exception/sc.idl +0 -0
- data/test/assets/exception/simple1.idl +18 -0
- data/test/assets/exception/simple2.idl +25 -0
- data/test/assets/factory/factory1.idl +77 -0
- data/test/assets/factory/objref.idl +25 -0
- data/test/assets/forward/forward.idl +15 -0
- data/test/assets/forward/forward1.idl +13 -0
- data/test/assets/forward/fwd_incl1.idl +6 -0
- data/test/assets/forward/fwd_incl2.idl +7 -0
- data/test/assets/include/a.idl +23 -0
- data/test/assets/include/b.idl +16 -0
- data/test/assets/include/employee.idl +12 -0
- data/test/assets/include/include1.idl +10 -0
- data/test/assets/include/include2.idl +5 -0
- data/test/assets/include/manager.idl +10 -0
- data/test/assets/include/pragma.idl +41 -0
- data/test/assets/include/rookie.idl +13 -0
- data/test/assets/include/rookiemanager.idl +15 -0
- data/test/assets/include/sample.idl +58 -0
- data/test/assets/include/sample_incl.idl +406 -0
- data/test/assets/inherit/IDL1.idl +18 -0
- data/test/assets/inherit/IDL2.idl +18 -0
- data/test/assets/inherit/IDL3.idl +18 -0
- data/test/assets/inherit/IDL4.idl +17 -0
- data/test/assets/inherit/diamond_inheritance.idl +31 -0
- data/test/assets/inherit/inherit.idl +27 -0
- data/test/assets/limit/longidentifiers.idl +25 -0
- data/test/assets/limit/namelens.idl +26 -0
- data/test/assets/limit/tpztest.idl +21 -0
- data/test/assets/module/module1.idl +29 -0
- data/test/assets/module/module2.idl +34 -0
- data/test/assets/module/module3.idl +20 -0
- data/test/assets/module/module4.idl +15 -0
- data/test/assets/nested/nested1.idl +5 -0
- data/test/assets/nested/nested2.idl +11 -0
- data/test/assets/operations/Benchmark.idl +331 -0
- data/test/assets/operations/CCS.idl +82 -0
- data/test/assets/operations/TestIntf.idl +40 -0
- data/test/assets/operations/TestIntfBasic.idl +653 -0
- data/test/assets/operations/atomic.idl +40 -0
- data/test/assets/operations/dif2.idl +48 -0
- data/test/assets/operations/interface1.idl +16 -0
- data/test/assets/operations/parameters.idl +111 -0
- data/test/assets/operations/perf.idl +84 -0
- data/test/assets/operations/timer.idl +104 -0
- data/test/assets/preprocess/base_for_diamond_inheritance_with_macros.idl +17 -0
- data/test/assets/preprocess/basic_macro_marshalling.idl +54 -0
- data/test/assets/preprocess/diamond_inheritance_with_macros.idl +74 -0
- data/test/assets/preprocess/macro1.idl +52 -0
- data/test/assets/preprocess/preprocess1.idl +246 -0
- data/test/assets/preprocess/preprocess2.idl +3 -0
- data/test/assets/recursion/loop.idl +28 -0
- data/test/assets/recursion/recursion1.idl +47 -0
- data/test/assets/recursion/recursion2.idl +74 -0
- data/test/assets/scenarios/filestat.idl +69 -0
- data/test/assets/scenarios/gateway.idl +176 -0
- data/test/assets/scenarios/library.idl +20 -0
- data/test/assets/scenarios/phone.idl +24 -0
- data/test/assets/scenarios/ticketservice.idl +118 -0
- data/test/assets/scope/scope01.idl +58 -0
- data/test/assets/scope/scope02.idl +25 -0
- data/test/assets/scope/scope03.idl +22 -0
- data/test/assets/scope/scope04.idl +27 -0
- data/test/assets/scope/scope05.idl +30 -0
- data/test/assets/scope/scope06.idl +51 -0
- data/test/assets/scope/scope07.idl +20 -0
- data/test/assets/scope/scope08.idl +88 -0
- data/test/assets/scope/scope09.idl +21 -0
- data/test/assets/scope/scope10.idl +95 -0
- data/test/assets/scope/scope11.idl +62 -0
- data/test/assets/scope/scope12.idl +117 -0
- data/test/assets/scope/scope13.idl +117 -0
- data/test/assets/scope/scope14.idl +117 -0
- data/test/assets/scope/scope15.idl +117 -0
- data/test/assets/scope/scope16.idl +117 -0
- data/test/assets/scope/scope17.idl +117 -0
- data/test/assets/scope/scope18.idl +117 -0
- data/test/assets/scope/scope19.idl +117 -0
- data/test/assets/scope/scope20.idl +215 -0
- data/test/assets/scope/scope21.idl +215 -0
- data/test/assets/scope/scope22.idl +205 -0
- data/test/assets/scope/scope23.idl +261 -0
- data/test/assets/scope/scope24.idl +376 -0
- data/test/assets/scope/scope25.idl +266 -0
- data/test/assets/scope/scope26.idl +180 -0
- data/test/assets/scope/scope27.idl +184 -0
- data/test/assets/scope/scope28.idl +182 -0
- data/test/assets/scope/scope29.idl +182 -0
- data/test/assets/scope/scope30.idl +40 -0
- data/test/assets/scope/scope31.idl +33 -0
- data/test/assets/scope/scope32.idl +37 -0
- data/test/assets/scope/scope33.idl +50 -0
- data/test/assets/scope/scope34.idl +97 -0
- data/test/assets/scope/scope35.idl +72 -0
- data/test/assets/scope/scope36.idl +167 -0
- data/test/assets/scope/scope37.idl +57 -0
- data/test/assets/scope/scope38.idl +38 -0
- data/test/assets/scope/scope39.idl +38 -0
- data/test/assets/scope/scope40.idl +38 -0
- data/test/assets/scope/scope41.idl +24 -0
- data/test/assets/scope/scope42.idl +64 -0
- data/test/assets/scope/scope43.idl +66 -0
- data/test/assets/scope/scope44.idl +52 -0
- data/test/assets/sequence/sequence1.idl +24 -0
- data/test/assets/sequence/sequence2.idl +9 -0
- data/test/assets/simple/basictypes1.idl +80 -0
- data/test/assets/simple/basictypes2.idl +197 -0
- data/test/assets/simple/basictypes3.idl +23 -0
- data/test/assets/simple/basictypes4.idl +73 -0
- data/test/assets/simple/basictypes5.idl +29 -0
- data/test/assets/simple/basictypes6.idl +63 -0
- data/test/assets/simple/simple1.idl +45 -0
- data/test/assets/simple/simple2.idl +61 -0
- data/test/assets/simple/simple3.idl +36 -0
- data/test/assets/string/string1.idl +11 -0
- data/test/assets/string/string2.idl +29 -0
- data/test/assets/struct/struct1.idl +20 -0
- data/test/assets/struct/struct2.idl +21 -0
- data/test/assets/struct/struct3.idl +42 -0
- data/test/assets/struct/struct4.idl +57 -0
- data/test/assets/struct/struct5.idl +71 -0
- data/test/assets/typecode/orb.idl +0 -0
- data/test/assets/typecode/pseudo.idl +25 -0
- data/test/assets/typedef/shorthand_typedef_struct_insideIF.idl +17 -0
- data/test/assets/typedef/shorthand_typedef_struct_insideIF_noMO.idl +16 -0
- data/test/assets/typedef/shorthand_typedef_struct_insideMO.idl +17 -0
- data/test/assets/typedef/shorthand_typedef_struct_outsideMO.idl +17 -0
- data/test/assets/typedef/typedef1.idl +8 -0
- data/test/assets/typedef/typedef2.idl +22 -0
- data/test/assets/typedef/typedef_struct_insideIF.idl +18 -0
- data/test/assets/typedef/typedef_struct_insideMO.idl +18 -0
- data/test/assets/typedef/typedef_struct_outsideMO.idl +18 -0
- data/test/assets/union/union1.idl +31 -0
- data/test/assets/union/union2.idl +22 -0
- data/test/assets/union/union3.idl +26 -0
- data/test/conversions/test_attribute.rb +30 -0
- data/test/conversions/test_enum.rb +25 -0
- data/test/conversions/test_exception.rb +24 -0
- data/test/conversions/test_forward_declaration.rb +22 -0
- data/test/conversions/test_interface.rb +30 -0
- data/test/conversions/test_module.rb +24 -0
- data/test/conversions/test_struct.rb +25 -0
- data/test/conversions/test_typedef.rb +22 -0
- data/test/conversions/test_union.rb +27 -0
- data/test/conversions/test_value_box_dcl.rb +22 -0
- data/test/helper.rb +23 -0
- data/test/simple/test_basictypes1.rb +87 -0
- data/test/simple/test_basictypes2.rb +18 -0
- data/test/simple/test_basictypes3.rb +32 -0
- data/test/simple/test_basictypes4.rb +25 -0
- data/test/simple/test_basictypes5.rb +17 -0
- data/test/simple/test_basictypes6.rb +19 -0
- data/test/simple/test_simple1.rb +40 -0
- data/test/simple/test_simple2.rb +48 -0
- data/test/simple/test_simple3.rb +20 -0
- data/test/test_array.rb +22 -0
- data/test/test_assets.rb +33 -0
- data/test/test_complex.rb +17 -0
- data/test/test_node.rb +15 -0
- data/test/test_parser.rb +17 -0
- data/test/test_scanner.rb +234 -0
- metadata +336 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
struct bar {
|
2
|
+
long b1;
|
3
|
+
long b2;
|
4
|
+
string<20> b3;
|
5
|
+
};
|
6
|
+
|
7
|
+
struct bar2 {
|
8
|
+
long b3;
|
9
|
+
bar b4;
|
10
|
+
};
|
11
|
+
|
12
|
+
struct bar3 {
|
13
|
+
long b1;
|
14
|
+
long b2;
|
15
|
+
long b3;
|
16
|
+
};
|
17
|
+
|
18
|
+
struct bar4 {
|
19
|
+
long b1;
|
20
|
+
bar2 b2;
|
21
|
+
long b3;
|
22
|
+
bar3 b4;
|
23
|
+
long b5;
|
24
|
+
};
|
25
|
+
|
26
|
+
|
27
|
+
interface foo {
|
28
|
+
long op(in bar a, out bar2 b);
|
29
|
+
};
|
30
|
+
interface foo2 : foo {
|
31
|
+
bar op2(in bar2 a);
|
32
|
+
long op3(in long a, out char b);
|
33
|
+
};
|
34
|
+
|
35
|
+
|
36
|
+
typedef unsigned short Coord;
|
37
|
+
|
38
|
+
struct CellPos1 {
|
39
|
+
Coord row;
|
40
|
+
Coord col;
|
41
|
+
};
|
42
|
+
|
43
|
+
struct CellPos2 {
|
44
|
+
unsigned short row;
|
45
|
+
unsigned short col;
|
46
|
+
};
|
47
|
+
|
48
|
+
struct CellPos3 {
|
49
|
+
Coord row;
|
50
|
+
Coord col;
|
51
|
+
unsigned short col2;
|
52
|
+
};
|
53
|
+
|
54
|
+
interface Cells : foo2 {
|
55
|
+
bar4 op4(in bar4 a, inout bar4 b, out bar4 c);
|
56
|
+
Coord op5(in CellPos1 a, inout CellPos2 b, out CellPos3 c);
|
57
|
+
};
|
@@ -0,0 +1,71 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
struct Avocado{
|
4
|
+
float and;
|
5
|
+
double and_eq;
|
6
|
+
unsigned long auto;
|
7
|
+
short bitand;
|
8
|
+
unsigned short bitor;
|
9
|
+
char bool;
|
10
|
+
boolean break;
|
11
|
+
octet catch;
|
12
|
+
float class;
|
13
|
+
double compl;
|
14
|
+
long const_cast;
|
15
|
+
unsigned long continue;
|
16
|
+
short delete;
|
17
|
+
unsigned short do;
|
18
|
+
char dynamic_cast;
|
19
|
+
boolean else;
|
20
|
+
octet explicit;
|
21
|
+
float extern;
|
22
|
+
long for;
|
23
|
+
unsigned long friend;
|
24
|
+
short goto;
|
25
|
+
unsigned short if;
|
26
|
+
octet int;
|
27
|
+
boolean mutable;
|
28
|
+
float namespace;
|
29
|
+
double new;
|
30
|
+
long not;
|
31
|
+
unsigned long not_eq;
|
32
|
+
short operator;
|
33
|
+
unsigned short or;
|
34
|
+
char or_eq;
|
35
|
+
boolean protected;
|
36
|
+
double register;
|
37
|
+
long reinterpret_cast;
|
38
|
+
unsigned long return;
|
39
|
+
short signed;
|
40
|
+
unsigned short sizeof;
|
41
|
+
char static;
|
42
|
+
octet static_cast;
|
43
|
+
boolean template;
|
44
|
+
float this;
|
45
|
+
double throw;
|
46
|
+
short typeid;
|
47
|
+
unsigned short typename;
|
48
|
+
char using;
|
49
|
+
octet virtual;
|
50
|
+
boolean volatile;
|
51
|
+
float wchar_t;
|
52
|
+
double while;
|
53
|
+
long xor;
|
54
|
+
unsigned long xor_eq;
|
55
|
+
};
|
56
|
+
|
57
|
+
interface idlServer {
|
58
|
+
|
59
|
+
exception AvocadoExcpt{
|
60
|
+
::Avocado ex1;
|
61
|
+
};
|
62
|
+
|
63
|
+
attribute ::Avocado AvocadoAttr;
|
64
|
+
|
65
|
+
::Avocado AvocadoOp(
|
66
|
+
in ::Avocado p1,
|
67
|
+
out ::Avocado p2,
|
68
|
+
inout ::Avocado p3
|
69
|
+
) raises (AvocadoExcpt);
|
70
|
+
};
|
71
|
+
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/**
|
2
|
+
* TypeCode and Any as in, inout, out and return
|
3
|
+
*/
|
4
|
+
#include <orb.idl>
|
5
|
+
|
6
|
+
struct S1 {
|
7
|
+
long x;
|
8
|
+
char c;
|
9
|
+
};
|
10
|
+
|
11
|
+
struct S2 {
|
12
|
+
string str;
|
13
|
+
};
|
14
|
+
|
15
|
+
struct S3 {
|
16
|
+
char c;
|
17
|
+
any a;
|
18
|
+
CORBA::TypeCode tc;
|
19
|
+
};
|
20
|
+
|
21
|
+
interface foo {
|
22
|
+
any bar( in any a1, out any a2, inout any a3 );
|
23
|
+
CORBA::TypeCode bar1( in CORBA::TypeCode tc1, out CORBA::TypeCode tc2, inout CORBA::TypeCode tc3 );
|
24
|
+
};
|
25
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// Description : Test typedefs of structs
|
2
|
+
// Comments : Shorthand struct is inside an interface and module
|
3
|
+
//****************************************************************************
|
4
|
+
|
5
|
+
module MA
|
6
|
+
{
|
7
|
+
interface IA
|
8
|
+
{
|
9
|
+
typedef struct SA
|
10
|
+
{
|
11
|
+
unsigned short USA;
|
12
|
+
string SSA;
|
13
|
+
} mySA;
|
14
|
+
|
15
|
+
SA MethodMAIA(in long LA, out mySA objSA);
|
16
|
+
};
|
17
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// Description : Test typedefs of structs
|
2
|
+
// Comments : Shorthand struct is inside an interface with no module
|
3
|
+
//****************************************************************************
|
4
|
+
|
5
|
+
//Tests the idl2repo tool's ability to generate AESchema when a struct
|
6
|
+
//is embedded in a interface
|
7
|
+
interface IA
|
8
|
+
{
|
9
|
+
typedef struct SA
|
10
|
+
{
|
11
|
+
unsigned short USA;
|
12
|
+
string SSA;
|
13
|
+
} mySA;
|
14
|
+
|
15
|
+
SA MethodMAIA(in long LA, out mySA objSA);
|
16
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// Description : Test typedefs of structs
|
2
|
+
// Comments : Shorthand struct is inside a module & outside an interface
|
3
|
+
//****************************************************************************
|
4
|
+
|
5
|
+
module MA
|
6
|
+
{
|
7
|
+
typedef struct SA
|
8
|
+
{
|
9
|
+
unsigned short USA;
|
10
|
+
string SSA;
|
11
|
+
} mySA;
|
12
|
+
|
13
|
+
interface IA
|
14
|
+
{
|
15
|
+
SA MethodMAIA(in long LA, out mySA objSA);
|
16
|
+
};
|
17
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// Description : Test typedefs of structs
|
2
|
+
// Comments : Shorthand struct is outside a module
|
3
|
+
//****************************************************************************
|
4
|
+
|
5
|
+
typedef struct SA
|
6
|
+
{
|
7
|
+
unsigned short USA;
|
8
|
+
string SSA;
|
9
|
+
} mySA;
|
10
|
+
|
11
|
+
module MA
|
12
|
+
{
|
13
|
+
interface IA
|
14
|
+
{
|
15
|
+
SA MethodMAIA(in long LA, out mySA objSA);
|
16
|
+
};
|
17
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* typedef string, struct - long form, in parameters
|
3
|
+
*/
|
4
|
+
|
5
|
+
typedef string S1;
|
6
|
+
|
7
|
+
typedef struct SS_ {
|
8
|
+
octet a, b;
|
9
|
+
} SS;
|
10
|
+
|
11
|
+
interface foo {
|
12
|
+
typedef long L;
|
13
|
+
struct S {
|
14
|
+
long a;
|
15
|
+
char b;
|
16
|
+
};
|
17
|
+
|
18
|
+
void bar1( in string s );
|
19
|
+
void bar2( in L l_obj );
|
20
|
+
void bar3( in S s_obj );
|
21
|
+
};
|
22
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Description : Test typedefs of structs
|
2
|
+
// Comments : Struct is inside an module and interface
|
3
|
+
//****************************************************************************
|
4
|
+
|
5
|
+
module MA
|
6
|
+
{
|
7
|
+
interface IA
|
8
|
+
{
|
9
|
+
struct SA
|
10
|
+
{
|
11
|
+
unsigned short USA;
|
12
|
+
string SSA;
|
13
|
+
};
|
14
|
+
typedef SA mySA;
|
15
|
+
|
16
|
+
SA MethodMAIA(in long LA, out mySA objSA);
|
17
|
+
};
|
18
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Description : Test typedefs of structs
|
2
|
+
// Comments : Struct is declared inside a module
|
3
|
+
//****************************************************************************
|
4
|
+
|
5
|
+
module MA
|
6
|
+
{
|
7
|
+
struct SA
|
8
|
+
{
|
9
|
+
unsigned short USA;
|
10
|
+
string SSA;
|
11
|
+
};
|
12
|
+
typedef SA mySA;
|
13
|
+
|
14
|
+
interface IA
|
15
|
+
{
|
16
|
+
SA MethodMAIA(in long LA, out mySA objSA);
|
17
|
+
};
|
18
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Description : Test typedefs of structs
|
2
|
+
// Comments : Struct is declared outside a module
|
3
|
+
//****************************************************************************
|
4
|
+
|
5
|
+
struct SA
|
6
|
+
{
|
7
|
+
unsigned short USA;
|
8
|
+
string SSA;
|
9
|
+
};
|
10
|
+
typedef SA mySA;
|
11
|
+
|
12
|
+
module MA
|
13
|
+
{
|
14
|
+
interface IA
|
15
|
+
{
|
16
|
+
SA MethodMAIA(in long LA, out mySA objSA);
|
17
|
+
};
|
18
|
+
};
|
@@ -0,0 +1,31 @@
|
|
1
|
+
union Foo switch (long) {
|
2
|
+
case 1: long x;
|
3
|
+
case 2: short y;
|
4
|
+
default: char z;
|
5
|
+
};
|
6
|
+
|
7
|
+
union Foo2 switch (char) {
|
8
|
+
case 'a': long x;
|
9
|
+
case 'b': short y;
|
10
|
+
case 'c': char z;
|
11
|
+
};
|
12
|
+
|
13
|
+
union Foo3 switch (short) {
|
14
|
+
case -1: short a;
|
15
|
+
case 50: long b;
|
16
|
+
default: char c;
|
17
|
+
};
|
18
|
+
|
19
|
+
union Foo4 switch (long) {
|
20
|
+
case 1: string a;
|
21
|
+
case 2: sequence<long,10>b;
|
22
|
+
default: long c;
|
23
|
+
};
|
24
|
+
|
25
|
+
interface un {
|
26
|
+
Foo one(in Foo a, inout Foo b, out Foo c);
|
27
|
+
Foo2 two(in Foo2 a, inout Foo2 b, out Foo2 c);
|
28
|
+
Foo3 three(in Foo3 a, inout Foo3 b, out Foo3 c);
|
29
|
+
Foo4 four(in Foo4 a, inout Foo4 b, out Foo4 c);
|
30
|
+
};
|
31
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
enum FooDisc {
|
2
|
+
FOO1,
|
3
|
+
FOO2,
|
4
|
+
FOO3
|
5
|
+
};
|
6
|
+
union Foo switch (FooDisc) {
|
7
|
+
case FOO1: long x;
|
8
|
+
case FOO2: string y;
|
9
|
+
default: char z;
|
10
|
+
};
|
11
|
+
|
12
|
+
|
13
|
+
struct Bar {
|
14
|
+
enum BarDisc {
|
15
|
+
BAR1,
|
16
|
+
BAR2
|
17
|
+
} kind;
|
18
|
+
union Foo switch (BarDisc) {
|
19
|
+
case BAR1: long x;
|
20
|
+
case BAR2: long y;
|
21
|
+
} addr;
|
22
|
+
};
|
@@ -0,0 +1,26 @@
|
|
1
|
+
struct Bar {
|
2
|
+
long b1;
|
3
|
+
char b2;
|
4
|
+
};
|
5
|
+
|
6
|
+
union Foo switch (long) {
|
7
|
+
case 1: long x;
|
8
|
+
case 2: Bar y;
|
9
|
+
default: char z;
|
10
|
+
};
|
11
|
+
|
12
|
+
|
13
|
+
union Foo2 switch (char) {
|
14
|
+
case 'a': long x;
|
15
|
+
case 'b': Foo y;
|
16
|
+
};
|
17
|
+
|
18
|
+
interface a {
|
19
|
+
struct astruct {
|
20
|
+
Foo2 a1;
|
21
|
+
Foo a2;
|
22
|
+
Bar a3;
|
23
|
+
};
|
24
|
+
Foo2 opA(in astruct b, inout astruct c, out astruct d);
|
25
|
+
};
|
26
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
module ZOMG
|
4
|
+
module Conversions
|
5
|
+
class AttributeTest < ZOMG::Test
|
6
|
+
def setup
|
7
|
+
@tree = ZOMG::IDL.parse(<<-eoidl)
|
8
|
+
interface Foo {
|
9
|
+
attribute long awesome;
|
10
|
+
};
|
11
|
+
eoidl
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_to_ruby_sexp
|
15
|
+
sexp = nil
|
16
|
+
assert_nothing_raised {
|
17
|
+
sexp = @tree.to_ruby_sexp
|
18
|
+
}
|
19
|
+
assert sexp
|
20
|
+
ruby_sexp =
|
21
|
+
[:block,
|
22
|
+
[:module, :Foo,
|
23
|
+
[:scope, [:block,
|
24
|
+
[:fcall, :attr_accessor, [:array, [:lit, :awesome]]]
|
25
|
+
]]]]
|
26
|
+
assert_equal(ruby_sexp, sexp)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
module ZOMG
|
4
|
+
module Conversions
|
5
|
+
class EnumTest < ZOMG::Test
|
6
|
+
def setup
|
7
|
+
@tree = ZOMG::IDL.parse(<<-eoidl)
|
8
|
+
enum Foo {
|
9
|
+
a,
|
10
|
+
b
|
11
|
+
};
|
12
|
+
eoidl
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_to_ruby_sexp
|
16
|
+
sexp = nil
|
17
|
+
ruby_sexp = [:block, [:cdecl, :Foo, [:hash, [:lit, :a], [:lit, :a], [:lit, :b], [:lit, :b]]]]
|
18
|
+
assert_nothing_raised {
|
19
|
+
sexp = @tree.to_ruby_sexp
|
20
|
+
}
|
21
|
+
assert_equal(ruby_sexp, sexp)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|