Commit | Line | Data |
---|---|---|
459ebbd7 C |
1 | T1 { joint-iso-ccitt rubbish(999) modid(1) } DEFINITIONS ::= |
2 | ||
3 | ||
4 | BEGIN | |
5 | ||
6 | IMPORTS | |
7 | + Info, | |
8 | + Sset, | |
9 | + Sseq, | |
10 | - Sany, | |
11 | + Soid | |
12 | FROM T2 | |
13 | Pepy-refs, | |
14 | Single-type, | |
15 | Repeated, | |
16 | Defined, | |
17 | CodeTest, | |
18 | AllSimples, | |
19 | UAction | |
20 | FROM T3; | |
21 | ||
22 | -- Embedded Sequences test | |
23 | ||
24 | ||
25 | -- Test of Embedded Strings | |
26 | Emb-Strings ::= SEQUENCE { | |
27 | atest INTEGER, | |
28 | btest OCTET STRING, | |
29 | ctest BIT STRING, | |
30 | big-test Strings, | |
31 | emb-test SEQUENCE { | |
32 | em-int INTEGER, | |
33 | em-oct OCTET STRING, | |
34 | em-bit BIT STRING | |
35 | } | |
36 | } | |
37 | ||
38 | ||
39 | Strings ::= SEQUENCE { -- Test Octet strings, bit strings and character | |
40 | -- Strings in general | |
41 | ostring OCTET STRING, | |
42 | bstring BIT STRING, | |
43 | nstring NumericString, | |
44 | pstring PrintableString, | |
45 | tstring TeletexString, | |
46 | t61string T61String, | |
47 | vstring VideotexString, | |
48 | vis-string VisibleString, | |
49 | i646string ISO646String, | |
50 | ia5string IA5String, | |
51 | graphstring GraphicString, | |
52 | genstring GeneralString | |
53 | } | |
54 | ||
55 | Embedded ::= SEQUENCE { | |
56 | anMPDU MPDU, | |
57 | ei INTEGER | |
58 | } | |
59 | ||
60 | MPDU ::= | |
61 | SEQUENCE { | |
62 | a-seq SEQUENCE { | |
63 | fred [0] IMPLICIT INTEGER, | |
64 | ||
65 | george BOOLEAN | |
66 | } | |
67 | } | |
68 | ||
69 | ServiceMPDU ::= | |
70 | SET { | |
71 | a-set SET { | |
72 | a-data [1] IMPLICIT BIT STRING, | |
73 | ||
74 | a-more-data [2] IMPLICIT INTEGER | |
75 | }, | |
76 | b-set SET { | |
77 | b-data [1] IMPLICIT BIT STRING, | |
78 | ||
79 | b-more-data [2] IMPLICIT INTEGER | |
80 | } | |
81 | } | |
82 | -- Implicit tags | |
83 | ||
84 | Impl-Tags ::= SEQUENCE { | |
85 | i-impl [1] IMPLICIT INTEGER, | |
86 | o-impl [2] IMPLICIT OCTET STRING, | |
87 | b-impl [3] IMPLICIT BIT STRING, | |
88 | f-impl [4] IMPLICIT BOOLEAN, | |
89 | obj-impl [5] IMPLICIT Emb-Strings, | |
90 | ||
91 | -- Test of Embedded Strings | |
92 | i-emb-test [APPLICATION 88] IMPLICIT SEQUENCE { | |
93 | i-em-int INTEGER, | |
94 | i-em-oct OCTET STRING, | |
95 | i-em-bit BIT STRING | |
96 | } | |
97 | } | |
98 | ||
99 | -- Explicit tags | |
100 | ||
101 | Expl-Tags ::= SEQUENCE { | |
102 | i-expl [1] INTEGER, | |
103 | o-expl [2] OCTET STRING, | |
104 | b-expl [3] BIT STRING, | |
105 | f-expl [4] BOOLEAN, | |
106 | obj-expl [5] Emb-Strings, | |
107 | ||
108 | -- Test of Embedded Strings | |
109 | i-exp-test [APPLICATION 88] SEQUENCE { | |
110 | i-ex-int INTEGER, | |
111 | i-ex-oct OCTET STRING, | |
112 | i-ex-bit BIT STRING | |
113 | } | |
114 | } | |
115 | ||
116 | -- Test of Sequence of | |
117 | Seqof-Test ::= SEQUENCE { | |
118 | sqof-test1 SEQUENCE OF Expl-Tags, | |
119 | stof-test1 SET OF Expl-Tags, | |
120 | i-test1 INTEGER, | |
121 | sqof-test2 SEQUENCE OF SEQUENCE { | |
122 | sqof-in Expl-Tags, | |
123 | sqof-i INTEGER, | |
124 | sqof-o OCTET STRING | |
125 | }, | |
126 | stof-test2 SET OF SEQUENCE { | |
127 | stof-in Expl-Tags, | |
128 | stof-i INTEGER, | |
129 | stof-o OCTET STRING | |
130 | }, | |
131 | i-test2 INTEGER | |
132 | } | |
133 | ||
134 | ||
135 | -- Test data for the Choice type | |
136 | Choice-Test ::= SET { | |
137 | c1 CHOICE { | |
138 | i-c1 [1] IMPLICIT INTEGER, | |
139 | o-c1 [2] IMPLICIT OCTET STRING, | |
140 | b-c1 [3] IMPLICIT BIT STRING, | |
141 | f-c1 [4] IMPLICIT BOOLEAN, | |
142 | obj-c1 [5] IMPLICIT Emb-Strings | |
143 | }, | |
144 | c2 CHOICE { | |
145 | i-c2 [6] INTEGER, | |
146 | o-c2 [7] OCTET STRING, | |
147 | b-c2 [8] BIT STRING, | |
148 | f-c2 [9] BOOLEAN, | |
149 | obj-c2 [10] Emb-Strings | |
150 | }, | |
151 | c3 CHOICE { | |
152 | seq-c3 SEQUENCE { | |
153 | seq-c3-in Expl-Tags, | |
154 | seq-c3-i INTEGER, | |
155 | seq-c3-o OCTET STRING | |
156 | }, | |
157 | set-c3 SET { | |
158 | set-c3-in Expl-Tags, | |
159 | set-c3-i INTEGER, | |
160 | set-c3-o OCTET STRING | |
161 | }, | |
162 | i-c3 INTEGER | |
163 | }, | |
164 | c4 [12] IMPLICIT SEQUENCE { | |
165 | c4-choice CHOICE { | |
166 | c4-i INTEGER, | |
167 | c4-obj [2] IMPLICIT Expl-Tags, | |
168 | c4-subch CHOICE { | |
169 | sc-a-i [0] IMPLICIT INTEGER, | |
170 | sc-b-i [1] IMPLICIT INTEGER | |
171 | } | |
172 | } | |
173 | } | |
174 | ||
175 | ||
176 | } | |
177 | ||
178 | -- Test of Optional fields | |
179 | ||
180 | Opt-Strings ::= SEQUENCE { | |
181 | a-opt INTEGER OPTIONAL, | |
182 | b-opt OCTET STRING, | |
183 | c-opt BIT STRING OPTIONAL, | |
184 | d-opt BOOLEAN OPTIONAL, | |
185 | e-opt NULL OPTIONAL, | |
186 | big-opt Strings OPTIONAL, | |
187 | emb-opt SEQUENCE { | |
188 | oem-int INTEGER OPTIONAL, | |
189 | oem-oct OCTET STRING OPTIONAL, | |
190 | oem-bit BIT STRING OPTIONAL | |
191 | } OPTIONAL, | |
192 | st-opt SET { | |
193 | st-int0 [0] IMPLICIT INTEGER OPTIONAL, | |
194 | st-int1 [1] IMPLICIT INTEGER OPTIONAL, | |
195 | st-int2 [2] IMPLICIT INTEGER OPTIONAL | |
196 | } OPTIONAL, | |
197 | obj-opt [APPLICATION 1] IMPLICIT MPDU OPTIONAL, | |
198 | etag-opt [APPLICATION 2] INTEGER OPTIONAL, | |
199 | ch-opt CHOICE { | |
200 | ch-1 [10] IMPLICIT INTEGER, | |
201 | ch-2 [20] IMPLICIT INTEGER | |
202 | } OPTIONAL | |
203 | } | |
204 | ||
205 | -- Test of Default fields | |
206 | ||
207 | Def-Strings ::= SEQUENCE { | |
208 | a-def INTEGER { a-def-0 (0), a-def-1(1) } DEFAULT a-def-0, | |
209 | -- posy bug does not allow handling of 'xxx'b or 'xx'h notation | |
210 | -- so we don't use proper posy notation | |
211 | -- b-def OCTET STRING DEFAULT 'ff01ab20'h, | |
212 | b-def PrintableString DEFAULT "hello, world", | |
213 | c-def BIT STRING { c-def-one(3), c-def-two (1)} | |
214 | DEFAULT { c-def-one }, | |
215 | okay BOOLEAN DEFAULT TRUE, | |
216 | e-def NULL DEFAULT NULL, | |
217 | big-def Strings, | |
218 | emb-def SEQUENCE { | |
219 | colour INTEGER { red(1), green(2), yellow(3) } DEFAULT green, | |
220 | oem-oct OCTET STRING OPTIONAL, | |
221 | version BIT STRING { basic(0), patch1(1), patch2(2) } | |
222 | DEFAULT { basic } | |
223 | } DEFAULT { red, { basic } }, | |
224 | st-def SET { | |
225 | wine [0] IMPLICIT INTEGER { claret(1), burgundy(2), moselle(3) } | |
226 | DEFAULT claret, | |
227 | beer [1] IMPLICIT INTEGER { vb(0), fosters(1), hieneken(2) } | |
228 | DEFAULT vb, | |
229 | spirit [2] IMPLICIT INTEGER { brandy(0), vodka(1), wisky(2) } | |
230 | DEFAULT vodka | |
231 | } DEFAULT { vb, vodka } | |
232 | } | |
233 | ||
234 | -- External References | |
235 | -- | |
236 | E-ref ::= SEQUENCE { | |
237 | a-ref T2.Info, | |
238 | b-ref [APPLICATION 33] IMPLICIT T2.Info, | |
239 | c-ref [1] T1.Choice-Test, | |
240 | d-ref [2] T2.Info OPTIONAL, | |
241 | e-ref [APPLICATION 33] IMPLICIT T2.Info OPTIONAL | |
242 | } | |
243 | ||
244 | ||
245 | -- Simple type optimisations of POSY/PEPY | |
246 | ||
247 | Bstring ::= [APPLICATION 8] BIT STRING | |
248 | ||
249 | Ostring ::= [31] IMPLICIT OCTET STRING | |
250 | ||
251 | Obj ::= [101] IMPLICIT MPDU | |
252 | ||
253 | Sset ::= SET | |
254 | ||
255 | Sseq ::= SEQUENCE | |
256 | ||
257 | Sany ::= ANY | |
258 | ||
259 | Soid ::= OBJECT IDENTIFIER | |
260 | ||
261 | ||
262 | Optimised ::= SEQUENCE { | |
263 | o1 Bstring, | |
264 | o2 Ostring, | |
265 | o3 Obj, | |
266 | o4 [APPLICATION 3] IMPLICIT Sset OPTIONAL, | |
267 | [APPLICATION 21] SET { | |
268 | o5 [PRIVATE 9] IMPLICIT Sseq, | |
269 | o6 [PRIVATE 33] IMPLICIT Sany, | |
270 | o7 [PRIVATE 8] IMPLICIT Soid | |
271 | } | |
272 | } | |
273 | ||
274 | -- Use of External Simple types | |
275 | Ext-Opt ::= SEQUENCE { | |
276 | o1 T2.Bstring, | |
277 | o2 T2.Ostring, | |
278 | o3 T2.Obj, | |
279 | o4 [PRIVATE 38] IMPLICIT T2.Sset OPTIONAL, | |
280 | [APPLICATION 21] SET { | |
281 | o5 [PRIVATE 1] IMPLICIT T2.Sseq, | |
282 | o6 [PRIVATE 2] IMPLICIT T2.Sany, | |
283 | o7 [PRIVATE 3] IMPLICIT T2.Soid | |
284 | } | |
285 | } | |
286 | ||
287 | -- External type and ANY usage | |
288 | ||
289 | Ext-typ ::= SEQUENCE { | |
290 | ext EXTERNAL, | |
291 | a-ny [APPLICATION 32] ANY, | |
292 | ext-impl [PRIVATE 6] IMPLICIT EXTERNAL, | |
293 | any-impl [APPLICATION 7] ANY, | |
294 | ext-expl [PRIVATE 9] EXTERNAL, | |
295 | any-expl [APPLICATION 10] ANY | |
296 | } | |
297 | ||
298 | SExt ::= [PRIVATE 99] IMPLICIT EXTERNAL | |
299 | ||
300 | -- check of posy's %[ name $ head %] stuff | |
301 | Names ::= | |
302 | SEQUENCE { | |
303 | SEQUENCE %[ seq_str $ ptr %] { | |
304 | fred [0] IMPLICIT INTEGER | |
305 | } | |
306 | } | |
307 | ||
308 | -- Test explicit tags as the first field of an object | |
309 | Etags ::= | |
310 | [APPLICATION 3] | |
311 | CHOICE { | |
312 | aE [0] IMPLICIT INTEGER, | |
313 | bE [1] IMPLICIT INTEGER | |
314 | } | |
315 | ||
316 | Stest ::= | |
317 | [APPLICATION 4] SET { | |
318 | st1 Sint DEFAULT 33, | |
319 | st2 Soctet DEFAULT "goodbye, world" | |
320 | } | |
321 | ||
322 | Sint ::= INTEGER | |
323 | ||
324 | Soctet ::= OCTET STRING | |
325 | ||
326 | Simpl-test ::= SEQUENCE { si-t [23] IMPLICIT Sbstring } | |
327 | ||
328 | Sbstring ::= BIT STRING { bit0(0), bit1(1), bit2(2) } | |
329 | ||
330 | SStest ::= [101] IMPLICIT Simpl-test | |
331 | ||
332 | Enum-type ::= ENUMERATED { pork(0), beef(1), chicken(3), lamb(-1) } | |
333 | ||
334 | T-enum ::= SEQUENCE { | |
335 | ae1 Enum-type, | |
336 | ae2 [12] Enum-type, | |
337 | ae3 [13] IMPLICIT Enum-type, | |
338 | ae4 [15] IMPLICIT Enum-type DEFAULT chicken, | |
339 | ae5 Enum-type OPTIONAL | |
340 | } | |
341 | Real ::= REAL | |
342 | ||
343 | T-real ::= SEQUENCE { | |
344 | r1 Real, | |
345 | r2 [99] Real, | |
346 | r3 [101] IMPLICIT Real, | |
347 | r4 [501] IMPLICIT Real DEFAULT { 31415962, 10, -7 }, | |
348 | r5 Real OPTIONAL | |
349 | } | |
350 | ||
351 | T-pepy ::= T3.Pepy-refs | |
352 | ||
353 | T3-Single ::= T3.Single-type | |
354 | ||
355 | T3-Repeat ::= T3.Repeated | |
356 | ||
357 | T3-Defined ::= T3.Defined | |
358 | ||
359 | T3-CodeTest ::= T3.CodeTest | |
360 | ||
361 | T3-AllSimples ::= T3.AllSimples | |
362 | ||
363 | T3-UAction ::= T3.UAction | |
364 | ||
365 | END |