c9f3138469b542c7515f3ec7f5c84e6afdf3ffac
[com/asn1c.git] / tests / tests-asn1c-compiler / 155-parameterization-more-than-two-level-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 -- .155
7
8 ModuleParameterizationMoreThanTwoLevel
9     { iso org(3) dod(6) internet(1) private(4) enterprise(1)
10         spelio(9363) software(1) asn1c(5) test(1) 155 }
11 DEFINITIONS ::= BEGIN
12
13     id-TYPE1 PacketId ::= 1
14
15     PacketId ::= INTEGER (0..65535)
16
17     Color ::= ENUMERATED { red(0), green, blue }
18
19     Valid ::= ENUMERATED { crc-nok, crc-ok(1) }
20
21     PACKET ::= CLASS {
22         &id             PacketId     UNIQUE,
23         &color          Color,
24         &Value,
25         &valid          Valid
26     }
27     WITH SYNTAX {
28         ID              &id
29         COLOR           &color
30         TYPE            &Value
31         VALID           &valid
32     }
33
34     ClassItem PACKET ::= {
35         { ID id-TYPE1   COLOR blue   TYPE OCTET STRING VALID crc-ok },
36         ...
37     }
38
39     Packet-List ::= UpperLayer-List { {ClassItem} }
40
41     UpperLayer-List {PACKET : Param} ::= LowerLayer-List { 1, max-items, {Param} }
42
43     LowerLayer-List {INTEGER : low, INTEGER : high, PACKET : Param} ::=
44         SEQUENCE (SIZE (low..high)) OF
45         SinglePacket {{Param}}
46
47     SinglePacket {PACKET : Param} ::=
48         Packet {{Param}}
49
50     Packet {PACKET : Param} ::= SEQUENCE {
51         id      PACKET.&id     ({Param}),
52         color   PACKET.&color  ({Param}{@id}),
53         value   PACKET.&Value  ({Param}{@id})
54     }
55
56     max-items INTEGER ::= 256
57
58 END