4ecce1b16af163495a28e3ade360bef6e80ec2a8
[com/asn1c.git] / tests / tests-asn1c-compiler / 160-multiple-parameterized-instance-OK.asn1
1
2 -- OK: Everything is fine
3
4 -- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
5 -- .spelio.software.asn1c.test (9363.1.5.1)
6 -- .158
7
8 ModuleMultipleParameterizedInstance
9     { iso org(3) dod(6) internet(1) private(4) enterprise(1)
10         spelio(9363) software(1) asn1c(5) test(1) 158 }
11 DEFINITIONS ::= BEGIN
12
13     MYID ::= CLASS {
14         &id     INTEGER UNIQUE,
15         &Type
16     } WITH SYNTAX {&Type IDENTIFIED BY &id}
17
18     TotalRegionExtension MYID ::= {
19         RegionalExtension1 |
20         RegionalExtension2
21     }
22
23     RegionalExtension1 MYID ::= {
24         {INTEGER IDENTIFIED BY 1} |
25         {BOOLEAN IDENTIFIED BY 2},
26         ...,
27         {OCTET STRING IDENTIFIED BY 3}
28     }
29
30     RegionalExtension2 MYID ::= {
31         {INTEGER IDENTIFIED BY 1},
32         ...,
33         {BOOLEAN IDENTIFIED BY 2} |
34         {OCTET STRING IDENTIFIED BY 3}
35     }
36
37     RegionalExtension3 MYID ::= {
38         {OCTET STRING IDENTIFIED BY 1} |
39         {OCTET STRING IDENTIFIED BY 4},
40         ...
41     }
42
43     RegionalExtension4 MYID ::= {
44         {INTEGER IDENTIFIED BY 5},
45         ...,
46         {OCTET STRING (5) IDENTIFIED BY 6}
47     }
48
49     Message1 ::= SEQUENCE {
50         content SpecializedContent {{TotalRegionExtension}}
51     }
52
53     Message2 ::= SEQUENCE {
54         content SpecializedContent {{RegionalExtension3}}
55     }
56
57     Message3 ::= SEQUENCE {
58         content SpecializedContent {{RegionalExtension4}}
59     }
60
61     SpecializedContent {MYID : Set} ::= SEQUENCE {
62         id      MYID.&id({Set}),
63         value   MYID.&Type({Set}{@id})
64     }
65
66 END