-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlex.h
424 lines (408 loc) · 20.3 KB
/
lex.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
# ifndef BFI_LEX_H
# define BFI_LEX_H
# include "machine.h"
# include "util.h"
/* BFI_LEX(src)
* src : portable
* Transforms each token in 'src' into an octet. Then returns a sequence of the
* octets, followed by 0eof. If 'src' contains the token 0eof, the sequence is
* truncated before its first occurrence.
*
* Only a limited set of tokens can appear in 'src':
* - An octet (0x00 0x01 ...). It is transformed to itself.
* - A single-letter word (a b A B 0 1 _ ...). It is transformed to its ASCII
* representation.
* - A parenthesis. The closing parenthesis is not allowed to appear
* immediately after an opening parenthesis. It is transformed to its ASCII
* representation.
* - A special abbreviation word. Search this file for 'Abbrev words' for
* the list of allowed tokens.
* - 0eof. It signals the end of input.
*
* BFI_LEX(F o o)
* => (0x46)(0x6f)(0x6f)(0eof)
* BFI_LEX(0x01 0x02 0x03)
* => (0x01)(0x02)(0x03)(0eof)
* BFI_LEX(f(a 0comma b))
* => (0x66)(0x28)(0x61)(0x2c)(0x62)(0x29)(0eof)
* BFI_LEX(0eof)
* => (0eof)
* BFI_LEX(a b 0eof c d)
* => (0x61)(0x62)(0eof)
* BFI_LEX((((0eof))))
* => (0x28)(0x28)(0x28)(0eof)
*/
# define BFI_LEX(src) BFI_LEX_RAW(src)
# define BFI_LEX_RAW(src) BFI_RENDER_CLEAN(BFI_FMACHINE_O(~, 6lex, src 0eof))
# define BFI_FINST_6lex(f, _, v, t) BFI_IF(BFI_UNARYP(v))(BFI_LEX_PARENED, BFI_LEX_I)(f, v, BFI_PCAT(BFI_TOKEN, v))BFI_PUSH(t)
# define BFI_LEX_I(f, v, im) BFI_LEX_CALL(f, im
# define BFI_LEX_CALL(f, o) BFI_ID(o)f(
# define BFI_LEX_PARENED(f, v, _) (()(0x28)BFI_EMPTY)f(~, 6lex, BFI_PASS_AUX BFI_TAKE_PREFIX(v) 0end_of_sequence_marker BFI_PUSH(6lex_resume) 0x29 BFI_EAT v
# define BFI_FINST_6lex_resume(f, r, v, t) BFI_IF(r)(BFI_FINST_6lex, BFI_FINST_6id)(f, r, v, t)
/* Token recognizers for octets */
# define BFI_TOKEN0x00 BFI_LEX_SUCCESS(()(0x00)BFI_EMPTY)
# define BFI_TOKEN0x01 BFI_LEX_SUCCESS(()(0x01)BFI_EMPTY)
# define BFI_TOKEN0x02 BFI_LEX_SUCCESS(()(0x02)BFI_EMPTY)
# define BFI_TOKEN0x03 BFI_LEX_SUCCESS(()(0x03)BFI_EMPTY)
# define BFI_TOKEN0x04 BFI_LEX_SUCCESS(()(0x04)BFI_EMPTY)
# define BFI_TOKEN0x05 BFI_LEX_SUCCESS(()(0x05)BFI_EMPTY)
# define BFI_TOKEN0x06 BFI_LEX_SUCCESS(()(0x06)BFI_EMPTY)
# define BFI_TOKEN0x07 BFI_LEX_SUCCESS(()(0x07)BFI_EMPTY)
# define BFI_TOKEN0x08 BFI_LEX_SUCCESS(()(0x08)BFI_EMPTY)
# define BFI_TOKEN0x09 BFI_LEX_SUCCESS(()(0x09)BFI_EMPTY)
# define BFI_TOKEN0x0a BFI_LEX_SUCCESS(()(0x0a)BFI_EMPTY)
# define BFI_TOKEN0x0b BFI_LEX_SUCCESS(()(0x0b)BFI_EMPTY)
# define BFI_TOKEN0x0c BFI_LEX_SUCCESS(()(0x0c)BFI_EMPTY)
# define BFI_TOKEN0x0d BFI_LEX_SUCCESS(()(0x0d)BFI_EMPTY)
# define BFI_TOKEN0x0e BFI_LEX_SUCCESS(()(0x0e)BFI_EMPTY)
# define BFI_TOKEN0x0f BFI_LEX_SUCCESS(()(0x0f)BFI_EMPTY)
# define BFI_TOKEN0x10 BFI_LEX_SUCCESS(()(0x10)BFI_EMPTY)
# define BFI_TOKEN0x11 BFI_LEX_SUCCESS(()(0x11)BFI_EMPTY)
# define BFI_TOKEN0x12 BFI_LEX_SUCCESS(()(0x12)BFI_EMPTY)
# define BFI_TOKEN0x13 BFI_LEX_SUCCESS(()(0x13)BFI_EMPTY)
# define BFI_TOKEN0x14 BFI_LEX_SUCCESS(()(0x14)BFI_EMPTY)
# define BFI_TOKEN0x15 BFI_LEX_SUCCESS(()(0x15)BFI_EMPTY)
# define BFI_TOKEN0x16 BFI_LEX_SUCCESS(()(0x16)BFI_EMPTY)
# define BFI_TOKEN0x17 BFI_LEX_SUCCESS(()(0x17)BFI_EMPTY)
# define BFI_TOKEN0x18 BFI_LEX_SUCCESS(()(0x18)BFI_EMPTY)
# define BFI_TOKEN0x19 BFI_LEX_SUCCESS(()(0x19)BFI_EMPTY)
# define BFI_TOKEN0x1a BFI_LEX_SUCCESS(()(0x1a)BFI_EMPTY)
# define BFI_TOKEN0x1b BFI_LEX_SUCCESS(()(0x1b)BFI_EMPTY)
# define BFI_TOKEN0x1c BFI_LEX_SUCCESS(()(0x1c)BFI_EMPTY)
# define BFI_TOKEN0x1d BFI_LEX_SUCCESS(()(0x1d)BFI_EMPTY)
# define BFI_TOKEN0x1e BFI_LEX_SUCCESS(()(0x1e)BFI_EMPTY)
# define BFI_TOKEN0x1f BFI_LEX_SUCCESS(()(0x1f)BFI_EMPTY)
# define BFI_TOKEN0x20 BFI_LEX_SUCCESS(()(0x20)BFI_EMPTY)
# define BFI_TOKEN0x21 BFI_LEX_SUCCESS(()(0x21)BFI_EMPTY)
# define BFI_TOKEN0x22 BFI_LEX_SUCCESS(()(0x22)BFI_EMPTY)
# define BFI_TOKEN0x23 BFI_LEX_SUCCESS(()(0x23)BFI_EMPTY)
# define BFI_TOKEN0x24 BFI_LEX_SUCCESS(()(0x24)BFI_EMPTY)
# define BFI_TOKEN0x25 BFI_LEX_SUCCESS(()(0x25)BFI_EMPTY)
# define BFI_TOKEN0x26 BFI_LEX_SUCCESS(()(0x26)BFI_EMPTY)
# define BFI_TOKEN0x27 BFI_LEX_SUCCESS(()(0x27)BFI_EMPTY)
# define BFI_TOKEN0x28 BFI_LEX_SUCCESS(()(0x28)BFI_EMPTY)
# define BFI_TOKEN0x29 BFI_LEX_SUCCESS(()(0x29)BFI_EMPTY)
# define BFI_TOKEN0x2a BFI_LEX_SUCCESS(()(0x2a)BFI_EMPTY)
# define BFI_TOKEN0x2b BFI_LEX_SUCCESS(()(0x2b)BFI_EMPTY)
# define BFI_TOKEN0x2c BFI_LEX_SUCCESS(()(0x2c)BFI_EMPTY)
# define BFI_TOKEN0x2d BFI_LEX_SUCCESS(()(0x2d)BFI_EMPTY)
# define BFI_TOKEN0x2e BFI_LEX_SUCCESS(()(0x2e)BFI_EMPTY)
# define BFI_TOKEN0x2f BFI_LEX_SUCCESS(()(0x2f)BFI_EMPTY)
# define BFI_TOKEN0x30 BFI_LEX_SUCCESS(()(0x30)BFI_EMPTY)
# define BFI_TOKEN0x31 BFI_LEX_SUCCESS(()(0x31)BFI_EMPTY)
# define BFI_TOKEN0x32 BFI_LEX_SUCCESS(()(0x32)BFI_EMPTY)
# define BFI_TOKEN0x33 BFI_LEX_SUCCESS(()(0x33)BFI_EMPTY)
# define BFI_TOKEN0x34 BFI_LEX_SUCCESS(()(0x34)BFI_EMPTY)
# define BFI_TOKEN0x35 BFI_LEX_SUCCESS(()(0x35)BFI_EMPTY)
# define BFI_TOKEN0x36 BFI_LEX_SUCCESS(()(0x36)BFI_EMPTY)
# define BFI_TOKEN0x37 BFI_LEX_SUCCESS(()(0x37)BFI_EMPTY)
# define BFI_TOKEN0x38 BFI_LEX_SUCCESS(()(0x38)BFI_EMPTY)
# define BFI_TOKEN0x39 BFI_LEX_SUCCESS(()(0x39)BFI_EMPTY)
# define BFI_TOKEN0x3a BFI_LEX_SUCCESS(()(0x3a)BFI_EMPTY)
# define BFI_TOKEN0x3b BFI_LEX_SUCCESS(()(0x3b)BFI_EMPTY)
# define BFI_TOKEN0x3c BFI_LEX_SUCCESS(()(0x3c)BFI_EMPTY)
# define BFI_TOKEN0x3d BFI_LEX_SUCCESS(()(0x3d)BFI_EMPTY)
# define BFI_TOKEN0x3e BFI_LEX_SUCCESS(()(0x3e)BFI_EMPTY)
# define BFI_TOKEN0x3f BFI_LEX_SUCCESS(()(0x3f)BFI_EMPTY)
# define BFI_TOKEN0x40 BFI_LEX_SUCCESS(()(0x40)BFI_EMPTY)
# define BFI_TOKEN0x41 BFI_LEX_SUCCESS(()(0x41)BFI_EMPTY)
# define BFI_TOKEN0x42 BFI_LEX_SUCCESS(()(0x42)BFI_EMPTY)
# define BFI_TOKEN0x43 BFI_LEX_SUCCESS(()(0x43)BFI_EMPTY)
# define BFI_TOKEN0x44 BFI_LEX_SUCCESS(()(0x44)BFI_EMPTY)
# define BFI_TOKEN0x45 BFI_LEX_SUCCESS(()(0x45)BFI_EMPTY)
# define BFI_TOKEN0x46 BFI_LEX_SUCCESS(()(0x46)BFI_EMPTY)
# define BFI_TOKEN0x47 BFI_LEX_SUCCESS(()(0x47)BFI_EMPTY)
# define BFI_TOKEN0x48 BFI_LEX_SUCCESS(()(0x48)BFI_EMPTY)
# define BFI_TOKEN0x49 BFI_LEX_SUCCESS(()(0x49)BFI_EMPTY)
# define BFI_TOKEN0x4a BFI_LEX_SUCCESS(()(0x4a)BFI_EMPTY)
# define BFI_TOKEN0x4b BFI_LEX_SUCCESS(()(0x4b)BFI_EMPTY)
# define BFI_TOKEN0x4c BFI_LEX_SUCCESS(()(0x4c)BFI_EMPTY)
# define BFI_TOKEN0x4d BFI_LEX_SUCCESS(()(0x4d)BFI_EMPTY)
# define BFI_TOKEN0x4e BFI_LEX_SUCCESS(()(0x4e)BFI_EMPTY)
# define BFI_TOKEN0x4f BFI_LEX_SUCCESS(()(0x4f)BFI_EMPTY)
# define BFI_TOKEN0x50 BFI_LEX_SUCCESS(()(0x50)BFI_EMPTY)
# define BFI_TOKEN0x51 BFI_LEX_SUCCESS(()(0x51)BFI_EMPTY)
# define BFI_TOKEN0x52 BFI_LEX_SUCCESS(()(0x52)BFI_EMPTY)
# define BFI_TOKEN0x53 BFI_LEX_SUCCESS(()(0x53)BFI_EMPTY)
# define BFI_TOKEN0x54 BFI_LEX_SUCCESS(()(0x54)BFI_EMPTY)
# define BFI_TOKEN0x55 BFI_LEX_SUCCESS(()(0x55)BFI_EMPTY)
# define BFI_TOKEN0x56 BFI_LEX_SUCCESS(()(0x56)BFI_EMPTY)
# define BFI_TOKEN0x57 BFI_LEX_SUCCESS(()(0x57)BFI_EMPTY)
# define BFI_TOKEN0x58 BFI_LEX_SUCCESS(()(0x58)BFI_EMPTY)
# define BFI_TOKEN0x59 BFI_LEX_SUCCESS(()(0x59)BFI_EMPTY)
# define BFI_TOKEN0x5a BFI_LEX_SUCCESS(()(0x5a)BFI_EMPTY)
# define BFI_TOKEN0x5b BFI_LEX_SUCCESS(()(0x5b)BFI_EMPTY)
# define BFI_TOKEN0x5c BFI_LEX_SUCCESS(()(0x5c)BFI_EMPTY)
# define BFI_TOKEN0x5d BFI_LEX_SUCCESS(()(0x5d)BFI_EMPTY)
# define BFI_TOKEN0x5e BFI_LEX_SUCCESS(()(0x5e)BFI_EMPTY)
# define BFI_TOKEN0x5f BFI_LEX_SUCCESS(()(0x5f)BFI_EMPTY)
# define BFI_TOKEN0x60 BFI_LEX_SUCCESS(()(0x60)BFI_EMPTY)
# define BFI_TOKEN0x61 BFI_LEX_SUCCESS(()(0x61)BFI_EMPTY)
# define BFI_TOKEN0x62 BFI_LEX_SUCCESS(()(0x62)BFI_EMPTY)
# define BFI_TOKEN0x63 BFI_LEX_SUCCESS(()(0x63)BFI_EMPTY)
# define BFI_TOKEN0x64 BFI_LEX_SUCCESS(()(0x64)BFI_EMPTY)
# define BFI_TOKEN0x65 BFI_LEX_SUCCESS(()(0x65)BFI_EMPTY)
# define BFI_TOKEN0x66 BFI_LEX_SUCCESS(()(0x66)BFI_EMPTY)
# define BFI_TOKEN0x67 BFI_LEX_SUCCESS(()(0x67)BFI_EMPTY)
# define BFI_TOKEN0x68 BFI_LEX_SUCCESS(()(0x68)BFI_EMPTY)
# define BFI_TOKEN0x69 BFI_LEX_SUCCESS(()(0x69)BFI_EMPTY)
# define BFI_TOKEN0x6a BFI_LEX_SUCCESS(()(0x6a)BFI_EMPTY)
# define BFI_TOKEN0x6b BFI_LEX_SUCCESS(()(0x6b)BFI_EMPTY)
# define BFI_TOKEN0x6c BFI_LEX_SUCCESS(()(0x6c)BFI_EMPTY)
# define BFI_TOKEN0x6d BFI_LEX_SUCCESS(()(0x6d)BFI_EMPTY)
# define BFI_TOKEN0x6e BFI_LEX_SUCCESS(()(0x6e)BFI_EMPTY)
# define BFI_TOKEN0x6f BFI_LEX_SUCCESS(()(0x6f)BFI_EMPTY)
# define BFI_TOKEN0x70 BFI_LEX_SUCCESS(()(0x70)BFI_EMPTY)
# define BFI_TOKEN0x71 BFI_LEX_SUCCESS(()(0x71)BFI_EMPTY)
# define BFI_TOKEN0x72 BFI_LEX_SUCCESS(()(0x72)BFI_EMPTY)
# define BFI_TOKEN0x73 BFI_LEX_SUCCESS(()(0x73)BFI_EMPTY)
# define BFI_TOKEN0x74 BFI_LEX_SUCCESS(()(0x74)BFI_EMPTY)
# define BFI_TOKEN0x75 BFI_LEX_SUCCESS(()(0x75)BFI_EMPTY)
# define BFI_TOKEN0x76 BFI_LEX_SUCCESS(()(0x76)BFI_EMPTY)
# define BFI_TOKEN0x77 BFI_LEX_SUCCESS(()(0x77)BFI_EMPTY)
# define BFI_TOKEN0x78 BFI_LEX_SUCCESS(()(0x78)BFI_EMPTY)
# define BFI_TOKEN0x79 BFI_LEX_SUCCESS(()(0x79)BFI_EMPTY)
# define BFI_TOKEN0x7a BFI_LEX_SUCCESS(()(0x7a)BFI_EMPTY)
# define BFI_TOKEN0x7b BFI_LEX_SUCCESS(()(0x7b)BFI_EMPTY)
# define BFI_TOKEN0x7c BFI_LEX_SUCCESS(()(0x7c)BFI_EMPTY)
# define BFI_TOKEN0x7d BFI_LEX_SUCCESS(()(0x7d)BFI_EMPTY)
# define BFI_TOKEN0x7e BFI_LEX_SUCCESS(()(0x7e)BFI_EMPTY)
# define BFI_TOKEN0x7f BFI_LEX_SUCCESS(()(0x7f)BFI_EMPTY)
# define BFI_TOKEN0x80 BFI_LEX_SUCCESS(()(0x80)BFI_EMPTY)
# define BFI_TOKEN0x81 BFI_LEX_SUCCESS(()(0x81)BFI_EMPTY)
# define BFI_TOKEN0x82 BFI_LEX_SUCCESS(()(0x82)BFI_EMPTY)
# define BFI_TOKEN0x83 BFI_LEX_SUCCESS(()(0x83)BFI_EMPTY)
# define BFI_TOKEN0x84 BFI_LEX_SUCCESS(()(0x84)BFI_EMPTY)
# define BFI_TOKEN0x85 BFI_LEX_SUCCESS(()(0x85)BFI_EMPTY)
# define BFI_TOKEN0x86 BFI_LEX_SUCCESS(()(0x86)BFI_EMPTY)
# define BFI_TOKEN0x87 BFI_LEX_SUCCESS(()(0x87)BFI_EMPTY)
# define BFI_TOKEN0x88 BFI_LEX_SUCCESS(()(0x88)BFI_EMPTY)
# define BFI_TOKEN0x89 BFI_LEX_SUCCESS(()(0x89)BFI_EMPTY)
# define BFI_TOKEN0x8a BFI_LEX_SUCCESS(()(0x8a)BFI_EMPTY)
# define BFI_TOKEN0x8b BFI_LEX_SUCCESS(()(0x8b)BFI_EMPTY)
# define BFI_TOKEN0x8c BFI_LEX_SUCCESS(()(0x8c)BFI_EMPTY)
# define BFI_TOKEN0x8d BFI_LEX_SUCCESS(()(0x8d)BFI_EMPTY)
# define BFI_TOKEN0x8e BFI_LEX_SUCCESS(()(0x8e)BFI_EMPTY)
# define BFI_TOKEN0x8f BFI_LEX_SUCCESS(()(0x8f)BFI_EMPTY)
# define BFI_TOKEN0x90 BFI_LEX_SUCCESS(()(0x90)BFI_EMPTY)
# define BFI_TOKEN0x91 BFI_LEX_SUCCESS(()(0x91)BFI_EMPTY)
# define BFI_TOKEN0x92 BFI_LEX_SUCCESS(()(0x92)BFI_EMPTY)
# define BFI_TOKEN0x93 BFI_LEX_SUCCESS(()(0x93)BFI_EMPTY)
# define BFI_TOKEN0x94 BFI_LEX_SUCCESS(()(0x94)BFI_EMPTY)
# define BFI_TOKEN0x95 BFI_LEX_SUCCESS(()(0x95)BFI_EMPTY)
# define BFI_TOKEN0x96 BFI_LEX_SUCCESS(()(0x96)BFI_EMPTY)
# define BFI_TOKEN0x97 BFI_LEX_SUCCESS(()(0x97)BFI_EMPTY)
# define BFI_TOKEN0x98 BFI_LEX_SUCCESS(()(0x98)BFI_EMPTY)
# define BFI_TOKEN0x99 BFI_LEX_SUCCESS(()(0x99)BFI_EMPTY)
# define BFI_TOKEN0x9a BFI_LEX_SUCCESS(()(0x9a)BFI_EMPTY)
# define BFI_TOKEN0x9b BFI_LEX_SUCCESS(()(0x9b)BFI_EMPTY)
# define BFI_TOKEN0x9c BFI_LEX_SUCCESS(()(0x9c)BFI_EMPTY)
# define BFI_TOKEN0x9d BFI_LEX_SUCCESS(()(0x9d)BFI_EMPTY)
# define BFI_TOKEN0x9e BFI_LEX_SUCCESS(()(0x9e)BFI_EMPTY)
# define BFI_TOKEN0x9f BFI_LEX_SUCCESS(()(0x9f)BFI_EMPTY)
# define BFI_TOKEN0xa0 BFI_LEX_SUCCESS(()(0xa0)BFI_EMPTY)
# define BFI_TOKEN0xa1 BFI_LEX_SUCCESS(()(0xa1)BFI_EMPTY)
# define BFI_TOKEN0xa2 BFI_LEX_SUCCESS(()(0xa2)BFI_EMPTY)
# define BFI_TOKEN0xa3 BFI_LEX_SUCCESS(()(0xa3)BFI_EMPTY)
# define BFI_TOKEN0xa4 BFI_LEX_SUCCESS(()(0xa4)BFI_EMPTY)
# define BFI_TOKEN0xa5 BFI_LEX_SUCCESS(()(0xa5)BFI_EMPTY)
# define BFI_TOKEN0xa6 BFI_LEX_SUCCESS(()(0xa6)BFI_EMPTY)
# define BFI_TOKEN0xa7 BFI_LEX_SUCCESS(()(0xa7)BFI_EMPTY)
# define BFI_TOKEN0xa8 BFI_LEX_SUCCESS(()(0xa8)BFI_EMPTY)
# define BFI_TOKEN0xa9 BFI_LEX_SUCCESS(()(0xa9)BFI_EMPTY)
# define BFI_TOKEN0xaa BFI_LEX_SUCCESS(()(0xaa)BFI_EMPTY)
# define BFI_TOKEN0xab BFI_LEX_SUCCESS(()(0xab)BFI_EMPTY)
# define BFI_TOKEN0xac BFI_LEX_SUCCESS(()(0xac)BFI_EMPTY)
# define BFI_TOKEN0xad BFI_LEX_SUCCESS(()(0xad)BFI_EMPTY)
# define BFI_TOKEN0xae BFI_LEX_SUCCESS(()(0xae)BFI_EMPTY)
# define BFI_TOKEN0xaf BFI_LEX_SUCCESS(()(0xaf)BFI_EMPTY)
# define BFI_TOKEN0xb0 BFI_LEX_SUCCESS(()(0xb0)BFI_EMPTY)
# define BFI_TOKEN0xb1 BFI_LEX_SUCCESS(()(0xb1)BFI_EMPTY)
# define BFI_TOKEN0xb2 BFI_LEX_SUCCESS(()(0xb2)BFI_EMPTY)
# define BFI_TOKEN0xb3 BFI_LEX_SUCCESS(()(0xb3)BFI_EMPTY)
# define BFI_TOKEN0xb4 BFI_LEX_SUCCESS(()(0xb4)BFI_EMPTY)
# define BFI_TOKEN0xb5 BFI_LEX_SUCCESS(()(0xb5)BFI_EMPTY)
# define BFI_TOKEN0xb6 BFI_LEX_SUCCESS(()(0xb6)BFI_EMPTY)
# define BFI_TOKEN0xb7 BFI_LEX_SUCCESS(()(0xb7)BFI_EMPTY)
# define BFI_TOKEN0xb8 BFI_LEX_SUCCESS(()(0xb8)BFI_EMPTY)
# define BFI_TOKEN0xb9 BFI_LEX_SUCCESS(()(0xb9)BFI_EMPTY)
# define BFI_TOKEN0xba BFI_LEX_SUCCESS(()(0xba)BFI_EMPTY)
# define BFI_TOKEN0xbb BFI_LEX_SUCCESS(()(0xbb)BFI_EMPTY)
# define BFI_TOKEN0xbc BFI_LEX_SUCCESS(()(0xbc)BFI_EMPTY)
# define BFI_TOKEN0xbd BFI_LEX_SUCCESS(()(0xbd)BFI_EMPTY)
# define BFI_TOKEN0xbe BFI_LEX_SUCCESS(()(0xbe)BFI_EMPTY)
# define BFI_TOKEN0xbf BFI_LEX_SUCCESS(()(0xbf)BFI_EMPTY)
# define BFI_TOKEN0xc0 BFI_LEX_SUCCESS(()(0xc0)BFI_EMPTY)
# define BFI_TOKEN0xc1 BFI_LEX_SUCCESS(()(0xc1)BFI_EMPTY)
# define BFI_TOKEN0xc2 BFI_LEX_SUCCESS(()(0xc2)BFI_EMPTY)
# define BFI_TOKEN0xc3 BFI_LEX_SUCCESS(()(0xc3)BFI_EMPTY)
# define BFI_TOKEN0xc4 BFI_LEX_SUCCESS(()(0xc4)BFI_EMPTY)
# define BFI_TOKEN0xc5 BFI_LEX_SUCCESS(()(0xc5)BFI_EMPTY)
# define BFI_TOKEN0xc6 BFI_LEX_SUCCESS(()(0xc6)BFI_EMPTY)
# define BFI_TOKEN0xc7 BFI_LEX_SUCCESS(()(0xc7)BFI_EMPTY)
# define BFI_TOKEN0xc8 BFI_LEX_SUCCESS(()(0xc8)BFI_EMPTY)
# define BFI_TOKEN0xc9 BFI_LEX_SUCCESS(()(0xc9)BFI_EMPTY)
# define BFI_TOKEN0xca BFI_LEX_SUCCESS(()(0xca)BFI_EMPTY)
# define BFI_TOKEN0xcb BFI_LEX_SUCCESS(()(0xcb)BFI_EMPTY)
# define BFI_TOKEN0xcc BFI_LEX_SUCCESS(()(0xcc)BFI_EMPTY)
# define BFI_TOKEN0xcd BFI_LEX_SUCCESS(()(0xcd)BFI_EMPTY)
# define BFI_TOKEN0xce BFI_LEX_SUCCESS(()(0xce)BFI_EMPTY)
# define BFI_TOKEN0xcf BFI_LEX_SUCCESS(()(0xcf)BFI_EMPTY)
# define BFI_TOKEN0xd0 BFI_LEX_SUCCESS(()(0xd0)BFI_EMPTY)
# define BFI_TOKEN0xd1 BFI_LEX_SUCCESS(()(0xd1)BFI_EMPTY)
# define BFI_TOKEN0xd2 BFI_LEX_SUCCESS(()(0xd2)BFI_EMPTY)
# define BFI_TOKEN0xd3 BFI_LEX_SUCCESS(()(0xd3)BFI_EMPTY)
# define BFI_TOKEN0xd4 BFI_LEX_SUCCESS(()(0xd4)BFI_EMPTY)
# define BFI_TOKEN0xd5 BFI_LEX_SUCCESS(()(0xd5)BFI_EMPTY)
# define BFI_TOKEN0xd6 BFI_LEX_SUCCESS(()(0xd6)BFI_EMPTY)
# define BFI_TOKEN0xd7 BFI_LEX_SUCCESS(()(0xd7)BFI_EMPTY)
# define BFI_TOKEN0xd8 BFI_LEX_SUCCESS(()(0xd8)BFI_EMPTY)
# define BFI_TOKEN0xd9 BFI_LEX_SUCCESS(()(0xd9)BFI_EMPTY)
# define BFI_TOKEN0xda BFI_LEX_SUCCESS(()(0xda)BFI_EMPTY)
# define BFI_TOKEN0xdb BFI_LEX_SUCCESS(()(0xdb)BFI_EMPTY)
# define BFI_TOKEN0xdc BFI_LEX_SUCCESS(()(0xdc)BFI_EMPTY)
# define BFI_TOKEN0xdd BFI_LEX_SUCCESS(()(0xdd)BFI_EMPTY)
# define BFI_TOKEN0xde BFI_LEX_SUCCESS(()(0xde)BFI_EMPTY)
# define BFI_TOKEN0xdf BFI_LEX_SUCCESS(()(0xdf)BFI_EMPTY)
# define BFI_TOKEN0xe0 BFI_LEX_SUCCESS(()(0xe0)BFI_EMPTY)
# define BFI_TOKEN0xe1 BFI_LEX_SUCCESS(()(0xe1)BFI_EMPTY)
# define BFI_TOKEN0xe2 BFI_LEX_SUCCESS(()(0xe2)BFI_EMPTY)
# define BFI_TOKEN0xe3 BFI_LEX_SUCCESS(()(0xe3)BFI_EMPTY)
# define BFI_TOKEN0xe4 BFI_LEX_SUCCESS(()(0xe4)BFI_EMPTY)
# define BFI_TOKEN0xe5 BFI_LEX_SUCCESS(()(0xe5)BFI_EMPTY)
# define BFI_TOKEN0xe6 BFI_LEX_SUCCESS(()(0xe6)BFI_EMPTY)
# define BFI_TOKEN0xe7 BFI_LEX_SUCCESS(()(0xe7)BFI_EMPTY)
# define BFI_TOKEN0xe8 BFI_LEX_SUCCESS(()(0xe8)BFI_EMPTY)
# define BFI_TOKEN0xe9 BFI_LEX_SUCCESS(()(0xe9)BFI_EMPTY)
# define BFI_TOKEN0xea BFI_LEX_SUCCESS(()(0xea)BFI_EMPTY)
# define BFI_TOKEN0xeb BFI_LEX_SUCCESS(()(0xeb)BFI_EMPTY)
# define BFI_TOKEN0xec BFI_LEX_SUCCESS(()(0xec)BFI_EMPTY)
# define BFI_TOKEN0xed BFI_LEX_SUCCESS(()(0xed)BFI_EMPTY)
# define BFI_TOKEN0xee BFI_LEX_SUCCESS(()(0xee)BFI_EMPTY)
# define BFI_TOKEN0xef BFI_LEX_SUCCESS(()(0xef)BFI_EMPTY)
# define BFI_TOKEN0xf0 BFI_LEX_SUCCESS(()(0xf0)BFI_EMPTY)
# define BFI_TOKEN0xf1 BFI_LEX_SUCCESS(()(0xf1)BFI_EMPTY)
# define BFI_TOKEN0xf2 BFI_LEX_SUCCESS(()(0xf2)BFI_EMPTY)
# define BFI_TOKEN0xf3 BFI_LEX_SUCCESS(()(0xf3)BFI_EMPTY)
# define BFI_TOKEN0xf4 BFI_LEX_SUCCESS(()(0xf4)BFI_EMPTY)
# define BFI_TOKEN0xf5 BFI_LEX_SUCCESS(()(0xf5)BFI_EMPTY)
# define BFI_TOKEN0xf6 BFI_LEX_SUCCESS(()(0xf6)BFI_EMPTY)
# define BFI_TOKEN0xf7 BFI_LEX_SUCCESS(()(0xf7)BFI_EMPTY)
# define BFI_TOKEN0xf8 BFI_LEX_SUCCESS(()(0xf8)BFI_EMPTY)
# define BFI_TOKEN0xf9 BFI_LEX_SUCCESS(()(0xf9)BFI_EMPTY)
# define BFI_TOKEN0xfa BFI_LEX_SUCCESS(()(0xfa)BFI_EMPTY)
# define BFI_TOKEN0xfb BFI_LEX_SUCCESS(()(0xfb)BFI_EMPTY)
# define BFI_TOKEN0xfc BFI_LEX_SUCCESS(()(0xfc)BFI_EMPTY)
# define BFI_TOKEN0xfd BFI_LEX_SUCCESS(()(0xfd)BFI_EMPTY)
# define BFI_TOKEN0xfe BFI_LEX_SUCCESS(()(0xfe)BFI_EMPTY)
# define BFI_TOKEN0xff BFI_LEX_SUCCESS(()(0xff)BFI_EMPTY)
/* Token recognizers for single-letter words */
# define BFI_TOKEN0 BFI_TOKEN0x30
# define BFI_TOKEN1 BFI_TOKEN0x31
# define BFI_TOKEN2 BFI_TOKEN0x32
# define BFI_TOKEN3 BFI_TOKEN0x33
# define BFI_TOKEN4 BFI_TOKEN0x34
# define BFI_TOKEN5 BFI_TOKEN0x35
# define BFI_TOKEN6 BFI_TOKEN0x36
# define BFI_TOKEN7 BFI_TOKEN0x37
# define BFI_TOKEN8 BFI_TOKEN0x38
# define BFI_TOKEN9 BFI_TOKEN0x39
# define BFI_TOKENa BFI_TOKEN0x61
# define BFI_TOKENb BFI_TOKEN0x62
# define BFI_TOKENc BFI_TOKEN0x63
# define BFI_TOKENd BFI_TOKEN0x64
# define BFI_TOKENe BFI_TOKEN0x65
# define BFI_TOKENf BFI_TOKEN0x66
# define BFI_TOKENg BFI_TOKEN0x67
# define BFI_TOKENh BFI_TOKEN0x68
# define BFI_TOKENi BFI_TOKEN0x69
# define BFI_TOKENj BFI_TOKEN0x6a
# define BFI_TOKENk BFI_TOKEN0x6b
# define BFI_TOKENl BFI_TOKEN0x6c
# define BFI_TOKENm BFI_TOKEN0x6d
# define BFI_TOKENn BFI_TOKEN0x6e
# define BFI_TOKENo BFI_TOKEN0x6f
# define BFI_TOKENp BFI_TOKEN0x70
# define BFI_TOKENq BFI_TOKEN0x71
# define BFI_TOKENr BFI_TOKEN0x72
# define BFI_TOKENs BFI_TOKEN0x73
# define BFI_TOKENt BFI_TOKEN0x74
# define BFI_TOKENu BFI_TOKEN0x75
# define BFI_TOKENv BFI_TOKEN0x76
# define BFI_TOKENw BFI_TOKEN0x77
# define BFI_TOKENx BFI_TOKEN0x78
# define BFI_TOKENy BFI_TOKEN0x79
# define BFI_TOKENz BFI_TOKEN0x7a
# define BFI_TOKENA BFI_TOKEN0x41
# define BFI_TOKENB BFI_TOKEN0x42
# define BFI_TOKENC BFI_TOKEN0x43
# define BFI_TOKEND BFI_TOKEN0x44
# define BFI_TOKENE BFI_TOKEN0x45
# define BFI_TOKENF BFI_TOKEN0x46
# define BFI_TOKENG BFI_TOKEN0x47
# define BFI_TOKENH BFI_TOKEN0x48
# define BFI_TOKENI BFI_TOKEN0x49
# define BFI_TOKENJ BFI_TOKEN0x4a
# define BFI_TOKENK BFI_TOKEN0x4b
# define BFI_TOKENL BFI_TOKEN0x4c
# define BFI_TOKENM BFI_TOKEN0x4d
# define BFI_TOKENN BFI_TOKEN0x4e
# define BFI_TOKENO BFI_TOKEN0x4f
# define BFI_TOKENP BFI_TOKEN0x50
# define BFI_TOKENQ BFI_TOKEN0x51
# define BFI_TOKENR BFI_TOKEN0x52
# define BFI_TOKENS BFI_TOKEN0x53
# define BFI_TOKENT BFI_TOKEN0x54
# define BFI_TOKENU BFI_TOKEN0x55
# define BFI_TOKENV BFI_TOKEN0x56
# define BFI_TOKENW BFI_TOKEN0x57
# define BFI_TOKENX BFI_TOKEN0x58
# define BFI_TOKENY BFI_TOKEN0x59
# define BFI_TOKENZ BFI_TOKEN0x5a
# define BFI_TOKEN_ BFI_TOKEN0x5f
/* Token recognizers for Abbrev words */
# define BFI_TOKEN0_0 BFI_TOKEN0x00
# define BFI_TOKEN0_a BFI_TOKEN0x07
# define BFI_TOKEN0_b BFI_TOKEN0x08
# define BFI_TOKEN0_t BFI_TOKEN0x09
# define BFI_TOKEN0_n BFI_TOKEN0x0a
# define BFI_TOKEN0_v BFI_TOKEN0x0b
# define BFI_TOKEN0_f BFI_TOKEN0x0c
# define BFI_TOKEN0_r BFI_TOKEN0x0d
# define BFI_TOKEN0space BFI_TOKEN0x20
# define BFI_TOKEN0bang BFI_TOKEN0x21
# define BFI_TOKEN0quot BFI_TOKEN0x22
# define BFI_TOKEN0hash BFI_TOKEN0x23
# define BFI_TOKEN0dollar BFI_TOKEN0x24
# define BFI_TOKEN0percent BFI_TOKEN0x25
# define BFI_TOKEN0amp BFI_TOKEN0x26
# define BFI_TOKEN0apos BFI_TOKEN0x27
# define BFI_TOKEN0lparen BFI_TOKEN0x28
# define BFI_TOKEN0rparen BFI_TOKEN0x29
# define BFI_TOKEN0star BFI_TOKEN0x2a
# define BFI_TOKEN0plus BFI_TOKEN0x2b
# define BFI_TOKEN0comma BFI_TOKEN0x2c
# define BFI_TOKEN0minus BFI_TOKEN0x2d
# define BFI_TOKEN0period BFI_TOKEN0x2e
# define BFI_TOKEN0slash BFI_TOKEN0x2f
# define BFI_TOKEN0colon BFI_TOKEN0x3a
# define BFI_TOKEN0semicolon BFI_TOKEN0x3b
# define BFI_TOKEN0lt BFI_TOKEN0x3c
# define BFI_TOKEN0eq BFI_TOKEN0x3d
# define BFI_TOKEN0gt BFI_TOKEN0x3e
# define BFI_TOKEN0question BFI_TOKEN0x3f
# define BFI_TOKEN0at BFI_TOKEN0x40
# define BFI_TOKEN0lbracket BFI_TOKEN0x5b
# define BFI_TOKEN0bslash BFI_TOKEN0x5c
# define BFI_TOKEN0rbracket BFI_TOKEN0x5d
# define BFI_TOKEN0hat BFI_TOKEN0x5e
# define BFI_TOKEN0grave BFI_TOKEN0x60
# define BFI_TOKEN0lbrace BFI_TOKEN0x7b
# define BFI_TOKEN0bar BFI_TOKEN0x7c
# define BFI_TOKEN0rbrace BFI_TOKEN0x7d
# define BFI_TOKEN0tilde BFI_TOKEN0x7e
/* Token recognizers for special tokens */
# define BFI_TOKEN0eof (()(0eof)BFI_EMPTY))0, 6id, BFI_DEFER(BFI_COMMA)() 0eof
# define BFI_TOKEN0end_of_sequence_marker (()BFI_EMPTY))1, 6id, BFI_DEFER(BFI_COMMA)() 0eof
# define BFI_LEX_SUCCESS(out) (out))~, 6lex, BFI_DEFER(BFI_COMMA)()
# endif