rbs 3.9.2 → 4.0.0.dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -1
  3. data/.github/workflows/windows.yml +1 -1
  4. data/CHANGELOG.md +0 -13
  5. data/Rakefile +28 -21
  6. data/Steepfile +1 -0
  7. data/config.yml +232 -62
  8. data/ext/rbs_extension/ast_translation.c +1149 -0
  9. data/ext/rbs_extension/ast_translation.h +30 -0
  10. data/{src/constants.c → ext/rbs_extension/class_constants.c} +15 -1
  11. data/{include/rbs/constants.h → ext/rbs_extension/class_constants.h} +10 -1
  12. data/ext/rbs_extension/extconf.rb +3 -1
  13. data/ext/rbs_extension/{location.c → legacy_location.c} +25 -34
  14. data/ext/rbs_extension/legacy_location.h +40 -0
  15. data/ext/rbs_extension/main.c +402 -8
  16. data/ext/rbs_extension/rbs_extension.h +3 -21
  17. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  18. data/ext/rbs_extension/rbs_string_bridging.h +20 -0
  19. data/include/rbs/ast.h +748 -0
  20. data/include/rbs/defines.h +60 -0
  21. data/{ext/rbs_extension → include/rbs}/lexer.h +40 -32
  22. data/include/rbs/location.h +59 -0
  23. data/include/rbs/parser.h +151 -0
  24. data/include/rbs/string.h +49 -0
  25. data/include/rbs/util/rbs_allocator.h +38 -0
  26. data/include/rbs/util/rbs_assert.h +9 -0
  27. data/include/rbs/util/rbs_buffer.h +83 -0
  28. data/include/rbs/util/rbs_constant_pool.h +3 -64
  29. data/include/rbs/util/rbs_encoding.h +280 -0
  30. data/include/rbs/util/rbs_unescape.h +23 -0
  31. data/include/rbs.h +1 -2
  32. data/lib/rbs/annotate/formatter.rb +3 -13
  33. data/lib/rbs/annotate/rdoc_annotator.rb +3 -1
  34. data/lib/rbs/annotate/rdoc_source.rb +1 -1
  35. data/lib/rbs/ast/ruby/annotations.rb +119 -0
  36. data/lib/rbs/ast/ruby/comment_block.rb +221 -0
  37. data/lib/rbs/ast/ruby/declarations.rb +86 -0
  38. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +24 -0
  39. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  40. data/lib/rbs/ast/ruby/members.rb +213 -0
  41. data/lib/rbs/buffer.rb +104 -24
  42. data/lib/rbs/cli/validate.rb +39 -34
  43. data/lib/rbs/cli.rb +4 -5
  44. data/lib/rbs/definition.rb +6 -1
  45. data/lib/rbs/definition_builder/ancestor_builder.rb +63 -60
  46. data/lib/rbs/definition_builder/method_builder.rb +45 -30
  47. data/lib/rbs/definition_builder.rb +44 -9
  48. data/lib/rbs/environment/class_entry.rb +69 -0
  49. data/lib/rbs/environment/module_entry.rb +66 -0
  50. data/lib/rbs/environment.rb +185 -154
  51. data/lib/rbs/environment_loader.rb +2 -2
  52. data/lib/rbs/errors.rb +4 -3
  53. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  54. data/lib/rbs/inline_parser.rb +206 -0
  55. data/lib/rbs/location_aux.rb +35 -3
  56. data/lib/rbs/parser_aux.rb +11 -1
  57. data/lib/rbs/prototype/runtime.rb +2 -2
  58. data/lib/rbs/source.rb +99 -0
  59. data/lib/rbs/subtractor.rb +4 -3
  60. data/lib/rbs/version.rb +1 -1
  61. data/lib/rbs.rb +12 -0
  62. data/lib/rdoc/discover.rb +1 -1
  63. data/lib/rdoc_plugin/parser.rb +2 -2
  64. data/rbs.gemspec +1 -0
  65. data/sig/ancestor_builder.rbs +1 -1
  66. data/sig/annotate/formatter.rbs +2 -2
  67. data/sig/annotate/rdoc_annotater.rbs +1 -1
  68. data/sig/ast/ruby/annotations.rbs +110 -0
  69. data/sig/ast/ruby/comment_block.rbs +119 -0
  70. data/sig/ast/ruby/declarations.rbs +60 -0
  71. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  72. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  73. data/sig/ast/ruby/members.rbs +72 -0
  74. data/sig/buffer.rbs +63 -5
  75. data/sig/definition.rbs +1 -0
  76. data/sig/definition_builder.rbs +1 -1
  77. data/sig/environment/class_entry.rbs +50 -0
  78. data/sig/environment/module_entry.rbs +50 -0
  79. data/sig/environment.rbs +22 -76
  80. data/sig/errors.rbs +13 -6
  81. data/sig/inline_parser/comment_association.rbs +71 -0
  82. data/sig/inline_parser.rbs +87 -0
  83. data/sig/location.rbs +32 -7
  84. data/sig/method_builder.rbs +7 -4
  85. data/sig/parser.rbs +16 -0
  86. data/sig/source.rbs +48 -0
  87. data/src/ast.c +1345 -0
  88. data/src/lexer.c +2867 -0
  89. data/src/lexer.re +151 -0
  90. data/{ext/rbs_extension → src}/lexstate.c +58 -42
  91. data/src/location.c +71 -0
  92. data/src/parser.c +3739 -0
  93. data/src/string.c +89 -0
  94. data/src/util/rbs_allocator.c +149 -0
  95. data/src/util/rbs_assert.c +19 -0
  96. data/src/util/rbs_buffer.c +54 -0
  97. data/src/util/rbs_constant_pool.c +13 -81
  98. data/src/util/rbs_encoding.c +5273 -0
  99. data/src/util/rbs_unescape.c +130 -0
  100. data/stdlib/rdoc/0/code_object.rbs +2 -2
  101. data/stdlib/rdoc/0/comment.rbs +2 -0
  102. data/stdlib/rdoc/0/options.rbs +76 -0
  103. data/stdlib/rdoc/0/rdoc.rbs +6 -4
  104. data/stdlib/rdoc/0/store.rbs +1 -1
  105. metadata +70 -17
  106. data/ext/rbs_extension/lexer.c +0 -2728
  107. data/ext/rbs_extension/lexer.re +0 -147
  108. data/ext/rbs_extension/location.h +0 -85
  109. data/ext/rbs_extension/parser.c +0 -2982
  110. data/ext/rbs_extension/parser.h +0 -18
  111. data/ext/rbs_extension/parserstate.c +0 -411
  112. data/ext/rbs_extension/parserstate.h +0 -163
  113. data/ext/rbs_extension/unescape.c +0 -32
  114. data/include/rbs/ruby_objs.h +0 -72
  115. data/src/ruby_objs.c +0 -799
