rbs 4.0.0.dev.4 → 4.0.0.dev.5

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