4 * auto-generated from FreeBSD: src/usr.bin/make/parse.c,v 1.114 2008/03/12 14:50:58 obrien Exp
9 #include "hash_tables.h"
26 static const signed char directive_g[] = {
27 8, 0, 0, 5, 6, -1, 17, 15, 10, 6,
28 -1, -1, 10, 0, 0, -1, 18, 2, 3, 0,
29 7, -1, -1, -1, 0, 14, -1, -1, 11, 16,
30 -1, -1, 0, -1, 0, 0, 17, 0, -1, 1,
33 static const u_char directive_T0[] = {
34 26, 14, 19, 35, 10, 34, 18, 27, 1, 17,
35 22, 37, 12, 12, 36, 21, 0, 6, 1, 25,
39 static const u_char directive_T1[] = {
40 25, 22, 19, 0, 2, 18, 33, 18, 30, 4,
41 30, 9, 21, 19, 16, 12, 35, 34, 4, 19,
47 directive_hash(const u_char *key, size_t len)
50 const u_char *kp = key;
52 if (len < 2 || len > 9)
55 for (f0=f1=0; kp < key + len; ++kp) {
56 if (*kp < 97 || *kp > 119)
58 f0 += directive_T0[-97 + *kp];
59 f1 += directive_T1[-97 + *kp];
65 return (directive_g[f0] + directive_g[f1]) % 19;
82 static const signed char keyword_g[] = {
83 12, 18, 7, 25, 30, 5, -1, -1, -1, 7,
84 -1, 0, 33, 0, 4, -1, -1, 13, 29, 0,
85 -1, 28, -1, 28, -1, 0, -1, 27, 4, 34,
86 -1, -1, -1, 30, 13, 10, -1, -1, 0, 10,
87 24, -1, -1, -1, 0, 6, 0, 0, -1, 23,
88 -1, -1, -1, 0, -1, 23, -1, -1, 19, 4,
89 -1, 31, 12, 16, -1, 20, 22, 9, 0, -1,
93 static const u_char keyword_T0[] = {
94 34, 28, 50, 61, 14, 57, 48, 60, 20, 67,
95 60, 63, 0, 24, 28, 2, 49, 64, 18, 23,
96 36, 33, 40, 14, 38, 42, 71, 49, 2, 53,
97 53, 37, 7, 29, 24, 21, 12, 50, 59, 10,
98 43, 23, 0, 44, 47, 6, 46, 22, 48, 64,
101 static const u_char keyword_T1[] = {
102 18, 67, 39, 60, 7, 70, 2, 26, 31, 18,
103 73, 47, 61, 17, 38, 50, 22, 52, 13, 55,
104 56, 32, 63, 4, 64, 55, 49, 21, 47, 67,
105 33, 66, 60, 73, 30, 68, 69, 32, 72, 4,
106 28, 49, 51, 15, 66, 68, 43, 67, 46, 56,
111 keyword_hash(const u_char *key, size_t len)
114 const u_char *kp = key;
116 if (len < 4 || len > 13)
119 for (f0=f1=0; *kp; ++kp) {
120 if (*kp < 46 || *kp > 95)
122 f0 += keyword_T0[-46 + *kp];
123 f1 += keyword_T1[-46 + *kp];
129 return (keyword_g[f0] + keyword_g[f1]) % 35;