/*
 * This file is automatically generated by ./expr-h.pl
 * DO NOT EDIT MANUALLY, fix the ./expr-h.pl instead if necessary.
 */
#ifndef	ASN1_PARSER_EXPR_STR_H
#define	ASN1_PARSER_EXPR_STR_H

#include <assert.h>

#ifndef	__GNUC__
#define	__attribute__(x)	/* unused */
#endif

static char *asn1p_expr_type2str[] __attribute__ ((unused)) = {
	[ ASN_CONSTR_SEQUENCE ]	 = "SEQUENCE",
	[ ASN_CONSTR_CHOICE ]	 = "CHOICE",
	[ ASN_CONSTR_SET ]	 = "SET",
	[ ASN_CONSTR_SEQUENCE_OF ]	 = "SEQUENCE OF",
	[ ASN_CONSTR_SET_OF ]	 = "SET OF",
	[ ASN_TYPE_ANY ]	 = "ANY",
	[ ASN_BASIC_BOOLEAN ]	 = "BOOLEAN",
	[ ASN_BASIC_NULL ]	 = "NULL",
	[ ASN_BASIC_INTEGER ]	 = "INTEGER",
	[ ASN_BASIC_REAL ]	 = "REAL",
	[ ASN_BASIC_ENUMERATED ]	 = "ENUMERATED",
	[ ASN_BASIC_BIT_STRING ]	 = "BIT STRING",
	[ ASN_BASIC_OCTET_STRING ]	 = "OCTET STRING",
	[ ASN_BASIC_OBJECT_IDENTIFIER ]	 = "OBJECT IDENTIFIER",
	[ ASN_BASIC_RELATIVE_OID ]	 = "RELATIVE-OID",
	[ ASN_BASIC_EXTERNAL ]	 = "EXTERNAL",
	[ ASN_BASIC_EMBEDDED_PDV ]	 = "EMBEDDED PDV",
	[ ASN_BASIC_CHARACTER_STRING ]	 = "CHARACTER STRING",
	[ ASN_BASIC_UTCTime ]	 = "UTCTime",
	[ ASN_BASIC_GeneralizedTime ]	 = "GeneralizedTime",
	[ ASN_STRING_IA5String ]	 = "IA5String",
	[ ASN_STRING_PrintableString ]	 = "PrintableString",
	[ ASN_STRING_VisibleString ]	 = "VisibleString",
	[ ASN_STRING_ISO646String ]	 = "ISO646String",
	[ ASN_STRING_NumericString ]	 = "NumericString",
	[ ASN_STRING_UniversalString ]	 = "UniversalString",
	[ ASN_STRING_BMPString ]	 = "BMPString",
	[ ASN_STRING_UTF8String ]	 = "UTF8String",
	[ ASN_STRING_GeneralString ]	 = "GeneralString",
	[ ASN_STRING_GraphicString ]	 = "GraphicString",
	[ ASN_STRING_TeletexString ]	 = "TeletexString",
	[ ASN_STRING_T61String ]	 = "T61String",
	[ ASN_STRING_VideotexString ]	 = "VideotexString",
	[ ASN_STRING_ObjectDescriptor ]	 = "ObjectDescriptor",
};

/*
 * Convert the ASN.1 expression type back into the string representation.
 */
#define ASN_EXPR_TYPE2STR(type) _asn1p_expr_type2string(type)

static inline char * __attribute__((unused))
_asn1p_expr_type2string(asn1p_expr_type_e type) {
    assert((signed int)type >= 0);
    if(type < sizeof(asn1p_expr_type2str)/sizeof(asn1p_expr_type2str[0]))
        return asn1p_expr_type2str[type];
    return NULL;
}

#endif	/* ASN1_PARSER_EXPR_STR_H */