data/src/lexer.c ADDED
@@ -0,0 +1,2867 @@
1
+ /* Generated by re2c 3.1 */
2
+ #line 1 "src/lexer.re"
3
+ #include "rbs/lexer.h"
4
+
5
+ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
6
+ rbs_lexer_t backup;
7
+
8
+ backup = *lexer;
9
+
10
+
11
+ #line 12 "src/lexer.c"
12
+ {
13
+ unsigned int yych;
14
+ unsigned int yyaccept = 0;
15
+ yych = rbs_peek(lexer);
16
+ switch (yych) {
17
+ case 0x00000000: goto yy1;
18
+ case '\t':
19
+ case ' ': goto yy4;
20
+ case '\n':
21
+ case '\r': goto yy6;
22
+ case '!': goto yy7;
23
+ case '"': goto yy9;
24
+ case '#': goto yy10;
25
+ case '$': goto yy12;
26
+ case '%': goto yy13;
27
+ case '&': goto yy14;
28
+ case '\'': goto yy15;
29
+ case '(': goto yy16;
30
+ case ')': goto yy17;
31
+ case '*': goto yy18;
32
+ case '+': goto yy19;
33
+ case ',': goto yy20;
34
+ case '-': goto yy21;
35
+ case '.': goto yy22;
36
+ case '/':
37
+ case '~': goto yy24;
38
+ case '0':
39
+ case '1':
40
+ case '2':
41
+ case '3':
42
+ case '4':
43
+ case '5':
44
+ case '6':
45
+ case '7':
46
+ case '8':
47
+ case '9': goto yy25;
48
+ case ':': goto yy27;
49
+ case '<': goto yy29;
50
+ case '=': goto yy31;
51
+ case '>': goto yy33;
52
+ case '?': goto yy34;
53
+ case '@': goto yy35;
54
+ case 'A':
55
+ case 'B':
56
+ case 'C':
57
+ case 'D':
58
+ case 'E':
59
+ case 'F':
60
+ case 'G':
61
+ case 'H':
62
+ case 'I':
63
+ case 'J':
64
+ case 'K':
65
+ case 'L':
66
+ case 'M':
67
+ case 'N':
68
+ case 'O':
69
+ case 'P':
70
+ case 'Q':
71
+ case 'R':
72
+ case 'S':
73
+ case 'T':
74
+ case 'U':
75
+ case 'V':
76
+ case 'W':
77
+ case 'X':
78
+ case 'Y':
79
+ case 'Z': goto yy36;
80
+ case '[': goto yy38;
81
+ case ']': goto yy39;
82
+ case '^': goto yy40;
83
+ case '_': goto yy41;
84
+ case '`': goto yy43;
85
+ case 'a': goto yy45;
86
+ case 'b': goto yy47;
87
+ case 'c': goto yy48;
88
+ case 'd': goto yy49;
89
+ case 'e': goto yy50;
90
+ case 'f': goto yy51;
91
+ case 'g':
92
+ case 'h':
93
+ case 'j':
94
+ case 'k':
95
+ case 'l':
96
+ case 'q':
97
+ case 'w':
98
+ case 'x':
99
+ case 'y':
100
+ case 'z': goto yy52;
101
+ case 'i': goto yy54;
102
+ case 'm': goto yy55;
103
+ case 'n': goto yy56;
104
+ case 'o': goto yy57;
105
+ case 'p': goto yy58;
106
+ case 'r': goto yy59;
107
+ case 's': goto yy60;
108
+ case 't': goto yy61;
109
+ case 'u': goto yy62;
110
+ case 'v': goto yy63;
111
+ case '{': goto yy64;
112
+ case '|': goto yy65;
113
+ case '}': goto yy66;
114
+ default: goto yy2;
115
+ }
116
+ yy1:
117
+ rbs_skip(lexer);
118
+ #line 148 "src/lexer.re"
119
+ { return rbs_next_eof_token(lexer); }
120
+ #line 121 "src/lexer.c"
121
+ yy2:
122
+ rbs_skip(lexer);
123
+ yy3:
124
+ #line 149 "src/lexer.re"
125
+ { return rbs_next_token(lexer, ErrorToken); }
126
+ #line 127 "src/lexer.c"
127
+ yy4:
128
+ rbs_skip(lexer);
129
+ yych = rbs_peek(lexer);
130
+ if (yych == '\t') goto yy4;
131
+ if (yych == ' ') goto yy4;
132
+ yy5:
133
+ #line 147 "src/lexer.re"
134
+ { return rbs_next_token(lexer, tTRIVIA); }
135
+ #line 136 "src/lexer.c"
136
+ yy6:
137
+ rbs_skip(lexer);
138
+ goto yy5;
139
+ yy7:
140
+ rbs_skip(lexer);
141
+ yych = rbs_peek(lexer);
142
+ if (yych == '=') goto yy24;
143
+ if (yych == '~') goto yy24;
144
+ yy8:
145
+ #line 48 "src/lexer.re"
146
+ { return rbs_next_token(lexer, tOPERATOR); }
147
+ #line 148 "src/lexer.c"
148
+ yy9:
149
+ yyaccept = 0;
150
+ rbs_skip(lexer);
151
+ backup = *lexer;
152
+ yych = rbs_peek(lexer);
153
+ if (yych <= 0x00000000) goto yy3;
154
+ goto yy68;
155
+ yy10:
156
+ rbs_skip(lexer);
157
+ yych = rbs_peek(lexer);
158
+ if (yych <= 0x00000000) goto yy11;
159
+ if (yych != '\n') goto yy10;
160
+ yy11:
161
+ #line 60 "src/lexer.re"
162
+ {
163
+ return rbs_next_token(
164
+ lexer,
165
+ lexer->first_token_of_line ? tLINECOMMENT : tCOMMENT
166
+ );
167
+ }
168
+ #line 169 "src/lexer.c"
169
+ yy12:
170
+ rbs_skip(lexer);
171
+ yych = rbs_peek(lexer);
172
+ if (yych <= ')') {
173
+ if (yych <= 0x0000001F) {
174
+ if (yych <= '\n') {
175
+ if (yych <= 0x00000000) goto yy3;
176
+ if (yych <= 0x00000008) goto yy72;
177
+ goto yy3;
178
+ } else {
179
+ if (yych == '\r') goto yy3;
180
+ goto yy72;
181
+ }
182
+ } else {
183
+ if (yych <= '#') {
184
+ if (yych <= ' ') goto yy3;
185
+ if (yych <= '"') goto yy74;
186
+ goto yy72;
187
+ } else {
188
+ if (yych == '%') goto yy3;
189
+ if (yych <= '\'') goto yy74;
190
+ goto yy3;
191
+ }
192
+ }
193
+ } else {
194
+ if (yych <= 'Z') {
195
+ if (yych <= '/') {
196
+ if (yych == '-') goto yy72;
197
+ goto yy74;
198
+ } else {
199
+ if (yych <= '9') goto yy72;
200
+ if (yych <= '>') goto yy74;
201
+ goto yy72;
202
+ }
203
+ } else {
204
+ if (yych <= '^') {
205
+ if (yych == '\\') goto yy74;
206
+ goto yy3;
207
+ } else {
208
+ if (yych <= 'z') goto yy72;
209
+ if (yych <= '}') goto yy3;
210
+ if (yych <= '~') goto yy74;
211
+ goto yy72;
212
+ }
213
+ }
214
+ }
215
+ yy13:
216
+ yyaccept = 1;
217
+ rbs_skip(lexer);
218
+ backup = *lexer;
219
+ yych = rbs_peek(lexer);
220
+ if (yych == 'a') goto yy75;
221
+ goto yy8;
222
+ yy14:
223
+ rbs_skip(lexer);
224
+ #line 33 "src/lexer.re"
225
+ { return rbs_next_token(lexer, pAMP); }
226
+ #line 227 "src/lexer.c"
227
+ yy15:
228
+ yyaccept = 0;
229
+ rbs_skip(lexer);
230
+ backup = *lexer;
231
+ yych = rbs_peek(lexer);
232
+ if (yych <= 0x00000000) goto yy3;
233
+ goto yy77;
234
+ yy16:
235
+ rbs_skip(lexer);
236
+ #line 24 "src/lexer.re"
237
+ { return rbs_next_token(lexer, pLPAREN); }
238
+ #line 239 "src/lexer.c"
239
+ yy17:
240
+ rbs_skip(lexer);
241
+ #line 25 "src/lexer.re"
242
+ { return rbs_next_token(lexer, pRPAREN); }
243
+ #line 244 "src/lexer.c"
244
+ yy18:
245
+ rbs_skip(lexer);
246
+ yych = rbs_peek(lexer);
247
+ if (yych == '*') goto yy81;
248
+ #line 35 "src/lexer.re"
249
+ { return rbs_next_token(lexer, pSTAR); }
250
+ #line 251 "src/lexer.c"
251
+ yy19:
252
+ rbs_skip(lexer);
253
+ yych = rbs_peek(lexer);
254
+ if (yych <= '/') goto yy8;
255
+ if (yych <= '9') goto yy25;
256
+ if (yych == '@') goto yy24;
257
+ goto yy8;
258
+ yy20:
259
+ rbs_skip(lexer);
260
+ #line 30 "src/lexer.re"
261
+ { return rbs_next_token(lexer, pCOMMA); }
262
+ #line 263 "src/lexer.c"
263
+ yy21:
264
+ rbs_skip(lexer);
265
+ yych = rbs_peek(lexer);
266
+ switch (yych) {
267
+ case '-': goto yy82;
268
+ case '0':
269
+ case '1':
270
+ case '2':
271
+ case '3':
272
+ case '4':
273
+ case '5':
274
+ case '6':
275
+ case '7':
276
+ case '8':
277
+ case '9': goto yy25;
278
+ case '>': goto yy83;
279
+ case '@': goto yy24;
280
+ default: goto yy8;
281
+ }
282
+ yy22:
283
+ yyaccept = 2;
284
+ rbs_skip(lexer);
285
+ backup = *lexer;
286
+ yych = rbs_peek(lexer);
287
+ if (yych == '.') goto yy84;
288
+ yy23:
289
+ #line 37 "src/lexer.re"
290
+ { return rbs_next_token(lexer, pDOT); }
291
+ #line 292 "src/lexer.c"
292
+ yy24:
293
+ rbs_skip(lexer);
294
+ goto yy8;
295
+ yy25:
296
+ rbs_skip(lexer);
297
+ yych = rbs_peek(lexer);
298
+ if (yych <= '/') goto yy26;
299
+ if (yych <= '9') goto yy25;
300
+ if (yych == '_') goto yy25;
301
+ yy26:
302
+ #line 52 "src/lexer.re"
303
+ { return rbs_next_token(lexer, tINTEGER); }
304
+ #line 305 "src/lexer.c"
305
+ yy27:
306
+ yyaccept = 3;
307
+ rbs_skip(lexer);
308
+ backup = *lexer;
309
+ yych = rbs_peek(lexer);
310
+ switch (yych) {
311
+ case '!': goto yy85;
312
+ case '"': goto yy87;
313
+ case '$': goto yy88;
314
+ case '%':
315
+ case '&':
316
+ case '/':
317
+ case '^':
318
+ case '`':
319
+ case '|':
320
+ case '~': goto yy89;
321
+ case '\'': goto yy90;
322
+ case '*': goto yy91;
323
+ case '+':
324
+ case '-': goto yy92;
325
+ case ':': goto yy93;
326
+ case '<': goto yy94;
327
+ case '=': goto yy95;
328
+ case '>': goto yy96;
329
+ case '@': goto yy97;
330
+ case 'A':
331
+ case 'B':
332
+ case 'C':
333
+ case 'D':
334
+ case 'E':
335
+ case 'F':
336
+ case 'G':
337
+ case 'H':
338
+ case 'I':
339
+ case 'J':
340
+ case 'K':
341
+ case 'L':
342
+ case 'M':
343
+ case 'N':
344
+ case 'O':
345
+ case 'P':
346
+ case 'Q':
347
+ case 'R':
348
+ case 'S':
349
+ case 'T':
350
+ case 'U':
351
+ case 'V':
352
+ case 'W':
353
+ case 'X':
354
+ case 'Y':
355
+ case 'Z':
356
+ case '_':
357
+ case 'a':
358
+ case 'b':
359
+ case 'c':
360
+ case 'd':
361
+ case 'e':
362
+ case 'f':
363
+ case 'g':
364
+ case 'h':
365
+ case 'i':
366
+ case 'j':
367
+ case 'k':
368
+ case 'l':
369
+ case 'm':
370
+ case 'n':
371
+ case 'o':
372
+ case 'p':
373
+ case 'q':
374
+ case 'r':
375
+ case 's':
376
+ case 't':
377
+ case 'u':
378
+ case 'v':
379
+ case 'w':
380
+ case 'x':
381
+ case 'y':
382
+ case 'z': goto yy98;
383
+ case '[': goto yy100;
384
+ default: goto yy28;
385
+ }
386
+ yy28:
387
+ #line 44 "src/lexer.re"
388
+ { return rbs_next_token(lexer, pCOLON); }
389
+ #line 390 "src/lexer.c"
390
+ yy29:
391
+ rbs_skip(lexer);
392
+ yych = rbs_peek(lexer);
393
+ if (yych <= ';') goto yy30;
394
+ if (yych <= '<') goto yy24;
395
+ if (yych <= '=') goto yy101;
396
+ yy30:
397
+ #line 46 "src/lexer.re"
398
+ { return rbs_next_token(lexer, pLT); }
399
+ #line 400 "src/lexer.c"
400
+ yy31:
401
+ rbs_skip(lexer);
402
+ yych = rbs_peek(lexer);
403
+ if (yych <= '>') {
404
+ if (yych <= '<') goto yy32;
405
+ if (yych <= '=') goto yy102;
406
+ goto yy103;
407
+ } else {
408
+ if (yych == '~') goto yy24;
409
+ }
410
+ yy32:
411
+ #line 43 "src/lexer.re"
412
+ { return rbs_next_token(lexer, pEQ); }
413
+ #line 414 "src/lexer.c"
414
+ yy33:
415
+ rbs_skip(lexer);
416
+ yych = rbs_peek(lexer);
417
+ if (yych <= '<') goto yy8;
418
+ if (yych <= '>') goto yy24;
419
+ goto yy8;
420
+ yy34:
421
+ rbs_skip(lexer);
422
+ #line 34 "src/lexer.re"
423
+ { return rbs_next_token(lexer, pQUESTION); }
424
+ #line 425 "src/lexer.c"
425
+ yy35:
426
+ yyaccept = 0;
427
+ rbs_skip(lexer);
428
+ backup = *lexer;
429
+ yych = rbs_peek(lexer);
430
+ if (yych <= '_') {
431
+ if (yych <= '@') {
432
+ if (yych <= '?') goto yy3;
433
+ goto yy104;
434
+ } else {
435
+ if (yych <= 'Z') goto yy105;
436
+ if (yych <= '^') goto yy3;
437
+ goto yy105;
438
+ }
439
+ } else {
440
+ if (yych <= 'q') {
441
+ if (yych <= '`') goto yy3;
442
+ goto yy105;
443
+ } else {
444
+ if (yych <= 'r') goto yy108;
445
+ if (yych <= 'z') goto yy105;
446
+ goto yy3;
447
+ }
448
+ }
449
+ yy36:
450
+ rbs_skip(lexer);
451
+ yych = rbs_peek(lexer);
452
+ if (yych <= '=') {
453
+ if (yych <= '/') {
454
+ if (yych == '!') goto yy109;
455
+ } else {
456
+ if (yych <= '9') goto yy36;
457
+ if (yych >= '=') goto yy110;
458
+ }
459
+ } else {
460
+ if (yych <= '^') {
461
+ if (yych <= '@') goto yy37;
462
+ if (yych <= 'Z') goto yy36;
463
+ } else {
464
+ if (yych == '`') goto yy37;
465
+ if (yych <= 'z') goto yy36;
466
+ }
467
+ }
468
+ yy37:
469
+ #line 133 "src/lexer.re"
470
+ { return rbs_next_token(lexer, tUIDENT); }
471
+ #line 472 "src/lexer.c"
472
+ yy38:
473
+ rbs_skip(lexer);
474
+ yych = rbs_peek(lexer);
475
+ if (yych == ']') goto yy111;
476
+ #line 26 "src/lexer.re"
477
+ { return rbs_next_token(lexer, pLBRACKET); }
478
+ #line 479 "src/lexer.c"
479
+ yy39:
480
+ rbs_skip(lexer);
481
+ #line 27 "src/lexer.re"
482
+ { return rbs_next_token(lexer, pRBRACKET); }
483
+ #line 484 "src/lexer.c"
484
+ yy40:
485
+ rbs_skip(lexer);
486
+ #line 32 "src/lexer.re"
487
+ { return rbs_next_token(lexer, pHAT); }
488
+ #line 489 "src/lexer.c"
489
+ yy41:
490
+ rbs_skip(lexer);
491
+ yych = rbs_peek(lexer);
492
+ if (yych <= '=') {
493
+ if (yych <= '/') {
494
+ if (yych == '!') goto yy109;
495
+ } else {
496
+ if (yych <= '9') goto yy112;
497
+ if (yych >= '=') goto yy110;
498
+ }
499
+ } else {
500
+ if (yych <= '^') {
501
+ if (yych <= '@') goto yy42;
502
+ if (yych <= 'Z') goto yy115;
503
+ } else {
504
+ if (yych <= '_') goto yy117;
505
+ if (yych <= '`') goto yy42;
506
+ if (yych <= 'z') goto yy112;
507
+ }
508
+ }
509
+ yy42:
510
+ #line 136 "src/lexer.re"
511
+ { return rbs_next_token(lexer, tULLIDENT); }
512
+ #line 513 "src/lexer.c"
513
+ yy43:
514
+ yyaccept = 4;
515
+ rbs_skip(lexer);
516
+ backup = *lexer;
517
+ yych = rbs_peek(lexer);
518
+ if (yych <= ' ') {
519
+ if (yych <= 0x00000000) goto yy44;
520
+ if (yych <= 0x0000001F) goto yy118;
521
+ } else {
522
+ if (yych != ':') goto yy118;
523
+ }
524
+ yy44:
525
+ #line 39 "src/lexer.re"
526
+ { return rbs_next_token(lexer, tOPERATOR); }
527
+ #line 528 "src/lexer.c"
528
+ yy45:
529
+ rbs_skip(lexer);
530
+ yych = rbs_peek(lexer);
531
+ if (yych <= 'r') {
532
+ if (yych == 'l') goto yy119;
533
+ goto yy53;
534
+ } else {
535
+ if (yych <= 's') goto yy120;
536
+ if (yych <= 't') goto yy122;
537
+ goto yy53;
538
+ }
539
+ yy46:
540
+ #line 132 "src/lexer.re"
541
+ { return rbs_next_token(lexer, tLIDENT); }
542
+ #line 543 "src/lexer.c"
543
+ yy47:
544
+ rbs_skip(lexer);
545
+ yych = rbs_peek(lexer);
546
+ if (yych == 'o') goto yy123;
547
+ goto yy53;
548
+ yy48:
549
+ rbs_skip(lexer);
550
+ yych = rbs_peek(lexer);
551
+ if (yych == 'l') goto yy124;
552
+ goto yy53;
553
+ yy49:
554
+ rbs_skip(lexer);
555
+ yych = rbs_peek(lexer);
556
+ if (yych == 'e') goto yy125;
557
+ goto yy53;
558
+ yy50:
559
+ rbs_skip(lexer);
560
+ yych = rbs_peek(lexer);
561
+ if (yych == 'n') goto yy126;
562
+ if (yych == 'x') goto yy127;
563
+ goto yy53;
564
+ yy51:
565
+ rbs_skip(lexer);
566
+ yych = rbs_peek(lexer);
567
+ if (yych == 'a') goto yy128;
568
+ goto yy53;
569
+ yy52:
570
+ rbs_skip(lexer);
571
+ yych = rbs_peek(lexer);
572
+ yy53:
573
+ if (yych <= '=') {
574
+ if (yych <= '/') {
575
+ if (yych == '!') goto yy109;
576
+ goto yy46;
577
+ } else {
578
+ if (yych <= '9') goto yy52;
579
+ if (yych <= '<') goto yy46;
580
+ goto yy110;
581
+ }
582
+ } else {
583
+ if (yych <= '^') {
584
+ if (yych <= '@') goto yy46;
585
+ if (yych <= 'Z') goto yy52;
586
+ goto yy46;
587
+ } else {
588
+ if (yych == '`') goto yy46;
589
+ if (yych <= 'z') goto yy52;
590
+ goto yy46;
591
+ }
592
+ }
593
+ yy54:
594
+ rbs_skip(lexer);
595
+ yych = rbs_peek(lexer);
596
+ if (yych == 'n') goto yy129;
597
+ goto yy53;
598
+ yy55:
599
+ rbs_skip(lexer);
600
+ yych = rbs_peek(lexer);
601
+ if (yych == 'o') goto yy131;
602
+ goto yy53;
603
+ yy56:
604
+ rbs_skip(lexer);
605
+ yych = rbs_peek(lexer);
606
+ if (yych == 'i') goto yy132;
607
+ goto yy53;
608
+ yy57:
609
+ rbs_skip(lexer);
610
+ yych = rbs_peek(lexer);
611
+ if (yych == 'u') goto yy133;
612
+ goto yy53;
613
+ yy58:
614
+ rbs_skip(lexer);
615
+ yych = rbs_peek(lexer);
616
+ if (yych == 'r') goto yy134;
617
+ if (yych == 'u') goto yy135;
618
+ goto yy53;
619
+ yy59:
620
+ rbs_skip(lexer);
621
+ yych = rbs_peek(lexer);
622
+ if (yych == 'e') goto yy136;
623
+ goto yy53;
624
+ yy60:
625
+ rbs_skip(lexer);
626
+ yych = rbs_peek(lexer);
627
+ if (yych <= 'h') {
628
+ if (yych == 'e') goto yy137;
629
+ goto yy53;
630
+ } else {
631
+ if (yych <= 'i') goto yy138;
632
+ if (yych == 'k') goto yy139;
633
+ goto yy53;
634
+ }
635
+ yy61:
636
+ rbs_skip(lexer);
637
+ yych = rbs_peek(lexer);
638
+ if (yych <= 'q') {
639
+ if (yych == 'o') goto yy140;
640
+ goto yy53;
641
+ } else {
642
+ if (yych <= 'r') goto yy141;
643
+ if (yych == 'y') goto yy142;
644
+ goto yy53;
645
+ }
646
+ yy62:
647
+ rbs_skip(lexer);
648
+ yych = rbs_peek(lexer);
649
+ if (yych == 'n') goto yy143;
650
+ if (yych == 's') goto yy144;
651
+ goto yy53;
652
+ yy63:
653
+ rbs_skip(lexer);
654
+ yych = rbs_peek(lexer);
655
+ if (yych == 'o') goto yy145;
656
+ goto yy53;
657
+ yy64:
658
+ rbs_skip(lexer);
659
+ #line 28 "src/lexer.re"
660
+ { return rbs_next_token(lexer, pLBRACE); }
661
+ #line 662 "src/lexer.c"
662
+ yy65:
663
+ rbs_skip(lexer);
664
+ #line 31 "src/lexer.re"
665
+ { return rbs_next_token(lexer, pBAR); }
666
+ #line 667 "src/lexer.c"
667
+ yy66:
668
+ rbs_skip(lexer);
669
+ #line 29 "src/lexer.re"
670
+ { return rbs_next_token(lexer, pRBRACE); }
671
+ #line 672 "src/lexer.c"
672
+ yy67:
673
+ rbs_skip(lexer);
674
+ yych = rbs_peek(lexer);
675
+ yy68:
676
+ if (yych <= '"') {
677
+ if (yych <= 0x00000000) goto yy69;
678
+ if (yych <= '!') goto yy67;
679
+ goto yy70;
680
+ } else {
681
+ if (yych == '\\') goto yy71;
682
+ goto yy67;
683
+ }
684
+ yy69:
685
+ *lexer = backup;
686
+ if (yyaccept <= 3) {
687
+ if (yyaccept <= 1) {
688
+ if (yyaccept == 0) {
689
+ goto yy3;
690
+ } else {
691
+ goto yy8;
692
+ }
693
+ } else {
694
+ if (yyaccept == 2) {
695
+ goto yy23;
696
+ } else {
697
+ goto yy28;
698
+ }
699
+ }
700
+ } else {
701
+ if (yyaccept <= 5) {
702
+ if (yyaccept == 4) {
703
+ goto yy44;
704
+ } else {
705
+ goto yy79;
706
+ }
707
+ } else {
708
+ goto yy161;
709
+ }
710
+ }
711
+ yy70:
712
+ rbs_skip(lexer);
713
+ #line 110 "src/lexer.re"
714
+ { return rbs_next_token(lexer, tDQSTRING); }
715
+ #line 716 "src/lexer.c"
716
+ yy71:
717
+ rbs_skip(lexer);
718
+ yych = rbs_peek(lexer);
719
+ if (yych == 'u') goto yy146;
720
+ if (yych == 'x') goto yy147;
721
+ goto yy67;
722
+ yy72:
723
+ rbs_skip(lexer);
724
+ yych = rbs_peek(lexer);
725
+ if (yych <= ',') {
726
+ if (yych <= '\f') {
727
+ if (yych <= 0x00000000) goto yy73;
728
+ if (yych <= 0x00000008) goto yy72;
729
+ if (yych >= '\v') goto yy72;
730
+ } else {
731
+ if (yych <= 0x0000001F) {
732
+ if (yych >= 0x0000000E) goto yy72;
733
+ } else {
734
+ if (yych == '#') goto yy72;
735
+ }
736
+ }
737
+ } else {
738
+ if (yych <= '>') {
739
+ if (yych <= '-') goto yy72;
740
+ if (yych <= '/') goto yy73;
741
+ if (yych <= '9') goto yy72;
742
+ } else {
743
+ if (yych <= '^') {
744
+ if (yych <= 'Z') goto yy72;
745
+ } else {
746
+ if (yych <= 'z') goto yy72;
747
+ if (yych >= 0x0000007F) goto yy72;
748
+ }
749
+ }
750
+ }
751
+ yy73:
752
+ #line 143 "src/lexer.re"
753
+ { return rbs_next_token(lexer, tGIDENT); }
754
+ #line 755 "src/lexer.c"
755
+ yy74:
756
+ rbs_skip(lexer);
757
+ goto yy73;
758
+ yy75:
759
+ rbs_skip(lexer);
760
+ yych = rbs_peek(lexer);
761
+ if (yych <= 'Z') {
762
+ if (yych <= '(') {
763
+ if (yych <= '\'') goto yy69;
764
+ goto yy148;
765
+ } else {
766
+ if (yych == '<') goto yy149;
767
+ goto yy69;
768
+ }
769
+ } else {
770
+ if (yych <= 'z') {
771
+ if (yych <= '[') goto yy150;
772
+ goto yy69;
773
+ } else {
774
+ if (yych <= '{') goto yy151;
775
+ if (yych <= '|') goto yy152;
776
+ goto yy69;
777
+ }
778
+ }
779
+ yy76:
780
+ rbs_skip(lexer);
781
+ yych = rbs_peek(lexer);
782
+ yy77:
783
+ if (yych <= '\'') {
784
+ if (yych <= 0x00000000) goto yy69;
785
+ if (yych <= '&') goto yy76;
786
+ } else {
787
+ if (yych == '\\') goto yy80;
788
+ goto yy76;
789
+ }
790
+ yy78:
791
+ rbs_skip(lexer);
792
+ yy79:
793
+ #line 111 "src/lexer.re"
794
+ { return rbs_next_token(lexer, tSQSTRING); }
795
+ #line 796 "src/lexer.c"
796
+ yy80:
797
+ rbs_skip(lexer);
798
+ yych = rbs_peek(lexer);
799
+ if (yych <= '\'') {
800
+ if (yych <= 0x00000000) goto yy69;
801
+ if (yych <= '&') goto yy76;
802
+ goto yy153;
803
+ } else {
804
+ if (yych == '\\') goto yy80;
805
+ goto yy76;
806
+ }
807
+ yy81:
808
+ rbs_skip(lexer);
809
+ #line 36 "src/lexer.re"
810
+ { return rbs_next_token(lexer, pSTAR2); }
811
+ #line 812 "src/lexer.c"
812
+ yy82:
813
+ rbs_skip(lexer);
814
+ yych = rbs_peek(lexer);
815
+ if (yych >= 0x00000001) goto yy82;
816
+ #line 49 "src/lexer.re"
817
+ { return rbs_next_token(lexer, tINLINECOMMENT); }
818
+ #line 819 "src/lexer.c"
819
+ yy83:
820
+ rbs_skip(lexer);
821
+ #line 41 "src/lexer.re"
822
+ { return rbs_next_token(lexer, pARROW); }
823
+ #line 824 "src/lexer.c"
824
+ yy84:
825
+ rbs_skip(lexer);
826
+ yych = rbs_peek(lexer);
827
+ if (yych == '.') goto yy154;
828
+ goto yy69;
829
+ yy85:
830
+ rbs_skip(lexer);
831
+ yych = rbs_peek(lexer);
832
+ if (yych == '=') goto yy89;
833
+ if (yych == '~') goto yy89;
834
+ yy86:
835
+ #line 130 "src/lexer.re"
836
+ { return rbs_next_token(lexer, tSYMBOL); }
837
+ #line 838 "src/lexer.c"
838
+ yy87:
839
+ rbs_skip(lexer);
840
+ yych = rbs_peek(lexer);
841
+ if (yych <= '"') {
842
+ if (yych <= 0x00000000) goto yy69;
843
+ if (yych <= '!') goto yy87;
844
+ goto yy155;
845
+ } else {
846
+ if (yych == '\\') goto yy156;
847
+ goto yy87;
848
+ }
849
+ yy88:
850
+ rbs_skip(lexer);
851
+ yych = rbs_peek(lexer);
852
+ if (yych <= ')') {
853
+ if (yych <= 0x0000001F) {
854
+ if (yych <= '\n') {
855
+ if (yych <= 0x00000000) goto yy69;
856
+ if (yych <= 0x00000008) goto yy157;
857
+ goto yy69;
858
+ } else {
859
+ if (yych == '\r') goto yy69;
860
+ goto yy157;
861
+ }
862
+ } else {
863
+ if (yych <= '#') {
864
+ if (yych <= ' ') goto yy69;
865
+ if (yych <= '"') goto yy159;
866
+ goto yy157;
867
+ } else {
868
+ if (yych == '%') goto yy69;
869
+ if (yych <= '\'') goto yy159;
870
+ goto yy69;
871
+ }
872
+ }
873
+ } else {
874
+ if (yych <= 'Z') {
875
+ if (yych <= '/') {
876
+ if (yych == '-') goto yy157;
877
+ goto yy159;
878
+ } else {
879
+ if (yych <= '9') goto yy157;
880
+ if (yych <= '>') goto yy159;
881
+ goto yy157;
882
+ }
883
+ } else {
884
+ if (yych <= '^') {
885
+ if (yych == '\\') goto yy159;
886
+ goto yy69;
887
+ } else {
888
+ if (yych <= 'z') goto yy157;
889
+ if (yych <= '}') goto yy69;
890
+ if (yych <= '~') goto yy159;
891
+ goto yy157;
892
+ }
893
+ }
894
+ }
895
+ yy89:
896
+ rbs_skip(lexer);
897
+ goto yy86;
898
+ yy90:
899
+ rbs_skip(lexer);
900
+ yych = rbs_peek(lexer);
901
+ if (yych <= '\'') {
902
+ if (yych <= 0x00000000) goto yy69;
903
+ if (yych <= '&') goto yy90;
904
+ goto yy160;
905
+ } else {
906
+ if (yych == '\\') goto yy162;
907
+ goto yy90;
908
+ }
909
+ yy91:
910
+ rbs_skip(lexer);
911
+ yych = rbs_peek(lexer);
912
+ if (yych == '*') goto yy89;
913
+ goto yy86;
914
+ yy92:
915
+ rbs_skip(lexer);
916
+ yych = rbs_peek(lexer);
917
+ if (yych == '@') goto yy89;
918
+ goto yy86;
919
+ yy93:
920
+ rbs_skip(lexer);
921
+ #line 45 "src/lexer.re"
922
+ { return rbs_next_token(lexer, pCOLON2); }
923
+ #line 924 "src/lexer.c"
924
+ yy94:
925
+ rbs_skip(lexer);
926
+ yych = rbs_peek(lexer);
927
+ if (yych <= ';') goto yy86;
928
+ if (yych <= '<') goto yy89;
929
+ if (yych <= '=') goto yy163;
930
+ goto yy86;
931
+ yy95:
932
+ rbs_skip(lexer);
933
+ yych = rbs_peek(lexer);
934
+ if (yych == '=') goto yy164;
935
+ if (yych == '~') goto yy89;
936
+ goto yy69;
937
+ yy96:
938
+ rbs_skip(lexer);
939
+ yych = rbs_peek(lexer);
940
+ if (yych <= '<') goto yy86;
941
+ if (yych <= '>') goto yy89;
942
+ goto yy86;
943
+ yy97:
944
+ rbs_skip(lexer);
945
+ yych = rbs_peek(lexer);
946
+ if (yych <= '^') {
947
+ if (yych <= '?') goto yy69;
948
+ if (yych <= '@') goto yy165;
949
+ if (yych <= 'Z') goto yy166;
950
+ goto yy69;
951
+ } else {
952
+ if (yych == '`') goto yy69;
953
+ if (yych <= 'z') goto yy166;
954
+ goto yy69;
955
+ }
956
+ yy98:
957
+ rbs_skip(lexer);
958
+ yych = rbs_peek(lexer);
959
+ if (yych <= '>') {
960
+ if (yych <= '/') {
961
+ if (yych == '!') goto yy168;
962
+ } else {
963
+ if (yych <= '9') goto yy98;
964
+ if (yych == '=') goto yy168;
965
+ }
966
+ } else {
967
+ if (yych <= '^') {
968
+ if (yych <= '?') goto yy168;
969
+ if (yych <= '@') goto yy99;
970
+ if (yych <= 'Z') goto yy98;
971
+ } else {
972
+ if (yych == '`') goto yy99;
973
+ if (yych <= 'z') goto yy98;
974
+ }
975
+ }
976
+ yy99:
977
+ #line 126 "src/lexer.re"
978
+ { return rbs_next_token(lexer, tSYMBOL); }
979
+ #line 980 "src/lexer.c"
980
+ yy100:
981
+ rbs_skip(lexer);
982
+ yych = rbs_peek(lexer);
983
+ if (yych == ']') goto yy164;
984
+ goto yy69;
985
+ yy101:
986
+ rbs_skip(lexer);
987
+ yych = rbs_peek(lexer);
988
+ if (yych == '>') goto yy24;
989
+ goto yy8;
990
+ yy102:
991
+ rbs_skip(lexer);
992
+ yych = rbs_peek(lexer);
993
+ if (yych == '=') goto yy24;
994
+ goto yy8;
995
+ yy103:
996
+ rbs_skip(lexer);
997
+ #line 42 "src/lexer.re"
998
+ { return rbs_next_token(lexer, pFATARROW); }
999
+ #line 1000 "src/lexer.c"
1000
+ yy104:
1001
+ rbs_skip(lexer);
1002
+ yych = rbs_peek(lexer);
1003
+ if (yych <= '^') {
1004
+ if (yych <= '@') goto yy69;
1005
+ if (yych <= 'Z') goto yy169;
1006
+ goto yy69;
1007
+ } else {
1008
+ if (yych == '`') goto yy69;
1009
+ if (yych <= 'z') goto yy169;
1010
+ goto yy69;
1011
+ }
1012
+ yy105:
1013
+ rbs_skip(lexer);
1014
+ yych = rbs_peek(lexer);
1015
+ yy106:
1016
+ if (yych <= 'Z') {
1017
+ if (yych <= '/') goto yy107;
1018
+ if (yych <= '9') goto yy105;
1019
+ if (yych >= 'A') goto yy105;
1020
+ } else {
1021
+ if (yych <= '_') {
1022
+ if (yych >= '_') goto yy105;
1023
+ } else {
1024
+ if (yych <= '`') goto yy107;
1025
+ if (yych <= 'z') goto yy105;
1026
+ }
1027
+ }
1028
+ yy107:
1029
+ #line 140 "src/lexer.re"
1030
+ { return rbs_next_token(lexer, tAIDENT); }
1031
+ #line 1032 "src/lexer.c"
1032
+ yy108:
1033
+ rbs_skip(lexer);
1034
+ yych = rbs_peek(lexer);
1035
+ if (yych == 'b') goto yy171;
1036
+ goto yy106;
1037
+ yy109:
1038
+ rbs_skip(lexer);
1039
+ #line 137 "src/lexer.re"
1040
+ { return rbs_next_token(lexer, tBANGIDENT); }
1041
+ #line 1042 "src/lexer.c"
1042
+ yy110:
1043
+ rbs_skip(lexer);
1044
+ #line 138 "src/lexer.re"
1045
+ { return rbs_next_token(lexer, tEQIDENT); }
1046
+ #line 1047 "src/lexer.c"
1047
+ yy111:
1048
+ rbs_skip(lexer);
1049
+ yych = rbs_peek(lexer);
1050
+ if (yych == '=') goto yy24;
1051
+ #line 47 "src/lexer.re"
1052
+ { return rbs_next_token(lexer, pAREF_OPR); }
1053
+ #line 1054 "src/lexer.c"
1054
+ yy112:
1055
+ rbs_skip(lexer);
1056
+ yych = rbs_peek(lexer);
1057
+ yy113:
1058
+ if (yych <= '=') {
1059
+ if (yych <= '/') {
1060
+ if (yych == '!') goto yy109;
1061
+ } else {
1062
+ if (yych <= '9') goto yy112;
1063
+ if (yych >= '=') goto yy110;
1064
+ }
1065
+ } else {
1066
+ if (yych <= '^') {
1067
+ if (yych <= '@') goto yy114;
1068
+ if (yych <= 'Z') goto yy112;
1069
+ } else {
1070
+ if (yych == '`') goto yy114;
1071
+ if (yych <= 'z') goto yy112;
1072
+ }
1073
+ }
1074
+ yy114:
1075
+ #line 134 "src/lexer.re"
1076
+ { return rbs_next_token(lexer, tULLIDENT); }
1077
+ #line 1078 "src/lexer.c"
1078
+ yy115:
1079
+ rbs_skip(lexer);
1080
+ yych = rbs_peek(lexer);
1081
+ if (yych <= '=') {
1082
+ if (yych <= '/') {
1083
+ if (yych == '!') goto yy109;
1084
+ } else {
1085
+ if (yych <= '9') goto yy115;
1086
+ if (yych >= '=') goto yy110;
1087
+ }
1088
+ } else {
1089
+ if (yych <= '^') {
1090
+ if (yych <= '@') goto yy116;
1091
+ if (yych <= 'Z') goto yy115;
1092
+ } else {
1093
+ if (yych == '`') goto yy116;
1094
+ if (yych <= 'z') goto yy115;
1095
+ }
1096
+ }
1097
+ yy116:
1098
+ #line 135 "src/lexer.re"
1099
+ { return rbs_next_token(lexer, tULIDENT); }
1100
+ #line 1101 "src/lexer.c"
1101
+ yy117:
1102
+ rbs_skip(lexer);
1103
+ yych = rbs_peek(lexer);
1104
+ if (yych == 't') goto yy172;
1105
+ goto yy113;
1106
+ yy118:
1107
+ rbs_skip(lexer);
1108
+ yych = rbs_peek(lexer);
1109
+ if (yych <= 0x00000000) goto yy69;
1110
+ if (yych == '`') goto yy173;
1111
+ goto yy118;
1112
+ yy119:
1113
+ rbs_skip(lexer);
1114
+ yych = rbs_peek(lexer);
1115
+ if (yych == 'i') goto yy174;
1116
+ goto yy53;
1117
+ yy120:
1118
+ rbs_skip(lexer);
1119
+ yych = rbs_peek(lexer);
1120
+ if (yych <= '=') {
1121
+ if (yych <= '/') {
1122
+ if (yych == '!') goto yy109;
1123
+ } else {
1124
+ if (yych <= '9') goto yy52;
1125
+ if (yych >= '=') goto yy110;
1126
+ }
1127
+ } else {
1128
+ if (yych <= '^') {
1129
+ if (yych <= '@') goto yy121;
1130
+ if (yych <= 'Z') goto yy52;
1131
+ } else {
1132
+ if (yych == '`') goto yy121;
1133
+ if (yych <= 'z') goto yy52;
1134
+ }
1135
+ }
1136
+ yy121:
1137
+ #line 97 "src/lexer.re"
1138
+ { return rbs_next_token(lexer, kAS); }
1139
+ #line 1140 "src/lexer.c"
1140
+ yy122:
1141
+ rbs_skip(lexer);
1142
+ yych = rbs_peek(lexer);
1143
+ if (yych == 't') goto yy175;
1144
+ goto yy53;
1145
+ yy123:
1146
+ rbs_skip(lexer);
1147
+ yych = rbs_peek(lexer);
1148
+ if (yych == 'o') goto yy176;
1149
+ if (yych == 't') goto yy177;
1150
+ goto yy53;
1151
+ yy124:
1152
+ rbs_skip(lexer);
1153
+ yych = rbs_peek(lexer);
1154
+ if (yych == 'a') goto yy179;
1155
+ goto yy53;
1156
+ yy125:
1157
+ rbs_skip(lexer);
1158
+ yych = rbs_peek(lexer);
1159
+ if (yych == 'f') goto yy180;
1160
+ goto yy53;
1161
+ yy126:
1162
+ rbs_skip(lexer);
1163
+ yych = rbs_peek(lexer);
1164
+ if (yych == 'd') goto yy182;
1165
+ goto yy53;
1166
+ yy127:
1167
+ rbs_skip(lexer);
1168
+ yych = rbs_peek(lexer);
1169
+ if (yych == 't') goto yy184;
1170
+ goto yy53;
1171
+ yy128:
1172
+ rbs_skip(lexer);
1173
+ yych = rbs_peek(lexer);
1174
+ if (yych == 'l') goto yy185;
1175
+ goto yy53;
1176
+ yy129:
1177
+ rbs_skip(lexer);
1178
+ yych = rbs_peek(lexer);
1179
+ if (yych <= '^') {
1180
+ if (yych <= '9') {
1181
+ if (yych == '!') goto yy109;
1182
+ if (yych >= '0') goto yy52;
1183
+ } else {
1184
+ if (yych <= '=') {
1185
+ if (yych >= '=') goto yy110;
1186
+ } else {
1187
+ if (yych <= '@') goto yy130;
1188
+ if (yych <= 'Z') goto yy52;
1189
+ }
1190
+ }
1191
+ } else {
1192
+ if (yych <= 'c') {
1193
+ if (yych == '`') goto yy130;
1194
+ if (yych <= 'b') goto yy52;
1195
+ goto yy186;
1196
+ } else {
1197
+ if (yych <= 's') {
1198
+ if (yych <= 'r') goto yy52;
1199
+ goto yy187;
1200
+ } else {
1201
+ if (yych <= 't') goto yy188;
1202
+ if (yych <= 'z') goto yy52;
1203
+ }
1204
+ }
1205
+ }
1206
+ yy130:
1207
+ #line 78 "src/lexer.re"
1208
+ { return rbs_next_token(lexer, kIN); }
1209
+ #line 1210 "src/lexer.c"
1210
+ yy131:
1211
+ rbs_skip(lexer);
1212
+ yych = rbs_peek(lexer);
1213
+ if (yych == 'd') goto yy189;
1214
+ goto yy53;
1215
+ yy132:
1216
+ rbs_skip(lexer);
1217
+ yych = rbs_peek(lexer);
1218
+ if (yych == 'l') goto yy190;
1219
+ goto yy53;
1220
+ yy133:
1221
+ rbs_skip(lexer);
1222
+ yych = rbs_peek(lexer);
1223
+ if (yych == 't') goto yy192;
1224
+ goto yy53;
1225
+ yy134:
1226
+ rbs_skip(lexer);
1227
+ yych = rbs_peek(lexer);
1228
+ if (yych == 'e') goto yy194;
1229
+ if (yych == 'i') goto yy195;
1230
+ goto yy53;
1231
+ yy135:
1232
+ rbs_skip(lexer);
1233
+ yych = rbs_peek(lexer);
1234
+ if (yych == 'b') goto yy196;
1235
+ goto yy53;
1236
+ yy136:
1237
+ rbs_skip(lexer);
1238
+ yych = rbs_peek(lexer);
1239
+ if (yych == 't') goto yy197;
1240
+ goto yy53;
1241
+ yy137:
1242
+ rbs_skip(lexer);
1243
+ yych = rbs_peek(lexer);
1244
+ if (yych == 'l') goto yy198;
1245
+ goto yy53;
1246
+ yy138:
1247
+ rbs_skip(lexer);
1248
+ yych = rbs_peek(lexer);
1249
+ if (yych == 'n') goto yy199;
1250
+ goto yy53;
1251
+ yy139:
1252
+ rbs_skip(lexer);
1253
+ yych = rbs_peek(lexer);
1254
+ if (yych == 'i') goto yy200;
1255
+ goto yy53;
1256
+ yy140:
1257
+ rbs_skip(lexer);
1258
+ yych = rbs_peek(lexer);
1259
+ if (yych == 'p') goto yy201;
1260
+ goto yy53;
1261
+ yy141:
1262
+ rbs_skip(lexer);
1263
+ yych = rbs_peek(lexer);
1264
+ if (yych == 'u') goto yy203;
1265
+ goto yy53;
1266
+ yy142:
1267
+ rbs_skip(lexer);
1268
+ yych = rbs_peek(lexer);
1269
+ if (yych == 'p') goto yy204;
1270
+ goto yy53;
1271
+ yy143:
1272
+ rbs_skip(lexer);
1273
+ yych = rbs_peek(lexer);
1274
+ if (yych == 'c') goto yy205;
1275
+ if (yych == 't') goto yy206;
1276
+ goto yy53;
1277
+ yy144:
1278
+ rbs_skip(lexer);
1279
+ yych = rbs_peek(lexer);
1280
+ if (yych == 'e') goto yy207;
1281
+ goto yy53;
1282
+ yy145:
1283
+ rbs_skip(lexer);
1284
+ yych = rbs_peek(lexer);
1285
+ if (yych == 'i') goto yy209;
1286
+ goto yy53;
1287
+ yy146:
1288
+ rbs_skip(lexer);
1289
+ yych = rbs_peek(lexer);
1290
+ if (yych <= '@') {
1291
+ if (yych <= '/') goto yy69;
1292
+ if (yych <= '9') goto yy210;
1293
+ goto yy69;
1294
+ } else {
1295
+ if (yych <= 'F') goto yy210;
1296
+ if (yych <= '`') goto yy69;
1297
+ if (yych <= 'f') goto yy210;
1298
+ goto yy69;
1299
+ }
1300
+ yy147:
1301
+ rbs_skip(lexer);
1302
+ yych = rbs_peek(lexer);
1303
+ if (yych <= '/') goto yy69;
1304
+ if (yych <= '9') goto yy67;
1305
+ if (yych <= '`') goto yy69;
1306
+ if (yych <= 'f') goto yy67;
1307
+ goto yy69;
1308
+ yy148:
1309
+ rbs_skip(lexer);
1310
+ yych = rbs_peek(lexer);
1311
+ if (yych <= 0x00000000) goto yy69;
1312
+ if (yych == ')') goto yy211;
1313
+ goto yy148;
1314
+ yy149:
1315
+ rbs_skip(lexer);
1316
+ yych = rbs_peek(lexer);
1317
+ if (yych <= 0x00000000) goto yy69;
1318
+ if (yych == '>') goto yy212;
1319
+ goto yy149;
1320
+ yy150:
1321
+ rbs_skip(lexer);
1322
+ yych = rbs_peek(lexer);
1323
+ if (yych <= 0x00000000) goto yy69;
1324
+ if (yych == ']') goto yy213;
1325
+ goto yy150;
1326
+ yy151:
1327
+ rbs_skip(lexer);
1328
+ yych = rbs_peek(lexer);
1329
+ if (yych <= 0x00000000) goto yy69;
1330
+ if (yych == '}') goto yy214;
1331
+ goto yy151;
1332
+ yy152:
1333
+ rbs_skip(lexer);
1334
+ yych = rbs_peek(lexer);
1335
+ if (yych <= 0x00000000) goto yy69;
1336
+ if (yych == '|') goto yy215;
1337
+ goto yy152;
1338
+ yy153:
1339
+ yyaccept = 5;
1340
+ rbs_skip(lexer);
1341
+ backup = *lexer;
1342
+ yych = rbs_peek(lexer);
1343
+ if (yych <= '\'') {
1344
+ if (yych <= 0x00000000) goto yy79;
1345
+ if (yych <= '&') goto yy76;
1346
+ goto yy78;
1347
+ } else {
1348
+ if (yych == '\\') goto yy80;
1349
+ goto yy76;
1350
+ }
1351
+ yy154:
1352
+ rbs_skip(lexer);
1353
+ #line 38 "src/lexer.re"
1354
+ { return rbs_next_token(lexer, pDOT3); }
1355
+ #line 1356 "src/lexer.c"
1356
+ yy155:
1357
+ rbs_skip(lexer);
1358
+ #line 112 "src/lexer.re"
1359
+ { return rbs_next_token(lexer, tDQSYMBOL); }
1360
+ #line 1361 "src/lexer.c"
1361
+ yy156:
1362
+ rbs_skip(lexer);
1363
+ yych = rbs_peek(lexer);
1364
+ if (yych == 'u') goto yy216;
1365
+ if (yych == 'x') goto yy217;
1366
+ goto yy87;
1367
+ yy157:
1368
+ rbs_skip(lexer);
1369
+ yych = rbs_peek(lexer);
1370
+ if (yych <= ',') {
1371
+ if (yych <= '\f') {
1372
+ if (yych <= 0x00000000) goto yy158;
1373
+ if (yych <= 0x00000008) goto yy157;
1374
+ if (yych >= '\v') goto yy157;
1375
+ } else {
1376
+ if (yych <= 0x0000001F) {
1377
+ if (yych >= 0x0000000E) goto yy157;
1378
+ } else {
1379
+ if (yych == '#') goto yy157;
1380
+ }
1381
+ }
1382
+ } else {
1383
+ if (yych <= '>') {
1384
+ if (yych <= '-') goto yy157;
1385
+ if (yych <= '/') goto yy158;
1386
+ if (yych <= '9') goto yy157;
1387
+ } else {
1388
+ if (yych <= '^') {
1389
+ if (yych <= 'Z') goto yy157;
1390
+ } else {
1391
+ if (yych <= 'z') goto yy157;
1392
+ if (yych >= 0x0000007F) goto yy157;
1393
+ }
1394
+ }
1395
+ }
1396
+ yy158:
1397
+ #line 129 "src/lexer.re"
1398
+ { return rbs_next_token(lexer, tSYMBOL); }
1399
+ #line 1400 "src/lexer.c"
1400
+ yy159:
1401
+ rbs_skip(lexer);
1402
+ goto yy158;
1403
+ yy160:
1404
+ rbs_skip(lexer);
1405
+ yy161:
1406
+ #line 113 "src/lexer.re"
1407
+ { return rbs_next_token(lexer, tSQSYMBOL); }
1408
+ #line 1409 "src/lexer.c"
1409
+ yy162:
1410
+ rbs_skip(lexer);
1411
+ yych = rbs_peek(lexer);
1412
+ if (yych <= '\'') {
1413
+ if (yych <= 0x00000000) goto yy69;
1414
+ if (yych <= '&') goto yy90;
1415
+ goto yy218;
1416
+ } else {
1417
+ if (yych == '\\') goto yy162;
1418
+ goto yy90;
1419
+ }
1420
+ yy163:
1421
+ rbs_skip(lexer);
1422
+ yych = rbs_peek(lexer);
1423
+ if (yych == '>') goto yy89;
1424
+ goto yy86;
1425
+ yy164:
1426
+ rbs_skip(lexer);
1427
+ yych = rbs_peek(lexer);
1428
+ if (yych == '=') goto yy89;
1429
+ goto yy86;
1430
+ yy165:
1431
+ rbs_skip(lexer);
1432
+ yych = rbs_peek(lexer);
1433
+ if (yych <= '^') {
1434
+ if (yych <= '@') goto yy69;
1435
+ if (yych <= 'Z') goto yy219;
1436
+ goto yy69;
1437
+ } else {
1438
+ if (yych == '`') goto yy69;
1439
+ if (yych <= 'z') goto yy219;
1440
+ goto yy69;
1441
+ }
1442
+ yy166:
1443
+ rbs_skip(lexer);
1444
+ yych = rbs_peek(lexer);
1445
+ if (yych <= '>') {
1446
+ if (yych <= '/') {
1447
+ if (yych == '!') goto yy221;
1448
+ } else {
1449
+ if (yych <= '9') goto yy166;
1450
+ if (yych == '=') goto yy221;
1451
+ }
1452
+ } else {
1453
+ if (yych <= '^') {
1454
+ if (yych <= '?') goto yy221;
1455
+ if (yych <= '@') goto yy167;
1456
+ if (yych <= 'Z') goto yy166;
1457
+ } else {
1458
+ if (yych == '`') goto yy167;
1459
+ if (yych <= 'z') goto yy166;
1460
+ }
1461
+ }
1462
+ yy167:
1463
+ #line 127 "src/lexer.re"
1464
+ { return rbs_next_token(lexer, tSYMBOL); }
1465
+ #line 1466 "src/lexer.c"
1466
+ yy168:
1467
+ rbs_skip(lexer);
1468
+ goto yy99;
1469
+ yy169:
1470
+ rbs_skip(lexer);
1471
+ yych = rbs_peek(lexer);
1472
+ if (yych <= 'Z') {
1473
+ if (yych <= '/') goto yy170;
1474
+ if (yych <= '9') goto yy169;
1475
+ if (yych >= 'A') goto yy169;
1476
+ } else {
1477
+ if (yych <= '_') {
1478
+ if (yych >= '_') goto yy169;
1479
+ } else {
1480
+ if (yych <= '`') goto yy170;
1481
+ if (yych <= 'z') goto yy169;
1482
+ }
1483
+ }
1484
+ yy170:
1485
+ #line 141 "src/lexer.re"
1486
+ { return rbs_next_token(lexer, tA2IDENT); }
1487
+ #line 1488 "src/lexer.c"
1488
+ yy171:
1489
+ rbs_skip(lexer);
1490
+ yych = rbs_peek(lexer);
1491
+ if (yych == 's') goto yy222;
1492
+ goto yy106;
1493
+ yy172:
1494
+ rbs_skip(lexer);
1495
+ yych = rbs_peek(lexer);
1496
+ if (yych == 'o') goto yy224;
1497
+ goto yy113;
1498
+ yy173:
1499
+ rbs_skip(lexer);
1500
+ #line 40 "src/lexer.re"
1501
+ { return rbs_next_token(lexer, tQIDENT); }
1502
+ #line 1503 "src/lexer.c"
1503
+ yy174:
1504
+ rbs_skip(lexer);
1505
+ yych = rbs_peek(lexer);
1506
+ if (yych == 'a') goto yy225;
1507
+ goto yy53;
1508
+ yy175:
1509
+ rbs_skip(lexer);
1510
+ yych = rbs_peek(lexer);
1511
+ if (yych == 'r') goto yy226;
1512
+ goto yy53;
1513
+ yy176:
1514
+ rbs_skip(lexer);
1515
+ yych = rbs_peek(lexer);
1516
+ if (yych == 'l') goto yy227;
1517
+ goto yy53;
1518
+ yy177:
1519
+ rbs_skip(lexer);
1520
+ yych = rbs_peek(lexer);
1521
+ if (yych <= '=') {
1522
+ if (yych <= '/') {
1523
+ if (yych == '!') goto yy109;
1524
+ } else {
1525
+ if (yych <= '9') goto yy52;
1526
+ if (yych >= '=') goto yy110;
1527
+ }
1528
+ } else {
1529
+ if (yych <= '^') {
1530
+ if (yych <= '@') goto yy178;
1531
+ if (yych <= 'Z') goto yy52;
1532
+ } else {
1533
+ if (yych == '`') goto yy178;
1534
+ if (yych <= 'z') goto yy52;
1535
+ }
1536
+ }
1537
+ yy178:
1538
+ #line 72 "src/lexer.re"
1539
+ { return rbs_next_token(lexer, kBOT); }
1540
+ #line 1541 "src/lexer.c"
1541
+ yy179:
1542
+ rbs_skip(lexer);
1543
+ yych = rbs_peek(lexer);
1544
+ if (yych == 's') goto yy229;
1545
+ goto yy53;
1546
+ yy180:
1547
+ rbs_skip(lexer);
1548
+ yych = rbs_peek(lexer);
1549
+ if (yych <= '=') {
1550
+ if (yych <= '/') {
1551
+ if (yych == '!') goto yy109;
1552
+ } else {
1553
+ if (yych <= '9') goto yy52;
1554
+ if (yych >= '=') goto yy110;
1555
+ }
1556
+ } else {
1557
+ if (yych <= '^') {
1558
+ if (yych <= '@') goto yy181;
1559
+ if (yych <= 'Z') goto yy52;
1560
+ } else {
1561
+ if (yych == '`') goto yy181;
1562
+ if (yych <= 'z') goto yy52;
1563
+ }
1564
+ }
1565
+ yy181:
1566
+ #line 74 "src/lexer.re"
1567
+ { return rbs_next_token(lexer, kDEF); }
1568
+ #line 1569 "src/lexer.c"
1569
+ yy182:
1570
+ rbs_skip(lexer);
1571
+ yych = rbs_peek(lexer);
1572
+ if (yych <= '=') {
1573
+ if (yych <= '/') {
1574
+ if (yych == '!') goto yy109;
1575
+ } else {
1576
+ if (yych <= '9') goto yy52;
1577
+ if (yych >= '=') goto yy110;
1578
+ }
1579
+ } else {
1580
+ if (yych <= '^') {
1581
+ if (yych <= '@') goto yy183;
1582
+ if (yych <= 'Z') goto yy52;
1583
+ } else {
1584
+ if (yych == '`') goto yy183;
1585
+ if (yych <= 'z') goto yy52;
1586
+ }
1587
+ }
1588
+ yy183:
1589
+ #line 75 "src/lexer.re"
1590
+ { return rbs_next_token(lexer, kEND); }
1591
+ #line 1592 "src/lexer.c"
1592
+ yy184:
1593
+ rbs_skip(lexer);
1594
+ yych = rbs_peek(lexer);
1595
+ if (yych == 'e') goto yy230;
1596
+ goto yy53;
1597
+ yy185:
1598
+ rbs_skip(lexer);
1599
+ yych = rbs_peek(lexer);
1600
+ if (yych == 's') goto yy231;
1601
+ goto yy53;
1602
+ yy186:
1603
+ rbs_skip(lexer);
1604
+ yych = rbs_peek(lexer);
1605
+ if (yych == 'l') goto yy232;
1606
+ goto yy53;
1607
+ yy187:
1608
+ rbs_skip(lexer);
1609
+ yych = rbs_peek(lexer);
1610
+ if (yych == 't') goto yy233;
1611
+ goto yy53;
1612
+ yy188:
1613
+ rbs_skip(lexer);
1614
+ yych = rbs_peek(lexer);
1615
+ if (yych == 'e') goto yy234;
1616
+ goto yy53;
1617
+ yy189:
1618
+ rbs_skip(lexer);
1619
+ yych = rbs_peek(lexer);
1620
+ if (yych == 'u') goto yy235;
1621
+ goto yy53;
1622
+ yy190:
1623
+ rbs_skip(lexer);
1624
+ yych = rbs_peek(lexer);
1625
+ if (yych <= '=') {
1626
+ if (yych <= '/') {
1627
+ if (yych == '!') goto yy109;
1628
+ } else {
1629
+ if (yych <= '9') goto yy52;
1630
+ if (yych >= '=') goto yy110;
1631
+ }
1632
+ } else {
1633
+ if (yych <= '^') {
1634
+ if (yych <= '@') goto yy191;
1635
+ if (yych <= 'Z') goto yy52;
1636
+ } else {
1637
+ if (yych == '`') goto yy191;
1638
+ if (yych <= 'z') goto yy52;
1639
+ }
1640
+ }
1641
+ yy191:
1642
+ #line 83 "src/lexer.re"
1643
+ { return rbs_next_token(lexer, kNIL); }
1644
+ #line 1645 "src/lexer.c"
1645
+ yy192:
1646
+ rbs_skip(lexer);
1647
+ yych = rbs_peek(lexer);
1648
+ if (yych <= '=') {
1649
+ if (yych <= '/') {
1650
+ if (yych == '!') goto yy109;
1651
+ } else {
1652
+ if (yych <= '9') goto yy52;
1653
+ if (yych >= '=') goto yy110;
1654
+ }
1655
+ } else {
1656
+ if (yych <= '^') {
1657
+ if (yych <= '@') goto yy193;
1658
+ if (yych <= 'Z') goto yy52;
1659
+ } else {
1660
+ if (yych == '`') goto yy193;
1661
+ if (yych <= 'z') goto yy52;
1662
+ }
1663
+ }
1664
+ yy193:
1665
+ #line 84 "src/lexer.re"
1666
+ { return rbs_next_token(lexer, kOUT); }
1667
+ #line 1668 "src/lexer.c"
1668
+ yy194:
1669
+ rbs_skip(lexer);
1670
+ yych = rbs_peek(lexer);
1671
+ if (yych == 'p') goto yy236;
1672
+ goto yy53;
1673
+ yy195:
1674
+ rbs_skip(lexer);
1675
+ yych = rbs_peek(lexer);
1676
+ if (yych == 'v') goto yy237;
1677
+ goto yy53;
1678
+ yy196:
1679
+ rbs_skip(lexer);
1680
+ yych = rbs_peek(lexer);
1681
+ if (yych == 'l') goto yy238;
1682
+ goto yy53;
1683
+ yy197:
1684
+ rbs_skip(lexer);
1685
+ yych = rbs_peek(lexer);
1686
+ if (yych == 'u') goto yy239;
1687
+ goto yy53;
1688
+ yy198:
1689
+ rbs_skip(lexer);
1690
+ yych = rbs_peek(lexer);
1691
+ if (yych == 'f') goto yy240;
1692
+ goto yy53;
1693
+ yy199:
1694
+ rbs_skip(lexer);
1695
+ yych = rbs_peek(lexer);
1696
+ if (yych == 'g') goto yy242;
1697
+ goto yy53;
1698
+ yy200:
1699
+ rbs_skip(lexer);
1700
+ yych = rbs_peek(lexer);
1701
+ if (yych == 'p') goto yy243;
1702
+ goto yy53;
1703
+ yy201:
1704
+ rbs_skip(lexer);
1705
+ yych = rbs_peek(lexer);
1706
+ if (yych <= '=') {
1707
+ if (yych <= '/') {
1708
+ if (yych == '!') goto yy109;
1709
+ } else {
1710
+ if (yych <= '9') goto yy52;
1711
+ if (yych >= '=') goto yy110;
1712
+ }
1713
+ } else {
1714
+ if (yych <= '^') {
1715
+ if (yych <= '@') goto yy202;
1716
+ if (yych <= 'Z') goto yy52;
1717
+ } else {
1718
+ if (yych == '`') goto yy202;
1719
+ if (yych <= 'z') goto yy52;
1720
+ }
1721
+ }
1722
+ yy202:
1723
+ #line 90 "src/lexer.re"
1724
+ { return rbs_next_token(lexer, kTOP); }
1725
+ #line 1726 "src/lexer.c"
1726
+ yy203:
1727
+ rbs_skip(lexer);
1728
+ yych = rbs_peek(lexer);
1729
+ if (yych == 'e') goto yy245;
1730
+ goto yy53;
1731
+ yy204:
1732
+ rbs_skip(lexer);
1733
+ yych = rbs_peek(lexer);
1734
+ if (yych == 'e') goto yy247;
1735
+ goto yy53;
1736
+ yy205:
1737
+ rbs_skip(lexer);
1738
+ yych = rbs_peek(lexer);
1739
+ if (yych == 'h') goto yy249;
1740
+ goto yy53;
1741
+ yy206:
1742
+ rbs_skip(lexer);
1743
+ yych = rbs_peek(lexer);
1744
+ if (yych == 'y') goto yy250;
1745
+ goto yy53;
1746
+ yy207:
1747
+ rbs_skip(lexer);
1748
+ yych = rbs_peek(lexer);
1749
+ if (yych <= '=') {
1750
+ if (yych <= '/') {
1751
+ if (yych == '!') goto yy109;
1752
+ } else {
1753
+ if (yych <= '9') goto yy52;
1754
+ if (yych >= '=') goto yy110;
1755
+ }
1756
+ } else {
1757
+ if (yych <= '^') {
1758
+ if (yych <= '@') goto yy208;
1759
+ if (yych <= 'Z') goto yy52;
1760
+ } else {
1761
+ if (yych == '`') goto yy208;
1762
+ if (yych <= 'z') goto yy52;
1763
+ }
1764
+ }
1765
+ yy208:
1766
+ #line 96 "src/lexer.re"
1767
+ { return rbs_next_token(lexer, kUSE); }
1768
+ #line 1769 "src/lexer.c"
1769
+ yy209:
1770
+ rbs_skip(lexer);
1771
+ yych = rbs_peek(lexer);
1772
+ if (yych == 'd') goto yy251;
1773
+ goto yy53;
1774
+ yy210:
1775
+ rbs_skip(lexer);
1776
+ yych = rbs_peek(lexer);
1777
+ if (yych <= '@') {
1778
+ if (yych <= '/') goto yy69;
1779
+ if (yych <= '9') goto yy253;
1780
+ goto yy69;
1781
+ } else {
1782
+ if (yych <= 'F') goto yy253;
1783
+ if (yych <= '`') goto yy69;
1784
+ if (yych <= 'f') goto yy253;
1785
+ goto yy69;
1786
+ }
1787
+ yy211:
1788
+ rbs_skip(lexer);
1789
+ #line 55 "src/lexer.re"
1790
+ { return rbs_next_token(lexer, tANNOTATION); }
1791
+ #line 1792 "src/lexer.c"
1792
+ yy212:
1793
+ rbs_skip(lexer);
1794
+ #line 58 "src/lexer.re"
1795
+ { return rbs_next_token(lexer, tANNOTATION); }
1796
+ #line 1797 "src/lexer.c"
1797
+ yy213:
1798
+ rbs_skip(lexer);
1799
+ #line 56 "src/lexer.re"
1800
+ { return rbs_next_token(lexer, tANNOTATION); }
1801
+ #line 1802 "src/lexer.c"
1802
+ yy214:
1803
+ rbs_skip(lexer);
1804
+ #line 54 "src/lexer.re"
1805
+ { return rbs_next_token(lexer, tANNOTATION); }
1806
+ #line 1807 "src/lexer.c"
1807
+ yy215:
1808
+ rbs_skip(lexer);
1809
+ #line 57 "src/lexer.re"
1810
+ { return rbs_next_token(lexer, tANNOTATION); }
1811
+ #line 1812 "src/lexer.c"
1812
+ yy216:
1813
+ rbs_skip(lexer);
1814
+ yych = rbs_peek(lexer);
1815
+ if (yych <= '@') {
1816
+ if (yych <= '/') goto yy69;
1817
+ if (yych <= '9') goto yy254;
1818
+ goto yy69;
1819
+ } else {
1820
+ if (yych <= 'F') goto yy254;
1821
+ if (yych <= '`') goto yy69;
1822
+ if (yych <= 'f') goto yy254;
1823
+ goto yy69;
1824
+ }
1825
+ yy217:
1826
+ rbs_skip(lexer);
1827
+ yych = rbs_peek(lexer);
1828
+ if (yych <= '/') goto yy69;
1829
+ if (yych <= '9') goto yy87;
1830
+ if (yych <= '`') goto yy69;
1831
+ if (yych <= 'f') goto yy87;
1832
+ goto yy69;
1833
+ yy218:
1834
+ yyaccept = 6;
1835
+ rbs_skip(lexer);
1836
+ backup = *lexer;
1837
+ yych = rbs_peek(lexer);
1838
+ if (yych <= '\'') {
1839
+ if (yych <= 0x00000000) goto yy161;
1840
+ if (yych <= '&') goto yy90;
1841
+ goto yy160;
1842
+ } else {
1843
+ if (yych == '\\') goto yy162;
1844
+ goto yy90;
1845
+ }
1846
+ yy219:
1847
+ rbs_skip(lexer);
1848
+ yych = rbs_peek(lexer);
1849
+ if (yych <= '>') {
1850
+ if (yych <= '/') {
1851
+ if (yych == '!') goto yy255;
1852
+ } else {
1853
+ if (yych <= '9') goto yy219;
1854
+ if (yych == '=') goto yy255;
1855
+ }
1856
+ } else {
1857
+ if (yych <= '^') {
1858
+ if (yych <= '?') goto yy255;
1859
+ if (yych <= '@') goto yy220;
1860
+ if (yych <= 'Z') goto yy219;
1861
+ } else {
1862
+ if (yych == '`') goto yy220;
1863
+ if (yych <= 'z') goto yy219;
1864
+ }
1865
+ }
1866
+ yy220:
1867
+ #line 128 "src/lexer.re"
1868
+ { return rbs_next_token(lexer, tSYMBOL); }
1869
+ #line 1870 "src/lexer.c"
1870
+ yy221:
1871
+ rbs_skip(lexer);
1872
+ goto yy167;
1873
+ yy222:
1874
+ rbs_skip(lexer);
1875
+ yych = rbs_peek(lexer);
1876
+ if (yych <= 'Z') {
1877
+ if (yych <= '/') goto yy223;
1878
+ if (yych <= '9') goto yy105;
1879
+ if (yych >= 'A') goto yy105;
1880
+ } else {
1881
+ if (yych <= '_') {
1882
+ if (yych >= '_') goto yy105;
1883
+ } else {
1884
+ if (yych <= '`') goto yy223;
1885
+ if (yych <= 'z') goto yy105;
1886
+ }
1887
+ }
1888
+ yy223:
1889
+ #line 99 "src/lexer.re"
1890
+ { return rbs_next_token(lexer, kATRBS); }
1891
+ #line 1892 "src/lexer.c"
1892
+ yy224:
1893
+ rbs_skip(lexer);
1894
+ yych = rbs_peek(lexer);
1895
+ if (yych == 'd') goto yy256;
1896
+ goto yy113;
1897
+ yy225:
1898
+ rbs_skip(lexer);
1899
+ yych = rbs_peek(lexer);
1900
+ if (yych == 's') goto yy257;
1901
+ goto yy53;
1902
+ yy226:
1903
+ rbs_skip(lexer);
1904
+ yych = rbs_peek(lexer);
1905
+ if (yych == '_') goto yy259;
1906
+ goto yy53;
1907
+ yy227:
1908
+ rbs_skip(lexer);
1909
+ yych = rbs_peek(lexer);
1910
+ if (yych <= '=') {
1911
+ if (yych <= '/') {
1912
+ if (yych == '!') goto yy109;
1913
+ } else {
1914
+ if (yych <= '9') goto yy52;
1915
+ if (yych >= '=') goto yy110;
1916
+ }
1917
+ } else {
1918
+ if (yych <= '^') {
1919
+ if (yych <= '@') goto yy228;
1920
+ if (yych <= 'Z') goto yy52;
1921
+ } else {
1922
+ if (yych == '`') goto yy228;
1923
+ if (yych <= 'z') goto yy52;
1924
+ }
1925
+ }
1926
+ yy228:
1927
+ #line 71 "src/lexer.re"
1928
+ { return rbs_next_token(lexer, kBOOL); }
1929
+ #line 1930 "src/lexer.c"
1930
+ yy229:
1931
+ rbs_skip(lexer);
1932
+ yych = rbs_peek(lexer);
1933
+ if (yych == 's') goto yy260;
1934
+ goto yy53;
1935
+ yy230:
1936
+ rbs_skip(lexer);
1937
+ yych = rbs_peek(lexer);
1938
+ if (yych == 'n') goto yy262;
1939
+ goto yy53;
1940
+ yy231:
1941
+ rbs_skip(lexer);
1942
+ yych = rbs_peek(lexer);
1943
+ if (yych == 'e') goto yy263;
1944
+ goto yy53;
1945
+ yy232:
1946
+ rbs_skip(lexer);
1947
+ yych = rbs_peek(lexer);
1948
+ if (yych == 'u') goto yy265;
1949
+ goto yy53;
1950
+ yy233:
1951
+ rbs_skip(lexer);
1952
+ yych = rbs_peek(lexer);
1953
+ if (yych == 'a') goto yy266;
1954
+ goto yy53;
1955
+ yy234:
1956
+ rbs_skip(lexer);
1957
+ yych = rbs_peek(lexer);
1958
+ if (yych == 'r') goto yy267;
1959
+ goto yy53;
1960
+ yy235:
1961
+ rbs_skip(lexer);
1962
+ yych = rbs_peek(lexer);
1963
+ if (yych == 'l') goto yy268;
1964
+ goto yy53;
1965
+ yy236:
1966
+ rbs_skip(lexer);
1967
+ yych = rbs_peek(lexer);
1968
+ if (yych == 'e') goto yy269;
1969
+ goto yy53;
1970
+ yy237:
1971
+ rbs_skip(lexer);
1972
+ yych = rbs_peek(lexer);
1973
+ if (yych == 'a') goto yy270;
1974
+ goto yy53;
1975
+ yy238:
1976
+ rbs_skip(lexer);
1977
+ yych = rbs_peek(lexer);
1978
+ if (yych == 'i') goto yy271;
1979
+ goto yy53;
1980
+ yy239:
1981
+ rbs_skip(lexer);
1982
+ yych = rbs_peek(lexer);
1983
+ if (yych == 'r') goto yy272;
1984
+ goto yy53;
1985
+ yy240:
1986
+ rbs_skip(lexer);
1987
+ yych = rbs_peek(lexer);
1988
+ if (yych <= '=') {
1989
+ if (yych <= '/') {
1990
+ if (yych == '!') goto yy109;
1991
+ } else {
1992
+ if (yych <= '9') goto yy52;
1993
+ if (yych >= '=') goto yy110;
1994
+ }
1995
+ } else {
1996
+ if (yych <= '^') {
1997
+ if (yych <= '@') goto yy241;
1998
+ if (yych <= 'Z') goto yy52;
1999
+ } else {
2000
+ if (yych == '`') goto yy241;
2001
+ if (yych <= 'z') goto yy52;
2002
+ }
2003
+ }
2004
+ yy241:
2005
+ #line 88 "src/lexer.re"
2006
+ { return rbs_next_token(lexer, kSELF); }
2007
+ #line 2008 "src/lexer.c"
2008
+ yy242:
2009
+ rbs_skip(lexer);
2010
+ yych = rbs_peek(lexer);
2011
+ if (yych == 'l') goto yy273;
2012
+ goto yy53;
2013
+ yy243:
2014
+ rbs_skip(lexer);
2015
+ yych = rbs_peek(lexer);
2016
+ if (yych <= '=') {
2017
+ if (yych <= '/') {
2018
+ if (yych == '!') goto yy109;
2019
+ } else {
2020
+ if (yych <= '9') goto yy52;
2021
+ if (yych >= '=') goto yy110;
2022
+ }
2023
+ } else {
2024
+ if (yych <= '^') {
2025
+ if (yych <= '@') goto yy244;
2026
+ if (yych <= 'Z') goto yy52;
2027
+ } else {
2028
+ if (yych == '`') goto yy244;
2029
+ if (yych <= 'z') goto yy52;
2030
+ }
2031
+ }
2032
+ yy244:
2033
+ #line 100 "src/lexer.re"
2034
+ { return rbs_next_token(lexer, kSKIP); }
2035
+ #line 2036 "src/lexer.c"
2036
+ yy245:
2037
+ rbs_skip(lexer);
2038
+ yych = rbs_peek(lexer);
2039
+ if (yych <= '=') {
2040
+ if (yych <= '/') {
2041
+ if (yych == '!') goto yy109;
2042
+ } else {
2043
+ if (yych <= '9') goto yy52;
2044
+ if (yych >= '=') goto yy110;
2045
+ }
2046
+ } else {
2047
+ if (yych <= '^') {
2048
+ if (yych <= '@') goto yy246;
2049
+ if (yych <= 'Z') goto yy52;
2050
+ } else {
2051
+ if (yych == '`') goto yy246;
2052
+ if (yych <= 'z') goto yy52;
2053
+ }
2054
+ }
2055
+ yy246:
2056
+ #line 91 "src/lexer.re"
2057
+ { return rbs_next_token(lexer, kTRUE); }
2058
+ #line 2059 "src/lexer.c"
2059
+ yy247:
2060
+ rbs_skip(lexer);
2061
+ yych = rbs_peek(lexer);
2062
+ if (yych <= '=') {
2063
+ if (yych <= '/') {
2064
+ if (yych == '!') goto yy109;
2065
+ } else {
2066
+ if (yych <= '9') goto yy52;
2067
+ if (yych >= '=') goto yy110;
2068
+ }
2069
+ } else {
2070
+ if (yych <= '^') {
2071
+ if (yych <= '@') goto yy248;
2072
+ if (yych <= 'Z') goto yy52;
2073
+ } else {
2074
+ if (yych == '`') goto yy248;
2075
+ if (yych <= 'z') goto yy52;
2076
+ }
2077
+ }
2078
+ yy248:
2079
+ #line 92 "src/lexer.re"
2080
+ { return rbs_next_token(lexer, kTYPE); }
2081
+ #line 2082 "src/lexer.c"
2082
+ yy249:
2083
+ rbs_skip(lexer);
2084
+ yych = rbs_peek(lexer);
2085
+ if (yych == 'e') goto yy274;
2086
+ goto yy53;
2087
+ yy250:
2088
+ rbs_skip(lexer);
2089
+ yych = rbs_peek(lexer);
2090
+ if (yych == 'p') goto yy275;
2091
+ goto yy53;
2092
+ yy251:
2093
+ rbs_skip(lexer);
2094
+ yych = rbs_peek(lexer);
2095
+ if (yych <= '=') {
2096
+ if (yych <= '/') {
2097
+ if (yych == '!') goto yy109;
2098
+ } else {
2099
+ if (yych <= '9') goto yy52;
2100
+ if (yych >= '=') goto yy110;
2101
+ }
2102
+ } else {
2103
+ if (yych <= '^') {
2104
+ if (yych <= '@') goto yy252;
2105
+ if (yych <= 'Z') goto yy52;
2106
+ } else {
2107
+ if (yych == '`') goto yy252;
2108
+ if (yych <= 'z') goto yy52;
2109
+ }
2110
+ }
2111
+ yy252:
2112
+ #line 95 "src/lexer.re"
2113
+ { return rbs_next_token(lexer, kVOID); }
2114
+ #line 2115 "src/lexer.c"
2115
+ yy253:
2116
+ rbs_skip(lexer);
2117
+ yych = rbs_peek(lexer);
2118
+ if (yych <= '@') {
2119
+ if (yych <= '/') goto yy69;
2120
+ if (yych <= '9') goto yy276;
2121
+ goto yy69;
2122
+ } else {
2123
+ if (yych <= 'F') goto yy276;
2124
+ if (yych <= '`') goto yy69;
2125
+ if (yych <= 'f') goto yy276;
2126
+ goto yy69;
2127
+ }
2128
+ yy254:
2129
+ rbs_skip(lexer);
2130
+ yych = rbs_peek(lexer);
2131
+ if (yych <= '@') {
2132
+ if (yych <= '/') goto yy69;
2133
+ if (yych <= '9') goto yy277;
2134
+ goto yy69;
2135
+ } else {
2136
+ if (yych <= 'F') goto yy277;
2137
+ if (yych <= '`') goto yy69;
2138
+ if (yych <= 'f') goto yy277;
2139
+ goto yy69;
2140
+ }
2141
+ yy255:
2142
+ rbs_skip(lexer);
2143
+ goto yy220;
2144
+ yy256:
2145
+ rbs_skip(lexer);
2146
+ yych = rbs_peek(lexer);
2147
+ if (yych == 'o') goto yy278;
2148
+ goto yy113;
2149
+ yy257:
2150
+ rbs_skip(lexer);
2151
+ yych = rbs_peek(lexer);
2152
+ if (yych <= '=') {
2153
+ if (yych <= '/') {
2154
+ if (yych == '!') goto yy109;
2155
+ } else {
2156
+ if (yych <= '9') goto yy52;
2157
+ if (yych >= '=') goto yy110;
2158
+ }
2159
+ } else {
2160
+ if (yych <= '^') {
2161
+ if (yych <= '@') goto yy258;
2162
+ if (yych <= 'Z') goto yy52;
2163
+ } else {
2164
+ if (yych == '`') goto yy258;
2165
+ if (yych <= 'z') goto yy52;
2166
+ }
2167
+ }
2168
+ yy258:
2169
+ #line 67 "src/lexer.re"
2170
+ { return rbs_next_token(lexer, kALIAS); }
2171
+ #line 2172 "src/lexer.c"
2172
+ yy259:
2173
+ rbs_skip(lexer);
2174
+ yych = rbs_peek(lexer);
2175
+ if (yych <= 'q') {
2176
+ if (yych == 'a') goto yy279;
2177
+ goto yy53;
2178
+ } else {
2179
+ if (yych <= 'r') goto yy280;
2180
+ if (yych == 'w') goto yy281;
2181
+ goto yy53;
2182
+ }
2183
+ yy260:
2184
+ rbs_skip(lexer);
2185
+ yych = rbs_peek(lexer);
2186
+ if (yych <= '=') {
2187
+ if (yych <= '/') {
2188
+ if (yych == '!') goto yy109;
2189
+ } else {
2190
+ if (yych <= '9') goto yy52;
2191
+ if (yych >= '=') goto yy110;
2192
+ }
2193
+ } else {
2194
+ if (yych <= '^') {
2195
+ if (yych <= '@') goto yy261;
2196
+ if (yych <= 'Z') goto yy52;
2197
+ } else {
2198
+ if (yych == '`') goto yy261;
2199
+ if (yych <= 'z') goto yy52;
2200
+ }
2201
+ }
2202
+ yy261:
2203
+ #line 73 "src/lexer.re"
2204
+ { return rbs_next_token(lexer, kCLASS); }
2205
+ #line 2206 "src/lexer.c"
2206
+ yy262:
2207
+ rbs_skip(lexer);
2208
+ yych = rbs_peek(lexer);
2209
+ if (yych == 'd') goto yy282;
2210
+ goto yy53;
2211
+ yy263:
2212
+ rbs_skip(lexer);
2213
+ yych = rbs_peek(lexer);
2214
+ if (yych <= '=') {
2215
+ if (yych <= '/') {
2216
+ if (yych == '!') goto yy109;
2217
+ } else {
2218
+ if (yych <= '9') goto yy52;
2219
+ if (yych >= '=') goto yy110;
2220
+ }
2221
+ } else {
2222
+ if (yych <= '^') {
2223
+ if (yych <= '@') goto yy264;
2224
+ if (yych <= 'Z') goto yy52;
2225
+ } else {
2226
+ if (yych == '`') goto yy264;
2227
+ if (yych <= 'z') goto yy52;
2228
+ }
2229
+ }
2230
+ yy264:
2231
+ #line 77 "src/lexer.re"
2232
+ { return rbs_next_token(lexer, kFALSE); }
2233
+ #line 2234 "src/lexer.c"
2234
+ yy265:
2235
+ rbs_skip(lexer);
2236
+ yych = rbs_peek(lexer);
2237
+ if (yych == 'd') goto yy284;
2238
+ goto yy53;
2239
+ yy266:
2240
+ rbs_skip(lexer);
2241
+ yych = rbs_peek(lexer);
2242
+ if (yych == 'n') goto yy285;
2243
+ goto yy53;
2244
+ yy267:
2245
+ rbs_skip(lexer);
2246
+ yych = rbs_peek(lexer);
2247
+ if (yych == 'f') goto yy286;
2248
+ goto yy53;
2249
+ yy268:
2250
+ rbs_skip(lexer);
2251
+ yych = rbs_peek(lexer);
2252
+ if (yych == 'e') goto yy287;
2253
+ goto yy53;
2254
+ yy269:
2255
+ rbs_skip(lexer);
2256
+ yych = rbs_peek(lexer);
2257
+ if (yych == 'n') goto yy289;
2258
+ goto yy53;
2259
+ yy270:
2260
+ rbs_skip(lexer);
2261
+ yych = rbs_peek(lexer);
2262
+ if (yych == 't') goto yy290;
2263
+ goto yy53;
2264
+ yy271:
2265
+ rbs_skip(lexer);
2266
+ yych = rbs_peek(lexer);
2267
+ if (yych == 'c') goto yy291;
2268
+ goto yy53;
2269
+ yy272:
2270
+ rbs_skip(lexer);
2271
+ yych = rbs_peek(lexer);
2272
+ if (yych == 'n') goto yy293;
2273
+ goto yy53;
2274
+ yy273:
2275
+ rbs_skip(lexer);
2276
+ yych = rbs_peek(lexer);
2277
+ if (yych == 'e') goto yy295;
2278
+ goto yy53;
2279
+ yy274:
2280
+ rbs_skip(lexer);
2281
+ yych = rbs_peek(lexer);
2282
+ if (yych == 'c') goto yy296;
2283
+ goto yy53;
2284
+ yy275:
2285
+ rbs_skip(lexer);
2286
+ yych = rbs_peek(lexer);
2287
+ if (yych == 'e') goto yy297;
2288
+ goto yy53;
2289
+ yy276:
2290
+ rbs_skip(lexer);
2291
+ yych = rbs_peek(lexer);
2292
+ if (yych <= '@') {
2293
+ if (yych <= '/') goto yy69;
2294
+ if (yych <= '9') goto yy67;
2295
+ goto yy69;
2296
+ } else {
2297
+ if (yych <= 'F') goto yy67;
2298
+ if (yych <= '`') goto yy69;
2299
+ if (yych <= 'f') goto yy67;
2300
+ goto yy69;
2301
+ }
2302
+ yy277:
2303
+ rbs_skip(lexer);
2304
+ yych = rbs_peek(lexer);
2305
+ if (yych <= '@') {
2306
+ if (yych <= '/') goto yy69;
2307
+ if (yych <= '9') goto yy298;
2308
+ goto yy69;
2309
+ } else {
2310
+ if (yych <= 'F') goto yy298;
2311
+ if (yych <= '`') goto yy69;
2312
+ if (yych <= 'f') goto yy298;
2313
+ goto yy69;
2314
+ }
2315
+ yy278:
2316
+ rbs_skip(lexer);
2317
+ yych = rbs_peek(lexer);
2318
+ if (yych == '_') goto yy299;
2319
+ goto yy113;
2320
+ yy279:
2321
+ rbs_skip(lexer);
2322
+ yych = rbs_peek(lexer);
2323
+ if (yych == 'c') goto yy300;
2324
+ goto yy53;
2325
+ yy280:
2326
+ rbs_skip(lexer);
2327
+ yych = rbs_peek(lexer);
2328
+ if (yych == 'e') goto yy301;
2329
+ goto yy53;
2330
+ yy281:
2331
+ rbs_skip(lexer);
2332
+ yych = rbs_peek(lexer);
2333
+ if (yych == 'r') goto yy302;
2334
+ goto yy53;
2335
+ yy282:
2336
+ rbs_skip(lexer);
2337
+ yych = rbs_peek(lexer);
2338
+ if (yych <= '=') {
2339
+ if (yych <= '/') {
2340
+ if (yych == '!') goto yy109;
2341
+ } else {
2342
+ if (yych <= '9') goto yy52;
2343
+ if (yych >= '=') goto yy110;
2344
+ }
2345
+ } else {
2346
+ if (yych <= '^') {
2347
+ if (yych <= '@') goto yy283;
2348
+ if (yych <= 'Z') goto yy52;
2349
+ } else {
2350
+ if (yych == '`') goto yy283;
2351
+ if (yych <= 'z') goto yy52;
2352
+ }
2353
+ }
2354
+ yy283:
2355
+ #line 76 "src/lexer.re"
2356
+ { return rbs_next_token(lexer, kEXTEND); }
2357
+ #line 2358 "src/lexer.c"
2358
+ yy284:
2359
+ rbs_skip(lexer);
2360
+ yych = rbs_peek(lexer);
2361
+ if (yych == 'e') goto yy303;
2362
+ goto yy53;
2363
+ yy285:
2364
+ rbs_skip(lexer);
2365
+ yych = rbs_peek(lexer);
2366
+ if (yych == 'c') goto yy305;
2367
+ goto yy53;
2368
+ yy286:
2369
+ rbs_skip(lexer);
2370
+ yych = rbs_peek(lexer);
2371
+ if (yych == 'a') goto yy306;
2372
+ goto yy53;
2373
+ yy287:
2374
+ rbs_skip(lexer);
2375
+ yych = rbs_peek(lexer);
2376
+ if (yych <= '=') {
2377
+ if (yych <= '/') {
2378
+ if (yych == '!') goto yy109;
2379
+ } else {
2380
+ if (yych <= '9') goto yy52;
2381
+ if (yych >= '=') goto yy110;
2382
+ }
2383
+ } else {
2384
+ if (yych <= '^') {
2385
+ if (yych <= '@') goto yy288;
2386
+ if (yych <= 'Z') goto yy52;
2387
+ } else {
2388
+ if (yych == '`') goto yy288;
2389
+ if (yych <= 'z') goto yy52;
2390
+ }
2391
+ }
2392
+ yy288:
2393
+ #line 82 "src/lexer.re"
2394
+ { return rbs_next_token(lexer, kMODULE); }
2395
+ #line 2396 "src/lexer.c"
2396
+ yy289:
2397
+ rbs_skip(lexer);
2398
+ yych = rbs_peek(lexer);
2399
+ if (yych == 'd') goto yy307;
2400
+ goto yy53;
2401
+ yy290:
2402
+ rbs_skip(lexer);
2403
+ yych = rbs_peek(lexer);
2404
+ if (yych == 'e') goto yy309;
2405
+ goto yy53;
2406
+ yy291:
2407
+ rbs_skip(lexer);
2408
+ yych = rbs_peek(lexer);
2409
+ if (yych <= '=') {
2410
+ if (yych <= '/') {
2411
+ if (yych == '!') goto yy109;
2412
+ } else {
2413
+ if (yych <= '9') goto yy52;
2414
+ if (yych >= '=') goto yy110;
2415
+ }
2416
+ } else {
2417
+ if (yych <= '^') {
2418
+ if (yych <= '@') goto yy292;
2419
+ if (yych <= 'Z') goto yy52;
2420
+ } else {
2421
+ if (yych == '`') goto yy292;
2422
+ if (yych <= 'z') goto yy52;
2423
+ }
2424
+ }
2425
+ yy292:
2426
+ #line 87 "src/lexer.re"
2427
+ { return rbs_next_token(lexer, kPUBLIC); }
2428
+ #line 2429 "src/lexer.c"
2429
+ yy293:
2430
+ rbs_skip(lexer);
2431
+ yych = rbs_peek(lexer);
2432
+ if (yych <= '=') {
2433
+ if (yych <= '/') {
2434
+ if (yych == '!') goto yy109;
2435
+ } else {
2436
+ if (yych <= '9') goto yy52;
2437
+ if (yych >= '=') goto yy110;
2438
+ }
2439
+ } else {
2440
+ if (yych <= '^') {
2441
+ if (yych <= '@') goto yy294;
2442
+ if (yych <= 'Z') goto yy52;
2443
+ } else {
2444
+ if (yych == '`') goto yy294;
2445
+ if (yych <= 'z') goto yy52;
2446
+ }
2447
+ }
2448
+ yy294:
2449
+ #line 101 "src/lexer.re"
2450
+ { return rbs_next_token(lexer, kRETURN); }
2451
+ #line 2452 "src/lexer.c"
2452
+ yy295:
2453
+ rbs_skip(lexer);
2454
+ yych = rbs_peek(lexer);
2455
+ if (yych == 't') goto yy311;
2456
+ goto yy53;
2457
+ yy296:
2458
+ rbs_skip(lexer);
2459
+ yych = rbs_peek(lexer);
2460
+ if (yych == 'k') goto yy312;
2461
+ goto yy53;
2462
+ yy297:
2463
+ rbs_skip(lexer);
2464
+ yych = rbs_peek(lexer);
2465
+ if (yych == 'd') goto yy313;
2466
+ goto yy53;
2467
+ yy298:
2468
+ rbs_skip(lexer);
2469
+ yych = rbs_peek(lexer);
2470
+ if (yych <= '@') {
2471
+ if (yych <= '/') goto yy69;
2472
+ if (yych <= '9') goto yy87;
2473
+ goto yy69;
2474
+ } else {
2475
+ if (yych <= 'F') goto yy87;
2476
+ if (yych <= '`') goto yy69;
2477
+ if (yych <= 'f') goto yy87;
2478
+ goto yy69;
2479
+ }
2480
+ yy299:
2481
+ rbs_skip(lexer);
2482
+ yych = rbs_peek(lexer);
2483
+ if (yych == '_') goto yy315;
2484
+ goto yy113;
2485
+ yy300:
2486
+ rbs_skip(lexer);
2487
+ yych = rbs_peek(lexer);
2488
+ if (yych == 'c') goto yy317;
2489
+ goto yy53;
2490
+ yy301:
2491
+ rbs_skip(lexer);
2492
+ yych = rbs_peek(lexer);
2493
+ if (yych == 'a') goto yy318;
2494
+ goto yy53;
2495
+ yy302:
2496
+ rbs_skip(lexer);
2497
+ yych = rbs_peek(lexer);
2498
+ if (yych == 'i') goto yy319;
2499
+ goto yy53;
2500
+ yy303:
2501
+ rbs_skip(lexer);
2502
+ yych = rbs_peek(lexer);
2503
+ if (yych <= '=') {
2504
+ if (yych <= '/') {
2505
+ if (yych == '!') goto yy109;
2506
+ } else {
2507
+ if (yych <= '9') goto yy52;
2508
+ if (yych >= '=') goto yy110;
2509
+ }
2510
+ } else {
2511
+ if (yych <= '^') {
2512
+ if (yych <= '@') goto yy304;
2513
+ if (yych <= 'Z') goto yy52;
2514
+ } else {
2515
+ if (yych == '`') goto yy304;
2516
+ if (yych <= 'z') goto yy52;
2517
+ }
2518
+ }
2519
+ yy304:
2520
+ #line 79 "src/lexer.re"
2521
+ { return rbs_next_token(lexer, kINCLUDE); }
2522
+ #line 2523 "src/lexer.c"
2523
+ yy305:
2524
+ rbs_skip(lexer);
2525
+ yych = rbs_peek(lexer);
2526
+ if (yych == 'e') goto yy320;
2527
+ goto yy53;
2528
+ yy306:
2529
+ rbs_skip(lexer);
2530
+ yych = rbs_peek(lexer);
2531
+ if (yych == 'c') goto yy322;
2532
+ goto yy53;
2533
+ yy307:
2534
+ rbs_skip(lexer);
2535
+ yych = rbs_peek(lexer);
2536
+ if (yych <= '=') {
2537
+ if (yych <= '/') {
2538
+ if (yych == '!') goto yy109;
2539
+ } else {
2540
+ if (yych <= '9') goto yy52;
2541
+ if (yych >= '=') goto yy110;
2542
+ }
2543
+ } else {
2544
+ if (yych <= '^') {
2545
+ if (yych <= '@') goto yy308;
2546
+ if (yych <= 'Z') goto yy52;
2547
+ } else {
2548
+ if (yych == '`') goto yy308;
2549
+ if (yych <= 'z') goto yy52;
2550
+ }
2551
+ }
2552
+ yy308:
2553
+ #line 85 "src/lexer.re"
2554
+ { return rbs_next_token(lexer, kPREPEND); }
2555
+ #line 2556 "src/lexer.c"
2556
+ yy309:
2557
+ rbs_skip(lexer);
2558
+ yych = rbs_peek(lexer);
2559
+ if (yych <= '=') {
2560
+ if (yych <= '/') {
2561
+ if (yych == '!') goto yy109;
2562
+ } else {
2563
+ if (yych <= '9') goto yy52;
2564
+ if (yych >= '=') goto yy110;
2565
+ }
2566
+ } else {
2567
+ if (yych <= '^') {
2568
+ if (yych <= '@') goto yy310;
2569
+ if (yych <= 'Z') goto yy52;
2570
+ } else {
2571
+ if (yych == '`') goto yy310;
2572
+ if (yych <= 'z') goto yy52;
2573
+ }
2574
+ }
2575
+ yy310:
2576
+ #line 86 "src/lexer.re"
2577
+ { return rbs_next_token(lexer, kPRIVATE); }
2578
+ #line 2579 "src/lexer.c"
2579
+ yy311:
2580
+ rbs_skip(lexer);
2581
+ yych = rbs_peek(lexer);
2582
+ if (yych == 'o') goto yy323;
2583
+ goto yy53;
2584
+ yy312:
2585
+ rbs_skip(lexer);
2586
+ yych = rbs_peek(lexer);
2587
+ if (yych == 'e') goto yy324;
2588
+ goto yy53;
2589
+ yy313:
2590
+ rbs_skip(lexer);
2591
+ yych = rbs_peek(lexer);
2592
+ if (yych <= '=') {
2593
+ if (yych <= '/') {
2594
+ if (yych == '!') goto yy109;
2595
+ } else {
2596
+ if (yych <= '9') goto yy52;
2597
+ if (yych >= '=') goto yy110;
2598
+ }
2599
+ } else {
2600
+ if (yych <= '^') {
2601
+ if (yych <= '@') goto yy314;
2602
+ if (yych <= 'Z') goto yy52;
2603
+ } else {
2604
+ if (yych == '`') goto yy314;
2605
+ if (yych <= 'z') goto yy52;
2606
+ }
2607
+ }
2608
+ yy314:
2609
+ #line 94 "src/lexer.re"
2610
+ { return rbs_next_token(lexer, kUNTYPED); }
2611
+ #line 2612 "src/lexer.c"
2612
+ yy315:
2613
+ rbs_skip(lexer);
2614
+ yych = rbs_peek(lexer);
2615
+ if (yych <= '=') {
2616
+ if (yych <= '/') {
2617
+ if (yych == '!') goto yy109;
2618
+ } else {
2619
+ if (yych <= '9') goto yy112;
2620
+ if (yych >= '=') goto yy110;
2621
+ }
2622
+ } else {
2623
+ if (yych <= '^') {
2624
+ if (yych <= '@') goto yy316;
2625
+ if (yych <= 'Z') goto yy112;
2626
+ } else {
2627
+ if (yych == '`') goto yy316;
2628
+ if (yych <= 'z') goto yy112;
2629
+ }
2630
+ }
2631
+ yy316:
2632
+ #line 98 "src/lexer.re"
2633
+ { return rbs_next_token(lexer, k__TODO__); }
2634
+ #line 2635 "src/lexer.c"
2635
+ yy317:
2636
+ rbs_skip(lexer);
2637
+ yych = rbs_peek(lexer);
2638
+ if (yych == 'e') goto yy325;
2639
+ goto yy53;
2640
+ yy318:
2641
+ rbs_skip(lexer);
2642
+ yych = rbs_peek(lexer);
2643
+ if (yych == 'd') goto yy326;
2644
+ goto yy53;
2645
+ yy319:
2646
+ rbs_skip(lexer);
2647
+ yych = rbs_peek(lexer);
2648
+ if (yych == 't') goto yy327;
2649
+ goto yy53;
2650
+ yy320:
2651
+ rbs_skip(lexer);
2652
+ yych = rbs_peek(lexer);
2653
+ if (yych <= '=') {
2654
+ if (yych <= '/') {
2655
+ if (yych == '!') goto yy109;
2656
+ } else {
2657
+ if (yych <= '9') goto yy52;
2658
+ if (yych >= '=') goto yy110;
2659
+ }
2660
+ } else {
2661
+ if (yych <= '^') {
2662
+ if (yych <= '@') goto yy321;
2663
+ if (yych <= 'Z') goto yy52;
2664
+ } else {
2665
+ if (yych == '`') goto yy321;
2666
+ if (yych <= 'z') goto yy52;
2667
+ }
2668
+ }
2669
+ yy321:
2670
+ #line 80 "src/lexer.re"
2671
+ { return rbs_next_token(lexer, kINSTANCE); }
2672
+ #line 2673 "src/lexer.c"
2673
+ yy322:
2674
+ rbs_skip(lexer);
2675
+ yych = rbs_peek(lexer);
2676
+ if (yych == 'e') goto yy328;
2677
+ goto yy53;
2678
+ yy323:
2679
+ rbs_skip(lexer);
2680
+ yych = rbs_peek(lexer);
2681
+ if (yych == 'n') goto yy330;
2682
+ goto yy53;
2683
+ yy324:
2684
+ rbs_skip(lexer);
2685
+ yych = rbs_peek(lexer);
2686
+ if (yych == 'd') goto yy332;
2687
+ goto yy53;
2688
+ yy325:
2689
+ rbs_skip(lexer);
2690
+ yych = rbs_peek(lexer);
2691
+ if (yych == 's') goto yy334;
2692
+ goto yy53;
2693
+ yy326:
2694
+ rbs_skip(lexer);
2695
+ yych = rbs_peek(lexer);
2696
+ if (yych == 'e') goto yy335;
2697
+ goto yy53;
2698
+ yy327:
2699
+ rbs_skip(lexer);
2700
+ yych = rbs_peek(lexer);
2701
+ if (yych == 'e') goto yy336;
2702
+ goto yy53;
2703
+ yy328:
2704
+ rbs_skip(lexer);
2705
+ yych = rbs_peek(lexer);
2706
+ if (yych <= '=') {
2707
+ if (yych <= '/') {
2708
+ if (yych == '!') goto yy109;
2709
+ } else {
2710
+ if (yych <= '9') goto yy52;
2711
+ if (yych >= '=') goto yy110;
2712
+ }
2713
+ } else {
2714
+ if (yych <= '^') {
2715
+ if (yych <= '@') goto yy329;
2716
+ if (yych <= 'Z') goto yy52;
2717
+ } else {
2718
+ if (yych == '`') goto yy329;
2719
+ if (yych <= 'z') goto yy52;
2720
+ }
2721
+ }
2722
+ yy329:
2723
+ #line 81 "src/lexer.re"
2724
+ { return rbs_next_token(lexer, kINTERFACE); }
2725
+ #line 2726 "src/lexer.c"
2726
+ yy330:
2727
+ rbs_skip(lexer);
2728
+ yych = rbs_peek(lexer);
2729
+ if (yych <= '=') {
2730
+ if (yych <= '/') {
2731
+ if (yych == '!') goto yy109;
2732
+ } else {
2733
+ if (yych <= '9') goto yy52;
2734
+ if (yych >= '=') goto yy110;
2735
+ }
2736
+ } else {
2737
+ if (yych <= '^') {
2738
+ if (yych <= '@') goto yy331;
2739
+ if (yych <= 'Z') goto yy52;
2740
+ } else {
2741
+ if (yych == '`') goto yy331;
2742
+ if (yych <= 'z') goto yy52;
2743
+ }
2744
+ }
2745
+ yy331:
2746
+ #line 89 "src/lexer.re"
2747
+ { return rbs_next_token(lexer, kSINGLETON); }
2748
+ #line 2749 "src/lexer.c"
2749
+ yy332:
2750
+ rbs_skip(lexer);
2751
+ yych = rbs_peek(lexer);
2752
+ if (yych <= '=') {
2753
+ if (yych <= '/') {
2754
+ if (yych == '!') goto yy109;
2755
+ } else {
2756
+ if (yych <= '9') goto yy52;
2757
+ if (yych >= '=') goto yy110;
2758
+ }
2759
+ } else {
2760
+ if (yych <= '^') {
2761
+ if (yych <= '@') goto yy333;
2762
+ if (yych <= 'Z') goto yy52;
2763
+ } else {
2764
+ if (yych == '`') goto yy333;
2765
+ if (yych <= 'z') goto yy52;
2766
+ }
2767
+ }
2768
+ yy333:
2769
+ #line 93 "src/lexer.re"
2770
+ { return rbs_next_token(lexer, kUNCHECKED); }
2771
+ #line 2772 "src/lexer.c"
2772
+ yy334:
2773
+ rbs_skip(lexer);
2774
+ yych = rbs_peek(lexer);
2775
+ if (yych == 's') goto yy337;
2776
+ goto yy53;
2777
+ yy335:
2778
+ rbs_skip(lexer);
2779
+ yych = rbs_peek(lexer);
2780
+ if (yych == 'r') goto yy338;
2781
+ goto yy53;
2782
+ yy336:
2783
+ rbs_skip(lexer);
2784
+ yych = rbs_peek(lexer);
2785
+ if (yych == 'r') goto yy340;
2786
+ goto yy53;
2787
+ yy337:
2788
+ rbs_skip(lexer);
2789
+ yych = rbs_peek(lexer);
2790
+ if (yych == 'o') goto yy342;
2791
+ goto yy53;
2792
+ yy338:
2793
+ rbs_skip(lexer);
2794
+ yych = rbs_peek(lexer);
2795
+ if (yych <= '=') {
2796
+ if (yych <= '/') {
2797
+ if (yych == '!') goto yy109;
2798
+ } else {
2799
+ if (yych <= '9') goto yy52;
2800
+ if (yych >= '=') goto yy110;
2801
+ }
2802
+ } else {
2803
+ if (yych <= '^') {
2804
+ if (yych <= '@') goto yy339;
2805
+ if (yych <= 'Z') goto yy52;
2806
+ } else {
2807
+ if (yych == '`') goto yy339;
2808
+ if (yych <= 'z') goto yy52;
2809
+ }
2810
+ }
2811
+ yy339:
2812
+ #line 69 "src/lexer.re"
2813
+ { return rbs_next_token(lexer, kATTRREADER); }
2814
+ #line 2815 "src/lexer.c"
2815
+ yy340:
2816
+ rbs_skip(lexer);
2817
+ yych = rbs_peek(lexer);
2818
+ if (yych <= '=') {
2819
+ if (yych <= '/') {
2820
+ if (yych == '!') goto yy109;
2821
+ } else {
2822
+ if (yych <= '9') goto yy52;
2823
+ if (yych >= '=') goto yy110;
2824
+ }
2825
+ } else {
2826
+ if (yych <= '^') {
2827
+ if (yych <= '@') goto yy341;
2828
+ if (yych <= 'Z') goto yy52;
2829
+ } else {
2830
+ if (yych == '`') goto yy341;
2831
+ if (yych <= 'z') goto yy52;
2832
+ }
2833
+ }
2834
+ yy341:
2835
+ #line 70 "src/lexer.re"
2836
+ { return rbs_next_token(lexer, kATTRWRITER); }
2837
+ #line 2838 "src/lexer.c"
2838
+ yy342:
2839
+ rbs_skip(lexer);
2840
+ yych = rbs_peek(lexer);
2841
+ if (yych != 'r') goto yy53;
2842
+ rbs_skip(lexer);
2843
+ yych = rbs_peek(lexer);
2844
+ if (yych <= '=') {
2845
+ if (yych <= '/') {
2846
+ if (yych == '!') goto yy109;
2847
+ } else {
2848
+ if (yych <= '9') goto yy52;
2849
+ if (yych >= '=') goto yy110;
2850
+ }
2851
+ } else {
2852
+ if (yych <= '^') {
2853
+ if (yych <= '@') goto yy343;
2854
+ if (yych <= 'Z') goto yy52;
2855
+ } else {
2856
+ if (yych == '`') goto yy343;
2857
+ if (yych <= 'z') goto yy52;
2858
+ }
2859
+ }
2860
+ yy343:
2861
+ #line 68 "src/lexer.re"
2862
+ { return rbs_next_token(lexer, kATTRACCESSOR); }
2863
+ #line 2864 "src/lexer.c"
2864
+ }
2865
+ #line 150 "src/lexer.re"
2866
+
2867
+ }