Start development on 386BSD 0.0
[unix-history] / .ref-BSD-4_3_Net_2 / usr / src / contrib / isode / pepsy / t1.py
CommitLineData
459ebbd7
C
1T1 { joint-iso-ccitt rubbish(999) modid(1) } DEFINITIONS ::=
2
3
4BEGIN
5
6IMPORTS
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
26Emb-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
39Strings ::= 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
55Embedded ::= SEQUENCE {
56 anMPDU MPDU,
57 ei INTEGER
58 }
59
60MPDU ::=
61 SEQUENCE {
62 a-seq SEQUENCE {
63 fred [0] IMPLICIT INTEGER,
64
65 george BOOLEAN
66 }
67 }
68
69ServiceMPDU ::=
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
84Impl-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
101Expl-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
117Seqof-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
136Choice-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
180Opt-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
207Def-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--
236E-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
262Optimised ::= 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
275Ext-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
289Ext-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
298SExt ::= [PRIVATE 99] IMPLICIT EXTERNAL
299
300-- check of posy's %[ name $ head %] stuff
301Names ::=
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
309Etags ::=
310 [APPLICATION 3]
311 CHOICE {
312 aE [0] IMPLICIT INTEGER,
313 bE [1] IMPLICIT INTEGER
314 }
315
316Stest ::=
317 [APPLICATION 4] SET {
318 st1 Sint DEFAULT 33,
319 st2 Soctet DEFAULT "goodbye, world"
320 }
321
322Sint ::= INTEGER
323
324Soctet ::= OCTET STRING
325
326Simpl-test ::= SEQUENCE { si-t [23] IMPLICIT Sbstring }
327
328Sbstring ::= BIT STRING { bit0(0), bit1(1), bit2(2) }
329
330SStest ::= [101] IMPLICIT Simpl-test
331
332Enum-type ::= ENUMERATED { pork(0), beef(1), chicken(3), lamb(-1) }
333
334T-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 }
341Real ::= REAL
342
343T-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
351T-pepy ::= T3.Pepy-refs
352
353T3-Single ::= T3.Single-type
354
355T3-Repeat ::= T3.Repeated
356
357T3-Defined ::= T3.Defined
358
359T3-CodeTest ::= T3.CodeTest
360
361T3-AllSimples ::= T3.AllSimples
362
363T3-UAction ::= T3.UAction
364
365END