26c294021d590074598acfb3c519196be0925250
[com/asn1c.git] / libasn1compiler / asn1c_C.h
1 #ifndef ASN1_COMPILER_LANGUAGE_C_H
2 #define ASN1_COMPILER_LANGUAGE_C_H
3
4 #include "asn1c_lang.h"
5
6 int asn1c_lang_C_type_REFERENCE(arg_t *);
7 int asn1c_lang_C_type_EXTENSIBLE(arg_t *);
8
9 int asn1c_lang_C_type_SEQUENCE(arg_t *);
10 int asn1c_lang_C_type_SET(arg_t *);
11 int asn1c_lang_C_type_SEx_OF(arg_t *);  /* SET OF or  SEQUENCE OF */
12 int asn1c_lang_C_type_CHOICE(arg_t *);
13
14 int asn1c_lang_C_type_common_INTEGER(arg_t *);
15 int asn1c_lang_C_type_BIT_STRING(arg_t *);
16 int asn1c_lang_C_type_REAL(arg_t *);
17 int asn1c_lang_C_type_SIMPLE_TYPE(arg_t *);
18 int asn1c_lang_C_type_REFERENCE_Value(arg_t *);
19
20 static asn1_language_map_t asn1_lang_C[] __attribute__ ((unused)) = {
21         { AMT_VALUE, A1TC_REFERENCE,    asn1c_lang_C_type_REFERENCE_Value },
22
23         { AMT_TYPE, A1TC_REFERENCE,     asn1c_lang_C_type_REFERENCE },
24         { AMT_TYPEREF, A1TC_REFERENCE,  asn1c_lang_C_type_REFERENCE },
25         { AMT_TYPE, A1TC_EXTENSIBLE,    asn1c_lang_C_type_EXTENSIBLE },
26         /*
27          * Constructed types
28          */
29         { AMT_TYPE, ASN_CONSTR_SEQUENCE,        asn1c_lang_C_type_SEQUENCE },
30         { AMT_TYPE, ASN_CONSTR_SEQUENCE_OF,     asn1c_lang_C_type_SEx_OF, },
31         { AMT_TYPEREF, ASN_CONSTR_SEQUENCE_OF,  asn1c_lang_C_type_SEx_OF },
32         { AMT_TYPE, ASN_CONSTR_SET,             asn1c_lang_C_type_SET },
33         { AMT_TYPE, ASN_CONSTR_SET_OF,          asn1c_lang_C_type_SEx_OF },
34         { AMT_TYPEREF, ASN_CONSTR_SET_OF,       asn1c_lang_C_type_SEx_OF },
35         { AMT_TYPE, ASN_CONSTR_CHOICE,          asn1c_lang_C_type_CHOICE },
36         /*
37          * ANY type (deprecated)
38          */
39         { AMT_TYPE, ASN_TYPE_ANY,       asn1c_lang_C_type_SIMPLE_TYPE },
40         /*
41          * Basic types
42          */
43         { AMT_TYPE, ASN_BASIC_BOOLEAN,  asn1c_lang_C_type_SIMPLE_TYPE },
44         { AMT_TYPE, ASN_BASIC_NULL,     asn1c_lang_C_type_SIMPLE_TYPE },
45         { AMT_TYPE, ASN_BASIC_INTEGER,  asn1c_lang_C_type_common_INTEGER },
46         { AMT_TYPE, ASN_BASIC_REAL,     asn1c_lang_C_type_REAL },
47         { AMT_TYPE, ASN_BASIC_ENUMERATED,  asn1c_lang_C_type_common_INTEGER },
48         { AMT_TYPE, ASN_BASIC_BIT_STRING,       asn1c_lang_C_type_BIT_STRING },
49         { AMT_TYPE, ASN_BASIC_OCTET_STRING,     asn1c_lang_C_type_SIMPLE_TYPE },
50         { AMT_TYPE, ASN_BASIC_OBJECT_IDENTIFIER,asn1c_lang_C_type_SIMPLE_TYPE },
51         { AMT_TYPE, ASN_BASIC_RELATIVE_OID,     asn1c_lang_C_type_SIMPLE_TYPE },
52         { AMT_TYPE, ASN_BASIC_CHARACTER_STRING, asn1c_lang_C_type_SIMPLE_TYPE },
53         { AMT_TYPE, ASN_BASIC_UTCTime,          asn1c_lang_C_type_SIMPLE_TYPE },
54         { AMT_TYPE, ASN_BASIC_GeneralizedTime,  asn1c_lang_C_type_SIMPLE_TYPE },
55         /*
56          * String types
57          */
58         { AMT_TYPE, ASN_STRING_BMPString,     asn1c_lang_C_type_SIMPLE_TYPE },
59         { AMT_TYPE, ASN_STRING_GeneralString, asn1c_lang_C_type_SIMPLE_TYPE },
60         { AMT_TYPE, ASN_STRING_GraphicString, asn1c_lang_C_type_SIMPLE_TYPE },
61         { AMT_TYPE, ASN_STRING_IA5String,     asn1c_lang_C_type_SIMPLE_TYPE },
62         { AMT_TYPE, ASN_STRING_ISO646String,  asn1c_lang_C_type_SIMPLE_TYPE },
63         { AMT_TYPE, ASN_STRING_NumericString, asn1c_lang_C_type_SIMPLE_TYPE },
64         { AMT_TYPE, ASN_STRING_PrintableString,asn1c_lang_C_type_SIMPLE_TYPE },
65         { AMT_TYPE, ASN_STRING_TeletexString, asn1c_lang_C_type_SIMPLE_TYPE },
66         { AMT_TYPE, ASN_STRING_T61String,     asn1c_lang_C_type_SIMPLE_TYPE },
67         { AMT_TYPE, ASN_STRING_UniversalString,asn1c_lang_C_type_SIMPLE_TYPE },
68         { AMT_TYPE, ASN_STRING_UTF8String,    asn1c_lang_C_type_SIMPLE_TYPE },
69         { AMT_TYPE, ASN_STRING_VideotexString,asn1c_lang_C_type_SIMPLE_TYPE },
70         { AMT_TYPE, ASN_STRING_VisibleString, asn1c_lang_C_type_SIMPLE_TYPE },
71         { AMT_TYPE, ASN_STRING_ObjectDescriptor,asn1c_lang_C_type_SIMPLE_TYPE },
72         { 0, 0, 0 }
73 };
74
75
76 #endif  /* ASN1_COMPILER_LANGUAGE_C_H */