blob: 8099e6e1b3fdbaa315efe6e750d540306c6e42f0 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001#ifndef ASN1_COMPILER_H
2#define ASN1_COMPILER_H
3
4#include <asn1parser.h>
5
6enum asn1c_flags {
7 A1C_NOFLAGS,
8 /*
9 * Debug the compiler.
10 */
11 A1C_DEBUG = 0x0001,
12 /*
13 * Do not split the target output in several files, just print it.
14 * (Note: the output is not likely to be compilable in this case).
15 */
16 A1C_PRINT_COMPILED = 0x0002,
17 /*
18 * Generate only the tables for ASN.1 types,
19 * do not emit ASN.1 parsing support code.
20 */
21 A1C_OMIT_SUPPORT_CODE = 0x0004,
22 /*
Lev Walkinc78cbfb2004-09-14 12:47:45 +000023 * Use native data types instead of INTEGER_t et al.
Lev Walkinf15320b2004-06-03 03:38:44 +000024 */
Lev Walkinc78cbfb2004-09-14 12:47:45 +000025 A1C_USE_NATIVE_TYPES = 0x0008,
Lev Walkinf15320b2004-06-03 03:38:44 +000026 /*
27 * Do not use C99 extensions.
28 */
29 A1C_NO_C99 = 0x0010,
30 /*
31 * Enable use of unnamed unions (non-portable feature).
32 */
33 A1C_UNNAMED_UNIONS = 0x0020,
Lev Walkindd32b592004-09-06 08:07:29 +000034 /*
35 * Don't make the asn1_DEF_'s of structure members "static".
36 */
37 A1C_ALL_DEFS_GLOBAL = 0x0040,
Lev Walkinf15320b2004-06-03 03:38:44 +000038};
39
40/*
41 * Compile the ASN.1 specification.
42 */
43int asn1_compile(asn1p_t *asn, const char *datadir, enum asn1c_flags);
44
45#endif /* ASN1_COMPILER_H */