1/* ANSI-C code produced by gperf version 3.0.2 */ 2 3 4#if 0 /* gperf build options: */ 5// %struct-type 6// %language=ANSI-C 7// %includes 8// %global-table 9// %omit-struct-type 10// %readonly-tables 11// %compare-strncmp 12// 13// %define slot-name vtp_name 14// %define hash-function-name value_type_hash 15// %define lookup-function-name find_value_type_name 16// %define word-array-name value_type_table 17// %define initializer-suffix ,VTP_COUNT_KWD 18#endif /* gperf build options: */ 19 20#include "value-type.h" 21 22typedef struct { 23 char const * vtp_name; 24 value_type_enum_t vtp_id; 25} value_type_map_t; 26#include <string.h> 27 28/* maximum key range = 20, duplicates = 0 */ 29 30#ifdef __GNUC__ 31#else 32#ifdef __cplusplus 33#endif 34#endif 35inline static unsigned int 36value_type_hash (register const char *str, register unsigned int len) 37{ 38 static const unsigned char asso_values[] = 39 { 40 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 41 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 42 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 43 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 44 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 45 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 46 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 47 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 48 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 49 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 50 23, 10, 23, 23, 23, 23, 23, 23, 23, 23, 51 23, 5, 23, 23, 5, 0, 0, 23, 15, 23, 52 23, 10, 23, 23, 23, 23, 23, 23, 23, 23, 53 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 54 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 55 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 56 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 57 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 58 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 59 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 60 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 61 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 62 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 63 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 64 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 65 23, 23, 23, 23, 23, 23 66 }; 67 return len + asso_values[(unsigned char)str[2]]; 68} 69 70static const value_type_map_t value_type_table[] = 71 { 72 {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD}, 73 {"",VTP_COUNT_KWD}, 74 {"set", VTP_KWD_SET}, 75 {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD}, 76 {"nested", VTP_KWD_NESTED}, 77 {"integer", VTP_KWD_INTEGER}, 78 {"",VTP_COUNT_KWD}, 79 {"bool", VTP_KWD_BOOL}, 80 {"",VTP_COUNT_KWD}, 81 {"string", VTP_KWD_STRING}, 82 {"boolean", VTP_KWD_BOOLEAN}, 83 {"",VTP_COUNT_KWD}, 84 {"set-membership", VTP_KWD_SET_MEMBERSHIP}, 85 {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD}, 86 {"keyword", VTP_KWD_KEYWORD}, 87 {"",VTP_COUNT_KWD}, 88 {"hierarchy", VTP_KWD_HIERARCHY}, 89 {"",VTP_COUNT_KWD}, {"",VTP_COUNT_KWD}, 90 {"invalid", VTP_KWD_INVALID} 91 }; 92 93#ifdef __GNUC__ 94#endif 95static inline const value_type_map_t * 96find_value_type_name (register const char *str, register unsigned int len) 97{ 98 if (len <= 14 && len >= 3) 99 { 100 register int key = value_type_hash (str, len); 101 102 if (key <= 22 && key >= 0) 103 { 104 register const char *s = value_type_table[key].vtp_name; 105 106 if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') 107 return &value_type_table[key]; 108 } 109 } 110 return 0; 111} 112 113 114value_type_enum_t 115find_value_type_id(char const * str, unsigned int len) 116{ 117 const value_type_map_t * p = 118 find_value_type_name(str, len); 119 return (p == 0) ? VTP_KWD_INVALID : p->vtp_id; 120} 121