#!/usr/bin/env perl print<<EOM; /* * This file is automatically generated by $0 * DO NOT EDIT MANUALLY, fix the $0 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)) = { EOM while(<>) { chomp; next if(/TYPE_MAX/); next unless(/^[ \t]+(ASN_[A-Z]+_([A-Za-z0-9_]+))/); print "\t[ $1 ]\t = "; $_ = $2; if($_ eq "RELATIVE_OID") { print '"RELATIVE-OID"'; } else { s/_/ /; print '"'.$_.'"'; } print ",\n"; } print<<EOM; }; /* * 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 */ EOM