diff options
Diffstat (limited to 'recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch')
-rw-r--r-- | recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch new file mode 100644 index 00000000..38e4d815 --- /dev/null +++ b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch | |||
@@ -0,0 +1,256 @@ | |||
1 | From e908a3ad04bb40e425542b85fbb3a1eb5a38e194 Mon Sep 17 00:00:00 2001 | ||
2 | From: Tee-Kiah Chia <tkchia@users.noreply.github.com> | ||
3 | Date: Thu, 27 Feb 2020 00:52:05 +0800 | ||
4 | Subject: [PATCH] [cpp] update token1.tok to make new gperf happy; regen. | ||
5 | token1.h | ||
6 | |||
7 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
8 | Upstream-Status: Pending [it was submitted in https://github.com/jbruchon/dev86/pull/19 | ||
9 | but then closed by author] | ||
10 | |||
11 | --- | ||
12 | cpp/token1.h | 170 +++++++++++++++++++++++++++++++++---------------- | ||
13 | cpp/token1.tok | 2 +- | ||
14 | 2 files changed, 115 insertions(+), 57 deletions(-) | ||
15 | |||
16 | diff --git a/cpp/token1.h b/cpp/token1.h | ||
17 | index 2e2b9eb..bb313aa 100644 | ||
18 | --- a/cpp/token1.h | ||
19 | +++ b/cpp/token1.h | ||
20 | @@ -1,15 +1,48 @@ | ||
21 | -/* C code produced by gperf version 2.7.1 (19981006 egcs) */ | ||
22 | +/* C code produced by gperf version 3.0.4 */ | ||
23 | /* Command-line: gperf -aptTc -N is_ctok -H hash1 token1.tok */ | ||
24 | +/* Computed positions: -k'1-2' */ | ||
25 | + | ||
26 | +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ | ||
27 | + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ | ||
28 | + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ | ||
29 | + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ | ||
30 | + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ | ||
31 | + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ | ||
32 | + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ | ||
33 | + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ | ||
34 | + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ | ||
35 | + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ | ||
36 | + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ | ||
37 | + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ | ||
38 | + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ | ||
39 | + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ | ||
40 | + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ | ||
41 | + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ | ||
42 | + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ | ||
43 | + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ | ||
44 | + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ | ||
45 | + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ | ||
46 | + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ | ||
47 | + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ | ||
48 | + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) | ||
49 | +/* The character set is not based on ISO-646. */ | ||
50 | +error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." | ||
51 | +#endif | ||
52 | + | ||
53 | |||
54 | #define TOTAL_KEYWORDS 23 | ||
55 | #define MIN_WORD_LENGTH 2 | ||
56 | #define MAX_WORD_LENGTH 3 | ||
57 | #define MIN_HASH_VALUE 2 | ||
58 | -#define MAX_HASH_VALUE 63 | ||
59 | -/* maximum key range = 62, duplicates = 0 */ | ||
60 | +#define MAX_HASH_VALUE 62 | ||
61 | +/* maximum key range = 61, duplicates = 0 */ | ||
62 | |||
63 | #ifdef __GNUC__ | ||
64 | __inline | ||
65 | +#else | ||
66 | +#ifdef __cplusplus | ||
67 | +inline | ||
68 | +#endif | ||
69 | #endif | ||
70 | static unsigned int | ||
71 | hash1 (str, len) | ||
72 | @@ -18,38 +51,41 @@ hash1 (str, len) | ||
73 | { | ||
74 | static unsigned char asso_values[] = | ||
75 | { | ||
76 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
77 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
78 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
79 | - 64, 64, 64, 1, 64, 64, 64, 3, 25, 64, | ||
80 | - 64, 64, 13, 18, 64, 8, 30, 15, 64, 64, | ||
81 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
82 | - 5, 0, 20, 64, 64, 64, 64, 64, 64, 64, | ||
83 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
84 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
85 | - 64, 64, 64, 64, 30, 64, 64, 64, 64, 64, | ||
86 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
87 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
88 | - 64, 64, 64, 64, 23, 64, 64, 64, 64, 64, | ||
89 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
90 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
91 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
92 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
93 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
94 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
95 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
96 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
97 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
98 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
99 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
100 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
101 | - 64, 64, 64, 64, 64, 64 | ||
102 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
103 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
104 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
105 | + 63, 63, 63, 6, 63, 63, 63, 28, 8, 63, | ||
106 | + 63, 63, 23, 3, 63, 25, 20, 18, 63, 63, | ||
107 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
108 | + 10, 5, 0, 63, 63, 63, 63, 63, 63, 63, | ||
109 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
110 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
111 | + 63, 63, 63, 63, 13, 63, 63, 63, 63, 63, | ||
112 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
113 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
114 | + 63, 63, 63, 63, 30, 63, 63, 63, 63, 63, | ||
115 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
116 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
117 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
118 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
119 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
120 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
121 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
122 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
123 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
124 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
125 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
126 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
127 | + 63, 63, 63, 63, 63, 63 | ||
128 | }; | ||
129 | - return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; | ||
130 | + return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]]; | ||
131 | } | ||
132 | |||
133 | #ifdef __GNUC__ | ||
134 | __inline | ||
135 | +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ | ||
136 | +__attribute__ ((__gnu_inline__)) | ||
137 | +#endif | ||
138 | #endif | ||
139 | struct token_trans * | ||
140 | is_ctok (str, len) | ||
141 | @@ -59,46 +95,68 @@ is_ctok (str, len) | ||
142 | static struct token_trans wordlist[] = | ||
143 | { | ||
144 | {""}, {""}, | ||
145 | +#line 14 "token1.tok" | ||
146 | + {">>", TK_RIGHT_OP}, | ||
147 | +#line 4 "token1.tok" | ||
148 | + {">>=", TK_RIGHT_ASSIGN}, | ||
149 | + {""}, {""}, {""}, | ||
150 | +#line 22 "token1.tok" | ||
151 | + {">=", TK_GE_OP}, | ||
152 | +#line 16 "token1.tok" | ||
153 | + {"++", TK_INC_OP}, | ||
154 | + {""}, | ||
155 | +#line 6 "token1.tok" | ||
156 | + {"+=", TK_ADD_ASSIGN}, | ||
157 | + {""}, | ||
158 | +#line 23 "token1.tok" | ||
159 | {"==", TK_EQ_OP}, | ||
160 | +#line 24 "token1.tok" | ||
161 | {"!=", TK_NE_OP}, | ||
162 | {""}, | ||
163 | - {"%=", TK_MOD_ASSIGN}, | ||
164 | +#line 11 "token1.tok" | ||
165 | + {"&=", TK_AND_ASSIGN}, | ||
166 | {""}, | ||
167 | +#line 21 "token1.tok" | ||
168 | {"<=", TK_LE_OP}, | ||
169 | - {"<<=", TK_LEFT_ASSIGN}, | ||
170 | +#line 19 "token1.tok" | ||
171 | + {"&&", TK_AND_OP}, | ||
172 | {""}, | ||
173 | - {"-=", TK_SUB_ASSIGN}, | ||
174 | +#line 12 "token1.tok" | ||
175 | + {"^=", TK_XOR_ASSIGN}, | ||
176 | {""}, | ||
177 | +#line 15 "token1.tok" | ||
178 | {"<<", TK_LEFT_OP}, | ||
179 | - {""}, {""}, | ||
180 | - {"*=", TK_MUL_ASSIGN}, | ||
181 | +#line 5 "token1.tok" | ||
182 | + {"<<=", TK_LEFT_ASSIGN}, | ||
183 | {""}, | ||
184 | +#line 9 "token1.tok" | ||
185 | {"/=", TK_DIV_ASSIGN}, | ||
186 | - {"--", TK_DEC_OP}, | ||
187 | {""}, | ||
188 | - {"+=", TK_ADD_ASSIGN}, | ||
189 | - {""}, | ||
190 | - {">=", TK_GE_OP}, | ||
191 | - {">>=", TK_RIGHT_ASSIGN}, | ||
192 | - {""}, | ||
193 | - {"|=", TK_OR_ASSIGN}, | ||
194 | +#line 18 "token1.tok" | ||
195 | + {"->", TK_PTR_OP}, | ||
196 | + {""}, {""}, | ||
197 | +#line 8 "token1.tok" | ||
198 | + {"*=", TK_MUL_ASSIGN}, | ||
199 | {""}, | ||
200 | - {"&=", TK_AND_ASSIGN}, | ||
201 | +#line 7 "token1.tok" | ||
202 | + {"-=", TK_SUB_ASSIGN}, | ||
203 | {""}, {""}, | ||
204 | - {"->", TK_PTR_OP}, | ||
205 | +#line 10 "token1.tok" | ||
206 | + {"%=", TK_MOD_ASSIGN}, | ||
207 | {""}, | ||
208 | - {"^=", TK_XOR_ASSIGN}, | ||
209 | - {""}, {""}, {""}, {""}, {""}, | ||
210 | - {"++", TK_INC_OP}, | ||
211 | - {""}, {""}, {""}, | ||
212 | - {">>", TK_RIGHT_OP}, | ||
213 | - {""}, {""}, {""}, {""}, {""}, | ||
214 | - {"||", TK_OR_OP}, | ||
215 | - {""}, {""}, {""}, | ||
216 | - {"&&", TK_AND_OP}, | ||
217 | - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
218 | +#line 13 "token1.tok" | ||
219 | + {"|=", TK_OR_ASSIGN}, | ||
220 | + {""}, {""}, {""}, {""}, | ||
221 | +#line 25 "token1.tok" | ||
222 | {"..", TK_WORD}, | ||
223 | - {"...", TK_ELLIPSIS} | ||
224 | +#line 3 "token1.tok" | ||
225 | + {"...", TK_ELLIPSIS}, | ||
226 | + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
227 | +#line 17 "token1.tok" | ||
228 | + {"--", TK_DEC_OP}, | ||
229 | + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
230 | +#line 20 "token1.tok" | ||
231 | + {"||", TK_OR_OP} | ||
232 | }; | ||
233 | |||
234 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) | ||
235 | @@ -109,7 +167,7 @@ is_ctok (str, len) | ||
236 | { | ||
237 | register const char *s = wordlist[key].name; | ||
238 | |||
239 | - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) | ||
240 | + if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') | ||
241 | return &wordlist[key]; | ||
242 | } | ||
243 | } | ||
244 | diff --git a/cpp/token1.tok b/cpp/token1.tok | ||
245 | index cd668ce..a98926f 100644 | ||
246 | --- a/cpp/token1.tok | ||
247 | +++ b/cpp/token1.tok | ||
248 | @@ -7,7 +7,7 @@ struct token_trans { char * name; int token; }; | ||
249 | -=, TK_SUB_ASSIGN | ||
250 | *=, TK_MUL_ASSIGN | ||
251 | /=, TK_DIV_ASSIGN | ||
252 | -%=, TK_MOD_ASSIGN | ||
253 | +"%=", TK_MOD_ASSIGN | ||
254 | &=, TK_AND_ASSIGN | ||
255 | ^=, TK_XOR_ASSIGN | ||
256 | |=, TK_OR_ASSIGN | ||