NativeEnumerated.c vars NULL init and check
[com/asn1c.git] / tests / tests-asn1c-compiler / 50-constraint-OK.asn1.-EFprint-constraints
1 ModuleNestedConstraintsCheck { iso org(3) dod(6) internet(1) private(4)
2         enterprise(1) spelio(9363) software(1) asn1c(5) test(1) 50 1 }
3 DEFINITIONS ::=
4 BEGIN
5
6 Int1 ::= INTEGER
7 -- Practical constraints (Int1): (MIN..MAX)  
8 -- OER-visible constraints (Int1): (MIN..MAX)  
9 -- PER-visible constraints (Int1): (MIN..MAX)  
10
11 Int2 ::= Int1 (0..MAX)
12 -- Combined constraints: (0..MAX)
13 -- Practical constraints (Int1): (0..MAX)  
14 -- OER-visible constraints (Int1): (0..MAX)  
15 -- PER-visible constraints (Int1): (0..MAX)  
16
17 Int3 ::= Int2 (MIN..10)
18 -- Combined constraints: (0..MAX) (MIN..10)
19 -- Practical constraints (Int1): (0..10)  
20 -- OER-visible constraints (Int1): (0..10)  
21 -- PER-visible constraints (Int1): (0..10)  
22
23 Int4 ::= Int3 (5..MAX,...,1..4)
24 -- Combined constraints: (0..MAX) (MIN..10) (5..MAX,...,1..4)
25 -- Practical constraints (Int1): (1..10,...)  
26 -- OER-visible constraints (Int1): (0..10)  
27 -- PER-visible constraints (Int1): (1..10,...)  
28
29 Int5 ::= Int4 (MIN..5)
30 -- Combined constraints: (0..MAX) (MIN..10) (5..MAX) (MIN..5)
31 -- Practical constraints (Int1): (5)  
32 -- OER-visible constraints (Int1): (5)  
33 -- PER-visible constraints (Int1): (5)  
34
35 ten Int1 ::= 10
36 -- Practical constraints (Int1): (MIN..MAX)  
37 -- OER-visible constraints (Int1): (MIN..MAX)  
38 -- PER-visible constraints (Int1): (MIN..MAX)  
39
40 other-ten Int2 ::= 10
41 -- Practical constraints (Int1): (MIN..MAX)  
42 -- OER-visible constraints (Int1): (MIN..MAX)  
43 -- PER-visible constraints (Int1): (MIN..MAX)  
44
45 ExtensibleExtensions ::= INTEGER (1..256) (1..255,...)
46 -- Combined constraints: (1..256) (1..255,...)
47 -- Practical constraints (ExtensibleExtensions): (1..255,...)  
48 -- OER-visible constraints (ExtensibleExtensions): (1..256)  
49 -- PER-visible constraints (ExtensibleExtensions): (1..255,...)  
50
51 Str1 ::= IA5String
52 -- Practical constraints (Str1): (MIN..MAX) (SIZE(0..MAX)) (FROM("\0".."\7f"))
53 -- OER-visible constraints (Str1): (MIN..MAX) (SIZE(0..MAX)) 
54 -- PER-visible constraints (Str1): (MIN..MAX) (SIZE(0..MAX)) (FROM("\0".."\7f"))
55
56 Str2 ::= Str1 (SIZE(MIN..20 | 25..30))
57 -- Combined constraints: (SIZE(MIN..20 | 25..30))
58 -- Practical constraints (Str1): (MIN..MAX) (SIZE(0..20 | 25..30)) (FROM("\0".."\7f"))
59 -- OER-visible constraints (Str1): (MIN..MAX) (SIZE(0..20 | 25..30)) 
60 -- PER-visible constraints (Str1): (MIN..MAX) (SIZE(0..20 | 25..30)) (FROM("\0".."\7f"))
61
62 Str3 ::= Str2 (SIZE(10..27)) (FROM("ABC" | "def"))
63 -- Combined constraints: (SIZE(MIN..20 | 25..30)) (SIZE(10..27)) (FROM("ABC" | "def"))
64 -- Practical constraints (Str1): (MIN..MAX) (SIZE(10..20 | 25..27)) (FROM("A".."C" | "d".."f"))
65 -- OER-visible constraints (Str1): (MIN..MAX) (SIZE(10..20 | 25..27)) 
66 -- PER-visible constraints (Str1): (MIN..MAX) (SIZE(10..20 | 25..27)) (FROM("A".."C" | "d".."f"))
67
68 Str4 ::= IA5String ("ABCD" | SIZE(4))
69 -- Combined constraints: ("ABCD" | SIZE(4))
70 -- Practical constraints (Str4): (MIN..MAX) (SIZE(0..MAX)) (FROM("\0".."\7f"))
71 -- OER-visible constraints (Str4): (MIN..MAX) (SIZE(0..MAX)) 
72 -- PER-visible constraints (Str4): (MIN..MAX) (SIZE(0..MAX)) (FROM("\0".."\7f"))
73
74 PER-Visible ::= IA5String (FROM("A".."F"))
75 -- Combined constraints: (FROM("A".."F"))
76 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
77 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) 
78 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
79
80 PER-Visible-2 ::= PER-Visible (FROM("E".."F"))
81 -- Combined constraints: (FROM("A".."F")) (FROM("E".."F"))
82 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("E".."F"))
83 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) 
84 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("E".."F"))
85
86 Not-PER-Visible-1 ::= PER-Visible (FROM("AB") | SIZE(1..2))
87 -- Combined constraints: (FROM("A".."F")) (FROM("AB") | SIZE(1..2))
88 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
89 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) 
90 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
91
92 Not-PER-Visible-2 ::= PER-Visible (FROM("AB",...))
93 -- Combined constraints: (FROM("A".."F")) (FROM("AB",...))
94 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."B",...))
95 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) 
96 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
97
98 Not-PER-Visible-3 ::= PER-Visible (FROM("AB"),...)
99 -- Combined constraints: (FROM("A".."F")) (FROM("AB"),...)
100 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."B",...))
101 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) 
102 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
103
104 SIZE-but-not-FROM ::= PER-Visible (SIZE(1..4) ^ FROM("ABCD",...))
105 -- Combined constraints: (FROM("A".."F")) (SIZE(1..4) ^ FROM("ABCD",...))
106 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."D",...))
107 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) 
108 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."F"))
109
110 SIZE-and-FROM ::= PER-Visible (SIZE(1..4) ^ FROM("ABCD"))
111 -- Combined constraints: (FROM("A".."F")) (SIZE(1..4) ^ FROM("ABCD"))
112 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."D"))
113 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) 
114 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(1..4)) (FROM("A".."D"))
115
116 Neither-SIZE-nor-FROM ::= PER-Visible (SIZE(1..4) | FROM("ABCD",...))
117 -- Combined constraints: (FROM("A".."F")) (SIZE(1..4) | FROM("ABCD",...))
118 -- Practical constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
119 -- OER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) 
120 -- PER-visible constraints (PER-Visible): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."F"))
121
122 Utf8-4 ::= UTF8String (FROM("A".."Z"))
123 -- Combined constraints: (FROM("A".."Z"))
124 -- Practical constraints (Utf8-4): (MIN..MAX) (SIZE(0..MAX)) (FROM("A".."Z"))
125 -- OER-visible constraints (Utf8-4): (MIN..MAX)  
126 -- PER-visible constraints (Utf8-4):   
127
128 Utf8-3 ::= Utf8-2 (FROM("A".."Z" | "a".."z"))
129 -- Combined constraints: (SIZE(1..2)) (FROM("A".."Z" | "a".."z"))
130 -- Practical constraints (Utf8-1): (MIN..MAX) (SIZE(1..2)) (FROM("A".."Z" | "a".."z"))
131 -- OER-visible constraints (Utf8-1): (MIN..MAX)  
132 -- PER-visible constraints (Utf8-1):   
133
134 Utf8-2 ::= Utf8-1 (SIZE(1..2))
135 -- Combined constraints: (SIZE(1..2))
136 -- Practical constraints (Utf8-1): (MIN..MAX) (SIZE(1..2)) (FROM("\0".."ÿ"))
137 -- OER-visible constraints (Utf8-1): (MIN..MAX)  
138 -- PER-visible constraints (Utf8-1):   
139
140 Utf8-1 ::= UTF8String
141 -- Practical constraints (Utf8-1): (MIN..MAX) (SIZE(0..MAX)) (FROM("\0".."ÿ"))
142 -- OER-visible constraints (Utf8-1): (MIN..MAX) (SIZE(0..MAX)) 
143 -- PER-visible constraints (Utf8-1):   
144
145 VisibleIdentifier ::= Identifier
146 -- Combined constraints: (FROM("A" | "a" | "B" | "b" | "C" | "c" | "D" | "d" | "E" | "e" | "F" | "f" | "G" | "g" | "H" | "h" | "I" | "i" | "J" | "j" | "K" | "k" | "L" | "l" | "M" | "m" | "N" | "n" | "O" | "o" | "P" | "p" | "Q" | "q" | "R" | "r" | "S" | "s" | "T" | "t" | "U" | "u" | "V" | "v" | "W" | "w" | "X" | "x" | "Y" | "y" | "Z" | "z" | "$" | "_" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9")) (SIZE(1..32))
147 -- Practical constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z"))
148 -- OER-visible constraints (Identifier): (MIN..MAX) (SIZE(1..32)) 
149 -- PER-visible constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z"))
150
151 Sequence ::= SEQUENCE {
152     int1-c       Int1 (-2..MAX)
153 -- Combined constraints: (-2..MAX)
154 -- Practical constraints (Int1): (-2..MAX)  
155 -- OER-visible constraints (Int1): (-2..MAX)  
156 -- PER-visible constraints (Int1): (-2..MAX)  
157  DEFAULT 3,
158     int4         [2] EXPLICIT Int4
159 -- Combined constraints: (0..MAX) (MIN..10) (5..MAX,...,1..4)
160 -- Practical constraints (Int1): (1..10,...)  
161 -- OER-visible constraints (Int1): (0..10)  
162 -- PER-visible constraints (Int1): (1..10,...)  
163 ,
164     int4-c       Int4 (MIN..7)
165 -- Combined constraints: (0..MAX) (MIN..10) (5..MAX) (MIN..7)
166 -- Practical constraints (Int1): (5..7)  
167 -- OER-visible constraints (Int1): (5..7)  
168 -- PER-visible constraints (Int1): (5..7)  
169 ,
170     bool         BOOLEAN
171 -- Practical constraints (bool): (MIN..MAX)  
172 -- OER-visible constraints (bool): (MIN..MAX)  
173 -- PER-visible constraints (bool): (MIN..MAX)  
174  DEFAULT 1,
175     enum-c       ENUMERATED {
176         one(1)
177 -- Practical constraints (one):   
178 -- OER-visible constraints (one):   
179 -- PER-visible constraints (one):   
180 ,    
181         two(2)
182 -- Practical constraints (two):   
183 -- OER-visible constraints (two):   
184 -- PER-visible constraints (two):   
185 ,    
186         ...,    
187         three(3)
188 -- Practical constraints (three):   
189 -- OER-visible constraints (three):   
190 -- PER-visible constraints (three):   
191
192     }
193 -- Practical constraints (enum-c): (MIN..MAX)  
194 -- OER-visible constraints (enum-c): (MIN..MAX)  
195 -- PER-visible constraints (enum-c): (MIN..MAX)  
196 ,
197     null         NULL
198 -- Practical constraints (null):   
199 -- OER-visible constraints (null):   
200 -- PER-visible constraints (null):   
201  OPTIONAL,
202     ...,
203     int5-c       Int5 (5)
204 -- Combined constraints: (0..MAX) (MIN..10) (5..MAX) (MIN..5) (5)
205 -- Practical constraints (Int1): (5)  
206 -- OER-visible constraints (Int1): (5)  
207 -- PER-visible constraints (Int1): (5)  
208  OPTIONAL
209 }
210 -- Practical constraints (Sequence):   
211 -- OER-visible constraints (Sequence):   
212 -- PER-visible constraints (Sequence):   
213
214 SequenceOf ::= SEQUENCE (SIZE(1..2)) OF Sequence
215 -- Practical constraints (Sequence):   
216 -- OER-visible constraints (Sequence):   
217 -- PER-visible constraints (Sequence):   
218
219 -- Combined constraints: (SIZE(1..2))
220 -- Practical constraints (SequenceOf):  (SIZE(1..2)) 
221 -- OER-visible constraints (SequenceOf):  (SIZE(1..2)) 
222 -- PER-visible constraints (SequenceOf):  (SIZE(1..2)) 
223
224 Enum0 ::= ENUMERATED {
225     one(0)
226 -- Practical constraints (one):   
227 -- OER-visible constraints (one):   
228 -- PER-visible constraints (one):   
229 ,
230     two(1)
231 -- Practical constraints (two):   
232 -- OER-visible constraints (two):   
233 -- PER-visible constraints (two):   
234
235 }
236 -- Practical constraints (Enum0): (MIN..MAX)  
237 -- OER-visible constraints (Enum0): (MIN..MAX)  
238 -- PER-visible constraints (Enum0): (MIN..MAX)  
239
240 Enum1 ::= ENUMERATED {
241     one(0)
242 -- Practical constraints (one):   
243 -- OER-visible constraints (one):   
244 -- PER-visible constraints (one):   
245 ,
246     two(1)
247 -- Practical constraints (two):   
248 -- OER-visible constraints (two):   
249 -- PER-visible constraints (two):   
250
251 } (0)
252 -- Combined constraints: (0)
253 -- Practical constraints (Enum1): (0)  
254 -- OER-visible constraints (Enum1): (0)  
255 -- PER-visible constraints (Enum1): (0)  
256
257 END
258
259 IdentifierModule { iso org(3) dod(6) internet(1) private(4) enterprise(1)
260         spelio(9363) software(1) asn1c(5) test(1) 50 2 }
261 DEFINITIONS ::=
262 BEGIN
263
264 maxIdentifier INTEGER ::= 32
265 -- Practical constraints (maxIdentifier): (MIN..MAX)  
266 -- OER-visible constraints (maxIdentifier): (MIN..MAX)  
267 -- PER-visible constraints (maxIdentifier): (MIN..MAX)  
268
269 Identifier ::= VisibleString (FROM("A" | "a" | "B" | "b" | "C" | "c" | "D" | "d" | "E" | "e" | "F" | "f" | "G" | "g" | "H" | "h" | "I" | "i" | "J" | "j" | "K" | "k" | "L" | "l" | "M" | "m" | "N" | "n" | "O" | "o" | "P" | "p" | "Q" | "q" | "R" | "r" | "S" | "s" | "T" | "t" | "U" | "u" | "V" | "v" | "W" | "w" | "X" | "x" | "Y" | "y" | "Z" | "z" | "$" | "_" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9")) (SIZE(1..32))
270 -- Combined constraints: (FROM("A" | "a" | "B" | "b" | "C" | "c" | "D" | "d" | "E" | "e" | "F" | "f" | "G" | "g" | "H" | "h" | "I" | "i" | "J" | "j" | "K" | "k" | "L" | "l" | "M" | "m" | "N" | "n" | "O" | "o" | "P" | "p" | "Q" | "q" | "R" | "r" | "S" | "s" | "T" | "t" | "U" | "u" | "V" | "v" | "W" | "w" | "X" | "x" | "Y" | "y" | "Z" | "z" | "$" | "_" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9")) (SIZE(1..32))
271 -- Practical constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z"))
272 -- OER-visible constraints (Identifier): (MIN..MAX) (SIZE(1..32)) 
273 -- PER-visible constraints (Identifier): (MIN..MAX) (SIZE(1..32)) (FROM("$" | "0".."9" | "A".."Z" | "_" | "a".."z"))
274
275 END