1 /* ANSI-C code produced by gperf version 3.0.4 */
4 #if 0 /* gperf build options: */
13 // %define slot-name xat_name
14 // %define hash-function-name xat_attribute_hash
15 // %define lookup-function-name find_xat_attribute_name
16 // %define word-array-name xat_attribute_table
17 // %define initializer-suffix ,XAT_COUNT_KWD
18 #endif /* gperf build options: */
20 #include "xat-attribute.h"
23 char const * xat_name
;
24 xat_attribute_enum_t xat_id
;
25 } xat_attribute_map_t
;
28 /* maximum key range = 9, duplicates = 0 */
35 inline static unsigned int
36 xat_attribute_hash (register const char *str
, register unsigned int len
)
38 static const unsigned char asso_values
[] =
40 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
41 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
42 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
43 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
44 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
45 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
46 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
47 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
48 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
49 13, 13, 13, 13, 13, 13, 13, 13, 13, 0,
50 13, 13, 13, 13, 13, 5, 13, 5, 13, 0,
51 13, 13, 13, 13, 13, 13, 0, 0, 13, 0,
52 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
53 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
54 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
55 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
56 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
57 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
58 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
59 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
60 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
61 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
62 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
63 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
64 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
65 13, 13, 13, 13, 13, 13
67 return len
+ asso_values
[(unsigned char)str
[0]];
70 static const xat_attribute_map_t xat_attribute_table
[] =
72 {"",XAT_COUNT_KWD
}, {"",XAT_COUNT_KWD
},
73 {"",XAT_COUNT_KWD
}, {"",XAT_COUNT_KWD
},
74 {"type", XAT_KWD_TYPE
},
75 {"words", XAT_KWD_WORDS
},
76 {"cooked", XAT_KWD_COOKED
},
77 {"members", XAT_KWD_MEMBERS
},
78 {"uncooked", XAT_KWD_UNCOOKED
},
79 {"keep", XAT_KWD_KEEP
},
80 {"",XAT_COUNT_KWD
}, {"",XAT_COUNT_KWD
},
81 {"invalid", XAT_KWD_INVALID
}
85 #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
86 __attribute__ ((__gnu_inline__
))
89 static inline const xat_attribute_map_t
*
90 find_xat_attribute_name (register const char *str
, register unsigned int len
)
92 if (len
<= 8 && len
>= 4)
94 register int key
= xat_attribute_hash (str
, len
);
96 if (key
<= 12 && key
>= 0)
98 register const char *s
= xat_attribute_table
[key
].xat_name
;
100 if (*str
== *s
&& !strncmp (str
+ 1, s
+ 1, len
- 1) && s
[len
] == '\0')
101 return &xat_attribute_table
[key
];
109 find_xat_attribute_id(char const * str
, unsigned int len
)
111 const xat_attribute_map_t
* p
=
112 find_xat_attribute_name(str
, len
);
113 return (p
== 0) ? XAT_KWD_INVALID
: p
->xat_id
;