2ea89011ede9c56d7b3373b99e98abb11b889d8f
[com/asn1c.git] / tests / tests-asn1c-compiler / 34-class-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 -- .34
7
8 ModuleTestClassSimple
9         { iso org(3) dod(6) internet(1) private(4) enterprise(1)
10                 spelio(9363) software(1) asn1c(5) test(1) 34 }
11         DEFINITIONS IMPLICIT TAGS ::=
12 BEGIN
13
14         -- First CLASS
15
16         EXTENSION ::= CLASS {
17                 &id [PRIVATE 0] INTEGER UNIQUE,
18                 &ExtnType
19         } WITH SYNTAX {
20                 SYNTAX          &ExtnType
21                 IDENTIFIED BY   &id
22         }
23
24         -- Basic CLASS extraction
25         Ext1    ::= SEQUENCE {
26                         extnId  EXTENSION.&id
27                 }
28
29         -- Second CLASS
30
31         EXTENSION-ATTRIBUTE ::= CLASS {
32                 &id     INTEGER (0..ub-extension-attributes) UNIQUE,
33                 &Type
34         } WITH SYNTAX {&Type IDENTIFIED BY &id}
35
36         terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
37
38         TerminalType ::= INTEGER { terminal(0) }
39
40         -- Advanced CLASS extraction
41
42         ExtensionAttribute ::= SEQUENCE {
43                 extension-attribute-type [0] EXTENSION-ATTRIBUTE.&id
44                                 ({ExtensionAttributeTable}),
45                 extension-attribute-value [1] EXTENSION-ATTRIBUTE.&Type
46                         ({ExtensionAttributeTable} {@extension-attribute-type})
47         }
48
49         -- Variables referenced by subtype constraints
50
51         ub-extension-attributes INTEGER ::= 256
52
53 END