rbs 4.1.3-java → 4.2.0.pre.1-java

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