rbs 3.10.4 → 4.0.0

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