blob: 9db02ca74cc47cc7c9cf196d51afa30392747c25 [file] [log] [blame]
vlmfa67ddc2004-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 /*
vlmf9d178d2004-09-14 12:47:45 +000023 * Use native data types instead of INTEGER_t et al.
vlmfa67ddc2004-06-03 03:38:44 +000024 */
vlmf9d178d2004-09-14 12:47:45 +000025 A1C_USE_NATIVE_TYPES = 0x0008,
vlmfa67ddc2004-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,
vlm12c8f692004-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,
vlm86f5ed22004-09-26 13:11:31 +000038 /*
39 * Do not generate constraint checking code.
40 */
41 A1C_NO_CONSTRAINTS = 0x0080,
vlmaf841972005-01-28 12:18:50 +000042 /*
43 * Generate type_id_PR_member things identifiers of id_PR_member.
44 */
vlm98218602005-03-04 08:52:50 +000045 A1C_COMPOUND_NAMES = 0x0100,
vlm9f554a32005-03-05 00:33:27 +000046 /*
47 * Do not generate courtesy #includes for external dependencies.
48 */
49 A1C_NO_INCLUDE_DEPS = 0x0200,
vlmfa67ddc2004-06-03 03:38:44 +000050};
51
52/*
53 * Compile the ASN.1 specification.
54 */
55int asn1_compile(asn1p_t *asn, const char *datadir, enum asn1c_flags);
56
57#endif /* ASN1_COMPILER_H */