zomg 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|