]> git.saurik.com Git - apple/security.git/blob - SecuritySNACCRuntime/compiler/back-ends/c-gen/rules.c
e83cf358f24292391ba940809a9fbd7718ec83c8
[apple/security.git] / SecuritySNACCRuntime / compiler / back-ends / c-gen / rules.c
1 /*
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
3 *
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
8 * using this file.
9 *
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
16 */
17
18
19 /*
20 * compiler/back-ends/c-gen/rules.c - initialized c rule structure
21 * inits a table that contains info about
22 * converting each ASN.1 type to C type
23 * Copyright (C) 1991, 1992 Michael Sample
24 * and the University of British Columbia
25 *
26 * This program is free software; you can redistribute it and/or modify
27 * it under the terms of the GNU General Public License as published by
28 * the Free Software Foundation; either version 2 of the License, or
29 * (at your option) any later version.
30 *
31 * $Header: /cvs/root/Security/SecuritySNACCRuntime/compiler/back-ends/c-gen/Attic/rules.c,v 1.1.1.1 2001/05/18 23:14:09 mb Exp $
32 * $Log: rules.c,v $
33 * Revision 1.1.1.1 2001/05/18 23:14:09 mb
34 * Move from private repository to open source repository
35 *
36 * Revision 1.2 2001/05/05 00:59:28 rmurphy
37 * Adding darwin license headers
38 *
39 * Revision 1.1 2000/05/10 21:35:02 rmurphy
40 * Adding back in base code files which had been moved to "2" versions.
41 *
42 * Revision 1.1.1.1 1999/03/16 18:06:44 aram
43 * Originals from SMIME Free Library.
44 *
45 * Revision 1.3 1995/07/25 18:46:34 rj
46 * file name has been shortened for redundant part: c-gen/c-rules -> c-gen/rules.
47 *
48 * Revision 1.2 1994/09/01 00:24:35 rj
49 * snacc_config.h removed.
50 *
51 * Revision 1.1 1994/08/28 09:48:35 rj
52 * first check-in. for a list of changes to the snacc-1.1 distribution please refer to the ChangeLog.
53 *
54 */
55
56 #include "asn-incl.h"
57 #include "asn1module.h"
58 #include "rules.h"
59
60 /*
61 * (see rule.h and asn1module.h)
62 *
63 */
64
65
66 CRules cRulesG =
67 {
68 4,
69 "choiceId",
70 "ChoiceId",
71 "a",
72 "ChoiceUnion",
73 TRUE,
74 "Print",
75 "Enc",
76 "Dec",
77 "Free",
78 {
79 {
80 BASICTYPE_UNKNOWN,
81 C_NO_TYPE,
82 NULL,
83 FALSE,
84 FALSE,
85 FALSE,
86 FALSE,
87 FALSE,
88 FALSE,
89 "NOT_NULL",
90 "unknown",
91 NULL,
92 NULL,
93 NULL,
94 NULL,
95 FALSE,
96 FALSE,
97 FALSE,
98 FALSE,
99 FALSE
100 },
101 {
102 BASICTYPE_BOOLEAN,
103 C_LIB,
104 "AsnBool",
105 FALSE,
106 TRUE,
107 FALSE,
108 FALSE,
109 FALSE,
110 TRUE,
111 "NOT_NULL",
112 "bool",
113 "PrintAsnBool",
114 "EncAsnBool",
115 "DecAsnBool",
116 "FreeAsnBool",
117 TRUE,
118 TRUE,
119 TRUE,
120 TRUE,
121 TRUE
122 },
123 {
124 BASICTYPE_INTEGER,
125 C_LIB,
126 "AsnInt",
127 FALSE,
128 TRUE,
129 FALSE,
130 FALSE,
131 FALSE,
132 TRUE,
133 "NOT_NULL",
134 "int",
135 "PrintAsnInt",
136 "EncAsnInt",
137 "DecAsnInt",
138 "FreeAsnInt",
139 TRUE,
140 TRUE,
141 TRUE,
142 TRUE,
143 TRUE
144 },
145 {
146 BASICTYPE_BITSTRING,
147 C_LIB,
148 "AsnBits",
149 FALSE,
150 TRUE,
151 FALSE,
152 FALSE,
153 TRUE,
154 FALSE,
155 "ASNBITS_PRESENT",
156 "bits",
157 "PrintAsnBits",
158 "EncAsnBits",
159 "DecAsnBits",
160 "FreeAsnBits",
161 TRUE,
162 TRUE,
163 TRUE,
164 TRUE,
165 TRUE
166 },
167 {
168 BASICTYPE_OCTETSTRING,
169 C_LIB,
170 "AsnOcts",
171 FALSE,
172 TRUE,
173 FALSE,
174 FALSE,
175 TRUE,
176 FALSE,
177 "ASNOCTS_PRESENT",
178 "octs",
179 "PrintAsnOcts",
180 "EncAsnOcts",
181 "DecAsnOcts",
182 "FreeAsnOcts",
183 TRUE,
184 TRUE,
185 TRUE,
186 TRUE,
187 TRUE
188 },
189 {
190 BASICTYPE_NULL,
191 C_LIB,
192 "AsnNull",
193 FALSE,
194 TRUE,
195 FALSE,
196 FALSE,
197 FALSE,
198 TRUE,
199 "NOT_NULL",
200 "null",
201 "PrintAsnNull",
202 "EncAsnNull",
203 "DecAsnNull",
204 "FreeAsnNull",
205 TRUE,
206 TRUE,
207 TRUE,
208 TRUE,
209 TRUE
210 },
211 {
212 BASICTYPE_OID,
213 C_LIB,
214 "AsnOid",
215 FALSE,
216 TRUE,
217 FALSE,
218 FALSE,
219 TRUE,
220 FALSE,
221 "ASNOID_PRESENT",
222 "oid",
223 "PrintAsnOid",
224 "EncAsnOid",
225 "DecAsnOid",
226 "FreeAsnOid",
227 TRUE,
228 TRUE,
229 TRUE,
230 TRUE,
231 TRUE
232 },
233 {
234 BASICTYPE_REAL,
235 C_LIB,
236 "AsnReal",
237 FALSE,
238 TRUE,
239 FALSE,
240 FALSE,
241 FALSE,
242 TRUE,
243 "NOT_NULL",
244 "real",
245 "PrintAsnReal",
246 "EncAsnReal",
247 "DecAsnReal",
248 "FreeAsnReal",
249 TRUE,
250 TRUE,
251 TRUE,
252 TRUE,
253 TRUE
254 },
255 {
256 BASICTYPE_ENUMERATED,
257 C_LIB,
258 "enum",
259 FALSE,
260 TRUE,
261 FALSE,
262 FALSE,
263 FALSE,
264 TRUE,
265 "NOT_NULL",
266 "enum",
267 "PrintAsnEnum",
268 "EncAsnEnum",
269 "DecAsnEnum",
270 "FreeAsnEnum",
271 TRUE,
272 TRUE,
273 TRUE,
274 TRUE,
275 TRUE
276 },
277 {
278 BASICTYPE_SEQUENCE,
279 C_STRUCT,
280 "struct",
281 FALSE,
282 TRUE,
283 FALSE,
284 TRUE,
285 TRUE,
286 TRUE,
287 "NOT_NULL",
288 "seq",
289 NULL,
290 NULL,
291 NULL,
292 NULL,
293 TRUE,
294 TRUE,
295 TRUE,
296 TRUE,
297 TRUE
298 },
299 {
300 BASICTYPE_SEQUENCEOF,
301 C_LIST,
302 "AsnList",
303 FALSE,
304 TRUE,
305 FALSE,
306 TRUE,
307 TRUE,
308 TRUE,
309 "NOT_NULL",
310 "list",
311 NULL,
312 NULL,
313 NULL,
314 NULL,
315 TRUE,
316 TRUE,
317 TRUE,
318 TRUE,
319 TRUE
320 },
321 {
322 BASICTYPE_SET,
323 C_STRUCT,
324 "struct",
325 FALSE,
326 TRUE,
327 FALSE,
328 TRUE,
329 TRUE,
330 TRUE,
331 "NOT_NULL",
332 "set",
333 NULL,
334 NULL,
335 NULL,
336 NULL,
337 TRUE,
338 TRUE,
339 TRUE,
340 TRUE,
341 TRUE
342 },
343 {
344 BASICTYPE_SETOF,
345 C_LIST,
346 "AsnList",
347 FALSE,
348 TRUE,
349 FALSE,
350 TRUE,
351 TRUE,
352 TRUE,
353 "NOT_NULL",
354 "list",
355 NULL,
356 NULL,
357 NULL,
358 NULL,
359 TRUE,
360 TRUE,
361 TRUE,
362 TRUE,
363 TRUE
364 },
365 {
366 BASICTYPE_CHOICE,
367 C_CHOICE,
368 NULL,
369 FALSE,
370 TRUE,
371 FALSE,
372 TRUE,
373 TRUE,
374 TRUE,
375 "NOT_NULL",
376 "choice",
377 NULL,
378 NULL,
379 NULL,
380 NULL,
381 TRUE,
382 TRUE,
383 TRUE,
384 TRUE,
385 TRUE
386 },
387 {
388 BASICTYPE_SELECTION,
389 C_NO_TYPE,
390 NULL,
391 FALSE,
392 TRUE,
393 FALSE,
394 FALSE,
395 FALSE,
396 FALSE,
397 "NOT_NULL",
398 "selection",
399 NULL,
400 NULL,
401 NULL,
402 NULL,
403 TRUE,
404 TRUE,
405 TRUE,
406 TRUE,
407 TRUE
408 },
409 {
410 BASICTYPE_COMPONENTSOF,
411 C_NO_TYPE,
412 NULL,
413 FALSE,
414 TRUE,
415 FALSE,
416 FALSE,
417 FALSE,
418 FALSE,
419 "NOT_NULL",
420 "compsOf",
421 NULL,
422 NULL,
423 NULL,
424 NULL,
425 TRUE,
426 TRUE,
427 TRUE,
428 TRUE,
429 TRUE
430 },
431 {
432 BASICTYPE_ANY,
433 C_ANY,
434 "AsnAny",
435 FALSE,
436 TRUE,
437 FALSE,
438 FALSE,
439 FALSE,
440 FALSE,
441 "NOT_NULL",
442 "any",
443 "PrintAsnAny",
444 "EncAsnAny",
445 "DecAsnAny",
446 "FreeAsnAny",
447 TRUE,
448 TRUE,
449 TRUE,
450 TRUE,
451 TRUE
452 },
453 {
454 BASICTYPE_ANYDEFINEDBY,
455 C_ANYDEFINEDBY,
456 "AsnAnyDefinedBy",
457 FALSE,
458 TRUE,
459 FALSE,
460 FALSE,
461 FALSE,
462 FALSE,
463 "NOT_NULL",
464 "anyDefBy",
465 "PrintAsnAnyDefinedBy",
466 "EncAsnAnyDefinedBy",
467 "DecAsnAnyDefinedBy",
468 "FreeAsnAnyDefinedBy",
469 TRUE,
470 TRUE,
471 TRUE,
472 TRUE,
473 TRUE
474 },
475 {
476 BASICTYPE_LOCALTYPEREF,
477 C_TYPEREF,
478 NULL,
479 FALSE,
480 TRUE,
481 FALSE,
482 FALSE,
483 FALSE,
484 FALSE,
485 "NOT_NULL",
486 "t",
487 NULL,
488 NULL,
489 NULL,
490 NULL,
491 TRUE,
492 TRUE,
493 TRUE,
494 TRUE,
495 TRUE
496 },
497 {
498 BASICTYPE_IMPORTTYPEREF,
499 C_TYPEREF,
500 NULL,
501 FALSE,
502 TRUE,
503 FALSE,
504 FALSE,
505 FALSE,
506 FALSE,
507 "NOT_NULL",
508 "t",
509 NULL,
510 NULL,
511 NULL,
512 NULL,
513 TRUE,
514 TRUE,
515 TRUE,
516 TRUE,
517 TRUE
518 },
519 {
520 BASICTYPE_MACROTYPE,
521 C_NO_TYPE,
522 NULL,
523 FALSE,
524 FALSE,
525 FALSE,
526 FALSE,
527 FALSE,
528 FALSE,
529 "NOT_NULL",
530 "macroType",
531 NULL,
532 NULL,
533 NULL,
534 NULL,
535 FALSE,
536 FALSE,
537 FALSE,
538 FALSE,
539 FALSE
540 },
541 {
542 BASICTYPE_MACRODEF,
543 C_NO_TYPE,
544 NULL,
545 FALSE,
546 FALSE,
547 FALSE,
548 FALSE,
549 FALSE,
550 FALSE,
551 "NOT_NULL",
552 "macroDef",
553 NULL,
554 NULL,
555 NULL,
556 NULL,
557 FALSE,
558 FALSE,
559 FALSE,
560 FALSE,
561 FALSE
562 }
563 }
564 };