Initial version of asn1c
[com/asn1c.git] / tests / tests-asn1c-compiler / 156-union-ios-OK.asn1
diff --git a/tests/tests-asn1c-compiler/156-union-ios-OK.asn1 b/tests/tests-asn1c-compiler/156-union-ios-OK.asn1
new file mode 100644 (file)
index 0000000..efdf467
--- /dev/null
@@ -0,0 +1,46 @@
+
+-- OK: Everything is fine
+
+-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
+-- .spelio.software.asn1c.test (9363.1.5.1)
+-- .156
+
+ModuleUnionIOS
+    { iso org(3) dod(6) internet(1) private(4) enterprise(1)
+        spelio(9363) software(1) asn1c(5) test(1) 156 }
+DEFINITIONS ::= BEGIN
+
+    MYID ::= CLASS {
+        &id     INTEGER UNIQUE,
+        &Type
+    } WITH SYNTAX {&Type IDENTIFIED BY &id}
+
+    TotalRegionExtension MYID ::= {
+        RegionalExtension1 |
+        RegionalExtension2
+    }
+
+    RegionalExtension1 MYID ::= {
+        {INTEGER IDENTIFIED BY 1} |
+        {BOOLEAN IDENTIFIED BY 2},
+        ...,
+        {OCTET STRING IDENTIFIED BY 3}
+    }
+
+    RegionalExtension2 MYID ::= {
+        {INTEGER IDENTIFIED BY 1},
+        ...,
+        {BOOLEAN IDENTIFIED BY 2} |
+        {OCTET STRING IDENTIFIED BY 3}
+    }
+
+    Message ::= SEQUENCE {
+        content SpecializedContent {{TotalRegionExtension}}
+    }
+
+    SpecializedContent {MYID : Set} ::= SEQUENCE {
+        id      MYID.&id({Set}),
+        value   MYID.&Type({Set}{@id})
+    }
+
+END