Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 215 lines (203 sloc) 7.897 kb
511dc44 initial import
Laurent Sansonetti authored
1 /* C code produced by gperf version 3.0.2 */
2 /* Command-line: gperf --output-file=lex.c.tmp -C -p -j1 -i 1 -g -o -t -N rb_reserved_word -k'1,3,$' keywords */
3
4 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
5 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
6 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
7 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
8 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
9 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
10 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
11 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
12 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
13 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
14 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
15 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
16 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
17 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
18 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
19 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
20 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
21 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
22 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
23 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
24 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
25 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
26 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
27 /* The character set is not based on ISO-646. */
28 error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
29 #endif
30
31 #line 1 "keywords"
32
26d0e1f merge with ruby trunk r16762 + better/faster objc-like dispatcher
Laurent Sansonetti authored
33 struct kwtable {const char *name; int id[2]; enum lex_state_e state;};
511dc44 initial import
Laurent Sansonetti authored
34 const struct kwtable *rb_reserved_word(const char *, unsigned int);
35 #ifndef RIPPER
36 #line 7 "keywords"
37 struct kwtable;
38
39 #define TOTAL_KEYWORDS 41
40 #define MIN_WORD_LENGTH 2
41 #define MAX_WORD_LENGTH 12
42 #define MIN_HASH_VALUE 8
43 #define MAX_HASH_VALUE 50
44 /* maximum key range = 43, duplicates = 0 */
45
46 #ifdef __GNUC__
47 __inline
48 #else
49 #ifdef __cplusplus
50 inline
51 #endif
52 #endif
53 static unsigned int
54 hash (str, len)
55 register const char *str;
56 register unsigned int len;
57 {
58 static const unsigned char asso_values[] =
59 {
60 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
61 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
62 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
63 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
64 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
65 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
66 51, 51, 51, 26, 51, 51, 14, 51, 16, 8,
67 11, 13, 51, 51, 51, 51, 10, 51, 13, 51,
68 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
69 51, 51, 51, 51, 51, 11, 51, 13, 1, 26,
70 4, 1, 8, 28, 51, 23, 51, 1, 1, 27,
71 5, 19, 21, 51, 8, 3, 3, 11, 51, 21,
72 24, 16, 51, 51, 51, 51, 51, 51, 51, 51,
73 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
74 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
75 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
76 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
77 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
78 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
79 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
80 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
81 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
82 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
83 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
84 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
85 51, 51, 51, 51, 51, 51
86 };
87 register int hval = len;
88
89 switch (hval)
90 {
91 default:
92 hval += asso_values[(unsigned char)str[2]];
93 /*FALLTHROUGH*/
94 case 2:
95 case 1:
96 hval += asso_values[(unsigned char)str[0]];
97 break;
98 }
99 return hval + asso_values[(unsigned char)str[len - 1]];
100 }
101
102 #ifdef __GNUC__
103 __inline
104 #endif
105 const struct kwtable *
106 rb_reserved_word (str, len)
107 register const char *str;
108 register unsigned int len;
109 {
110 static const struct kwtable wordlist[] =
111 {
112 {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
113 #line 17 "keywords"
114 {"break", {keyword_break, keyword_break}, EXPR_MID},
115 #line 23 "keywords"
116 {"else", {keyword_else, keyword_else}, EXPR_BEG},
117 #line 33 "keywords"
118 {"nil", {keyword_nil, keyword_nil}, EXPR_END},
119 #line 26 "keywords"
120 {"ensure", {keyword_ensure, keyword_ensure}, EXPR_BEG},
121 #line 25 "keywords"
122 {"end", {keyword_end, keyword_end}, EXPR_END},
123 #line 42 "keywords"
124 {"then", {keyword_then, keyword_then}, EXPR_BEG},
125 #line 34 "keywords"
126 {"not", {keyword_not, keyword_not}, EXPR_VALUE},
127 #line 27 "keywords"
128 {"false", {keyword_false, keyword_false}, EXPR_END},
129 #line 40 "keywords"
130 {"self", {keyword_self, keyword_self}, EXPR_END},
131 #line 24 "keywords"
132 {"elsif", {keyword_elsif, keyword_elsif}, EXPR_VALUE},
133 #line 37 "keywords"
134 {"rescue", {keyword_rescue, modifier_rescue}, EXPR_MID},
135 #line 43 "keywords"
136 {"true", {keyword_true, keyword_true}, EXPR_END},
137 #line 46 "keywords"
138 {"until", {keyword_until, modifier_until}, EXPR_VALUE},
139 #line 45 "keywords"
140 {"unless", {keyword_unless, modifier_unless}, EXPR_VALUE},
141 #line 39 "keywords"
142 {"return", {keyword_return, keyword_return}, EXPR_MID},
143 #line 20 "keywords"
144 {"def", {keyword_def, keyword_def}, EXPR_FNAME},
145 #line 15 "keywords"
146 {"and", {keyword_and, keyword_and}, EXPR_VALUE},
147 #line 22 "keywords"
148 {"do", {keyword_do, keyword_do}, EXPR_BEG},
149 #line 49 "keywords"
150 {"yield", {keyword_yield, keyword_yield}, EXPR_ARG},
151 #line 28 "keywords"
152 {"for", {keyword_for, keyword_for}, EXPR_VALUE},
153 #line 44 "keywords"
154 {"undef", {keyword_undef, keyword_undef}, EXPR_FNAME},
155 #line 35 "keywords"
156 {"or", {keyword_or, keyword_or}, EXPR_VALUE},
157 #line 30 "keywords"
158 {"in", {keyword_in, keyword_in}, EXPR_VALUE},
159 #line 47 "keywords"
160 {"when", {keyword_when, keyword_when}, EXPR_VALUE},
161 #line 38 "keywords"
162 {"retry", {keyword_retry, keyword_retry}, EXPR_END},
163 #line 29 "keywords"
164 {"if", {keyword_if, modifier_if}, EXPR_VALUE},
165 #line 18 "keywords"
166 {"case", {keyword_case, keyword_case}, EXPR_VALUE},
167 #line 36 "keywords"
168 {"redo", {keyword_redo, keyword_redo}, EXPR_END},
169 #line 32 "keywords"
170 {"next", {keyword_next, keyword_next}, EXPR_MID},
171 #line 41 "keywords"
172 {"super", {keyword_super, keyword_super}, EXPR_ARG},
173 #line 31 "keywords"
174 {"module", {keyword_module, keyword_module}, EXPR_VALUE},
175 #line 16 "keywords"
176 {"begin", {keyword_begin, keyword_begin}, EXPR_BEG},
177 #line 10 "keywords"
178 {"__LINE__", {keyword__LINE__, keyword__LINE__}, EXPR_END},
179 #line 11 "keywords"
180 {"__FILE__", {keyword__FILE__, keyword__FILE__}, EXPR_END},
181 #line 9 "keywords"
182 {"__ENCODING__", {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END},
183 #line 13 "keywords"
184 {"END", {keyword_END, keyword_END}, EXPR_END},
185 #line 14 "keywords"
186 {"alias", {keyword_alias, keyword_alias}, EXPR_FNAME},
187 #line 12 "keywords"
188 {"BEGIN", {keyword_BEGIN, keyword_BEGIN}, EXPR_END},
189 #line 21 "keywords"
190 {"defined?", {keyword_defined, keyword_defined}, EXPR_ARG},
191 #line 19 "keywords"
192 {"class", {keyword_class, keyword_class}, EXPR_CLASS},
193 {""}, {""},
194 #line 48 "keywords"
195 {"while", {keyword_while, modifier_while}, EXPR_VALUE}
196 };
197
198 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
199 {
200 register int key = hash (str, len);
201
202 if (key <= MAX_HASH_VALUE && key >= 0)
203 {
204 register const char *s = wordlist[key].name;
205
206 if (*str == *s && !strcmp (str + 1, s + 1))
207 return &wordlist[key];
208 }
209 }
210 return 0;
211 }
212 #line 50 "keywords"
213
214 #endif
Something went wrong with that request. Please try again.