1 // IDL v4.2 OMG formal/2018-01-05
3 // 7.4.13 Building Block Extended Data-Types
5 // 7.4.13.4.1 Extended Structs
11 struct StructB
: StructA
{
15 struct StructC
: StructB
{
18 // 7.4.13.4.2 Union Discriminators
20 union UnionWC
switch (wchar
) {
25 union UnionOC
switch (octet
) {
32 typedef map
<long, string> MapType
;
34 typedef map
<long, string, 23> MapTypeBounded
;
36 // 7.4.13.4.3.2 Bit Sets
40 bitfield
<1>; // skip bit1
41 bitfield
<2, unsigned short> bits2_3
;
44 bitset BitSet2
: BitSet1
{
45 bitfield
<3>; // skip bits4-6
49 // 7.4.13.4.3.3 Bit Masks
52 val0
, val1
, val2
, val3
55 // 7.4.13.4.4 8-bit Integers
57 typedef int8 ByteSigned
;
58 typedef uint8 ByteUnsigned
;
60 // 7.4.13.4.5 Alternate Names for Integer Types
62 typedef int16 ShortSigned
;
63 typedef int32 LongSigned
;
64 typedef int64 LongLongSigned
;
65 typedef uint16 ShortUnsigned
;
66 typedef uint32 LongUnsigned
;
67 typedef uint64 LongLongUnsigned
;
69 // 7.4.14 Building Block Anonymous Types
76 // 7.4.15 Building Block Annotations
78 // 7.4.15.4.2 Applying Annotations
80 const double dub
= 6.78;
96 @hhii
(jj
= FALSE
) octet j
;
97 @kkll
(mm
= 3, nn
= 'o'
) octet k
;
105 // 7.4.15.4.1 Defining Annotations
106 // This should be able to be parsed but it will not effect anything except the
107 // compiler will produce an warning that defining annotations will be ignored.
108 // TODO: Make more cases
109 @annotation Annotation1
{