ruby-lsp 0.1.0 → 0.2.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +35 -0
- data/README.md +2 -1
- data/VERSION +1 -1
- data/exe/ruby-lsp +1 -3
- data/lib/ruby-lsp.rb +2 -2
- data/lib/ruby_lsp/document.rb +10 -3
- data/lib/ruby_lsp/handler.rb +30 -134
- data/lib/ruby_lsp/internal.rb +3 -1
- data/lib/ruby_lsp/requests/code_actions.rb +2 -0
- data/lib/ruby_lsp/requests/diagnostics.rb +14 -9
- data/lib/ruby_lsp/requests/document_highlight.rb +27 -42
- data/lib/ruby_lsp/requests/document_link.rb +59 -0
- data/lib/ruby_lsp/requests/document_symbol.rb +2 -0
- data/lib/ruby_lsp/requests/folding_ranges.rb +26 -21
- data/lib/ruby_lsp/requests/formatting.rb +21 -16
- data/lib/ruby_lsp/requests/selection_ranges.rb +2 -0
- data/lib/ruby_lsp/requests/semantic_highlighting.rb +85 -11
- data/lib/ruby_lsp/requests/support/highlight_target.rb +88 -0
- data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +9 -2
- data/lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb +61 -0
- data/lib/ruby_lsp/requests/support/rubocop_formatting_runner.rb +50 -0
- data/lib/ruby_lsp/requests.rb +14 -1
- data/lib/ruby_lsp/server.rb +192 -0
- data/lib/ruby_lsp/store.rb +12 -5
- metadata +10 -87
- data/.github/dependabot.yml +0 -11
- data/.github/probots.yml +0 -2
- data/.github/pull_request_template.md +0 -15
- data/.github/workflows/ci.yml +0 -31
- data/.github/workflows/publish_docs.yml +0 -32
- data/.gitignore +0 -9
- data/.rubocop.yml +0 -39
- data/.vscode/extensions.json +0 -5
- data/.vscode/settings.json +0 -5
- data/.vscode/tasks.json +0 -25
- data/CODE_OF_CONDUCT.md +0 -78
- data/Gemfile +0 -17
- data/Gemfile.lock +0 -124
- data/Rakefile +0 -21
- data/bin/rubocop +0 -29
- data/bin/tapioca +0 -29
- data/bin/test +0 -9
- data/dev.yml +0 -20
- data/lib/ruby_lsp/cli.rb +0 -88
- data/lib/ruby_lsp/requests/rubocop_request.rb +0 -60
- data/rakelib/check_docs.rake +0 -57
- data/ruby-lsp.gemspec +0 -26
- data/service.yml +0 -2
- data/sorbet/config +0 -4
- data/sorbet/rbi/.rubocop.yml +0 -8
- data/sorbet/rbi/gems/ansi@1.5.0.rbi +0 -338
- data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -522
- data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -418
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -8
- data/sorbet/rbi/gems/debug@1.5.0.rbi +0 -1273
- data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -867
- data/sorbet/rbi/gems/io-console@0.5.11.rbi +0 -8
- data/sorbet/rbi/gems/irb@1.4.1.rbi +0 -376
- data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +0 -7325
- data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -8
- data/sorbet/rbi/gems/minitest-reporters@1.5.0.rbi +0 -612
- data/sorbet/rbi/gems/minitest@5.15.0.rbi +0 -994
- data/sorbet/rbi/gems/parallel@1.22.1.rbi +0 -163
- data/sorbet/rbi/gems/parser@3.1.2.0.rbi +0 -3968
- data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +0 -734
- data/sorbet/rbi/gems/pry@0.14.1.rbi +0 -8
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -227
- data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -1853
- data/sorbet/rbi/gems/rbi@0.0.14.rbi +0 -2337
- data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +0 -1854
- data/sorbet/rbi/gems/reline@0.3.1.rbi +0 -1274
- data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -3852
- data/sorbet/rbi/gems/rubocop-ast@1.18.0.rbi +0 -4180
- data/sorbet/rbi/gems/rubocop-minitest@0.20.0.rbi +0 -1369
- data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -246
- data/sorbet/rbi/gems/rubocop-shopify@2.6.0.rbi +0 -8
- data/sorbet/rbi/gems/rubocop-sorbet@0.6.8.rbi +0 -652
- data/sorbet/rbi/gems/rubocop@1.30.0.rbi +0 -36729
- data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -732
- data/sorbet/rbi/gems/spoom@1.1.11.rbi +0 -1600
- data/sorbet/rbi/gems/syntax_tree@2.7.1.rbi +0 -6777
- data/sorbet/rbi/gems/tapioca@0.8.1.rbi +0 -1972
- data/sorbet/rbi/gems/thor@1.2.1.rbi +0 -2921
- data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +0 -27
- data/sorbet/rbi/gems/unparser@0.6.5.rbi +0 -2789
- data/sorbet/rbi/gems/webrick@1.7.0.rbi +0 -1779
- data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +0 -289
- data/sorbet/rbi/gems/yard@0.9.27.rbi +0 -13048
- data/sorbet/rbi/shims/fiddle.rbi +0 -4
- data/sorbet/rbi/shims/hash.rbi +0 -6
- data/sorbet/rbi/shims/rdoc.rbi +0 -4
- data/sorbet/tapioca/config.yml +0 -13
- data/sorbet/tapioca/require.rb +0 -7
@@ -1,3968 +0,0 @@
|
|
1
|
-
# typed: true
|
2
|
-
|
3
|
-
# DO NOT EDIT MANUALLY
|
4
|
-
# This is an autogenerated file for types exported from the `parser` gem.
|
5
|
-
# Please instead update this file by running `bin/tapioca gem parser`.
|
6
|
-
|
7
|
-
# @api public
|
8
|
-
module Parser
|
9
|
-
class << self
|
10
|
-
private
|
11
|
-
|
12
|
-
def warn_syntax_deviation(feature, version); end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# @api public
|
17
|
-
module Parser::AST; end
|
18
|
-
|
19
|
-
# {Parser::AST::Node} contains information about a single AST node and its
|
20
|
-
# child nodes. It extends the basic [AST::Node](http://rdoc.info/gems/ast/AST/Node)
|
21
|
-
# class provided by gem [ast](http://rdoc.info/gems/ast).
|
22
|
-
#
|
23
|
-
# @api public
|
24
|
-
class Parser::AST::Node < ::AST::Node
|
25
|
-
# Assigns various properties to this AST node. Currently only the
|
26
|
-
# location can be set.
|
27
|
-
#
|
28
|
-
# @api public
|
29
|
-
# @option properties
|
30
|
-
# @param properties [Hash]
|
31
|
-
def assign_properties(properties); end
|
32
|
-
|
33
|
-
# Source map for this Node.
|
34
|
-
#
|
35
|
-
# @api public
|
36
|
-
# @return [Parser::Source::Map]
|
37
|
-
def loc; end
|
38
|
-
|
39
|
-
# Source map for this Node.
|
40
|
-
#
|
41
|
-
# @api public
|
42
|
-
# @return [Parser::Source::Map]
|
43
|
-
def location; end
|
44
|
-
end
|
45
|
-
|
46
|
-
# @api public
|
47
|
-
class Parser::AST::Processor < ::AST::Processor
|
48
|
-
# @api public
|
49
|
-
def on_alias(node); end
|
50
|
-
|
51
|
-
# @api public
|
52
|
-
def on_and(node); end
|
53
|
-
|
54
|
-
# @api public
|
55
|
-
def on_and_asgn(node); end
|
56
|
-
|
57
|
-
# @api public
|
58
|
-
# @private
|
59
|
-
def on_arg(node); end
|
60
|
-
|
61
|
-
# @api public
|
62
|
-
def on_arg_expr(node); end
|
63
|
-
|
64
|
-
# @api public
|
65
|
-
def on_args(node); end
|
66
|
-
|
67
|
-
# @api public
|
68
|
-
def on_argument(node); end
|
69
|
-
|
70
|
-
# @api public
|
71
|
-
def on_array(node); end
|
72
|
-
|
73
|
-
# @api public
|
74
|
-
def on_array_pattern(node); end
|
75
|
-
|
76
|
-
# @api public
|
77
|
-
def on_array_pattern_with_tail(node); end
|
78
|
-
|
79
|
-
# @api public
|
80
|
-
# @private
|
81
|
-
def on_back_ref(node); end
|
82
|
-
|
83
|
-
# @api public
|
84
|
-
def on_begin(node); end
|
85
|
-
|
86
|
-
# @api public
|
87
|
-
def on_block(node); end
|
88
|
-
|
89
|
-
# @api public
|
90
|
-
def on_block_pass(node); end
|
91
|
-
|
92
|
-
# @api public
|
93
|
-
# @private
|
94
|
-
def on_blockarg(node); end
|
95
|
-
|
96
|
-
# @api public
|
97
|
-
def on_blockarg_expr(node); end
|
98
|
-
|
99
|
-
# @api public
|
100
|
-
def on_break(node); end
|
101
|
-
|
102
|
-
# @api public
|
103
|
-
def on_case(node); end
|
104
|
-
|
105
|
-
# @api public
|
106
|
-
def on_case_match(node); end
|
107
|
-
|
108
|
-
# @api public
|
109
|
-
def on_casgn(node); end
|
110
|
-
|
111
|
-
# @api public
|
112
|
-
def on_class(node); end
|
113
|
-
|
114
|
-
# @api public
|
115
|
-
def on_const(node); end
|
116
|
-
|
117
|
-
# @api public
|
118
|
-
def on_const_pattern(node); end
|
119
|
-
|
120
|
-
# @api public
|
121
|
-
def on_csend(node); end
|
122
|
-
|
123
|
-
# @api public
|
124
|
-
# @private
|
125
|
-
def on_cvar(node); end
|
126
|
-
|
127
|
-
# @api public
|
128
|
-
# @private
|
129
|
-
def on_cvasgn(node); end
|
130
|
-
|
131
|
-
# @api public
|
132
|
-
def on_def(node); end
|
133
|
-
|
134
|
-
# @api public
|
135
|
-
def on_defined?(node); end
|
136
|
-
|
137
|
-
# @api public
|
138
|
-
def on_defs(node); end
|
139
|
-
|
140
|
-
# @api public
|
141
|
-
def on_dstr(node); end
|
142
|
-
|
143
|
-
# @api public
|
144
|
-
def on_dsym(node); end
|
145
|
-
|
146
|
-
# @api public
|
147
|
-
def on_eflipflop(node); end
|
148
|
-
|
149
|
-
# @api public
|
150
|
-
def on_empty_else(node); end
|
151
|
-
|
152
|
-
# @api public
|
153
|
-
def on_ensure(node); end
|
154
|
-
|
155
|
-
# @api public
|
156
|
-
def on_erange(node); end
|
157
|
-
|
158
|
-
# @api public
|
159
|
-
def on_find_pattern(node); end
|
160
|
-
|
161
|
-
# @api public
|
162
|
-
def on_for(node); end
|
163
|
-
|
164
|
-
# @api public
|
165
|
-
# @private
|
166
|
-
def on_forward_arg(node); end
|
167
|
-
|
168
|
-
# @api public
|
169
|
-
# @private
|
170
|
-
def on_gvar(node); end
|
171
|
-
|
172
|
-
# @api public
|
173
|
-
# @private
|
174
|
-
def on_gvasgn(node); end
|
175
|
-
|
176
|
-
# @api public
|
177
|
-
def on_hash(node); end
|
178
|
-
|
179
|
-
# @api public
|
180
|
-
def on_hash_pattern(node); end
|
181
|
-
|
182
|
-
# @api public
|
183
|
-
def on_if(node); end
|
184
|
-
|
185
|
-
# @api public
|
186
|
-
def on_if_guard(node); end
|
187
|
-
|
188
|
-
# @api public
|
189
|
-
def on_iflipflop(node); end
|
190
|
-
|
191
|
-
# @api public
|
192
|
-
def on_in_match(node); end
|
193
|
-
|
194
|
-
# @api public
|
195
|
-
def on_in_pattern(node); end
|
196
|
-
|
197
|
-
# @api public
|
198
|
-
def on_index(node); end
|
199
|
-
|
200
|
-
# @api public
|
201
|
-
def on_indexasgn(node); end
|
202
|
-
|
203
|
-
# @api public
|
204
|
-
def on_irange(node); end
|
205
|
-
|
206
|
-
# @api public
|
207
|
-
# @private
|
208
|
-
def on_ivar(node); end
|
209
|
-
|
210
|
-
# @api public
|
211
|
-
# @private
|
212
|
-
def on_ivasgn(node); end
|
213
|
-
|
214
|
-
# @api public
|
215
|
-
# @private
|
216
|
-
def on_kwarg(node); end
|
217
|
-
|
218
|
-
# @api public
|
219
|
-
def on_kwargs(node); end
|
220
|
-
|
221
|
-
# @api public
|
222
|
-
def on_kwbegin(node); end
|
223
|
-
|
224
|
-
# @api public
|
225
|
-
# @private
|
226
|
-
def on_kwoptarg(node); end
|
227
|
-
|
228
|
-
# @api public
|
229
|
-
# @private
|
230
|
-
def on_kwrestarg(node); end
|
231
|
-
|
232
|
-
# @api public
|
233
|
-
def on_kwsplat(node); end
|
234
|
-
|
235
|
-
# @api public
|
236
|
-
def on_lambda(node); end
|
237
|
-
|
238
|
-
# @api public
|
239
|
-
# @private
|
240
|
-
def on_lvar(node); end
|
241
|
-
|
242
|
-
# @api public
|
243
|
-
# @private
|
244
|
-
def on_lvasgn(node); end
|
245
|
-
|
246
|
-
# @api public
|
247
|
-
def on_masgn(node); end
|
248
|
-
|
249
|
-
# @api public
|
250
|
-
def on_match_alt(node); end
|
251
|
-
|
252
|
-
# @api public
|
253
|
-
def on_match_as(node); end
|
254
|
-
|
255
|
-
# @api public
|
256
|
-
def on_match_current_line(node); end
|
257
|
-
|
258
|
-
# @api public
|
259
|
-
def on_match_pattern(node); end
|
260
|
-
|
261
|
-
# @api public
|
262
|
-
def on_match_pattern_p(node); end
|
263
|
-
|
264
|
-
# @api public
|
265
|
-
def on_match_rest(node); end
|
266
|
-
|
267
|
-
# @api public
|
268
|
-
# @private
|
269
|
-
def on_match_var(node); end
|
270
|
-
|
271
|
-
# @api public
|
272
|
-
def on_match_with_lvasgn(node); end
|
273
|
-
|
274
|
-
# @api public
|
275
|
-
def on_mlhs(node); end
|
276
|
-
|
277
|
-
# @api public
|
278
|
-
def on_module(node); end
|
279
|
-
|
280
|
-
# @api public
|
281
|
-
def on_next(node); end
|
282
|
-
|
283
|
-
# @api public
|
284
|
-
def on_not(node); end
|
285
|
-
|
286
|
-
# @api public
|
287
|
-
# @private
|
288
|
-
def on_nth_ref(node); end
|
289
|
-
|
290
|
-
# @api public
|
291
|
-
def on_numblock(node); end
|
292
|
-
|
293
|
-
# @api public
|
294
|
-
def on_op_asgn(node); end
|
295
|
-
|
296
|
-
# @api public
|
297
|
-
# @private
|
298
|
-
def on_optarg(node); end
|
299
|
-
|
300
|
-
# @api public
|
301
|
-
def on_or(node); end
|
302
|
-
|
303
|
-
# @api public
|
304
|
-
def on_or_asgn(node); end
|
305
|
-
|
306
|
-
# @api public
|
307
|
-
def on_pair(node); end
|
308
|
-
|
309
|
-
# @api public
|
310
|
-
def on_pin(node); end
|
311
|
-
|
312
|
-
# @api public
|
313
|
-
def on_postexe(node); end
|
314
|
-
|
315
|
-
# @api public
|
316
|
-
def on_preexe(node); end
|
317
|
-
|
318
|
-
# @api public
|
319
|
-
def on_procarg0(node); end
|
320
|
-
|
321
|
-
# @api public
|
322
|
-
def on_redo(node); end
|
323
|
-
|
324
|
-
# @api public
|
325
|
-
def on_regexp(node); end
|
326
|
-
|
327
|
-
# @api public
|
328
|
-
def on_resbody(node); end
|
329
|
-
|
330
|
-
# @api public
|
331
|
-
def on_rescue(node); end
|
332
|
-
|
333
|
-
# @api public
|
334
|
-
# @private
|
335
|
-
def on_restarg(node); end
|
336
|
-
|
337
|
-
# @api public
|
338
|
-
def on_restarg_expr(node); end
|
339
|
-
|
340
|
-
# @api public
|
341
|
-
def on_retry(node); end
|
342
|
-
|
343
|
-
# @api public
|
344
|
-
def on_return(node); end
|
345
|
-
|
346
|
-
# @api public
|
347
|
-
def on_sclass(node); end
|
348
|
-
|
349
|
-
# @api public
|
350
|
-
def on_send(node); end
|
351
|
-
|
352
|
-
# @api public
|
353
|
-
# @private
|
354
|
-
def on_shadowarg(node); end
|
355
|
-
|
356
|
-
# @api public
|
357
|
-
def on_splat(node); end
|
358
|
-
|
359
|
-
# @api public
|
360
|
-
def on_super(node); end
|
361
|
-
|
362
|
-
# @api public
|
363
|
-
def on_undef(node); end
|
364
|
-
|
365
|
-
# @api public
|
366
|
-
def on_unless_guard(node); end
|
367
|
-
|
368
|
-
# @api public
|
369
|
-
def on_until(node); end
|
370
|
-
|
371
|
-
# @api public
|
372
|
-
def on_until_post(node); end
|
373
|
-
|
374
|
-
# @api public
|
375
|
-
def on_var(node); end
|
376
|
-
|
377
|
-
# @api public
|
378
|
-
def on_vasgn(node); end
|
379
|
-
|
380
|
-
# @api public
|
381
|
-
def on_when(node); end
|
382
|
-
|
383
|
-
# @api public
|
384
|
-
def on_while(node); end
|
385
|
-
|
386
|
-
# @api public
|
387
|
-
def on_while_post(node); end
|
388
|
-
|
389
|
-
# @api public
|
390
|
-
def on_xstr(node); end
|
391
|
-
|
392
|
-
# @api public
|
393
|
-
def on_yield(node); end
|
394
|
-
|
395
|
-
# @api public
|
396
|
-
# @private
|
397
|
-
def process_argument_node(node); end
|
398
|
-
|
399
|
-
# @api public
|
400
|
-
def process_regular_node(node); end
|
401
|
-
|
402
|
-
# @api public
|
403
|
-
# @private
|
404
|
-
def process_var_asgn_node(node); end
|
405
|
-
|
406
|
-
# @api public
|
407
|
-
# @private
|
408
|
-
def process_variable_node(node); end
|
409
|
-
end
|
410
|
-
|
411
|
-
# Base class for version-specific parsers.
|
412
|
-
#
|
413
|
-
# @api public
|
414
|
-
class Parser::Base < ::Racc::Parser
|
415
|
-
# @api public
|
416
|
-
# @param builder [Parser::Builders::Default] The AST builder to use.
|
417
|
-
# @return [Base] a new instance of Base
|
418
|
-
def initialize(builder = T.unsafe(nil)); end
|
419
|
-
|
420
|
-
# @api public
|
421
|
-
def builder; end
|
422
|
-
|
423
|
-
# @api public
|
424
|
-
def context; end
|
425
|
-
|
426
|
-
# @api public
|
427
|
-
def current_arg_stack; end
|
428
|
-
|
429
|
-
# @api public
|
430
|
-
# @return [Parser::Diagnostic::Engine]
|
431
|
-
def diagnostics; end
|
432
|
-
|
433
|
-
# @api public
|
434
|
-
def lexer; end
|
435
|
-
|
436
|
-
# @api public
|
437
|
-
def max_numparam_stack; end
|
438
|
-
|
439
|
-
# Parses a source buffer and returns the AST, or `nil` in case of a non fatal error.
|
440
|
-
#
|
441
|
-
# @api public
|
442
|
-
# @param source_buffer [Parser::Source::Buffer] The source buffer to parse.
|
443
|
-
# @return [Parser::AST::Node, nil]
|
444
|
-
def parse(source_buffer); end
|
445
|
-
|
446
|
-
# Parses a source buffer and returns the AST and the source code comments.
|
447
|
-
#
|
448
|
-
# @api public
|
449
|
-
# @return [Array]
|
450
|
-
# @see #parse
|
451
|
-
# @see Parser::Source::Comment#associate
|
452
|
-
def parse_with_comments(source_buffer); end
|
453
|
-
|
454
|
-
# @api public
|
455
|
-
def pattern_hash_keys; end
|
456
|
-
|
457
|
-
# @api public
|
458
|
-
def pattern_variables; end
|
459
|
-
|
460
|
-
# Resets the state of the parser.
|
461
|
-
#
|
462
|
-
# @api public
|
463
|
-
def reset; end
|
464
|
-
|
465
|
-
# @api public
|
466
|
-
def source_buffer; end
|
467
|
-
|
468
|
-
# @api public
|
469
|
-
# @return [Parser::StaticEnvironment]
|
470
|
-
def static_env; end
|
471
|
-
|
472
|
-
# Parses a source buffer and returns the AST, the source code comments,
|
473
|
-
# and the tokens emitted by the lexer. In case of a fatal error, a {SyntaxError}
|
474
|
-
# is raised, unless `recover` is true. In case of an error
|
475
|
-
# (non-fatal or recovered), `nil` is returned instead of the AST, and
|
476
|
-
# comments as well as tokens are only returned up to the location of
|
477
|
-
# the error.
|
478
|
-
#
|
479
|
-
# Currently, token stream format returned by #tokenize is not documented,
|
480
|
-
# but is considered part of a public API and only changed according
|
481
|
-
# to Semantic Versioning.
|
482
|
-
#
|
483
|
-
# However, note that the exact token composition of various constructs
|
484
|
-
# might vary. For example, a string `"foo"` is represented equally well
|
485
|
-
# by `:tSTRING_BEG " :tSTRING_CONTENT foo :tSTRING_END "` and
|
486
|
-
# `:tSTRING "foo"`; such details must not be relied upon.
|
487
|
-
#
|
488
|
-
# @api public
|
489
|
-
# @param source_buffer [Parser::Source::Buffer]
|
490
|
-
# @param recover [Boolean] If true, recover from syntax errors. False by default.
|
491
|
-
# @return [Array]
|
492
|
-
def tokenize(source_buffer, recover = T.unsafe(nil)); end
|
493
|
-
|
494
|
-
private
|
495
|
-
|
496
|
-
# @api public
|
497
|
-
def check_kwarg_name(name_t); end
|
498
|
-
|
499
|
-
# @api public
|
500
|
-
def diagnostic(level, reason, arguments, location_t, highlights_ts = T.unsafe(nil)); end
|
501
|
-
|
502
|
-
# @api public
|
503
|
-
def next_token; end
|
504
|
-
|
505
|
-
# @api public
|
506
|
-
def on_error(error_token_id, error_value, value_stack); end
|
507
|
-
|
508
|
-
class << self
|
509
|
-
# @api public
|
510
|
-
# @return [Parser::Base] parser with the default options set.
|
511
|
-
def default_parser; end
|
512
|
-
|
513
|
-
# Parses a string of Ruby code and returns the AST. If the source
|
514
|
-
# cannot be parsed, {SyntaxError} is raised and a diagnostic is
|
515
|
-
# printed to `stderr`.
|
516
|
-
#
|
517
|
-
# @api public
|
518
|
-
# @example
|
519
|
-
# Parser::Base.parse('puts "hello"')
|
520
|
-
# @param string [String] The block of code to parse.
|
521
|
-
# @param file [String] The name of the file the code originated from.
|
522
|
-
# @param line [Numeric] The initial line number.
|
523
|
-
# @return [Parser::AST::Node]
|
524
|
-
def parse(string, file = T.unsafe(nil), line = T.unsafe(nil)); end
|
525
|
-
|
526
|
-
# Parses Ruby source code by reading it from a file. If the source
|
527
|
-
# cannot be parsed, {SyntaxError} is raised and a diagnostic is
|
528
|
-
# printed to `stderr`.
|
529
|
-
#
|
530
|
-
# @api public
|
531
|
-
# @param filename [String] Path to the file to parse.
|
532
|
-
# @return [Parser::AST::Node]
|
533
|
-
# @see #parse
|
534
|
-
def parse_file(filename); end
|
535
|
-
|
536
|
-
# Parses Ruby source code by reading it from a file and returns the AST and
|
537
|
-
# comments. If the source cannot be parsed, {SyntaxError} is raised and a
|
538
|
-
# diagnostic is printed to `stderr`.
|
539
|
-
#
|
540
|
-
# @api public
|
541
|
-
# @param filename [String] Path to the file to parse.
|
542
|
-
# @return [Array]
|
543
|
-
# @see #parse
|
544
|
-
def parse_file_with_comments(filename); end
|
545
|
-
|
546
|
-
# Parses a string of Ruby code and returns the AST and comments. If the
|
547
|
-
# source cannot be parsed, {SyntaxError} is raised and a diagnostic is
|
548
|
-
# printed to `stderr`.
|
549
|
-
#
|
550
|
-
# @api public
|
551
|
-
# @example
|
552
|
-
# Parser::Base.parse_with_comments('puts "hello"')
|
553
|
-
# @param string [String] The block of code to parse.
|
554
|
-
# @param file [String] The name of the file the code originated from.
|
555
|
-
# @param line [Numeric] The initial line number.
|
556
|
-
# @return [Array]
|
557
|
-
def parse_with_comments(string, file = T.unsafe(nil), line = T.unsafe(nil)); end
|
558
|
-
|
559
|
-
private
|
560
|
-
|
561
|
-
# @api public
|
562
|
-
def setup_source_buffer(file, line, string, encoding); end
|
563
|
-
end
|
564
|
-
end
|
565
|
-
|
566
|
-
# @api public
|
567
|
-
module Parser::Builders; end
|
568
|
-
|
569
|
-
class Parser::Builders::Default
|
570
|
-
def initialize; end
|
571
|
-
|
572
|
-
def __ENCODING__(__ENCODING__t); end
|
573
|
-
def __FILE__(__FILE__t); end
|
574
|
-
def __LINE__(__LINE__t); end
|
575
|
-
def accessible(node); end
|
576
|
-
def alias(alias_t, to, from); end
|
577
|
-
def arg(name_t); end
|
578
|
-
def arg_expr(expr); end
|
579
|
-
def args(begin_t, args, end_t, check_args = T.unsafe(nil)); end
|
580
|
-
def array(begin_t, elements, end_t); end
|
581
|
-
def array_pattern(lbrack_t, elements, rbrack_t); end
|
582
|
-
def assign(lhs, eql_t, rhs); end
|
583
|
-
def assignable(node); end
|
584
|
-
def associate(begin_t, pairs, end_t); end
|
585
|
-
def attr_asgn(receiver, dot_t, selector_t); end
|
586
|
-
def back_ref(token); end
|
587
|
-
def begin(begin_t, body, end_t); end
|
588
|
-
def begin_body(compound_stmt, rescue_bodies = T.unsafe(nil), else_t = T.unsafe(nil), else_ = T.unsafe(nil), ensure_t = T.unsafe(nil), ensure_ = T.unsafe(nil)); end
|
589
|
-
def begin_keyword(begin_t, body, end_t); end
|
590
|
-
def binary_op(receiver, operator_t, arg); end
|
591
|
-
def block(method_call, begin_t, args, body, end_t); end
|
592
|
-
def block_pass(amper_t, arg); end
|
593
|
-
def blockarg(amper_t, name_t); end
|
594
|
-
def blockarg_expr(amper_t, expr); end
|
595
|
-
def call_lambda(lambda_t); end
|
596
|
-
def call_method(receiver, dot_t, selector_t, lparen_t = T.unsafe(nil), args = T.unsafe(nil), rparen_t = T.unsafe(nil)); end
|
597
|
-
def call_type_for_dot(dot_t); end
|
598
|
-
def case(case_t, expr, when_bodies, else_t, else_body, end_t); end
|
599
|
-
def case_match(case_t, expr, in_bodies, else_t, else_body, end_t); end
|
600
|
-
def character(char_t); end
|
601
|
-
def complex(complex_t); end
|
602
|
-
def compstmt(statements); end
|
603
|
-
def condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t); end
|
604
|
-
def condition_mod(if_true, if_false, cond_t, cond); end
|
605
|
-
def const(name_t); end
|
606
|
-
def const_fetch(scope, t_colon2, name_t); end
|
607
|
-
def const_global(t_colon3, name_t); end
|
608
|
-
def const_op_assignable(node); end
|
609
|
-
def const_pattern(const, ldelim_t, pattern, rdelim_t); end
|
610
|
-
def cvar(token); end
|
611
|
-
def dedent_string(node, dedent_level); end
|
612
|
-
def def_class(class_t, name, lt_t, superclass, body, end_t); end
|
613
|
-
def def_endless_method(def_t, name_t, args, assignment_t, body); end
|
614
|
-
def def_endless_singleton(def_t, definee, dot_t, name_t, args, assignment_t, body); end
|
615
|
-
def def_method(def_t, name_t, args, body, end_t); end
|
616
|
-
def def_module(module_t, name, body, end_t); end
|
617
|
-
def def_sclass(class_t, lshft_t, expr, body, end_t); end
|
618
|
-
def def_singleton(def_t, definee, dot_t, name_t, args, body, end_t); end
|
619
|
-
def emit_file_line_as_literals; end
|
620
|
-
def emit_file_line_as_literals=(_arg0); end
|
621
|
-
def false(false_t); end
|
622
|
-
def find_pattern(lbrack_t, elements, rbrack_t); end
|
623
|
-
def float(float_t); end
|
624
|
-
def for(for_t, iterator, in_t, iteratee, do_t, body, end_t); end
|
625
|
-
def forward_arg(dots_t); end
|
626
|
-
def forward_only_args(begin_t, dots_t, end_t); end
|
627
|
-
def forwarded_args(dots_t); end
|
628
|
-
def gvar(token); end
|
629
|
-
def hash_pattern(lbrace_t, kwargs, rbrace_t); end
|
630
|
-
def ident(token); end
|
631
|
-
def if_guard(if_t, if_body); end
|
632
|
-
def in_match(lhs, in_t, rhs); end
|
633
|
-
def in_pattern(in_t, pattern, guard, then_t, body); end
|
634
|
-
def index(receiver, lbrack_t, indexes, rbrack_t); end
|
635
|
-
def index_asgn(receiver, lbrack_t, indexes, rbrack_t); end
|
636
|
-
def integer(integer_t); end
|
637
|
-
def ivar(token); end
|
638
|
-
def keyword_cmd(type, keyword_t, lparen_t = T.unsafe(nil), args = T.unsafe(nil), rparen_t = T.unsafe(nil)); end
|
639
|
-
def kwarg(name_t); end
|
640
|
-
def kwnilarg(dstar_t, nil_t); end
|
641
|
-
def kwoptarg(name_t, value); end
|
642
|
-
def kwrestarg(dstar_t, name_t = T.unsafe(nil)); end
|
643
|
-
def kwsplat(dstar_t, arg); end
|
644
|
-
def logical_op(type, lhs, op_t, rhs); end
|
645
|
-
def loop(type, keyword_t, cond, do_t, body, end_t); end
|
646
|
-
def loop_mod(type, body, keyword_t, cond); end
|
647
|
-
def match_alt(left, pipe_t, right); end
|
648
|
-
def match_as(value, assoc_t, as); end
|
649
|
-
def match_hash_var(name_t); end
|
650
|
-
def match_hash_var_from_str(begin_t, strings, end_t); end
|
651
|
-
def match_label(label_type, label); end
|
652
|
-
def match_nil_pattern(dstar_t, nil_t); end
|
653
|
-
def match_op(receiver, match_t, arg); end
|
654
|
-
def match_pair(label_type, label, value); end
|
655
|
-
def match_pattern(lhs, match_t, rhs); end
|
656
|
-
def match_pattern_p(lhs, match_t, rhs); end
|
657
|
-
def match_rest(star_t, name_t = T.unsafe(nil)); end
|
658
|
-
def match_var(name_t); end
|
659
|
-
def match_with_trailing_comma(match, comma_t); end
|
660
|
-
def multi_assign(lhs, eql_t, rhs); end
|
661
|
-
def multi_lhs(begin_t, items, end_t); end
|
662
|
-
def nil(nil_t); end
|
663
|
-
def not_op(not_t, begin_t = T.unsafe(nil), receiver = T.unsafe(nil), end_t = T.unsafe(nil)); end
|
664
|
-
def nth_ref(token); end
|
665
|
-
def numargs(max_numparam); end
|
666
|
-
def objc_kwarg(kwname_t, assoc_t, name_t); end
|
667
|
-
def objc_restarg(star_t, name = T.unsafe(nil)); end
|
668
|
-
def objc_varargs(pair, rest_of_varargs); end
|
669
|
-
def op_assign(lhs, op_t, rhs); end
|
670
|
-
def optarg(name_t, eql_t, value); end
|
671
|
-
def pair(key, assoc_t, value); end
|
672
|
-
def pair_keyword(key_t, value); end
|
673
|
-
def pair_label(key_t); end
|
674
|
-
def pair_list_18(list); end
|
675
|
-
def pair_quoted(begin_t, parts, end_t, value); end
|
676
|
-
def parser; end
|
677
|
-
def parser=(_arg0); end
|
678
|
-
def pin(pin_t, var); end
|
679
|
-
def postexe(postexe_t, lbrace_t, compstmt, rbrace_t); end
|
680
|
-
def preexe(preexe_t, lbrace_t, compstmt, rbrace_t); end
|
681
|
-
def procarg0(arg); end
|
682
|
-
def range_exclusive(lhs, dot3_t, rhs); end
|
683
|
-
def range_inclusive(lhs, dot2_t, rhs); end
|
684
|
-
def rational(rational_t); end
|
685
|
-
def regexp_compose(begin_t, parts, end_t, options); end
|
686
|
-
def regexp_options(regopt_t); end
|
687
|
-
def rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt); end
|
688
|
-
def restarg(star_t, name_t = T.unsafe(nil)); end
|
689
|
-
def restarg_expr(star_t, expr = T.unsafe(nil)); end
|
690
|
-
def self(token); end
|
691
|
-
def shadowarg(name_t); end
|
692
|
-
def splat(star_t, arg = T.unsafe(nil)); end
|
693
|
-
def string(string_t); end
|
694
|
-
def string_compose(begin_t, parts, end_t); end
|
695
|
-
def string_internal(string_t); end
|
696
|
-
def symbol(symbol_t); end
|
697
|
-
def symbol_compose(begin_t, parts, end_t); end
|
698
|
-
def symbol_internal(symbol_t); end
|
699
|
-
def symbols_compose(begin_t, parts, end_t); end
|
700
|
-
def ternary(cond, question_t, if_true, colon_t, if_false); end
|
701
|
-
def true(true_t); end
|
702
|
-
def unary_num(unary_t, numeric); end
|
703
|
-
def unary_op(op_t, receiver); end
|
704
|
-
def undef_method(undef_t, names); end
|
705
|
-
def unless_guard(unless_t, unless_body); end
|
706
|
-
def when(when_t, patterns, then_t, body); end
|
707
|
-
def word(parts); end
|
708
|
-
def words_compose(begin_t, parts, end_t); end
|
709
|
-
def xstring_compose(begin_t, parts, end_t); end
|
710
|
-
|
711
|
-
private
|
712
|
-
|
713
|
-
def arg_name_collides?(this_name, that_name); end
|
714
|
-
def arg_prefix_map(op_t, name_t = T.unsafe(nil)); end
|
715
|
-
def binary_op_map(left_e, op_t, right_e); end
|
716
|
-
def block_map(receiver_l, begin_t, end_t); end
|
717
|
-
def check_assignment_to_numparam(name, loc); end
|
718
|
-
def check_condition(cond); end
|
719
|
-
def check_duplicate_arg(this_arg, map = T.unsafe(nil)); end
|
720
|
-
def check_duplicate_args(args, map = T.unsafe(nil)); end
|
721
|
-
def check_duplicate_pattern_key(name, loc); end
|
722
|
-
def check_duplicate_pattern_variable(name, loc); end
|
723
|
-
def check_lvar_name(name, loc); end
|
724
|
-
def check_reserved_for_numparam(name, loc); end
|
725
|
-
def collapse_string_parts?(parts); end
|
726
|
-
def collection_map(begin_t, parts, end_t); end
|
727
|
-
def condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t); end
|
728
|
-
def constant_map(scope, colon2_t, name_t); end
|
729
|
-
def definition_map(keyword_t, operator_t, name_t, end_t); end
|
730
|
-
def delimited_string_map(string_t); end
|
731
|
-
def diagnostic(type, reason, arguments, location, highlights = T.unsafe(nil)); end
|
732
|
-
def eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e); end
|
733
|
-
def endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e); end
|
734
|
-
def expr_map(loc); end
|
735
|
-
def for_map(keyword_t, in_t, begin_t, end_t); end
|
736
|
-
def guard_map(keyword_t, guard_body_e); end
|
737
|
-
def index_map(receiver_e, lbrack_t, rbrack_t); end
|
738
|
-
def join_exprs(left_expr, right_expr); end
|
739
|
-
def keyword_map(keyword_t, begin_t, args, end_t); end
|
740
|
-
def keyword_mod_map(pre_e, keyword_t, post_e); end
|
741
|
-
def kwarg_map(name_t, value_e = T.unsafe(nil)); end
|
742
|
-
def kwargs?(node); end
|
743
|
-
def loc(token); end
|
744
|
-
def module_definition_map(keyword_t, name_e, operator_t, end_t); end
|
745
|
-
def n(type, children, source_map); end
|
746
|
-
def n0(type, source_map); end
|
747
|
-
def numeric(kind, token); end
|
748
|
-
def pair_keyword_map(key_t, value_e); end
|
749
|
-
def pair_quoted_map(begin_t, end_t, value_e); end
|
750
|
-
def prefix_string_map(symbol); end
|
751
|
-
def range_map(start_e, op_t, end_e); end
|
752
|
-
def regexp_map(begin_t, end_t, options_e); end
|
753
|
-
def rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e); end
|
754
|
-
def rewrite_hash_args_to_kwargs(args); end
|
755
|
-
def send_binary_op_map(lhs_e, selector_t, rhs_e); end
|
756
|
-
def send_index_map(receiver_e, lbrack_t, rbrack_t); end
|
757
|
-
def send_map(receiver_e, dot_t, selector_t, begin_t = T.unsafe(nil), args = T.unsafe(nil), end_t = T.unsafe(nil)); end
|
758
|
-
def send_unary_op_map(selector_t, arg_e); end
|
759
|
-
def static_regexp(parts, options); end
|
760
|
-
def static_regexp_node(node); end
|
761
|
-
def static_string(nodes); end
|
762
|
-
def string_map(begin_t, parts, end_t); end
|
763
|
-
def string_value(token); end
|
764
|
-
def ternary_map(begin_e, question_t, mid_e, colon_t, end_e); end
|
765
|
-
def token_map(token); end
|
766
|
-
def unary_op_map(op_t, arg_e = T.unsafe(nil)); end
|
767
|
-
def unquoted_map(token); end
|
768
|
-
def validate_definee(definee); end
|
769
|
-
def validate_no_forward_arg_after_restarg(args); end
|
770
|
-
def value(token); end
|
771
|
-
def var_send_map(variable_e); end
|
772
|
-
def variable_map(name_t); end
|
773
|
-
|
774
|
-
class << self
|
775
|
-
def emit_arg_inside_procarg0; end
|
776
|
-
def emit_arg_inside_procarg0=(_arg0); end
|
777
|
-
def emit_encoding; end
|
778
|
-
def emit_encoding=(_arg0); end
|
779
|
-
def emit_forward_arg; end
|
780
|
-
def emit_forward_arg=(_arg0); end
|
781
|
-
def emit_index; end
|
782
|
-
def emit_index=(_arg0); end
|
783
|
-
def emit_kwargs; end
|
784
|
-
def emit_kwargs=(_arg0); end
|
785
|
-
def emit_lambda; end
|
786
|
-
def emit_lambda=(_arg0); end
|
787
|
-
def emit_match_pattern; end
|
788
|
-
def emit_match_pattern=(_arg0); end
|
789
|
-
def emit_procarg0; end
|
790
|
-
def emit_procarg0=(_arg0); end
|
791
|
-
def modernize; end
|
792
|
-
end
|
793
|
-
end
|
794
|
-
|
795
|
-
# {Parser::ClobberingError} is raised when {Parser::Source::Rewriter}
|
796
|
-
# detects a clobbering rewrite action. This class inherits {RuntimeError}
|
797
|
-
# rather than {StandardError} for backward compatibility.
|
798
|
-
#
|
799
|
-
# @api public
|
800
|
-
class Parser::ClobberingError < ::RuntimeError; end
|
801
|
-
|
802
|
-
# Context of parsing that is represented by a stack of scopes.
|
803
|
-
#
|
804
|
-
# Supported states:
|
805
|
-
# + :class - in the class body (class A; end)
|
806
|
-
# + :module - in the module body (module M; end)
|
807
|
-
# + :sclass - in the singleton class body (class << obj; end)
|
808
|
-
# + :def - in the method body (def m; end)
|
809
|
-
# + :defs - in the singleton method body (def self.m; end)
|
810
|
-
# + :def_open_args - in the arglist of the method definition
|
811
|
-
# keep in mind that it's set **only** after reducing the first argument,
|
812
|
-
# if you need to handle the first argument check `lex_state == expr_fname`
|
813
|
-
# + :block - in the block body (tap {})
|
814
|
-
# + :lambda - in the lambda body (-> {})
|
815
|
-
class Parser::Context
|
816
|
-
# @return [Context] a new instance of Context
|
817
|
-
def initialize; end
|
818
|
-
|
819
|
-
def in_argdef; end
|
820
|
-
def in_argdef=(_arg0); end
|
821
|
-
def in_block; end
|
822
|
-
def in_block=(_arg0); end
|
823
|
-
def in_class; end
|
824
|
-
def in_class=(_arg0); end
|
825
|
-
def in_def; end
|
826
|
-
def in_def=(_arg0); end
|
827
|
-
def in_defined; end
|
828
|
-
def in_defined=(_arg0); end
|
829
|
-
|
830
|
-
# @return [Boolean]
|
831
|
-
def in_dynamic_block?; end
|
832
|
-
|
833
|
-
def in_kwarg; end
|
834
|
-
def in_kwarg=(_arg0); end
|
835
|
-
def in_lambda; end
|
836
|
-
def in_lambda=(_arg0); end
|
837
|
-
def reset; end
|
838
|
-
end
|
839
|
-
|
840
|
-
Parser::Context::FLAGS = T.let(T.unsafe(nil), Array)
|
841
|
-
|
842
|
-
# Stack that holds names of current arguments,
|
843
|
-
# i.e. while parsing
|
844
|
-
# def m1(a = (def m2(b = def m3(c = 1); end); end)); end
|
845
|
-
# ^
|
846
|
-
# stack is [:a, :b, :c]
|
847
|
-
#
|
848
|
-
# Emulates `p->cur_arg` in MRI's parse.y
|
849
|
-
#
|
850
|
-
# @api private
|
851
|
-
class Parser::CurrentArgStack
|
852
|
-
# @api private
|
853
|
-
# @return [CurrentArgStack] a new instance of CurrentArgStack
|
854
|
-
def initialize; end
|
855
|
-
|
856
|
-
# @api private
|
857
|
-
# @return [Boolean]
|
858
|
-
def empty?; end
|
859
|
-
|
860
|
-
# @api private
|
861
|
-
def pop; end
|
862
|
-
|
863
|
-
# @api private
|
864
|
-
def push(value); end
|
865
|
-
|
866
|
-
# @api private
|
867
|
-
def reset; end
|
868
|
-
|
869
|
-
# @api private
|
870
|
-
def set(value); end
|
871
|
-
|
872
|
-
# @api private
|
873
|
-
def stack; end
|
874
|
-
|
875
|
-
# @api private
|
876
|
-
def top; end
|
877
|
-
end
|
878
|
-
|
879
|
-
Parser::CurrentRuby = Parser::Ruby31
|
880
|
-
|
881
|
-
# @api private
|
882
|
-
module Parser::Deprecation
|
883
|
-
# @api private
|
884
|
-
def warn_of_deprecation; end
|
885
|
-
|
886
|
-
# @api private
|
887
|
-
def warned_of_deprecation=(_arg0); end
|
888
|
-
end
|
889
|
-
|
890
|
-
# @api public
|
891
|
-
class Parser::Diagnostic
|
892
|
-
# @api public
|
893
|
-
# @param level [Symbol]
|
894
|
-
# @param reason [Symbol]
|
895
|
-
# @param arguments [Hash]
|
896
|
-
# @param location [Parser::Source::Range]
|
897
|
-
# @param highlights [Array<Parser::Source::Range>]
|
898
|
-
# @return [Diagnostic] a new instance of Diagnostic
|
899
|
-
def initialize(level, reason, arguments, location, highlights = T.unsafe(nil)); end
|
900
|
-
|
901
|
-
# @api public
|
902
|
-
# @return [Symbol] extended arguments that describe the error
|
903
|
-
# @see Parser::MESSAGES
|
904
|
-
def arguments; end
|
905
|
-
|
906
|
-
# Supplementary error-related source ranges.
|
907
|
-
#
|
908
|
-
# @api public
|
909
|
-
# @return [Array<Parser::Source::Range>]
|
910
|
-
def highlights; end
|
911
|
-
|
912
|
-
# @api public
|
913
|
-
# @return [Symbol] diagnostic level
|
914
|
-
# @see LEVELS
|
915
|
-
def level; end
|
916
|
-
|
917
|
-
# Main error-related source range.
|
918
|
-
#
|
919
|
-
# @api public
|
920
|
-
# @return [Parser::Source::Range]
|
921
|
-
def location; end
|
922
|
-
|
923
|
-
# @api public
|
924
|
-
# @return [String] the rendered message.
|
925
|
-
def message; end
|
926
|
-
|
927
|
-
# @api public
|
928
|
-
# @return [Symbol] reason for error
|
929
|
-
# @see Parser::MESSAGES
|
930
|
-
def reason; end
|
931
|
-
|
932
|
-
# Renders the diagnostic message as a clang-like diagnostic.
|
933
|
-
#
|
934
|
-
# @api public
|
935
|
-
# @example
|
936
|
-
# diagnostic.render # =>
|
937
|
-
# # [
|
938
|
-
# # "(fragment:0):1:5: error: unexpected token $end",
|
939
|
-
# # "foo +",
|
940
|
-
# # " ^"
|
941
|
-
# # ]
|
942
|
-
# @return [Array<String>]
|
943
|
-
def render; end
|
944
|
-
|
945
|
-
private
|
946
|
-
|
947
|
-
# If necessary, shrink a `Range` so as to include only the first line.
|
948
|
-
#
|
949
|
-
# @api public
|
950
|
-
# @return [Parser::Source::Range]
|
951
|
-
def first_line_only(range); end
|
952
|
-
|
953
|
-
# If necessary, shrink a `Range` so as to include only the last line.
|
954
|
-
#
|
955
|
-
# @api public
|
956
|
-
# @return [Parser::Source::Range]
|
957
|
-
def last_line_only(range); end
|
958
|
-
|
959
|
-
# Renders one source line in clang diagnostic style, with highlights.
|
960
|
-
#
|
961
|
-
# @api public
|
962
|
-
# @return [Array<String>]
|
963
|
-
def render_line(range, ellipsis = T.unsafe(nil), range_end = T.unsafe(nil)); end
|
964
|
-
end
|
965
|
-
|
966
|
-
class Parser::Diagnostic::Engine
|
967
|
-
def initialize(consumer = T.unsafe(nil)); end
|
968
|
-
|
969
|
-
def all_errors_are_fatal; end
|
970
|
-
def all_errors_are_fatal=(_arg0); end
|
971
|
-
def consumer; end
|
972
|
-
def consumer=(_arg0); end
|
973
|
-
def ignore_warnings; end
|
974
|
-
def ignore_warnings=(_arg0); end
|
975
|
-
def process(diagnostic); end
|
976
|
-
|
977
|
-
protected
|
978
|
-
|
979
|
-
def ignore?(diagnostic); end
|
980
|
-
def raise?(diagnostic); end
|
981
|
-
end
|
982
|
-
|
983
|
-
# Collection of the available diagnostic levels.
|
984
|
-
#
|
985
|
-
# @api public
|
986
|
-
# @return [Array]
|
987
|
-
Parser::Diagnostic::LEVELS = T.let(T.unsafe(nil), Array)
|
988
|
-
|
989
|
-
# line 3 "lib/parser/lexer.rl"
|
990
|
-
#
|
991
|
-
# === BEFORE YOU START ===
|
992
|
-
#
|
993
|
-
# Read the Ruby Hacking Guide chapter 11, available in English at
|
994
|
-
# http://whitequark.org/blog/2013/04/01/ruby-hacking-guide-ch-11-finite-state-lexer/
|
995
|
-
#
|
996
|
-
# Remember two things about Ragel scanners:
|
997
|
-
#
|
998
|
-
# 1) Longest match wins.
|
999
|
-
#
|
1000
|
-
# 2) If two matches have the same length, the first
|
1001
|
-
# in source code wins.
|
1002
|
-
#
|
1003
|
-
# General rules of making Ragel and Bison happy:
|
1004
|
-
#
|
1005
|
-
# * `p` (position) and `@te` contain the index of the character
|
1006
|
-
# they're pointing to ("current"), plus one. `@ts` contains the index
|
1007
|
-
# of the corresponding character. The code for extracting matched token is:
|
1008
|
-
#
|
1009
|
-
# @source_buffer.slice(@ts...@te)
|
1010
|
-
#
|
1011
|
-
# * If your input is `foooooooobar` and the rule is:
|
1012
|
-
#
|
1013
|
-
# 'f' 'o'+
|
1014
|
-
#
|
1015
|
-
# the result will be:
|
1016
|
-
#
|
1017
|
-
# foooooooobar
|
1018
|
-
# ^ ts=0 ^ p=te=9
|
1019
|
-
#
|
1020
|
-
# * A Ragel lexer action should not emit more than one token, unless
|
1021
|
-
# you know what you are doing.
|
1022
|
-
#
|
1023
|
-
# * All Ragel commands (fnext, fgoto, ...) end with a semicolon.
|
1024
|
-
#
|
1025
|
-
# * If an action emits the token and transitions to another state, use
|
1026
|
-
# these Ragel commands:
|
1027
|
-
#
|
1028
|
-
# emit($whatever)
|
1029
|
-
# fnext $next_state; fbreak;
|
1030
|
-
#
|
1031
|
-
# If you perform `fgoto` in an action which does not emit a token nor
|
1032
|
-
# rewinds the stream pointer, the parser's side-effectful,
|
1033
|
-
# context-sensitive lookahead actions will break in a hard to detect
|
1034
|
-
# and debug way.
|
1035
|
-
#
|
1036
|
-
# * If an action does not emit a token:
|
1037
|
-
#
|
1038
|
-
# fgoto $next_state;
|
1039
|
-
#
|
1040
|
-
# * If an action features lookbehind, i.e. matches characters with the
|
1041
|
-
# intent of passing them to another action:
|
1042
|
-
#
|
1043
|
-
# p = @ts - 1
|
1044
|
-
# fgoto $next_state;
|
1045
|
-
#
|
1046
|
-
# or, if the lookbehind consists of a single character:
|
1047
|
-
#
|
1048
|
-
# fhold; fgoto $next_state;
|
1049
|
-
#
|
1050
|
-
# * Ragel merges actions. So, if you have `e_lparen = '(' %act` and
|
1051
|
-
# `c_lparen = '('` and a lexer action `e_lparen | c_lparen`, the result
|
1052
|
-
# _will_ invoke the action `act`.
|
1053
|
-
#
|
1054
|
-
# e_something stands for "something with **e**mbedded action".
|
1055
|
-
#
|
1056
|
-
# * EOF is explicit and is matched by `c_eof`. If you want to introspect
|
1057
|
-
# the state of the lexer, add this rule to the state:
|
1058
|
-
#
|
1059
|
-
# c_eof => do_eof;
|
1060
|
-
#
|
1061
|
-
# * If you proceed past EOF, the lexer will complain:
|
1062
|
-
#
|
1063
|
-
# NoMethodError: undefined method `ord' for nil:NilClass
|
1064
|
-
class Parser::Lexer
|
1065
|
-
# @return [Lexer] a new instance of Lexer
|
1066
|
-
def initialize(version); end
|
1067
|
-
|
1068
|
-
# Return next token: [type, value].
|
1069
|
-
def advance; end
|
1070
|
-
|
1071
|
-
# Returns the value of attribute cmdarg.
|
1072
|
-
def cmdarg; end
|
1073
|
-
|
1074
|
-
# Sets the attribute cmdarg
|
1075
|
-
#
|
1076
|
-
# @param value the value to set the attribute cmdarg to.
|
1077
|
-
def cmdarg=(_arg0); end
|
1078
|
-
|
1079
|
-
# Returns the value of attribute cmdarg_stack.
|
1080
|
-
def cmdarg_stack; end
|
1081
|
-
|
1082
|
-
# Returns the value of attribute command_start.
|
1083
|
-
def command_start; end
|
1084
|
-
|
1085
|
-
# Sets the attribute command_start
|
1086
|
-
#
|
1087
|
-
# @param value the value to set the attribute command_start to.
|
1088
|
-
def command_start=(_arg0); end
|
1089
|
-
|
1090
|
-
# Returns the value of attribute comments.
|
1091
|
-
def comments; end
|
1092
|
-
|
1093
|
-
# Sets the attribute comments
|
1094
|
-
#
|
1095
|
-
# @param value the value to set the attribute comments to.
|
1096
|
-
def comments=(_arg0); end
|
1097
|
-
|
1098
|
-
# Returns the value of attribute cond.
|
1099
|
-
def cond; end
|
1100
|
-
|
1101
|
-
# Sets the attribute cond
|
1102
|
-
#
|
1103
|
-
# @param value the value to set the attribute cond to.
|
1104
|
-
def cond=(_arg0); end
|
1105
|
-
|
1106
|
-
# Returns the value of attribute cond_stack.
|
1107
|
-
def cond_stack; end
|
1108
|
-
|
1109
|
-
# Returns the value of attribute context.
|
1110
|
-
def context; end
|
1111
|
-
|
1112
|
-
# Sets the attribute context
|
1113
|
-
#
|
1114
|
-
# @param value the value to set the attribute context to.
|
1115
|
-
def context=(_arg0); end
|
1116
|
-
|
1117
|
-
def dedent_level; end
|
1118
|
-
|
1119
|
-
# Returns the value of attribute diagnostics.
|
1120
|
-
def diagnostics; end
|
1121
|
-
|
1122
|
-
# Sets the attribute diagnostics
|
1123
|
-
#
|
1124
|
-
# @param value the value to set the attribute diagnostics to.
|
1125
|
-
def diagnostics=(_arg0); end
|
1126
|
-
|
1127
|
-
def encoding; end
|
1128
|
-
|
1129
|
-
# Returns the value of attribute force_utf32.
|
1130
|
-
def force_utf32; end
|
1131
|
-
|
1132
|
-
# Sets the attribute force_utf32
|
1133
|
-
#
|
1134
|
-
# @param value the value to set the attribute force_utf32 to.
|
1135
|
-
def force_utf32=(_arg0); end
|
1136
|
-
|
1137
|
-
# Returns the value of attribute lambda_stack.
|
1138
|
-
def lambda_stack; end
|
1139
|
-
|
1140
|
-
# Returns the value of attribute paren_nest.
|
1141
|
-
def paren_nest; end
|
1142
|
-
|
1143
|
-
def pop_cmdarg; end
|
1144
|
-
def pop_cond; end
|
1145
|
-
def push_cmdarg; end
|
1146
|
-
def push_cond; end
|
1147
|
-
def reset(reset_state = T.unsafe(nil)); end
|
1148
|
-
|
1149
|
-
# Returns the value of attribute source_buffer.
|
1150
|
-
def source_buffer; end
|
1151
|
-
|
1152
|
-
def source_buffer=(source_buffer); end
|
1153
|
-
def state; end
|
1154
|
-
def state=(state); end
|
1155
|
-
|
1156
|
-
# Returns the value of attribute static_env.
|
1157
|
-
def static_env; end
|
1158
|
-
|
1159
|
-
# Sets the attribute static_env
|
1160
|
-
#
|
1161
|
-
# @param value the value to set the attribute static_env to.
|
1162
|
-
def static_env=(_arg0); end
|
1163
|
-
|
1164
|
-
# Returns the value of attribute tokens.
|
1165
|
-
def tokens; end
|
1166
|
-
|
1167
|
-
# Sets the attribute tokens
|
1168
|
-
#
|
1169
|
-
# @param value the value to set the attribute tokens to.
|
1170
|
-
def tokens=(_arg0); end
|
1171
|
-
|
1172
|
-
protected
|
1173
|
-
|
1174
|
-
def arg_or_cmdarg(cmd_state); end
|
1175
|
-
def diagnostic(type, reason, arguments = T.unsafe(nil), location = T.unsafe(nil), highlights = T.unsafe(nil)); end
|
1176
|
-
def emit(type, value = T.unsafe(nil), s = T.unsafe(nil), e = T.unsafe(nil)); end
|
1177
|
-
def emit_comment(s = T.unsafe(nil), e = T.unsafe(nil)); end
|
1178
|
-
def emit_do(do_block = T.unsafe(nil)); end
|
1179
|
-
def emit_table(table, s = T.unsafe(nil), e = T.unsafe(nil)); end
|
1180
|
-
def encode_escape(ord); end
|
1181
|
-
|
1182
|
-
# @return [Boolean]
|
1183
|
-
def eof_codepoint?(point); end
|
1184
|
-
|
1185
|
-
def literal; end
|
1186
|
-
def next_state_for_literal(literal); end
|
1187
|
-
def pop_literal; end
|
1188
|
-
|
1189
|
-
# === LITERAL STACK ===
|
1190
|
-
def push_literal(*args); end
|
1191
|
-
|
1192
|
-
def range(s = T.unsafe(nil), e = T.unsafe(nil)); end
|
1193
|
-
def stack_pop; end
|
1194
|
-
def tok(s = T.unsafe(nil), e = T.unsafe(nil)); end
|
1195
|
-
|
1196
|
-
# @return [Boolean]
|
1197
|
-
def version?(*versions); end
|
1198
|
-
|
1199
|
-
class << self
|
1200
|
-
# Returns the value of attribute lex_en_expr_arg.
|
1201
|
-
def lex_en_expr_arg; end
|
1202
|
-
|
1203
|
-
# Sets the attribute lex_en_expr_arg
|
1204
|
-
#
|
1205
|
-
# @param value the value to set the attribute lex_en_expr_arg to.
|
1206
|
-
def lex_en_expr_arg=(_arg0); end
|
1207
|
-
|
1208
|
-
# Returns the value of attribute lex_en_expr_beg.
|
1209
|
-
def lex_en_expr_beg; end
|
1210
|
-
|
1211
|
-
# Sets the attribute lex_en_expr_beg
|
1212
|
-
#
|
1213
|
-
# @param value the value to set the attribute lex_en_expr_beg to.
|
1214
|
-
def lex_en_expr_beg=(_arg0); end
|
1215
|
-
|
1216
|
-
# Returns the value of attribute lex_en_expr_cmdarg.
|
1217
|
-
def lex_en_expr_cmdarg; end
|
1218
|
-
|
1219
|
-
# Sets the attribute lex_en_expr_cmdarg
|
1220
|
-
#
|
1221
|
-
# @param value the value to set the attribute lex_en_expr_cmdarg to.
|
1222
|
-
def lex_en_expr_cmdarg=(_arg0); end
|
1223
|
-
|
1224
|
-
# Returns the value of attribute lex_en_expr_dot.
|
1225
|
-
def lex_en_expr_dot; end
|
1226
|
-
|
1227
|
-
# Sets the attribute lex_en_expr_dot
|
1228
|
-
#
|
1229
|
-
# @param value the value to set the attribute lex_en_expr_dot to.
|
1230
|
-
def lex_en_expr_dot=(_arg0); end
|
1231
|
-
|
1232
|
-
# Returns the value of attribute lex_en_expr_end.
|
1233
|
-
def lex_en_expr_end; end
|
1234
|
-
|
1235
|
-
# Sets the attribute lex_en_expr_end
|
1236
|
-
#
|
1237
|
-
# @param value the value to set the attribute lex_en_expr_end to.
|
1238
|
-
def lex_en_expr_end=(_arg0); end
|
1239
|
-
|
1240
|
-
# Returns the value of attribute lex_en_expr_endarg.
|
1241
|
-
def lex_en_expr_endarg; end
|
1242
|
-
|
1243
|
-
# Sets the attribute lex_en_expr_endarg
|
1244
|
-
#
|
1245
|
-
# @param value the value to set the attribute lex_en_expr_endarg to.
|
1246
|
-
def lex_en_expr_endarg=(_arg0); end
|
1247
|
-
|
1248
|
-
# Returns the value of attribute lex_en_expr_endfn.
|
1249
|
-
def lex_en_expr_endfn; end
|
1250
|
-
|
1251
|
-
# Sets the attribute lex_en_expr_endfn
|
1252
|
-
#
|
1253
|
-
# @param value the value to set the attribute lex_en_expr_endfn to.
|
1254
|
-
def lex_en_expr_endfn=(_arg0); end
|
1255
|
-
|
1256
|
-
# Returns the value of attribute lex_en_expr_fname.
|
1257
|
-
def lex_en_expr_fname; end
|
1258
|
-
|
1259
|
-
# Sets the attribute lex_en_expr_fname
|
1260
|
-
#
|
1261
|
-
# @param value the value to set the attribute lex_en_expr_fname to.
|
1262
|
-
def lex_en_expr_fname=(_arg0); end
|
1263
|
-
|
1264
|
-
# Returns the value of attribute lex_en_expr_labelarg.
|
1265
|
-
def lex_en_expr_labelarg; end
|
1266
|
-
|
1267
|
-
# Sets the attribute lex_en_expr_labelarg
|
1268
|
-
#
|
1269
|
-
# @param value the value to set the attribute lex_en_expr_labelarg to.
|
1270
|
-
def lex_en_expr_labelarg=(_arg0); end
|
1271
|
-
|
1272
|
-
# Returns the value of attribute lex_en_expr_mid.
|
1273
|
-
def lex_en_expr_mid; end
|
1274
|
-
|
1275
|
-
# Sets the attribute lex_en_expr_mid
|
1276
|
-
#
|
1277
|
-
# @param value the value to set the attribute lex_en_expr_mid to.
|
1278
|
-
def lex_en_expr_mid=(_arg0); end
|
1279
|
-
|
1280
|
-
# Returns the value of attribute lex_en_expr_value.
|
1281
|
-
def lex_en_expr_value; end
|
1282
|
-
|
1283
|
-
# Sets the attribute lex_en_expr_value
|
1284
|
-
#
|
1285
|
-
# @param value the value to set the attribute lex_en_expr_value to.
|
1286
|
-
def lex_en_expr_value=(_arg0); end
|
1287
|
-
|
1288
|
-
# Returns the value of attribute lex_en_expr_variable.
|
1289
|
-
def lex_en_expr_variable; end
|
1290
|
-
|
1291
|
-
# Sets the attribute lex_en_expr_variable
|
1292
|
-
#
|
1293
|
-
# @param value the value to set the attribute lex_en_expr_variable to.
|
1294
|
-
def lex_en_expr_variable=(_arg0); end
|
1295
|
-
|
1296
|
-
# Returns the value of attribute lex_en_interp_backslash_delimited.
|
1297
|
-
def lex_en_interp_backslash_delimited; end
|
1298
|
-
|
1299
|
-
# Sets the attribute lex_en_interp_backslash_delimited
|
1300
|
-
#
|
1301
|
-
# @param value the value to set the attribute lex_en_interp_backslash_delimited to.
|
1302
|
-
def lex_en_interp_backslash_delimited=(_arg0); end
|
1303
|
-
|
1304
|
-
# Returns the value of attribute lex_en_interp_backslash_delimited_words.
|
1305
|
-
def lex_en_interp_backslash_delimited_words; end
|
1306
|
-
|
1307
|
-
# Sets the attribute lex_en_interp_backslash_delimited_words
|
1308
|
-
#
|
1309
|
-
# @param value the value to set the attribute lex_en_interp_backslash_delimited_words to.
|
1310
|
-
def lex_en_interp_backslash_delimited_words=(_arg0); end
|
1311
|
-
|
1312
|
-
# Returns the value of attribute lex_en_interp_string.
|
1313
|
-
def lex_en_interp_string; end
|
1314
|
-
|
1315
|
-
# Sets the attribute lex_en_interp_string
|
1316
|
-
#
|
1317
|
-
# @param value the value to set the attribute lex_en_interp_string to.
|
1318
|
-
def lex_en_interp_string=(_arg0); end
|
1319
|
-
|
1320
|
-
# Returns the value of attribute lex_en_interp_words.
|
1321
|
-
def lex_en_interp_words; end
|
1322
|
-
|
1323
|
-
# Sets the attribute lex_en_interp_words
|
1324
|
-
#
|
1325
|
-
# @param value the value to set the attribute lex_en_interp_words to.
|
1326
|
-
def lex_en_interp_words=(_arg0); end
|
1327
|
-
|
1328
|
-
# Returns the value of attribute lex_en_leading_dot.
|
1329
|
-
def lex_en_leading_dot; end
|
1330
|
-
|
1331
|
-
# Sets the attribute lex_en_leading_dot
|
1332
|
-
#
|
1333
|
-
# @param value the value to set the attribute lex_en_leading_dot to.
|
1334
|
-
def lex_en_leading_dot=(_arg0); end
|
1335
|
-
|
1336
|
-
# Returns the value of attribute lex_en_line_begin.
|
1337
|
-
def lex_en_line_begin; end
|
1338
|
-
|
1339
|
-
# Sets the attribute lex_en_line_begin
|
1340
|
-
#
|
1341
|
-
# @param value the value to set the attribute lex_en_line_begin to.
|
1342
|
-
def lex_en_line_begin=(_arg0); end
|
1343
|
-
|
1344
|
-
# Returns the value of attribute lex_en_line_comment.
|
1345
|
-
def lex_en_line_comment; end
|
1346
|
-
|
1347
|
-
# Sets the attribute lex_en_line_comment
|
1348
|
-
#
|
1349
|
-
# @param value the value to set the attribute lex_en_line_comment to.
|
1350
|
-
def lex_en_line_comment=(_arg0); end
|
1351
|
-
|
1352
|
-
# Returns the value of attribute lex_en_plain_backslash_delimited.
|
1353
|
-
def lex_en_plain_backslash_delimited; end
|
1354
|
-
|
1355
|
-
# Sets the attribute lex_en_plain_backslash_delimited
|
1356
|
-
#
|
1357
|
-
# @param value the value to set the attribute lex_en_plain_backslash_delimited to.
|
1358
|
-
def lex_en_plain_backslash_delimited=(_arg0); end
|
1359
|
-
|
1360
|
-
# Returns the value of attribute lex_en_plain_backslash_delimited_words.
|
1361
|
-
def lex_en_plain_backslash_delimited_words; end
|
1362
|
-
|
1363
|
-
# Sets the attribute lex_en_plain_backslash_delimited_words
|
1364
|
-
#
|
1365
|
-
# @param value the value to set the attribute lex_en_plain_backslash_delimited_words to.
|
1366
|
-
def lex_en_plain_backslash_delimited_words=(_arg0); end
|
1367
|
-
|
1368
|
-
# Returns the value of attribute lex_en_plain_string.
|
1369
|
-
def lex_en_plain_string; end
|
1370
|
-
|
1371
|
-
# Sets the attribute lex_en_plain_string
|
1372
|
-
#
|
1373
|
-
# @param value the value to set the attribute lex_en_plain_string to.
|
1374
|
-
def lex_en_plain_string=(_arg0); end
|
1375
|
-
|
1376
|
-
# Returns the value of attribute lex_en_plain_words.
|
1377
|
-
def lex_en_plain_words; end
|
1378
|
-
|
1379
|
-
# Sets the attribute lex_en_plain_words
|
1380
|
-
#
|
1381
|
-
# @param value the value to set the attribute lex_en_plain_words to.
|
1382
|
-
def lex_en_plain_words=(_arg0); end
|
1383
|
-
|
1384
|
-
# Returns the value of attribute lex_en_regexp_modifiers.
|
1385
|
-
def lex_en_regexp_modifiers; end
|
1386
|
-
|
1387
|
-
# Sets the attribute lex_en_regexp_modifiers
|
1388
|
-
#
|
1389
|
-
# @param value the value to set the attribute lex_en_regexp_modifiers to.
|
1390
|
-
def lex_en_regexp_modifiers=(_arg0); end
|
1391
|
-
|
1392
|
-
# Returns the value of attribute lex_error.
|
1393
|
-
def lex_error; end
|
1394
|
-
|
1395
|
-
# Sets the attribute lex_error
|
1396
|
-
#
|
1397
|
-
# @param value the value to set the attribute lex_error to.
|
1398
|
-
def lex_error=(_arg0); end
|
1399
|
-
|
1400
|
-
# Returns the value of attribute lex_start.
|
1401
|
-
def lex_start; end
|
1402
|
-
|
1403
|
-
# Sets the attribute lex_start
|
1404
|
-
#
|
1405
|
-
# @param value the value to set the attribute lex_start to.
|
1406
|
-
def lex_start=(_arg0); end
|
1407
|
-
|
1408
|
-
private
|
1409
|
-
|
1410
|
-
# Returns the value of attribute _lex_eof_trans.
|
1411
|
-
def _lex_eof_trans; end
|
1412
|
-
|
1413
|
-
# Sets the attribute _lex_eof_trans
|
1414
|
-
#
|
1415
|
-
# @param value the value to set the attribute _lex_eof_trans to.
|
1416
|
-
def _lex_eof_trans=(_arg0); end
|
1417
|
-
|
1418
|
-
# Returns the value of attribute _lex_from_state_actions.
|
1419
|
-
def _lex_from_state_actions; end
|
1420
|
-
|
1421
|
-
# Sets the attribute _lex_from_state_actions
|
1422
|
-
#
|
1423
|
-
# @param value the value to set the attribute _lex_from_state_actions to.
|
1424
|
-
def _lex_from_state_actions=(_arg0); end
|
1425
|
-
|
1426
|
-
# Returns the value of attribute _lex_index_offsets.
|
1427
|
-
def _lex_index_offsets; end
|
1428
|
-
|
1429
|
-
# Sets the attribute _lex_index_offsets
|
1430
|
-
#
|
1431
|
-
# @param value the value to set the attribute _lex_index_offsets to.
|
1432
|
-
def _lex_index_offsets=(_arg0); end
|
1433
|
-
|
1434
|
-
# Returns the value of attribute _lex_indicies.
|
1435
|
-
def _lex_indicies; end
|
1436
|
-
|
1437
|
-
# Sets the attribute _lex_indicies
|
1438
|
-
#
|
1439
|
-
# @param value the value to set the attribute _lex_indicies to.
|
1440
|
-
def _lex_indicies=(_arg0); end
|
1441
|
-
|
1442
|
-
# Returns the value of attribute _lex_key_spans.
|
1443
|
-
def _lex_key_spans; end
|
1444
|
-
|
1445
|
-
# Sets the attribute _lex_key_spans
|
1446
|
-
#
|
1447
|
-
# @param value the value to set the attribute _lex_key_spans to.
|
1448
|
-
def _lex_key_spans=(_arg0); end
|
1449
|
-
|
1450
|
-
# Returns the value of attribute _lex_to_state_actions.
|
1451
|
-
def _lex_to_state_actions; end
|
1452
|
-
|
1453
|
-
# Sets the attribute _lex_to_state_actions
|
1454
|
-
#
|
1455
|
-
# @param value the value to set the attribute _lex_to_state_actions to.
|
1456
|
-
def _lex_to_state_actions=(_arg0); end
|
1457
|
-
|
1458
|
-
# Returns the value of attribute _lex_trans_actions.
|
1459
|
-
def _lex_trans_actions; end
|
1460
|
-
|
1461
|
-
# Sets the attribute _lex_trans_actions
|
1462
|
-
#
|
1463
|
-
# @param value the value to set the attribute _lex_trans_actions to.
|
1464
|
-
def _lex_trans_actions=(_arg0); end
|
1465
|
-
|
1466
|
-
# Returns the value of attribute _lex_trans_keys.
|
1467
|
-
def _lex_trans_keys; end
|
1468
|
-
|
1469
|
-
# Sets the attribute _lex_trans_keys
|
1470
|
-
#
|
1471
|
-
# @param value the value to set the attribute _lex_trans_keys to.
|
1472
|
-
def _lex_trans_keys=(_arg0); end
|
1473
|
-
|
1474
|
-
# Returns the value of attribute _lex_trans_targs.
|
1475
|
-
def _lex_trans_targs; end
|
1476
|
-
|
1477
|
-
# Sets the attribute _lex_trans_targs
|
1478
|
-
#
|
1479
|
-
# @param value the value to set the attribute _lex_trans_targs to.
|
1480
|
-
def _lex_trans_targs=(_arg0); end
|
1481
|
-
end
|
1482
|
-
end
|
1483
|
-
|
1484
|
-
class Parser::Lexer::Dedenter
|
1485
|
-
def initialize(dedent_level); end
|
1486
|
-
|
1487
|
-
def dedent(string); end
|
1488
|
-
def interrupt; end
|
1489
|
-
end
|
1490
|
-
|
1491
|
-
Parser::Lexer::Dedenter::TAB_WIDTH = T.let(T.unsafe(nil), Integer)
|
1492
|
-
|
1493
|
-
# %
|
1494
|
-
Parser::Lexer::ESCAPES = T.let(T.unsafe(nil), Hash)
|
1495
|
-
|
1496
|
-
Parser::Lexer::KEYWORDS = T.let(T.unsafe(nil), Hash)
|
1497
|
-
Parser::Lexer::KEYWORDS_BEGIN = T.let(T.unsafe(nil), Hash)
|
1498
|
-
Parser::Lexer::LEX_STATES = T.let(T.unsafe(nil), Hash)
|
1499
|
-
|
1500
|
-
class Parser::Lexer::Literal
|
1501
|
-
def initialize(lexer, str_type, delimiter, str_s, heredoc_e = T.unsafe(nil), indent = T.unsafe(nil), dedent_body = T.unsafe(nil), label_allowed = T.unsafe(nil)); end
|
1502
|
-
|
1503
|
-
def backslash_delimited?; end
|
1504
|
-
def dedent_level; end
|
1505
|
-
def end_interp_brace_and_try_closing; end
|
1506
|
-
def extend_content; end
|
1507
|
-
def extend_space(ts, te); end
|
1508
|
-
def extend_string(string, ts, te); end
|
1509
|
-
def flush_string; end
|
1510
|
-
def heredoc?; end
|
1511
|
-
def heredoc_e; end
|
1512
|
-
def infer_indent_level(line); end
|
1513
|
-
def interpolate?; end
|
1514
|
-
def munge_escape?(character); end
|
1515
|
-
def nest_and_try_closing(delimiter, ts, te, lookahead = T.unsafe(nil)); end
|
1516
|
-
def plain_heredoc?; end
|
1517
|
-
def regexp?; end
|
1518
|
-
def saved_herebody_s; end
|
1519
|
-
def saved_herebody_s=(_arg0); end
|
1520
|
-
def squiggly_heredoc?; end
|
1521
|
-
def start_interp_brace; end
|
1522
|
-
def str_s; end
|
1523
|
-
def supports_line_continuation_via_slash?; end
|
1524
|
-
def type; end
|
1525
|
-
def words?; end
|
1526
|
-
|
1527
|
-
protected
|
1528
|
-
|
1529
|
-
def clear_buffer; end
|
1530
|
-
def coerce_encoding(string); end
|
1531
|
-
def delimiter?(delimiter); end
|
1532
|
-
def emit(token, type, s, e); end
|
1533
|
-
def emit_start_tok; end
|
1534
|
-
end
|
1535
|
-
|
1536
|
-
Parser::Lexer::Literal::DELIMITERS = T.let(T.unsafe(nil), Hash)
|
1537
|
-
Parser::Lexer::Literal::TYPES = T.let(T.unsafe(nil), Hash)
|
1538
|
-
|
1539
|
-
# Mapping of strings to parser tokens.
|
1540
|
-
Parser::Lexer::PUNCTUATION = T.let(T.unsafe(nil), Hash)
|
1541
|
-
|
1542
|
-
Parser::Lexer::PUNCTUATION_BEGIN = T.let(T.unsafe(nil), Hash)
|
1543
|
-
Parser::Lexer::REGEXP_META_CHARACTERS = T.let(T.unsafe(nil), Regexp)
|
1544
|
-
|
1545
|
-
class Parser::Lexer::StackState
|
1546
|
-
def initialize(name); end
|
1547
|
-
|
1548
|
-
def active?; end
|
1549
|
-
def clear; end
|
1550
|
-
def empty?; end
|
1551
|
-
def inspect; end
|
1552
|
-
def lexpop; end
|
1553
|
-
def pop; end
|
1554
|
-
def push(bit); end
|
1555
|
-
def to_s; end
|
1556
|
-
end
|
1557
|
-
|
1558
|
-
# Diagnostic messages (errors, warnings and notices) that can be generated.
|
1559
|
-
#
|
1560
|
-
# @api public
|
1561
|
-
# @see Diagnostic
|
1562
|
-
Parser::MESSAGES = T.let(T.unsafe(nil), Hash)
|
1563
|
-
|
1564
|
-
# Holds p->max_numparam from parse.y
|
1565
|
-
#
|
1566
|
-
# @api private
|
1567
|
-
class Parser::MaxNumparamStack
|
1568
|
-
# @api private
|
1569
|
-
# @return [MaxNumparamStack] a new instance of MaxNumparamStack
|
1570
|
-
def initialize; end
|
1571
|
-
|
1572
|
-
# @api private
|
1573
|
-
# @return [Boolean]
|
1574
|
-
def empty?; end
|
1575
|
-
|
1576
|
-
# @api private
|
1577
|
-
# @return [Boolean]
|
1578
|
-
def has_numparams?; end
|
1579
|
-
|
1580
|
-
# @api private
|
1581
|
-
def has_ordinary_params!; end
|
1582
|
-
|
1583
|
-
# @api private
|
1584
|
-
# @return [Boolean]
|
1585
|
-
def has_ordinary_params?; end
|
1586
|
-
|
1587
|
-
# @api private
|
1588
|
-
def pop; end
|
1589
|
-
|
1590
|
-
# @api private
|
1591
|
-
def push(static:); end
|
1592
|
-
|
1593
|
-
# @api private
|
1594
|
-
def register(numparam); end
|
1595
|
-
|
1596
|
-
# @api private
|
1597
|
-
def stack; end
|
1598
|
-
|
1599
|
-
# @api private
|
1600
|
-
def top; end
|
1601
|
-
|
1602
|
-
private
|
1603
|
-
|
1604
|
-
# @api private
|
1605
|
-
def set(value); end
|
1606
|
-
end
|
1607
|
-
|
1608
|
-
# @api private
|
1609
|
-
Parser::MaxNumparamStack::ORDINARY_PARAMS = T.let(T.unsafe(nil), Integer)
|
1610
|
-
|
1611
|
-
# @api private
|
1612
|
-
module Parser::Messages
|
1613
|
-
class << self
|
1614
|
-
# Formats the message, returns a raw template if there's nothing to interpolate
|
1615
|
-
#
|
1616
|
-
# Code like `format("", {})` gives a warning, and so this method tries interpolating
|
1617
|
-
# only if `arguments` hash is not empty.
|
1618
|
-
#
|
1619
|
-
# @api private
|
1620
|
-
def compile(reason, arguments); end
|
1621
|
-
end
|
1622
|
-
end
|
1623
|
-
|
1624
|
-
# Parser metadata
|
1625
|
-
module Parser::Meta; end
|
1626
|
-
|
1627
|
-
# All node types that parser can produce. Not all parser versions
|
1628
|
-
# will be able to produce every possible node.
|
1629
|
-
Parser::Meta::NODE_TYPES = T.let(T.unsafe(nil), Set)
|
1630
|
-
|
1631
|
-
# {Parser::Rewriter} is deprecated. Use {Parser::TreeRewriter} instead.
|
1632
|
-
# It has a backwards compatible API and uses {Parser::Source::TreeRewriter}
|
1633
|
-
# instead of {Parser::Source::Rewriter}.
|
1634
|
-
# Please check the documentation for {Parser::Source::Rewriter} for details.
|
1635
|
-
#
|
1636
|
-
# @api public
|
1637
|
-
# @deprecated Use {Parser::TreeRewriter}
|
1638
|
-
class Parser::Rewriter < ::Parser::AST::Processor
|
1639
|
-
extend ::Parser::Deprecation
|
1640
|
-
|
1641
|
-
# @api public
|
1642
|
-
# @return [Rewriter] a new instance of Rewriter
|
1643
|
-
def initialize(*_arg0); end
|
1644
|
-
|
1645
|
-
# Returns `true` if the specified node is an assignment node, returns false
|
1646
|
-
# otherwise.
|
1647
|
-
#
|
1648
|
-
# @api public
|
1649
|
-
# @param node [Parser::AST::Node]
|
1650
|
-
# @return [Boolean]
|
1651
|
-
def assignment?(node); end
|
1652
|
-
|
1653
|
-
# Inserts new code after the given source range.
|
1654
|
-
#
|
1655
|
-
# @api public
|
1656
|
-
# @param range [Parser::Source::Range]
|
1657
|
-
# @param content [String]
|
1658
|
-
def insert_after(range, content); end
|
1659
|
-
|
1660
|
-
# Inserts new code before the given source range.
|
1661
|
-
#
|
1662
|
-
# @api public
|
1663
|
-
# @param range [Parser::Source::Range]
|
1664
|
-
# @param content [String]
|
1665
|
-
def insert_before(range, content); end
|
1666
|
-
|
1667
|
-
# Removes the source range.
|
1668
|
-
#
|
1669
|
-
# @api public
|
1670
|
-
# @param range [Parser::Source::Range]
|
1671
|
-
def remove(range); end
|
1672
|
-
|
1673
|
-
# Replaces the code of the source range `range` with `content`.
|
1674
|
-
#
|
1675
|
-
# @api public
|
1676
|
-
# @param range [Parser::Source::Range]
|
1677
|
-
# @param content [String]
|
1678
|
-
def replace(range, content); end
|
1679
|
-
|
1680
|
-
# Rewrites the AST/source buffer and returns a String containing the new
|
1681
|
-
# version.
|
1682
|
-
#
|
1683
|
-
# @api public
|
1684
|
-
# @param source_buffer [Parser::Source::Buffer]
|
1685
|
-
# @param ast [Parser::AST::Node]
|
1686
|
-
# @return [String]
|
1687
|
-
def rewrite(source_buffer, ast); end
|
1688
|
-
|
1689
|
-
# Wraps the given source range with the given values.
|
1690
|
-
#
|
1691
|
-
# @api public
|
1692
|
-
# @param range [Parser::Source::Range]
|
1693
|
-
# @param content [String]
|
1694
|
-
def wrap(range, before, after); end
|
1695
|
-
end
|
1696
|
-
|
1697
|
-
# @api public
|
1698
|
-
Parser::Rewriter::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
|
1699
|
-
|
1700
|
-
class Parser::Ruby31 < ::Parser::Base
|
1701
|
-
# reduce 0 omitted
|
1702
|
-
def _reduce_1(val, _values, result); end
|
1703
|
-
|
1704
|
-
def _reduce_10(val, _values, result); end
|
1705
|
-
def _reduce_100(val, _values, result); end
|
1706
|
-
|
1707
|
-
# reduce 101 omitted
|
1708
|
-
def _reduce_102(val, _values, result); end
|
1709
|
-
|
1710
|
-
def _reduce_103(val, _values, result); end
|
1711
|
-
def _reduce_104(val, _values, result); end
|
1712
|
-
def _reduce_105(val, _values, result); end
|
1713
|
-
def _reduce_106(val, _values, result); end
|
1714
|
-
def _reduce_107(val, _values, result); end
|
1715
|
-
def _reduce_108(val, _values, result); end
|
1716
|
-
def _reduce_109(val, _values, result); end
|
1717
|
-
def _reduce_11(val, _values, result); end
|
1718
|
-
def _reduce_110(val, _values, result); end
|
1719
|
-
def _reduce_111(val, _values, result); end
|
1720
|
-
def _reduce_112(val, _values, result); end
|
1721
|
-
def _reduce_113(val, _values, result); end
|
1722
|
-
def _reduce_114(val, _values, result); end
|
1723
|
-
def _reduce_115(val, _values, result); end
|
1724
|
-
def _reduce_116(val, _values, result); end
|
1725
|
-
def _reduce_117(val, _values, result); end
|
1726
|
-
def _reduce_118(val, _values, result); end
|
1727
|
-
def _reduce_119(val, _values, result); end
|
1728
|
-
def _reduce_12(val, _values, result); end
|
1729
|
-
def _reduce_120(val, _values, result); end
|
1730
|
-
def _reduce_121(val, _values, result); end
|
1731
|
-
def _reduce_122(val, _values, result); end
|
1732
|
-
def _reduce_123(val, _values, result); end
|
1733
|
-
def _reduce_124(val, _values, result); end
|
1734
|
-
def _reduce_125(val, _values, result); end
|
1735
|
-
|
1736
|
-
# reduce 126 omitted
|
1737
|
-
def _reduce_127(val, _values, result); end
|
1738
|
-
|
1739
|
-
def _reduce_128(val, _values, result); end
|
1740
|
-
def _reduce_129(val, _values, result); end
|
1741
|
-
def _reduce_13(val, _values, result); end
|
1742
|
-
|
1743
|
-
# reduce 134 omitted
|
1744
|
-
def _reduce_135(val, _values, result); end
|
1745
|
-
|
1746
|
-
# reduce 136 omitted
|
1747
|
-
def _reduce_137(val, _values, result); end
|
1748
|
-
|
1749
|
-
def _reduce_138(val, _values, result); end
|
1750
|
-
def _reduce_139(val, _values, result); end
|
1751
|
-
def _reduce_14(val, _values, result); end
|
1752
|
-
def _reduce_15(val, _values, result); end
|
1753
|
-
def _reduce_16(val, _values, result); end
|
1754
|
-
|
1755
|
-
# reduce 17 omitted
|
1756
|
-
def _reduce_18(val, _values, result); end
|
1757
|
-
|
1758
|
-
def _reduce_19(val, _values, result); end
|
1759
|
-
def _reduce_2(val, _values, result); end
|
1760
|
-
def _reduce_20(val, _values, result); end
|
1761
|
-
def _reduce_21(val, _values, result); end
|
1762
|
-
|
1763
|
-
# reduce 210 omitted
|
1764
|
-
def _reduce_211(val, _values, result); end
|
1765
|
-
|
1766
|
-
def _reduce_212(val, _values, result); end
|
1767
|
-
def _reduce_213(val, _values, result); end
|
1768
|
-
def _reduce_214(val, _values, result); end
|
1769
|
-
def _reduce_215(val, _values, result); end
|
1770
|
-
def _reduce_216(val, _values, result); end
|
1771
|
-
def _reduce_217(val, _values, result); end
|
1772
|
-
def _reduce_218(val, _values, result); end
|
1773
|
-
def _reduce_219(val, _values, result); end
|
1774
|
-
def _reduce_22(val, _values, result); end
|
1775
|
-
def _reduce_220(val, _values, result); end
|
1776
|
-
def _reduce_221(val, _values, result); end
|
1777
|
-
def _reduce_222(val, _values, result); end
|
1778
|
-
def _reduce_223(val, _values, result); end
|
1779
|
-
def _reduce_224(val, _values, result); end
|
1780
|
-
def _reduce_225(val, _values, result); end
|
1781
|
-
def _reduce_226(val, _values, result); end
|
1782
|
-
def _reduce_227(val, _values, result); end
|
1783
|
-
def _reduce_228(val, _values, result); end
|
1784
|
-
def _reduce_229(val, _values, result); end
|
1785
|
-
def _reduce_23(val, _values, result); end
|
1786
|
-
def _reduce_230(val, _values, result); end
|
1787
|
-
def _reduce_231(val, _values, result); end
|
1788
|
-
def _reduce_232(val, _values, result); end
|
1789
|
-
def _reduce_233(val, _values, result); end
|
1790
|
-
def _reduce_234(val, _values, result); end
|
1791
|
-
def _reduce_235(val, _values, result); end
|
1792
|
-
def _reduce_236(val, _values, result); end
|
1793
|
-
def _reduce_237(val, _values, result); end
|
1794
|
-
def _reduce_238(val, _values, result); end
|
1795
|
-
def _reduce_24(val, _values, result); end
|
1796
|
-
|
1797
|
-
# reduce 239 omitted
|
1798
|
-
def _reduce_240(val, _values, result); end
|
1799
|
-
|
1800
|
-
def _reduce_241(val, _values, result); end
|
1801
|
-
def _reduce_242(val, _values, result); end
|
1802
|
-
def _reduce_243(val, _values, result); end
|
1803
|
-
def _reduce_244(val, _values, result); end
|
1804
|
-
def _reduce_245(val, _values, result); end
|
1805
|
-
def _reduce_246(val, _values, result); end
|
1806
|
-
def _reduce_247(val, _values, result); end
|
1807
|
-
def _reduce_248(val, _values, result); end
|
1808
|
-
def _reduce_249(val, _values, result); end
|
1809
|
-
def _reduce_25(val, _values, result); end
|
1810
|
-
def _reduce_250(val, _values, result); end
|
1811
|
-
def _reduce_251(val, _values, result); end
|
1812
|
-
def _reduce_252(val, _values, result); end
|
1813
|
-
def _reduce_253(val, _values, result); end
|
1814
|
-
def _reduce_254(val, _values, result); end
|
1815
|
-
def _reduce_255(val, _values, result); end
|
1816
|
-
def _reduce_256(val, _values, result); end
|
1817
|
-
def _reduce_257(val, _values, result); end
|
1818
|
-
def _reduce_26(val, _values, result); end
|
1819
|
-
|
1820
|
-
# reduce 262 omitted
|
1821
|
-
def _reduce_263(val, _values, result); end
|
1822
|
-
|
1823
|
-
def _reduce_264(val, _values, result); end
|
1824
|
-
|
1825
|
-
# reduce 267 omitted
|
1826
|
-
def _reduce_268(val, _values, result); end
|
1827
|
-
|
1828
|
-
def _reduce_269(val, _values, result); end
|
1829
|
-
def _reduce_27(val, _values, result); end
|
1830
|
-
|
1831
|
-
# reduce 270 omitted
|
1832
|
-
def _reduce_271(val, _values, result); end
|
1833
|
-
|
1834
|
-
def _reduce_272(val, _values, result); end
|
1835
|
-
def _reduce_273(val, _values, result); end
|
1836
|
-
def _reduce_274(val, _values, result); end
|
1837
|
-
def _reduce_275(val, _values, result); end
|
1838
|
-
|
1839
|
-
# reduce 276 omitted
|
1840
|
-
def _reduce_277(val, _values, result); end
|
1841
|
-
|
1842
|
-
def _reduce_28(val, _values, result); end
|
1843
|
-
|
1844
|
-
# reduce 279 omitted
|
1845
|
-
def _reduce_280(val, _values, result); end
|
1846
|
-
|
1847
|
-
def _reduce_281(val, _values, result); end
|
1848
|
-
def _reduce_282(val, _values, result); end
|
1849
|
-
def _reduce_283(val, _values, result); end
|
1850
|
-
def _reduce_284(val, _values, result); end
|
1851
|
-
def _reduce_285(val, _values, result); end
|
1852
|
-
def _reduce_286(val, _values, result); end
|
1853
|
-
def _reduce_287(val, _values, result); end
|
1854
|
-
def _reduce_288(val, _values, result); end
|
1855
|
-
def _reduce_289(val, _values, result); end
|
1856
|
-
def _reduce_29(val, _values, result); end
|
1857
|
-
def _reduce_290(val, _values, result); end
|
1858
|
-
def _reduce_291(val, _values, result); end
|
1859
|
-
def _reduce_292(val, _values, result); end
|
1860
|
-
def _reduce_293(val, _values, result); end
|
1861
|
-
def _reduce_294(val, _values, result); end
|
1862
|
-
def _reduce_295(val, _values, result); end
|
1863
|
-
def _reduce_296(val, _values, result); end
|
1864
|
-
def _reduce_297(val, _values, result); end
|
1865
|
-
|
1866
|
-
# reduce 298 omitted
|
1867
|
-
def _reduce_299(val, _values, result); end
|
1868
|
-
|
1869
|
-
def _reduce_3(val, _values, result); end
|
1870
|
-
def _reduce_30(val, _values, result); end
|
1871
|
-
def _reduce_300(val, _values, result); end
|
1872
|
-
def _reduce_301(val, _values, result); end
|
1873
|
-
|
1874
|
-
# reduce 311 omitted
|
1875
|
-
def _reduce_312(val, _values, result); end
|
1876
|
-
|
1877
|
-
def _reduce_313(val, _values, result); end
|
1878
|
-
def _reduce_314(val, _values, result); end
|
1879
|
-
def _reduce_315(val, _values, result); end
|
1880
|
-
def _reduce_316(val, _values, result); end
|
1881
|
-
def _reduce_317(val, _values, result); end
|
1882
|
-
def _reduce_318(val, _values, result); end
|
1883
|
-
def _reduce_319(val, _values, result); end
|
1884
|
-
|
1885
|
-
# reduce 31 omitted
|
1886
|
-
def _reduce_32(val, _values, result); end
|
1887
|
-
|
1888
|
-
def _reduce_320(val, _values, result); end
|
1889
|
-
def _reduce_321(val, _values, result); end
|
1890
|
-
def _reduce_322(val, _values, result); end
|
1891
|
-
def _reduce_323(val, _values, result); end
|
1892
|
-
def _reduce_324(val, _values, result); end
|
1893
|
-
def _reduce_325(val, _values, result); end
|
1894
|
-
def _reduce_326(val, _values, result); end
|
1895
|
-
def _reduce_327(val, _values, result); end
|
1896
|
-
def _reduce_328(val, _values, result); end
|
1897
|
-
def _reduce_329(val, _values, result); end
|
1898
|
-
def _reduce_33(val, _values, result); end
|
1899
|
-
def _reduce_330(val, _values, result); end
|
1900
|
-
def _reduce_331(val, _values, result); end
|
1901
|
-
def _reduce_332(val, _values, result); end
|
1902
|
-
|
1903
|
-
# reduce 333 omitted
|
1904
|
-
def _reduce_334(val, _values, result); end
|
1905
|
-
|
1906
|
-
# reduce 335 omitted
|
1907
|
-
def _reduce_336(val, _values, result); end
|
1908
|
-
|
1909
|
-
def _reduce_337(val, _values, result); end
|
1910
|
-
def _reduce_338(val, _values, result); end
|
1911
|
-
def _reduce_339(val, _values, result); end
|
1912
|
-
def _reduce_34(val, _values, result); end
|
1913
|
-
def _reduce_340(val, _values, result); end
|
1914
|
-
def _reduce_341(val, _values, result); end
|
1915
|
-
def _reduce_342(val, _values, result); end
|
1916
|
-
def _reduce_343(val, _values, result); end
|
1917
|
-
def _reduce_344(val, _values, result); end
|
1918
|
-
def _reduce_345(val, _values, result); end
|
1919
|
-
def _reduce_346(val, _values, result); end
|
1920
|
-
def _reduce_347(val, _values, result); end
|
1921
|
-
def _reduce_348(val, _values, result); end
|
1922
|
-
def _reduce_349(val, _values, result); end
|
1923
|
-
def _reduce_35(val, _values, result); end
|
1924
|
-
def _reduce_350(val, _values, result); end
|
1925
|
-
def _reduce_351(val, _values, result); end
|
1926
|
-
def _reduce_352(val, _values, result); end
|
1927
|
-
def _reduce_353(val, _values, result); end
|
1928
|
-
def _reduce_354(val, _values, result); end
|
1929
|
-
def _reduce_355(val, _values, result); end
|
1930
|
-
|
1931
|
-
# reduce 356 omitted
|
1932
|
-
def _reduce_357(val, _values, result); end
|
1933
|
-
|
1934
|
-
def _reduce_358(val, _values, result); end
|
1935
|
-
def _reduce_359(val, _values, result); end
|
1936
|
-
def _reduce_360(val, _values, result); end
|
1937
|
-
|
1938
|
-
# reduce 362 omitted
|
1939
|
-
def _reduce_363(val, _values, result); end
|
1940
|
-
|
1941
|
-
# reduce 366 omitted
|
1942
|
-
def _reduce_367(val, _values, result); end
|
1943
|
-
|
1944
|
-
# reduce 368 omitted
|
1945
|
-
def _reduce_369(val, _values, result); end
|
1946
|
-
|
1947
|
-
# reduce 36 omitted
|
1948
|
-
def _reduce_37(val, _values, result); end
|
1949
|
-
|
1950
|
-
# reduce 371 omitted
|
1951
|
-
def _reduce_372(val, _values, result); end
|
1952
|
-
|
1953
|
-
def _reduce_373(val, _values, result); end
|
1954
|
-
def _reduce_374(val, _values, result); end
|
1955
|
-
def _reduce_375(val, _values, result); end
|
1956
|
-
|
1957
|
-
# reduce 376 omitted
|
1958
|
-
def _reduce_377(val, _values, result); end
|
1959
|
-
|
1960
|
-
def _reduce_378(val, _values, result); end
|
1961
|
-
def _reduce_379(val, _values, result); end
|
1962
|
-
def _reduce_38(val, _values, result); end
|
1963
|
-
def _reduce_380(val, _values, result); end
|
1964
|
-
def _reduce_381(val, _values, result); end
|
1965
|
-
def _reduce_382(val, _values, result); end
|
1966
|
-
|
1967
|
-
# reduce 384 omitted
|
1968
|
-
def _reduce_385(val, _values, result); end
|
1969
|
-
|
1970
|
-
def _reduce_386(val, _values, result); end
|
1971
|
-
def _reduce_387(val, _values, result); end
|
1972
|
-
def _reduce_388(val, _values, result); end
|
1973
|
-
def _reduce_389(val, _values, result); end
|
1974
|
-
def _reduce_39(val, _values, result); end
|
1975
|
-
def _reduce_390(val, _values, result); end
|
1976
|
-
def _reduce_391(val, _values, result); end
|
1977
|
-
def _reduce_392(val, _values, result); end
|
1978
|
-
|
1979
|
-
# reduce 393 omitted
|
1980
|
-
def _reduce_394(val, _values, result); end
|
1981
|
-
|
1982
|
-
def _reduce_395(val, _values, result); end
|
1983
|
-
def _reduce_396(val, _values, result); end
|
1984
|
-
def _reduce_397(val, _values, result); end
|
1985
|
-
def _reduce_398(val, _values, result); end
|
1986
|
-
def _reduce_4(val, _values, result); end
|
1987
|
-
def _reduce_40(val, _values, result); end
|
1988
|
-
|
1989
|
-
# reduce 399 omitted
|
1990
|
-
def _reduce_400(val, _values, result); end
|
1991
|
-
|
1992
|
-
def _reduce_401(val, _values, result); end
|
1993
|
-
def _reduce_402(val, _values, result); end
|
1994
|
-
def _reduce_403(val, _values, result); end
|
1995
|
-
def _reduce_404(val, _values, result); end
|
1996
|
-
def _reduce_405(val, _values, result); end
|
1997
|
-
def _reduce_406(val, _values, result); end
|
1998
|
-
def _reduce_407(val, _values, result); end
|
1999
|
-
|
2000
|
-
# reduce 408 omitted
|
2001
|
-
def _reduce_409(val, _values, result); end
|
2002
|
-
|
2003
|
-
def _reduce_41(val, _values, result); end
|
2004
|
-
def _reduce_410(val, _values, result); end
|
2005
|
-
def _reduce_411(val, _values, result); end
|
2006
|
-
def _reduce_412(val, _values, result); end
|
2007
|
-
def _reduce_413(val, _values, result); end
|
2008
|
-
def _reduce_414(val, _values, result); end
|
2009
|
-
def _reduce_415(val, _values, result); end
|
2010
|
-
def _reduce_416(val, _values, result); end
|
2011
|
-
def _reduce_417(val, _values, result); end
|
2012
|
-
|
2013
|
-
# reduce 418 omitted
|
2014
|
-
def _reduce_419(val, _values, result); end
|
2015
|
-
|
2016
|
-
def _reduce_42(val, _values, result); end
|
2017
|
-
def _reduce_420(val, _values, result); end
|
2018
|
-
def _reduce_421(val, _values, result); end
|
2019
|
-
def _reduce_422(val, _values, result); end
|
2020
|
-
def _reduce_423(val, _values, result); end
|
2021
|
-
def _reduce_424(val, _values, result); end
|
2022
|
-
def _reduce_425(val, _values, result); end
|
2023
|
-
def _reduce_426(val, _values, result); end
|
2024
|
-
def _reduce_427(val, _values, result); end
|
2025
|
-
def _reduce_428(val, _values, result); end
|
2026
|
-
def _reduce_429(val, _values, result); end
|
2027
|
-
def _reduce_43(val, _values, result); end
|
2028
|
-
def _reduce_430(val, _values, result); end
|
2029
|
-
def _reduce_431(val, _values, result); end
|
2030
|
-
def _reduce_432(val, _values, result); end
|
2031
|
-
def _reduce_433(val, _values, result); end
|
2032
|
-
def _reduce_434(val, _values, result); end
|
2033
|
-
def _reduce_435(val, _values, result); end
|
2034
|
-
def _reduce_436(val, _values, result); end
|
2035
|
-
def _reduce_437(val, _values, result); end
|
2036
|
-
def _reduce_438(val, _values, result); end
|
2037
|
-
def _reduce_439(val, _values, result); end
|
2038
|
-
def _reduce_44(val, _values, result); end
|
2039
|
-
def _reduce_440(val, _values, result); end
|
2040
|
-
def _reduce_441(val, _values, result); end
|
2041
|
-
def _reduce_442(val, _values, result); end
|
2042
|
-
def _reduce_443(val, _values, result); end
|
2043
|
-
def _reduce_444(val, _values, result); end
|
2044
|
-
def _reduce_445(val, _values, result); end
|
2045
|
-
def _reduce_446(val, _values, result); end
|
2046
|
-
def _reduce_447(val, _values, result); end
|
2047
|
-
def _reduce_448(val, _values, result); end
|
2048
|
-
def _reduce_449(val, _values, result); end
|
2049
|
-
def _reduce_45(val, _values, result); end
|
2050
|
-
def _reduce_450(val, _values, result); end
|
2051
|
-
def _reduce_451(val, _values, result); end
|
2052
|
-
def _reduce_452(val, _values, result); end
|
2053
|
-
def _reduce_453(val, _values, result); end
|
2054
|
-
|
2055
|
-
# reduce 454 omitted
|
2056
|
-
def _reduce_455(val, _values, result); end
|
2057
|
-
|
2058
|
-
def _reduce_456(val, _values, result); end
|
2059
|
-
def _reduce_457(val, _values, result); end
|
2060
|
-
def _reduce_458(val, _values, result); end
|
2061
|
-
def _reduce_46(val, _values, result); end
|
2062
|
-
|
2063
|
-
# reduce 459 omitted
|
2064
|
-
def _reduce_460(val, _values, result); end
|
2065
|
-
|
2066
|
-
def _reduce_461(val, _values, result); end
|
2067
|
-
def _reduce_462(val, _values, result); end
|
2068
|
-
|
2069
|
-
# reduce 463 omitted
|
2070
|
-
def _reduce_464(val, _values, result); end
|
2071
|
-
|
2072
|
-
def _reduce_465(val, _values, result); end
|
2073
|
-
def _reduce_466(val, _values, result); end
|
2074
|
-
def _reduce_467(val, _values, result); end
|
2075
|
-
def _reduce_468(val, _values, result); end
|
2076
|
-
def _reduce_47(val, _values, result); end
|
2077
|
-
|
2078
|
-
# reduce 469 omitted
|
2079
|
-
def _reduce_470(val, _values, result); end
|
2080
|
-
|
2081
|
-
# reduce 471 omitted
|
2082
|
-
def _reduce_472(val, _values, result); end
|
2083
|
-
|
2084
|
-
# reduce 473 omitted
|
2085
|
-
def _reduce_474(val, _values, result); end
|
2086
|
-
|
2087
|
-
def _reduce_475(val, _values, result); end
|
2088
|
-
|
2089
|
-
# reduce 477 omitted
|
2090
|
-
def _reduce_478(val, _values, result); end
|
2091
|
-
|
2092
|
-
def _reduce_479(val, _values, result); end
|
2093
|
-
def _reduce_48(val, _values, result); end
|
2094
|
-
def _reduce_480(val, _values, result); end
|
2095
|
-
def _reduce_481(val, _values, result); end
|
2096
|
-
def _reduce_482(val, _values, result); end
|
2097
|
-
def _reduce_483(val, _values, result); end
|
2098
|
-
def _reduce_484(val, _values, result); end
|
2099
|
-
def _reduce_485(val, _values, result); end
|
2100
|
-
def _reduce_486(val, _values, result); end
|
2101
|
-
def _reduce_487(val, _values, result); end
|
2102
|
-
def _reduce_488(val, _values, result); end
|
2103
|
-
def _reduce_489(val, _values, result); end
|
2104
|
-
def _reduce_490(val, _values, result); end
|
2105
|
-
def _reduce_491(val, _values, result); end
|
2106
|
-
def _reduce_492(val, _values, result); end
|
2107
|
-
def _reduce_493(val, _values, result); end
|
2108
|
-
def _reduce_494(val, _values, result); end
|
2109
|
-
def _reduce_495(val, _values, result); end
|
2110
|
-
def _reduce_496(val, _values, result); end
|
2111
|
-
def _reduce_497(val, _values, result); end
|
2112
|
-
def _reduce_498(val, _values, result); end
|
2113
|
-
def _reduce_499(val, _values, result); end
|
2114
|
-
def _reduce_5(val, _values, result); end
|
2115
|
-
|
2116
|
-
# reduce 49 omitted
|
2117
|
-
def _reduce_50(val, _values, result); end
|
2118
|
-
|
2119
|
-
def _reduce_500(val, _values, result); end
|
2120
|
-
|
2121
|
-
# reduce 501 omitted
|
2122
|
-
def _reduce_502(val, _values, result); end
|
2123
|
-
|
2124
|
-
def _reduce_503(val, _values, result); end
|
2125
|
-
def _reduce_504(val, _values, result); end
|
2126
|
-
def _reduce_505(val, _values, result); end
|
2127
|
-
def _reduce_506(val, _values, result); end
|
2128
|
-
def _reduce_507(val, _values, result); end
|
2129
|
-
def _reduce_508(val, _values, result); end
|
2130
|
-
def _reduce_509(val, _values, result); end
|
2131
|
-
def _reduce_510(val, _values, result); end
|
2132
|
-
|
2133
|
-
# reduce 511 omitted
|
2134
|
-
def _reduce_512(val, _values, result); end
|
2135
|
-
|
2136
|
-
def _reduce_513(val, _values, result); end
|
2137
|
-
def _reduce_514(val, _values, result); end
|
2138
|
-
def _reduce_515(val, _values, result); end
|
2139
|
-
def _reduce_516(val, _values, result); end
|
2140
|
-
def _reduce_517(val, _values, result); end
|
2141
|
-
def _reduce_518(val, _values, result); end
|
2142
|
-
def _reduce_519(val, _values, result); end
|
2143
|
-
def _reduce_520(val, _values, result); end
|
2144
|
-
def _reduce_521(val, _values, result); end
|
2145
|
-
def _reduce_522(val, _values, result); end
|
2146
|
-
def _reduce_523(val, _values, result); end
|
2147
|
-
def _reduce_524(val, _values, result); end
|
2148
|
-
|
2149
|
-
# reduce 527 omitted
|
2150
|
-
def _reduce_528(val, _values, result); end
|
2151
|
-
|
2152
|
-
def _reduce_529(val, _values, result); end
|
2153
|
-
|
2154
|
-
# reduce 52 omitted
|
2155
|
-
def _reduce_53(val, _values, result); end
|
2156
|
-
|
2157
|
-
def _reduce_530(val, _values, result); end
|
2158
|
-
def _reduce_531(val, _values, result); end
|
2159
|
-
|
2160
|
-
# reduce 534 omitted
|
2161
|
-
def _reduce_535(val, _values, result); end
|
2162
|
-
|
2163
|
-
def _reduce_536(val, _values, result); end
|
2164
|
-
def _reduce_54(val, _values, result); end
|
2165
|
-
|
2166
|
-
# reduce 544 omitted
|
2167
|
-
def _reduce_545(val, _values, result); end
|
2168
|
-
|
2169
|
-
# reduce 546 omitted
|
2170
|
-
def _reduce_547(val, _values, result); end
|
2171
|
-
|
2172
|
-
def _reduce_548(val, _values, result); end
|
2173
|
-
def _reduce_549(val, _values, result); end
|
2174
|
-
def _reduce_55(val, _values, result); end
|
2175
|
-
def _reduce_550(val, _values, result); end
|
2176
|
-
def _reduce_551(val, _values, result); end
|
2177
|
-
def _reduce_552(val, _values, result); end
|
2178
|
-
def _reduce_553(val, _values, result); end
|
2179
|
-
def _reduce_554(val, _values, result); end
|
2180
|
-
def _reduce_555(val, _values, result); end
|
2181
|
-
def _reduce_556(val, _values, result); end
|
2182
|
-
|
2183
|
-
# reduce 558 omitted
|
2184
|
-
def _reduce_559(val, _values, result); end
|
2185
|
-
|
2186
|
-
def _reduce_56(val, _values, result); end
|
2187
|
-
|
2188
|
-
# reduce 560 omitted
|
2189
|
-
def _reduce_561(val, _values, result); end
|
2190
|
-
|
2191
|
-
# reduce 564 omitted
|
2192
|
-
def _reduce_565(val, _values, result); end
|
2193
|
-
|
2194
|
-
def _reduce_566(val, _values, result); end
|
2195
|
-
def _reduce_567(val, _values, result); end
|
2196
|
-
def _reduce_568(val, _values, result); end
|
2197
|
-
def _reduce_569(val, _values, result); end
|
2198
|
-
def _reduce_57(val, _values, result); end
|
2199
|
-
def _reduce_570(val, _values, result); end
|
2200
|
-
def _reduce_571(val, _values, result); end
|
2201
|
-
def _reduce_572(val, _values, result); end
|
2202
|
-
def _reduce_573(val, _values, result); end
|
2203
|
-
def _reduce_574(val, _values, result); end
|
2204
|
-
def _reduce_575(val, _values, result); end
|
2205
|
-
def _reduce_576(val, _values, result); end
|
2206
|
-
def _reduce_577(val, _values, result); end
|
2207
|
-
def _reduce_578(val, _values, result); end
|
2208
|
-
def _reduce_579(val, _values, result); end
|
2209
|
-
def _reduce_58(val, _values, result); end
|
2210
|
-
def _reduce_580(val, _values, result); end
|
2211
|
-
def _reduce_581(val, _values, result); end
|
2212
|
-
def _reduce_582(val, _values, result); end
|
2213
|
-
def _reduce_583(val, _values, result); end
|
2214
|
-
def _reduce_584(val, _values, result); end
|
2215
|
-
def _reduce_585(val, _values, result); end
|
2216
|
-
def _reduce_586(val, _values, result); end
|
2217
|
-
def _reduce_587(val, _values, result); end
|
2218
|
-
def _reduce_588(val, _values, result); end
|
2219
|
-
def _reduce_589(val, _values, result); end
|
2220
|
-
def _reduce_59(val, _values, result); end
|
2221
|
-
def _reduce_590(val, _values, result); end
|
2222
|
-
def _reduce_591(val, _values, result); end
|
2223
|
-
def _reduce_592(val, _values, result); end
|
2224
|
-
def _reduce_593(val, _values, result); end
|
2225
|
-
def _reduce_594(val, _values, result); end
|
2226
|
-
def _reduce_595(val, _values, result); end
|
2227
|
-
def _reduce_596(val, _values, result); end
|
2228
|
-
def _reduce_597(val, _values, result); end
|
2229
|
-
def _reduce_598(val, _values, result); end
|
2230
|
-
def _reduce_599(val, _values, result); end
|
2231
|
-
def _reduce_6(val, _values, result); end
|
2232
|
-
def _reduce_60(val, _values, result); end
|
2233
|
-
|
2234
|
-
# reduce 602 omitted
|
2235
|
-
def _reduce_603(val, _values, result); end
|
2236
|
-
|
2237
|
-
def _reduce_604(val, _values, result); end
|
2238
|
-
def _reduce_605(val, _values, result); end
|
2239
|
-
def _reduce_606(val, _values, result); end
|
2240
|
-
def _reduce_607(val, _values, result); end
|
2241
|
-
def _reduce_608(val, _values, result); end
|
2242
|
-
def _reduce_609(val, _values, result); end
|
2243
|
-
def _reduce_610(val, _values, result); end
|
2244
|
-
def _reduce_611(val, _values, result); end
|
2245
|
-
def _reduce_612(val, _values, result); end
|
2246
|
-
def _reduce_613(val, _values, result); end
|
2247
|
-
def _reduce_614(val, _values, result); end
|
2248
|
-
def _reduce_615(val, _values, result); end
|
2249
|
-
def _reduce_616(val, _values, result); end
|
2250
|
-
def _reduce_617(val, _values, result); end
|
2251
|
-
def _reduce_618(val, _values, result); end
|
2252
|
-
def _reduce_619(val, _values, result); end
|
2253
|
-
def _reduce_620(val, _values, result); end
|
2254
|
-
def _reduce_621(val, _values, result); end
|
2255
|
-
def _reduce_622(val, _values, result); end
|
2256
|
-
def _reduce_623(val, _values, result); end
|
2257
|
-
def _reduce_624(val, _values, result); end
|
2258
|
-
def _reduce_625(val, _values, result); end
|
2259
|
-
def _reduce_626(val, _values, result); end
|
2260
|
-
def _reduce_627(val, _values, result); end
|
2261
|
-
def _reduce_628(val, _values, result); end
|
2262
|
-
def _reduce_629(val, _values, result); end
|
2263
|
-
|
2264
|
-
# reduce 62 omitted
|
2265
|
-
def _reduce_63(val, _values, result); end
|
2266
|
-
|
2267
|
-
def _reduce_630(val, _values, result); end
|
2268
|
-
def _reduce_631(val, _values, result); end
|
2269
|
-
def _reduce_632(val, _values, result); end
|
2270
|
-
def _reduce_633(val, _values, result); end
|
2271
|
-
def _reduce_634(val, _values, result); end
|
2272
|
-
|
2273
|
-
# reduce 635 omitted
|
2274
|
-
def _reduce_636(val, _values, result); end
|
2275
|
-
|
2276
|
-
def _reduce_637(val, _values, result); end
|
2277
|
-
|
2278
|
-
# reduce 638 omitted
|
2279
|
-
def _reduce_639(val, _values, result); end
|
2280
|
-
|
2281
|
-
def _reduce_64(val, _values, result); end
|
2282
|
-
def _reduce_640(val, _values, result); end
|
2283
|
-
def _reduce_641(val, _values, result); end
|
2284
|
-
def _reduce_642(val, _values, result); end
|
2285
|
-
def _reduce_643(val, _values, result); end
|
2286
|
-
def _reduce_644(val, _values, result); end
|
2287
|
-
def _reduce_645(val, _values, result); end
|
2288
|
-
def _reduce_646(val, _values, result); end
|
2289
|
-
def _reduce_647(val, _values, result); end
|
2290
|
-
def _reduce_648(val, _values, result); end
|
2291
|
-
def _reduce_649(val, _values, result); end
|
2292
|
-
def _reduce_65(val, _values, result); end
|
2293
|
-
def _reduce_650(val, _values, result); end
|
2294
|
-
def _reduce_651(val, _values, result); end
|
2295
|
-
def _reduce_652(val, _values, result); end
|
2296
|
-
def _reduce_653(val, _values, result); end
|
2297
|
-
def _reduce_654(val, _values, result); end
|
2298
|
-
def _reduce_655(val, _values, result); end
|
2299
|
-
def _reduce_656(val, _values, result); end
|
2300
|
-
def _reduce_657(val, _values, result); end
|
2301
|
-
def _reduce_658(val, _values, result); end
|
2302
|
-
def _reduce_659(val, _values, result); end
|
2303
|
-
def _reduce_66(val, _values, result); end
|
2304
|
-
def _reduce_660(val, _values, result); end
|
2305
|
-
def _reduce_661(val, _values, result); end
|
2306
|
-
def _reduce_662(val, _values, result); end
|
2307
|
-
def _reduce_663(val, _values, result); end
|
2308
|
-
def _reduce_664(val, _values, result); end
|
2309
|
-
def _reduce_665(val, _values, result); end
|
2310
|
-
def _reduce_666(val, _values, result); end
|
2311
|
-
def _reduce_667(val, _values, result); end
|
2312
|
-
|
2313
|
-
# reduce 668 omitted
|
2314
|
-
def _reduce_669(val, _values, result); end
|
2315
|
-
|
2316
|
-
def _reduce_67(val, _values, result); end
|
2317
|
-
def _reduce_670(val, _values, result); end
|
2318
|
-
def _reduce_671(val, _values, result); end
|
2319
|
-
def _reduce_672(val, _values, result); end
|
2320
|
-
def _reduce_673(val, _values, result); end
|
2321
|
-
def _reduce_674(val, _values, result); end
|
2322
|
-
def _reduce_675(val, _values, result); end
|
2323
|
-
def _reduce_676(val, _values, result); end
|
2324
|
-
def _reduce_677(val, _values, result); end
|
2325
|
-
def _reduce_678(val, _values, result); end
|
2326
|
-
def _reduce_679(val, _values, result); end
|
2327
|
-
def _reduce_68(val, _values, result); end
|
2328
|
-
def _reduce_680(val, _values, result); end
|
2329
|
-
def _reduce_681(val, _values, result); end
|
2330
|
-
def _reduce_682(val, _values, result); end
|
2331
|
-
def _reduce_683(val, _values, result); end
|
2332
|
-
|
2333
|
-
# reduce 685 omitted
|
2334
|
-
def _reduce_686(val, _values, result); end
|
2335
|
-
|
2336
|
-
def _reduce_687(val, _values, result); end
|
2337
|
-
def _reduce_688(val, _values, result); end
|
2338
|
-
def _reduce_689(val, _values, result); end
|
2339
|
-
def _reduce_690(val, _values, result); end
|
2340
|
-
def _reduce_691(val, _values, result); end
|
2341
|
-
def _reduce_692(val, _values, result); end
|
2342
|
-
def _reduce_693(val, _values, result); end
|
2343
|
-
def _reduce_694(val, _values, result); end
|
2344
|
-
|
2345
|
-
# reduce 696 omitted
|
2346
|
-
def _reduce_697(val, _values, result); end
|
2347
|
-
|
2348
|
-
def _reduce_698(val, _values, result); end
|
2349
|
-
def _reduce_7(val, _values, result); end
|
2350
|
-
|
2351
|
-
# reduce 700 omitted
|
2352
|
-
def _reduce_701(val, _values, result); end
|
2353
|
-
|
2354
|
-
def _reduce_702(val, _values, result); end
|
2355
|
-
def _reduce_703(val, _values, result); end
|
2356
|
-
def _reduce_704(val, _values, result); end
|
2357
|
-
|
2358
|
-
# reduce 705 omitted
|
2359
|
-
def _reduce_706(val, _values, result); end
|
2360
|
-
|
2361
|
-
def _reduce_707(val, _values, result); end
|
2362
|
-
|
2363
|
-
# reduce 708 omitted
|
2364
|
-
def _reduce_709(val, _values, result); end
|
2365
|
-
|
2366
|
-
def _reduce_710(val, _values, result); end
|
2367
|
-
def _reduce_711(val, _values, result); end
|
2368
|
-
def _reduce_712(val, _values, result); end
|
2369
|
-
def _reduce_713(val, _values, result); end
|
2370
|
-
def _reduce_714(val, _values, result); end
|
2371
|
-
def _reduce_715(val, _values, result); end
|
2372
|
-
|
2373
|
-
# reduce 71 omitted
|
2374
|
-
def _reduce_72(val, _values, result); end
|
2375
|
-
|
2376
|
-
# reduce 727 omitted
|
2377
|
-
def _reduce_728(val, _values, result); end
|
2378
|
-
|
2379
|
-
def _reduce_729(val, _values, result); end
|
2380
|
-
def _reduce_73(val, _values, result); end
|
2381
|
-
|
2382
|
-
# reduce 733 omitted
|
2383
|
-
def _reduce_734(val, _values, result); end
|
2384
|
-
|
2385
|
-
def _reduce_735(val, _values, result); end
|
2386
|
-
def _reduce_736(val, _values, result); end
|
2387
|
-
def _reduce_74(val, _values, result); end
|
2388
|
-
|
2389
|
-
# reduce 739 omitted
|
2390
|
-
def _reduce_740(val, _values, result); end
|
2391
|
-
|
2392
|
-
# reduce 743 omitted
|
2393
|
-
def _reduce_744(val, _values, result); end
|
2394
|
-
|
2395
|
-
# reduce 75 omitted
|
2396
|
-
def _reduce_76(val, _values, result); end
|
2397
|
-
|
2398
|
-
def _reduce_77(val, _values, result); end
|
2399
|
-
def _reduce_78(val, _values, result); end
|
2400
|
-
def _reduce_79(val, _values, result); end
|
2401
|
-
def _reduce_80(val, _values, result); end
|
2402
|
-
def _reduce_81(val, _values, result); end
|
2403
|
-
def _reduce_82(val, _values, result); end
|
2404
|
-
def _reduce_83(val, _values, result); end
|
2405
|
-
def _reduce_84(val, _values, result); end
|
2406
|
-
def _reduce_85(val, _values, result); end
|
2407
|
-
def _reduce_86(val, _values, result); end
|
2408
|
-
def _reduce_87(val, _values, result); end
|
2409
|
-
def _reduce_88(val, _values, result); end
|
2410
|
-
def _reduce_89(val, _values, result); end
|
2411
|
-
|
2412
|
-
# reduce 8 omitted
|
2413
|
-
def _reduce_9(val, _values, result); end
|
2414
|
-
|
2415
|
-
def _reduce_90(val, _values, result); end
|
2416
|
-
|
2417
|
-
# reduce 91 omitted
|
2418
|
-
def _reduce_92(val, _values, result); end
|
2419
|
-
|
2420
|
-
def _reduce_93(val, _values, result); end
|
2421
|
-
def _reduce_94(val, _values, result); end
|
2422
|
-
def _reduce_95(val, _values, result); end
|
2423
|
-
def _reduce_96(val, _values, result); end
|
2424
|
-
def _reduce_97(val, _values, result); end
|
2425
|
-
def _reduce_98(val, _values, result); end
|
2426
|
-
def _reduce_99(val, _values, result); end
|
2427
|
-
def _reduce_none(val, _values, result); end
|
2428
|
-
def default_encoding; end
|
2429
|
-
def endless_method_name(name_t); end
|
2430
|
-
def local_pop; end
|
2431
|
-
def local_push; end
|
2432
|
-
def try_declare_numparam(node); end
|
2433
|
-
def version; end
|
2434
|
-
end
|
2435
|
-
|
2436
|
-
Parser::Ruby31::Racc_arg = T.let(T.unsafe(nil), Array)
|
2437
|
-
Parser::Ruby31::Racc_token_to_s_table = T.let(T.unsafe(nil), Array)
|
2438
|
-
|
2439
|
-
# @api public
|
2440
|
-
module Parser::Source; end
|
2441
|
-
|
2442
|
-
# A buffer with source code. {Buffer} contains the source code itself,
|
2443
|
-
# associated location information (name and first line), and takes care
|
2444
|
-
# of encoding.
|
2445
|
-
#
|
2446
|
-
# A source buffer is immutable once populated.
|
2447
|
-
#
|
2448
|
-
# @api public
|
2449
|
-
class Parser::Source::Buffer
|
2450
|
-
# @api public
|
2451
|
-
# @return [Buffer] a new instance of Buffer
|
2452
|
-
def initialize(name, first_line = T.unsafe(nil), source: T.unsafe(nil)); end
|
2453
|
-
|
2454
|
-
# Convert a character index into the source to a column number.
|
2455
|
-
#
|
2456
|
-
# @api private
|
2457
|
-
# @param position [Integer]
|
2458
|
-
# @return [Integer] column
|
2459
|
-
def column_for_position(position); end
|
2460
|
-
|
2461
|
-
# Convert a character index into the source to a `[line, column]` tuple.
|
2462
|
-
#
|
2463
|
-
# @api public
|
2464
|
-
# @param position [Integer]
|
2465
|
-
# @return [[Integer, Integer]] `[line, column]`
|
2466
|
-
def decompose_position(position); end
|
2467
|
-
|
2468
|
-
# First line of the buffer, 1 by default.
|
2469
|
-
#
|
2470
|
-
# @api public
|
2471
|
-
# @return [Integer] first line
|
2472
|
-
def first_line; end
|
2473
|
-
|
2474
|
-
# @api public
|
2475
|
-
def freeze; end
|
2476
|
-
|
2477
|
-
# @api public
|
2478
|
-
def inspect; end
|
2479
|
-
|
2480
|
-
# Number of last line in the buffer
|
2481
|
-
#
|
2482
|
-
# @api public
|
2483
|
-
# @return [Integer]
|
2484
|
-
def last_line; end
|
2485
|
-
|
2486
|
-
# Convert a character index into the source to a line number.
|
2487
|
-
#
|
2488
|
-
# @api private
|
2489
|
-
# @param position [Integer]
|
2490
|
-
# @return [Integer] line
|
2491
|
-
def line_for_position(position); end
|
2492
|
-
|
2493
|
-
# Extract line `lineno` as a new `Range`, taking `first_line` into account.
|
2494
|
-
#
|
2495
|
-
# @api public
|
2496
|
-
# @param lineno [Integer]
|
2497
|
-
# @raise [IndexError] if `lineno` is out of bounds
|
2498
|
-
# @return [Range]
|
2499
|
-
def line_range(lineno); end
|
2500
|
-
|
2501
|
-
# Buffer name. If the buffer was created from a file, the name corresponds
|
2502
|
-
# to relative path to the file.
|
2503
|
-
#
|
2504
|
-
# @api public
|
2505
|
-
# @return [String] buffer name
|
2506
|
-
def name; end
|
2507
|
-
|
2508
|
-
# Populate this buffer from a string without encoding autodetection.
|
2509
|
-
#
|
2510
|
-
# @api public
|
2511
|
-
# @param input [String]
|
2512
|
-
# @raise [ArgumentError] if already populated
|
2513
|
-
# @return [String]
|
2514
|
-
def raw_source=(input); end
|
2515
|
-
|
2516
|
-
# Populate this buffer from correspondingly named file.
|
2517
|
-
#
|
2518
|
-
# @api public
|
2519
|
-
# @example
|
2520
|
-
# Parser::Source::Buffer.new('foo/bar.rb').read
|
2521
|
-
# @raise [ArgumentError] if already populated
|
2522
|
-
# @return [Buffer] self
|
2523
|
-
def read; end
|
2524
|
-
|
2525
|
-
# @api public
|
2526
|
-
def slice(range); end
|
2527
|
-
|
2528
|
-
# Source code contained in this buffer.
|
2529
|
-
#
|
2530
|
-
# @api public
|
2531
|
-
# @raise [RuntimeError] if buffer is not populated yet
|
2532
|
-
# @return [String] source code
|
2533
|
-
def source; end
|
2534
|
-
|
2535
|
-
# Populate this buffer from a string with encoding autodetection.
|
2536
|
-
# `input` is mutated if not frozen.
|
2537
|
-
#
|
2538
|
-
# @api public
|
2539
|
-
# @param input [String]
|
2540
|
-
# @raise [ArgumentError] if already populated
|
2541
|
-
# @raise [EncodingError] if `input` includes invalid byte sequence for the encoding
|
2542
|
-
# @return [String]
|
2543
|
-
def source=(input); end
|
2544
|
-
|
2545
|
-
# Extract line `lineno` from source, taking `first_line` into account.
|
2546
|
-
#
|
2547
|
-
# @api public
|
2548
|
-
# @param lineno [Integer]
|
2549
|
-
# @raise [IndexError] if `lineno` is out of bounds
|
2550
|
-
# @return [String]
|
2551
|
-
def source_line(lineno); end
|
2552
|
-
|
2553
|
-
# Return an `Array` of source code lines.
|
2554
|
-
#
|
2555
|
-
# @api public
|
2556
|
-
# @return [Array<String>]
|
2557
|
-
def source_lines; end
|
2558
|
-
|
2559
|
-
# @api public
|
2560
|
-
# @return [Range] A range covering the whole source
|
2561
|
-
def source_range; end
|
2562
|
-
|
2563
|
-
private
|
2564
|
-
|
2565
|
-
# @api public
|
2566
|
-
def bsearch(line_begins, position); end
|
2567
|
-
|
2568
|
-
# @api public
|
2569
|
-
def line_begins; end
|
2570
|
-
|
2571
|
-
# @api public
|
2572
|
-
def line_index_for_position(position); end
|
2573
|
-
|
2574
|
-
class << self
|
2575
|
-
# Try to recognize encoding of `string` as Ruby would, i.e. by looking for
|
2576
|
-
# magic encoding comment or UTF-8 BOM. `string` can be in any encoding.
|
2577
|
-
#
|
2578
|
-
# @api public
|
2579
|
-
# @param string [String]
|
2580
|
-
# @return [String, nil] encoding name, if recognized
|
2581
|
-
def recognize_encoding(string); end
|
2582
|
-
|
2583
|
-
# Recognize encoding of `input` and process it so it could be lexed.
|
2584
|
-
#
|
2585
|
-
# * If `input` does not contain BOM or magic encoding comment, it is
|
2586
|
-
# kept in the original encoding.
|
2587
|
-
# * If the detected encoding is binary, `input` is kept in binary.
|
2588
|
-
# * Otherwise, `input` is re-encoded into UTF-8 and returned as a
|
2589
|
-
# new string.
|
2590
|
-
#
|
2591
|
-
# This method mutates the encoding of `input`, but not its content.
|
2592
|
-
#
|
2593
|
-
# @api public
|
2594
|
-
# @param input [String]
|
2595
|
-
# @raise [EncodingError]
|
2596
|
-
# @return [String]
|
2597
|
-
def reencode_string(input); end
|
2598
|
-
end
|
2599
|
-
end
|
2600
|
-
|
2601
|
-
# @api private
|
2602
|
-
Parser::Source::Buffer::ENCODING_RE = T.let(T.unsafe(nil), Regexp)
|
2603
|
-
|
2604
|
-
# A comment in the source code.
|
2605
|
-
#
|
2606
|
-
# @api public
|
2607
|
-
class Parser::Source::Comment
|
2608
|
-
# @api public
|
2609
|
-
# @param range [Parser::Source::Range]
|
2610
|
-
# @return [Comment] a new instance of Comment
|
2611
|
-
def initialize(range); end
|
2612
|
-
|
2613
|
-
# Compares comments. Two comments are equal if they
|
2614
|
-
# correspond to the same source range.
|
2615
|
-
#
|
2616
|
-
# @api public
|
2617
|
-
# @param other [Object]
|
2618
|
-
# @return [Boolean]
|
2619
|
-
def ==(other); end
|
2620
|
-
|
2621
|
-
# @api public
|
2622
|
-
# @return [Boolean] true if this is a block comment.
|
2623
|
-
# @see #type
|
2624
|
-
def document?; end
|
2625
|
-
|
2626
|
-
# @api public
|
2627
|
-
# @return [Boolean] true if this is an inline comment.
|
2628
|
-
# @see #type
|
2629
|
-
def inline?; end
|
2630
|
-
|
2631
|
-
# @api public
|
2632
|
-
# @return [String] a human-readable representation of this comment
|
2633
|
-
def inspect; end
|
2634
|
-
|
2635
|
-
# @api public
|
2636
|
-
# @return [Parser::Source::Range]
|
2637
|
-
def loc; end
|
2638
|
-
|
2639
|
-
# @api public
|
2640
|
-
# @return [Parser::Source::Range]
|
2641
|
-
def location; end
|
2642
|
-
|
2643
|
-
# @api public
|
2644
|
-
# @return [String]
|
2645
|
-
def text; end
|
2646
|
-
|
2647
|
-
# Type of this comment.
|
2648
|
-
#
|
2649
|
-
# * Inline comments correspond to `:inline`:
|
2650
|
-
#
|
2651
|
-
# # whatever
|
2652
|
-
#
|
2653
|
-
# * Block comments correspond to `:document`:
|
2654
|
-
#
|
2655
|
-
# =begin
|
2656
|
-
# hi i am a document
|
2657
|
-
# =end
|
2658
|
-
#
|
2659
|
-
# @api public
|
2660
|
-
# @return [Symbol]
|
2661
|
-
def type; end
|
2662
|
-
|
2663
|
-
class << self
|
2664
|
-
# Associate `comments` with `ast` nodes by their corresponding node.
|
2665
|
-
#
|
2666
|
-
# @api public
|
2667
|
-
# @deprecated Use {associate_locations}.
|
2668
|
-
# @param ast [Parser::AST::Node]
|
2669
|
-
# @param comments [Array<Comment>]
|
2670
|
-
# @return [Hash<Parser::AST::Node, Array<Comment>>]
|
2671
|
-
# @see Parser::Source::Comment::Associator#associate
|
2672
|
-
def associate(ast, comments); end
|
2673
|
-
|
2674
|
-
# Associate `comments` with `ast` nodes using identity.
|
2675
|
-
#
|
2676
|
-
# @api public
|
2677
|
-
# @param ast [Parser::AST::Node]
|
2678
|
-
# @param comments [Array<Comment>]
|
2679
|
-
# @return [Hash<Parser::Source::Node, Array<Comment>>]
|
2680
|
-
# @see Parser::Source::Comment::Associator#associate_by_identity
|
2681
|
-
def associate_by_identity(ast, comments); end
|
2682
|
-
|
2683
|
-
# Associate `comments` with `ast` nodes by their location in the
|
2684
|
-
# source.
|
2685
|
-
#
|
2686
|
-
# @api public
|
2687
|
-
# @param ast [Parser::AST::Node]
|
2688
|
-
# @param comments [Array<Comment>]
|
2689
|
-
# @return [Hash<Parser::Source::Map, Array<Comment>>]
|
2690
|
-
# @see Parser::Source::Comment::Associator#associate_locations
|
2691
|
-
def associate_locations(ast, comments); end
|
2692
|
-
end
|
2693
|
-
end
|
2694
|
-
|
2695
|
-
class Parser::Source::Comment::Associator
|
2696
|
-
def initialize(ast, comments); end
|
2697
|
-
|
2698
|
-
def associate; end
|
2699
|
-
def associate_by_identity; end
|
2700
|
-
def associate_locations; end
|
2701
|
-
def skip_directives; end
|
2702
|
-
def skip_directives=(_arg0); end
|
2703
|
-
|
2704
|
-
private
|
2705
|
-
|
2706
|
-
def advance_comment; end
|
2707
|
-
def advance_through_directives; end
|
2708
|
-
def associate_and_advance_comment(node); end
|
2709
|
-
def children_in_source_order(node); end
|
2710
|
-
def current_comment_before?(node); end
|
2711
|
-
def current_comment_before_end?(node); end
|
2712
|
-
def current_comment_decorates?(node); end
|
2713
|
-
def do_associate; end
|
2714
|
-
def process_leading_comments(node); end
|
2715
|
-
def process_trailing_comments(node); end
|
2716
|
-
def visit(node); end
|
2717
|
-
end
|
2718
|
-
|
2719
|
-
Parser::Source::Comment::Associator::MAGIC_COMMENT_RE = T.let(T.unsafe(nil), Regexp)
|
2720
|
-
Parser::Source::Comment::Associator::POSTFIX_TYPES = T.let(T.unsafe(nil), Set)
|
2721
|
-
|
2722
|
-
# {Map} relates AST nodes to the source code they were parsed from.
|
2723
|
-
# More specifically, a {Map} or its subclass contains a set of ranges:
|
2724
|
-
#
|
2725
|
-
# * `expression`: smallest range which includes all source corresponding
|
2726
|
-
# to the node and all `expression` ranges of its children.
|
2727
|
-
# * other ranges (`begin`, `end`, `operator`, ...): node-specific ranges
|
2728
|
-
# pointing to various interesting tokens corresponding to the node.
|
2729
|
-
#
|
2730
|
-
# Note that the {Map::Heredoc} map is the only one whose `expression` does
|
2731
|
-
# not include other ranges. It only covers the heredoc marker (`<<HERE`),
|
2732
|
-
# not the here document itself.
|
2733
|
-
#
|
2734
|
-
# All ranges except `expression` are defined by {Map} subclasses.
|
2735
|
-
#
|
2736
|
-
# Ranges (except `expression`) can be `nil` if the corresponding token is
|
2737
|
-
# not present in source. For example, a hash may not have opening/closing
|
2738
|
-
# braces, and so would its source map.
|
2739
|
-
#
|
2740
|
-
# p Parser::CurrentRuby.parse('[1 => 2]').children[0].loc
|
2741
|
-
# # => <Parser::Source::Map::Collection:0x007f5492b547d8
|
2742
|
-
# # @end=nil, @begin=nil,
|
2743
|
-
# # @expression=#<Source::Range (string) 1...7>>
|
2744
|
-
#
|
2745
|
-
# The {file:doc/AST_FORMAT.md} document describes how ranges associated to source
|
2746
|
-
# code tokens. For example, the entry
|
2747
|
-
#
|
2748
|
-
# (array (int 1) (int 2))
|
2749
|
-
#
|
2750
|
-
# "[1, 2]"
|
2751
|
-
# ^ begin
|
2752
|
-
# ^ end
|
2753
|
-
# ~~~~~~ expression
|
2754
|
-
#
|
2755
|
-
# means that if `node` is an {Parser::AST::Node} `(array (int 1) (int 2))`,
|
2756
|
-
# then `node.loc` responds to `begin`, `end` and `expression`, and
|
2757
|
-
# `node.loc.begin` returns a range pointing at the opening bracket, and so on.
|
2758
|
-
#
|
2759
|
-
# If you want to write code polymorphic by the source map (i.e. accepting
|
2760
|
-
# several subclasses of {Map}), use `respond_to?` instead of `is_a?` to
|
2761
|
-
# check whether the map features the range you need. Concrete {Map}
|
2762
|
-
# subclasses may not be preserved between versions, but their interfaces
|
2763
|
-
# will be kept compatible.
|
2764
|
-
#
|
2765
|
-
# You can visualize the source maps with `ruby-parse -E` command-line tool.
|
2766
|
-
#
|
2767
|
-
# @api public
|
2768
|
-
# @example
|
2769
|
-
# require 'parser/current'
|
2770
|
-
#
|
2771
|
-
# p Parser::CurrentRuby.parse('[1, 2]').loc
|
2772
|
-
# # => #<Parser::Source::Map::Collection:0x007f14b80eccd8
|
2773
|
-
# # @end=#<Source::Range (string) 5...6>,
|
2774
|
-
# # @begin=#<Source::Range (string) 0...1>,
|
2775
|
-
# # @expression=#<Source::Range (string) 0...6>>
|
2776
|
-
class Parser::Source::Map
|
2777
|
-
# @api public
|
2778
|
-
# @param expression [Range]
|
2779
|
-
# @return [Map] a new instance of Map
|
2780
|
-
def initialize(expression); end
|
2781
|
-
|
2782
|
-
# Compares source maps.
|
2783
|
-
#
|
2784
|
-
# @api public
|
2785
|
-
# @return [Boolean]
|
2786
|
-
def ==(other); end
|
2787
|
-
|
2788
|
-
# A shortcut for `self.expression.column`.
|
2789
|
-
#
|
2790
|
-
# @api public
|
2791
|
-
# @return [Integer]
|
2792
|
-
def column; end
|
2793
|
-
|
2794
|
-
# @api public
|
2795
|
-
# @return [Range]
|
2796
|
-
def expression; end
|
2797
|
-
|
2798
|
-
# A shortcut for `self.expression.line`.
|
2799
|
-
#
|
2800
|
-
# @api public
|
2801
|
-
# @return [Integer]
|
2802
|
-
def first_line; end
|
2803
|
-
|
2804
|
-
# A shortcut for `self.expression.last_column`.
|
2805
|
-
#
|
2806
|
-
# @api public
|
2807
|
-
# @return [Integer]
|
2808
|
-
def last_column; end
|
2809
|
-
|
2810
|
-
# A shortcut for `self.expression.last_line`.
|
2811
|
-
#
|
2812
|
-
# @api public
|
2813
|
-
# @return [Integer]
|
2814
|
-
def last_line; end
|
2815
|
-
|
2816
|
-
# A shortcut for `self.expression.line`.
|
2817
|
-
#
|
2818
|
-
# @api public
|
2819
|
-
# @return [Integer]
|
2820
|
-
def line; end
|
2821
|
-
|
2822
|
-
# The node that is described by this map. Nodes and maps have 1:1 correspondence.
|
2823
|
-
#
|
2824
|
-
# @api public
|
2825
|
-
# @return [Parser::AST::Node]
|
2826
|
-
def node; end
|
2827
|
-
|
2828
|
-
# @api private
|
2829
|
-
def node=(node); end
|
2830
|
-
|
2831
|
-
# Converts this source map to a hash with keys corresponding to
|
2832
|
-
# ranges. For example, if called on an instance of {Collection},
|
2833
|
-
# which adds the `begin` and `end` ranges, the resulting hash
|
2834
|
-
# will contain keys `:expression`, `:begin` and `:end`.
|
2835
|
-
#
|
2836
|
-
# @api public
|
2837
|
-
# @example
|
2838
|
-
# require 'parser/current'
|
2839
|
-
#
|
2840
|
-
# p Parser::CurrentRuby.parse('[1, 2]').loc.to_hash
|
2841
|
-
# # => {
|
2842
|
-
# # :begin => #<Source::Range (string) 0...1>,
|
2843
|
-
# # :end => #<Source::Range (string) 5...6>,
|
2844
|
-
# # :expression => #<Source::Range (string) 0...6>
|
2845
|
-
# # }
|
2846
|
-
# @return [Hash<Symbol, Parser::Source::Range>]
|
2847
|
-
def to_hash; end
|
2848
|
-
|
2849
|
-
# @api private
|
2850
|
-
def with_expression(expression_l); end
|
2851
|
-
|
2852
|
-
protected
|
2853
|
-
|
2854
|
-
# @api public
|
2855
|
-
def update_expression(expression_l); end
|
2856
|
-
|
2857
|
-
# @api public
|
2858
|
-
def with(&block); end
|
2859
|
-
|
2860
|
-
private
|
2861
|
-
|
2862
|
-
# @api private
|
2863
|
-
def initialize_copy(other); end
|
2864
|
-
end
|
2865
|
-
|
2866
|
-
class Parser::Source::Map::Collection < ::Parser::Source::Map
|
2867
|
-
def initialize(begin_l, end_l, expression_l); end
|
2868
|
-
|
2869
|
-
def begin; end
|
2870
|
-
def end; end
|
2871
|
-
end
|
2872
|
-
|
2873
|
-
class Parser::Source::Map::Condition < ::Parser::Source::Map
|
2874
|
-
def initialize(keyword_l, begin_l, else_l, end_l, expression_l); end
|
2875
|
-
|
2876
|
-
def begin; end
|
2877
|
-
def else; end
|
2878
|
-
def end; end
|
2879
|
-
def keyword; end
|
2880
|
-
end
|
2881
|
-
|
2882
|
-
class Parser::Source::Map::Constant < ::Parser::Source::Map
|
2883
|
-
def initialize(double_colon, name, expression); end
|
2884
|
-
|
2885
|
-
def double_colon; end
|
2886
|
-
def name; end
|
2887
|
-
def operator; end
|
2888
|
-
def with_operator(operator_l); end
|
2889
|
-
|
2890
|
-
protected
|
2891
|
-
|
2892
|
-
def update_operator(operator_l); end
|
2893
|
-
end
|
2894
|
-
|
2895
|
-
class Parser::Source::Map::Definition < ::Parser::Source::Map
|
2896
|
-
def initialize(keyword_l, operator_l, name_l, end_l); end
|
2897
|
-
|
2898
|
-
def end; end
|
2899
|
-
def keyword; end
|
2900
|
-
def name; end
|
2901
|
-
def operator; end
|
2902
|
-
end
|
2903
|
-
|
2904
|
-
class Parser::Source::Map::For < ::Parser::Source::Map
|
2905
|
-
def initialize(keyword_l, in_l, begin_l, end_l, expression_l); end
|
2906
|
-
|
2907
|
-
def begin; end
|
2908
|
-
def end; end
|
2909
|
-
def in; end
|
2910
|
-
def keyword; end
|
2911
|
-
end
|
2912
|
-
|
2913
|
-
class Parser::Source::Map::Heredoc < ::Parser::Source::Map
|
2914
|
-
def initialize(begin_l, body_l, end_l); end
|
2915
|
-
|
2916
|
-
def heredoc_body; end
|
2917
|
-
def heredoc_end; end
|
2918
|
-
end
|
2919
|
-
|
2920
|
-
class Parser::Source::Map::Index < ::Parser::Source::Map
|
2921
|
-
def initialize(begin_l, end_l, expression_l); end
|
2922
|
-
|
2923
|
-
def begin; end
|
2924
|
-
def end; end
|
2925
|
-
def operator; end
|
2926
|
-
def with_operator(operator_l); end
|
2927
|
-
|
2928
|
-
protected
|
2929
|
-
|
2930
|
-
def update_operator(operator_l); end
|
2931
|
-
end
|
2932
|
-
|
2933
|
-
class Parser::Source::Map::Keyword < ::Parser::Source::Map
|
2934
|
-
def initialize(keyword_l, begin_l, end_l, expression_l); end
|
2935
|
-
|
2936
|
-
def begin; end
|
2937
|
-
def end; end
|
2938
|
-
def keyword; end
|
2939
|
-
end
|
2940
|
-
|
2941
|
-
class Parser::Source::Map::MethodDefinition < ::Parser::Source::Map
|
2942
|
-
def initialize(keyword_l, operator_l, name_l, end_l, assignment_l, body_l); end
|
2943
|
-
|
2944
|
-
def assignment; end
|
2945
|
-
def end; end
|
2946
|
-
def keyword; end
|
2947
|
-
def name; end
|
2948
|
-
def operator; end
|
2949
|
-
end
|
2950
|
-
|
2951
|
-
class Parser::Source::Map::ObjcKwarg < ::Parser::Source::Map
|
2952
|
-
def initialize(keyword_l, operator_l, argument_l, expression_l); end
|
2953
|
-
|
2954
|
-
def argument; end
|
2955
|
-
def keyword; end
|
2956
|
-
def operator; end
|
2957
|
-
end
|
2958
|
-
|
2959
|
-
class Parser::Source::Map::Operator < ::Parser::Source::Map
|
2960
|
-
def initialize(operator, expression); end
|
2961
|
-
|
2962
|
-
def operator; end
|
2963
|
-
end
|
2964
|
-
|
2965
|
-
class Parser::Source::Map::RescueBody < ::Parser::Source::Map
|
2966
|
-
def initialize(keyword_l, assoc_l, begin_l, expression_l); end
|
2967
|
-
|
2968
|
-
def assoc; end
|
2969
|
-
def begin; end
|
2970
|
-
def keyword; end
|
2971
|
-
end
|
2972
|
-
|
2973
|
-
class Parser::Source::Map::Send < ::Parser::Source::Map
|
2974
|
-
def initialize(dot_l, selector_l, begin_l, end_l, expression_l); end
|
2975
|
-
|
2976
|
-
def begin; end
|
2977
|
-
def dot; end
|
2978
|
-
def end; end
|
2979
|
-
def operator; end
|
2980
|
-
def selector; end
|
2981
|
-
def with_operator(operator_l); end
|
2982
|
-
|
2983
|
-
protected
|
2984
|
-
|
2985
|
-
def update_operator(operator_l); end
|
2986
|
-
end
|
2987
|
-
|
2988
|
-
class Parser::Source::Map::Ternary < ::Parser::Source::Map
|
2989
|
-
def initialize(question_l, colon_l, expression_l); end
|
2990
|
-
|
2991
|
-
def colon; end
|
2992
|
-
def question; end
|
2993
|
-
end
|
2994
|
-
|
2995
|
-
class Parser::Source::Map::Variable < ::Parser::Source::Map
|
2996
|
-
def initialize(name_l, expression_l = T.unsafe(nil)); end
|
2997
|
-
|
2998
|
-
def name; end
|
2999
|
-
def operator; end
|
3000
|
-
def with_operator(operator_l); end
|
3001
|
-
|
3002
|
-
protected
|
3003
|
-
|
3004
|
-
def update_operator(operator_l); end
|
3005
|
-
end
|
3006
|
-
|
3007
|
-
# A range of characters in a particular source buffer.
|
3008
|
-
#
|
3009
|
-
# The range is always exclusive, i.e. a range with `begin_pos` of 3 and
|
3010
|
-
# `end_pos` of 5 will contain the following characters:
|
3011
|
-
#
|
3012
|
-
# example
|
3013
|
-
# ^^
|
3014
|
-
#
|
3015
|
-
# @api public
|
3016
|
-
class Parser::Source::Range
|
3017
|
-
include ::Comparable
|
3018
|
-
include ::RuboCop::AST::Ext::Range
|
3019
|
-
|
3020
|
-
# @api public
|
3021
|
-
# @param source_buffer [Buffer]
|
3022
|
-
# @param begin_pos [Integer]
|
3023
|
-
# @param end_pos [Integer]
|
3024
|
-
# @return [Range] a new instance of Range
|
3025
|
-
def initialize(source_buffer, begin_pos, end_pos); end
|
3026
|
-
|
3027
|
-
# Compare ranges, first by begin_pos, then by end_pos.
|
3028
|
-
#
|
3029
|
-
# @api public
|
3030
|
-
def <=>(other); end
|
3031
|
-
|
3032
|
-
# by the given amount(s)
|
3033
|
-
#
|
3034
|
-
# @api public
|
3035
|
-
# @param Endpoint(s) [Hash] to change, any combination of :begin_pos or :end_pos
|
3036
|
-
# @return [Range] the same range as this range but with the given end point(s) adjusted
|
3037
|
-
def adjust(begin_pos: T.unsafe(nil), end_pos: T.unsafe(nil)); end
|
3038
|
-
|
3039
|
-
# @api public
|
3040
|
-
# @return [Range] a zero-length range located just before the beginning
|
3041
|
-
# of this range.
|
3042
|
-
def begin; end
|
3043
|
-
|
3044
|
-
# @api public
|
3045
|
-
# @return [Integer] index of the first character in the range
|
3046
|
-
def begin_pos; end
|
3047
|
-
|
3048
|
-
# @api public
|
3049
|
-
# @return [Integer] zero-based column number of the beginning of this range.
|
3050
|
-
def column; end
|
3051
|
-
|
3052
|
-
# @api public
|
3053
|
-
# @raise RangeError
|
3054
|
-
# @return [::Range] a range of columns spanned by this range.
|
3055
|
-
def column_range; end
|
3056
|
-
|
3057
|
-
# Return `other.contains?(self)`
|
3058
|
-
#
|
3059
|
-
# Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
|
3060
|
-
#
|
3061
|
-
# @api public
|
3062
|
-
# @param other [Range]
|
3063
|
-
# @return [Boolean]
|
3064
|
-
def contained?(other); end
|
3065
|
-
|
3066
|
-
# Returns true iff this range contains (strictly) `other`.
|
3067
|
-
#
|
3068
|
-
# Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
|
3069
|
-
#
|
3070
|
-
# @api public
|
3071
|
-
# @param other [Range]
|
3072
|
-
# @return [Boolean]
|
3073
|
-
def contains?(other); end
|
3074
|
-
|
3075
|
-
# Returns true iff both ranges intersect and also have different elements from one another.
|
3076
|
-
#
|
3077
|
-
# Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
|
3078
|
-
#
|
3079
|
-
# @api public
|
3080
|
-
# @param other [Range]
|
3081
|
-
# @return [Boolean]
|
3082
|
-
def crossing?(other); end
|
3083
|
-
|
3084
|
-
# Return `true` iff this range and `other` are disjoint.
|
3085
|
-
#
|
3086
|
-
# Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
|
3087
|
-
#
|
3088
|
-
# @api public
|
3089
|
-
# @param other [Range]
|
3090
|
-
# @return [Boolean]
|
3091
|
-
def disjoint?(other); end
|
3092
|
-
|
3093
|
-
# Checks if a range is empty; if it contains no characters
|
3094
|
-
#
|
3095
|
-
# @api public
|
3096
|
-
# @return [Boolean]
|
3097
|
-
def empty?; end
|
3098
|
-
|
3099
|
-
# @api public
|
3100
|
-
# @return [Range] a zero-length range located just after the end
|
3101
|
-
# of this range.
|
3102
|
-
def end; end
|
3103
|
-
|
3104
|
-
# @api public
|
3105
|
-
# @return [Integer] index of the character after the last character in the range
|
3106
|
-
def end_pos; end
|
3107
|
-
|
3108
|
-
# @api public
|
3109
|
-
def eql?(_arg0); end
|
3110
|
-
|
3111
|
-
# Line number of the beginning of this range. By default, the first line
|
3112
|
-
# of a buffer is 1; as such, line numbers are most commonly one-based.
|
3113
|
-
#
|
3114
|
-
# @api public
|
3115
|
-
# @return [Integer] line number of the beginning of this range.
|
3116
|
-
# @see Buffer
|
3117
|
-
def first_line; end
|
3118
|
-
|
3119
|
-
# Support for Ranges be used in as Hash indices and in Sets.
|
3120
|
-
#
|
3121
|
-
# @api public
|
3122
|
-
def hash; end
|
3123
|
-
|
3124
|
-
# @api public
|
3125
|
-
# @return [String] a human-readable representation of this range.
|
3126
|
-
def inspect; end
|
3127
|
-
|
3128
|
-
# @api public
|
3129
|
-
# @param other [Range]
|
3130
|
-
# @return [Range] overlapping region of this range and `other`, or `nil`
|
3131
|
-
# if they do not overlap
|
3132
|
-
def intersect(other); end
|
3133
|
-
|
3134
|
-
# `is?` provides a concise way to compare the source corresponding to this range.
|
3135
|
-
# For example, `r.source == '(' || r.source == 'begin'` is equivalent to
|
3136
|
-
# `r.is?('(', 'begin')`.
|
3137
|
-
#
|
3138
|
-
# @api public
|
3139
|
-
# @return [Boolean]
|
3140
|
-
def is?(*what); end
|
3141
|
-
|
3142
|
-
# @api public
|
3143
|
-
# @param other [Range]
|
3144
|
-
# @return [Range] smallest possible range spanning both this range and `other`.
|
3145
|
-
def join(other); end
|
3146
|
-
|
3147
|
-
# @api public
|
3148
|
-
# @return [Integer] zero-based column number of the end of this range.
|
3149
|
-
def last_column; end
|
3150
|
-
|
3151
|
-
# @api public
|
3152
|
-
# @return [Integer] line number of the end of this range.
|
3153
|
-
def last_line; end
|
3154
|
-
|
3155
|
-
# @api public
|
3156
|
-
# @return [Integer] amount of characters included in this range.
|
3157
|
-
def length; end
|
3158
|
-
|
3159
|
-
# Line number of the beginning of this range. By default, the first line
|
3160
|
-
# of a buffer is 1; as such, line numbers are most commonly one-based.
|
3161
|
-
#
|
3162
|
-
# @api public
|
3163
|
-
# @return [Integer] line number of the beginning of this range.
|
3164
|
-
# @see Buffer
|
3165
|
-
def line; end
|
3166
|
-
|
3167
|
-
# Return `true` iff this range is not disjoint from `other`.
|
3168
|
-
#
|
3169
|
-
# @api public
|
3170
|
-
# @param other [Range]
|
3171
|
-
# @return [Boolean] `true` if this range and `other` overlap
|
3172
|
-
def overlaps?(other); end
|
3173
|
-
|
3174
|
-
# @api public
|
3175
|
-
# @param new_size [Integer]
|
3176
|
-
# @return [Range] a range beginning at the same point as this range and length `new_size`.
|
3177
|
-
def resize(new_size); end
|
3178
|
-
|
3179
|
-
# @api public
|
3180
|
-
# @return [Integer] amount of characters included in this range.
|
3181
|
-
def size; end
|
3182
|
-
|
3183
|
-
# @api public
|
3184
|
-
# @return [String] all source code covered by this range.
|
3185
|
-
def source; end
|
3186
|
-
|
3187
|
-
# @api public
|
3188
|
-
# @return [Parser::Source::Buffer]
|
3189
|
-
def source_buffer; end
|
3190
|
-
|
3191
|
-
# @api public
|
3192
|
-
# @return [String] a line of source code containing the beginning of this range.
|
3193
|
-
def source_line; end
|
3194
|
-
|
3195
|
-
# @api public
|
3196
|
-
# @return [Array<Integer>] a set of character indexes contained in this range.
|
3197
|
-
def to_a; end
|
3198
|
-
|
3199
|
-
# @api public
|
3200
|
-
# @return [Range] a Ruby range with the same `begin_pos` and `end_pos`
|
3201
|
-
def to_range; end
|
3202
|
-
|
3203
|
-
# Composes a GNU/Clang-style string representation of the beginning of this
|
3204
|
-
# range.
|
3205
|
-
#
|
3206
|
-
# For example, for the following range in file `foo.rb`,
|
3207
|
-
#
|
3208
|
-
# def foo
|
3209
|
-
# ^^^
|
3210
|
-
#
|
3211
|
-
# `to_s` will return `foo.rb:1:5`.
|
3212
|
-
# Note that the column index is one-based.
|
3213
|
-
#
|
3214
|
-
# @api public
|
3215
|
-
# @return [String]
|
3216
|
-
def to_s; end
|
3217
|
-
|
3218
|
-
# to the given value(s).
|
3219
|
-
#
|
3220
|
-
# @api public
|
3221
|
-
# @param Endpoint(s) [Hash] to change, any combination of :begin_pos or :end_pos
|
3222
|
-
# @return [Range] the same range as this range but with the given end point(s) changed
|
3223
|
-
def with(begin_pos: T.unsafe(nil), end_pos: T.unsafe(nil)); end
|
3224
|
-
end
|
3225
|
-
|
3226
|
-
# {Rewriter} is deprecated. Use {TreeRewriter} instead.
|
3227
|
-
#
|
3228
|
-
# TreeRewriter has simplified semantics, and customizable policies
|
3229
|
-
# with regards to clobbering. Please read the documentation.
|
3230
|
-
#
|
3231
|
-
# Keep in mind:
|
3232
|
-
# - Rewriter was discarding the `end_pos` of the given range for `insert_before`,
|
3233
|
-
# and the `begin_pos` for `insert_after`. These are meaningful in TreeRewriter.
|
3234
|
-
# - TreeRewriter's wrap/insert_before/insert_after are multiple by default, while
|
3235
|
-
# Rewriter would raise clobbering errors if the non '_multi' version was called.
|
3236
|
-
# - The TreeRewriter policy closest to Rewriter's behavior is:
|
3237
|
-
# different_replacements: :raise,
|
3238
|
-
# swallowed_insertions: :raise,
|
3239
|
-
# crossing_deletions: :accept
|
3240
|
-
#
|
3241
|
-
# @api public
|
3242
|
-
# @deprecated Use {TreeRewriter}
|
3243
|
-
class Parser::Source::Rewriter
|
3244
|
-
extend ::Parser::Deprecation
|
3245
|
-
|
3246
|
-
# @api public
|
3247
|
-
# @deprecated Use {TreeRewriter}
|
3248
|
-
# @param source_buffer [Source::Buffer]
|
3249
|
-
# @return [Rewriter] a new instance of Rewriter
|
3250
|
-
def initialize(source_buffer); end
|
3251
|
-
|
3252
|
-
# @api public
|
3253
|
-
# @return [Diagnostic::Engine]
|
3254
|
-
def diagnostics; end
|
3255
|
-
|
3256
|
-
# Inserts new code after the given source range.
|
3257
|
-
#
|
3258
|
-
# @api public
|
3259
|
-
# @deprecated Use {TreeRewriter#insert_after}
|
3260
|
-
# @param range [Range]
|
3261
|
-
# @param content [String]
|
3262
|
-
# @raise [ClobberingError] when clobbering is detected
|
3263
|
-
# @return [Rewriter] self
|
3264
|
-
def insert_after(range, content); end
|
3265
|
-
|
3266
|
-
# Inserts new code after the given source range by allowing other
|
3267
|
-
# insertions at the same position.
|
3268
|
-
# Note that an insertion with latter invocation comes _after_ earlier
|
3269
|
-
# insertion at the same position in the rewritten source.
|
3270
|
-
#
|
3271
|
-
# @api public
|
3272
|
-
# @deprecated Use {TreeRewriter#insert_after}
|
3273
|
-
# @example Inserting ')]'
|
3274
|
-
# rewriter.
|
3275
|
-
# insert_after_multi(range, ')').
|
3276
|
-
# insert_after_multi(range, ']').
|
3277
|
-
# process
|
3278
|
-
# @param range [Range]
|
3279
|
-
# @param content [String]
|
3280
|
-
# @raise [ClobberingError] when clobbering is detected
|
3281
|
-
# @return [Rewriter] self
|
3282
|
-
def insert_after_multi(range, content); end
|
3283
|
-
|
3284
|
-
# Inserts new code before the given source range.
|
3285
|
-
#
|
3286
|
-
# @api public
|
3287
|
-
# @deprecated Use {TreeRewriter#insert_before}
|
3288
|
-
# @param range [Range]
|
3289
|
-
# @param content [String]
|
3290
|
-
# @raise [ClobberingError] when clobbering is detected
|
3291
|
-
# @return [Rewriter] self
|
3292
|
-
def insert_before(range, content); end
|
3293
|
-
|
3294
|
-
# Inserts new code before the given source range by allowing other
|
3295
|
-
# insertions at the same position.
|
3296
|
-
# Note that an insertion with latter invocation comes _before_ earlier
|
3297
|
-
# insertion at the same position in the rewritten source.
|
3298
|
-
#
|
3299
|
-
# @api public
|
3300
|
-
# @deprecated Use {TreeRewriter#insert_before}
|
3301
|
-
# @example Inserting '[('
|
3302
|
-
# rewriter.
|
3303
|
-
# insert_before_multi(range, '(').
|
3304
|
-
# insert_before_multi(range, '[').
|
3305
|
-
# process
|
3306
|
-
# @param range [Range]
|
3307
|
-
# @param content [String]
|
3308
|
-
# @raise [ClobberingError] when clobbering is detected
|
3309
|
-
# @return [Rewriter] self
|
3310
|
-
def insert_before_multi(range, content); end
|
3311
|
-
|
3312
|
-
# Applies all scheduled changes to the `source_buffer` and returns
|
3313
|
-
# modified source as a new string.
|
3314
|
-
#
|
3315
|
-
# @api public
|
3316
|
-
# @deprecated Use {TreeRewriter#process}
|
3317
|
-
# @return [String]
|
3318
|
-
def process; end
|
3319
|
-
|
3320
|
-
# Removes the source range.
|
3321
|
-
#
|
3322
|
-
# @api public
|
3323
|
-
# @deprecated Use {TreeRewriter#remove}
|
3324
|
-
# @param range [Range]
|
3325
|
-
# @raise [ClobberingError] when clobbering is detected
|
3326
|
-
# @return [Rewriter] self
|
3327
|
-
def remove(range); end
|
3328
|
-
|
3329
|
-
# Replaces the code of the source range `range` with `content`.
|
3330
|
-
#
|
3331
|
-
# @api public
|
3332
|
-
# @deprecated Use {TreeRewriter#replace}
|
3333
|
-
# @param range [Range]
|
3334
|
-
# @param content [String]
|
3335
|
-
# @raise [ClobberingError] when clobbering is detected
|
3336
|
-
# @return [Rewriter] self
|
3337
|
-
def replace(range, content); end
|
3338
|
-
|
3339
|
-
# @api public
|
3340
|
-
# @return [Source::Buffer]
|
3341
|
-
def source_buffer; end
|
3342
|
-
|
3343
|
-
# Provides a protected block where a sequence of multiple rewrite actions
|
3344
|
-
# are handled atomically. If any of the actions failed by clobbering,
|
3345
|
-
# all the actions are rolled back.
|
3346
|
-
#
|
3347
|
-
# @api public
|
3348
|
-
# @deprecated Use {TreeRewriter#transaction}
|
3349
|
-
# @example
|
3350
|
-
# begin
|
3351
|
-
# rewriter.transaction do
|
3352
|
-
# rewriter.insert_before(range_of_something, '(')
|
3353
|
-
# rewriter.insert_after(range_of_something, ')')
|
3354
|
-
# end
|
3355
|
-
# rescue Parser::ClobberingError
|
3356
|
-
# end
|
3357
|
-
# @raise [RuntimeError] when no block is passed
|
3358
|
-
# @raise [RuntimeError] when already in a transaction
|
3359
|
-
def transaction; end
|
3360
|
-
|
3361
|
-
# Inserts new code before and after the given source range.
|
3362
|
-
#
|
3363
|
-
# @api public
|
3364
|
-
# @deprecated Use {TreeRewriter#wrap}
|
3365
|
-
# @param range [Range]
|
3366
|
-
# @param before [String]
|
3367
|
-
# @param after [String]
|
3368
|
-
# @raise [ClobberingError] when clobbering is detected
|
3369
|
-
# @return [Rewriter] self
|
3370
|
-
def wrap(range, before, after); end
|
3371
|
-
|
3372
|
-
private
|
3373
|
-
|
3374
|
-
# @api public
|
3375
|
-
def active_clobber; end
|
3376
|
-
|
3377
|
-
# @api public
|
3378
|
-
def active_clobber=(value); end
|
3379
|
-
|
3380
|
-
# @api public
|
3381
|
-
def active_insertions; end
|
3382
|
-
|
3383
|
-
# @api public
|
3384
|
-
def active_insertions=(value); end
|
3385
|
-
|
3386
|
-
# @api public
|
3387
|
-
def active_queue; end
|
3388
|
-
|
3389
|
-
# @api public
|
3390
|
-
# @return [Boolean]
|
3391
|
-
def adjacent?(range1, range2); end
|
3392
|
-
|
3393
|
-
# @api public
|
3394
|
-
def adjacent_insertion_mask(range); end
|
3395
|
-
|
3396
|
-
# @api public
|
3397
|
-
# @return [Boolean]
|
3398
|
-
def adjacent_insertions?(range); end
|
3399
|
-
|
3400
|
-
# @api public
|
3401
|
-
def adjacent_position_mask(range); end
|
3402
|
-
|
3403
|
-
# @api public
|
3404
|
-
# @return [Boolean]
|
3405
|
-
def adjacent_updates?(range); end
|
3406
|
-
|
3407
|
-
# Schedule a code update. If it overlaps with another update, check
|
3408
|
-
# whether they conflict, and raise a clobbering error if they do.
|
3409
|
-
# (As a special case, zero-length ranges at the same position are
|
3410
|
-
# considered to "overlap".) Otherwise, merge them.
|
3411
|
-
#
|
3412
|
-
# Updates which are adjacent to each other, but do not overlap, are also
|
3413
|
-
# merged.
|
3414
|
-
#
|
3415
|
-
# RULES:
|
3416
|
-
#
|
3417
|
-
# - Insertion ("replacing" a zero-length range):
|
3418
|
-
# - Two insertions at the same point conflict. This is true even
|
3419
|
-
# if the earlier insertion has already been merged with an adjacent
|
3420
|
-
# update, and even if they are both inserting the same text.
|
3421
|
-
# - An insertion never conflicts with a replace or remove operation
|
3422
|
-
# on its right or left side, which does not overlap it (in other
|
3423
|
-
# words, which does not update BOTH its right and left sides).
|
3424
|
-
# - An insertion always conflicts with a remove operation which spans
|
3425
|
-
# both its sides.
|
3426
|
-
# - An insertion conflicts with a replace operation which spans both its
|
3427
|
-
# sides, unless the replacement text is longer than the replaced text
|
3428
|
-
# by the size of the insertion (or more), and the portion of
|
3429
|
-
# replacement text immediately after the insertion position is
|
3430
|
-
# identical to the inserted text.
|
3431
|
-
#
|
3432
|
-
# - Removal operations never conflict with each other.
|
3433
|
-
#
|
3434
|
-
# - Replacement operations:
|
3435
|
-
# - Take the portion of each replacement text which falls within:
|
3436
|
-
# - The other operation's replaced region
|
3437
|
-
# - The other operation's replacement text, if it extends past the
|
3438
|
-
# end of its own replaced region (in other words, if the replacement
|
3439
|
-
# text is longer than the text it replaces)
|
3440
|
-
# - If and only if the taken texts are identical for both operations,
|
3441
|
-
# they do not conflict.
|
3442
|
-
#
|
3443
|
-
# @api public
|
3444
|
-
def append(action); end
|
3445
|
-
|
3446
|
-
# @api public
|
3447
|
-
# @return [Boolean]
|
3448
|
-
def can_merge?(action, existing); end
|
3449
|
-
|
3450
|
-
# @api public
|
3451
|
-
# @return [Boolean]
|
3452
|
-
def clobbered_insertion?(insertion); end
|
3453
|
-
|
3454
|
-
# @api public
|
3455
|
-
def clobbered_position_mask(range); end
|
3456
|
-
|
3457
|
-
# @api public
|
3458
|
-
# @return [Boolean]
|
3459
|
-
def in_transaction?; end
|
3460
|
-
|
3461
|
-
# @api public
|
3462
|
-
def merge_actions(action, existing); end
|
3463
|
-
|
3464
|
-
# @api public
|
3465
|
-
def merge_actions!(action, existing); end
|
3466
|
-
|
3467
|
-
# @api public
|
3468
|
-
def merge_replacements(actions); end
|
3469
|
-
|
3470
|
-
# @api public
|
3471
|
-
# @raise [ClobberingError]
|
3472
|
-
def raise_clobber_error(action, existing); end
|
3473
|
-
|
3474
|
-
# @api public
|
3475
|
-
def record_insertion(range); end
|
3476
|
-
|
3477
|
-
# @api public
|
3478
|
-
def record_replace(range); end
|
3479
|
-
|
3480
|
-
# @api public
|
3481
|
-
def replace_actions(old, updated); end
|
3482
|
-
|
3483
|
-
# @api public
|
3484
|
-
# @return [Boolean]
|
3485
|
-
def replace_compatible_with_insertion?(replace, insertion); end
|
3486
|
-
end
|
3487
|
-
|
3488
|
-
class Parser::Source::Rewriter::Action
|
3489
|
-
include ::Comparable
|
3490
|
-
|
3491
|
-
def initialize(range, replacement = T.unsafe(nil), allow_multiple_insertions = T.unsafe(nil), order = T.unsafe(nil)); end
|
3492
|
-
|
3493
|
-
def <=>(other); end
|
3494
|
-
def allow_multiple_insertions; end
|
3495
|
-
def allow_multiple_insertions?; end
|
3496
|
-
def order; end
|
3497
|
-
def range; end
|
3498
|
-
def replacement; end
|
3499
|
-
def to_s; end
|
3500
|
-
end
|
3501
|
-
|
3502
|
-
# @api public
|
3503
|
-
Parser::Source::Rewriter::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
|
3504
|
-
|
3505
|
-
# {TreeRewriter} performs the heavy lifting in the source rewriting process.
|
3506
|
-
# It schedules code updates to be performed in the correct order.
|
3507
|
-
#
|
3508
|
-
# For simple cases, the resulting source will be obvious.
|
3509
|
-
#
|
3510
|
-
# Examples for more complex cases follow. Assume these examples are acting on
|
3511
|
-
# the source `'puts(:hello, :world)`. The methods #wrap, #remove, etc.
|
3512
|
-
# receive a Range as first argument; for clarity, examples below use english
|
3513
|
-
# sentences and a string of raw code instead.
|
3514
|
-
#
|
3515
|
-
# ## Overlapping ranges:
|
3516
|
-
#
|
3517
|
-
# Any two rewriting actions on overlapping ranges will fail and raise
|
3518
|
-
# a `ClobberingError`, unless they are both deletions (covered next).
|
3519
|
-
#
|
3520
|
-
# * wrap ':hello, ' with '(' and ')'
|
3521
|
-
# * wrap ', :world' with '(' and ')'
|
3522
|
-
# => CloberringError
|
3523
|
-
#
|
3524
|
-
# ## Overlapping deletions:
|
3525
|
-
#
|
3526
|
-
# * remove ':hello, '
|
3527
|
-
# * remove ', :world'
|
3528
|
-
#
|
3529
|
-
# The overlapping ranges are merged and `':hello, :world'` will be removed.
|
3530
|
-
# This policy can be changed. `:crossing_deletions` defaults to `:accept`
|
3531
|
-
# but can be set to `:warn` or `:raise`.
|
3532
|
-
#
|
3533
|
-
# ## Multiple actions at the same end points:
|
3534
|
-
#
|
3535
|
-
# Results will always be independent on the order they were given.
|
3536
|
-
# Exception: rewriting actions done on exactly the same range (covered next).
|
3537
|
-
#
|
3538
|
-
# Example:
|
3539
|
-
# * replace ', ' by ' => '
|
3540
|
-
# * wrap ':hello, :world' with '{' and '}'
|
3541
|
-
# * replace ':world' with ':everybody'
|
3542
|
-
# * wrap ':world' with '[', ']'
|
3543
|
-
#
|
3544
|
-
# The resulting string will be `'puts({:hello => [:everybody]})'`
|
3545
|
-
# and this result is independent on the order the instructions were given in.
|
3546
|
-
#
|
3547
|
-
# Note that if the two "replace" were given as a single replacement of ', :world'
|
3548
|
-
# for ' => :everybody', the result would be a `ClobberingError` because of the wrap
|
3549
|
-
# in square brackets.
|
3550
|
-
#
|
3551
|
-
# ## Multiple wraps on same range:
|
3552
|
-
# * wrap ':hello' with '(' and ')'
|
3553
|
-
# * wrap ':hello' with '[' and ']'
|
3554
|
-
#
|
3555
|
-
# The wraps are combined in order given and results would be `'puts([(:hello)], :world)'`.
|
3556
|
-
#
|
3557
|
-
# ## Multiple replacements on same range:
|
3558
|
-
# * replace ':hello' by ':hi', then
|
3559
|
-
# * replace ':hello' by ':hey'
|
3560
|
-
#
|
3561
|
-
# The replacements are made in the order given, so the latter replacement
|
3562
|
-
# supersedes the former and ':hello' will be replaced by ':hey'.
|
3563
|
-
#
|
3564
|
-
# This policy can be changed. `:different_replacements` defaults to `:accept`
|
3565
|
-
# but can be set to `:warn` or `:raise`.
|
3566
|
-
#
|
3567
|
-
# ## Swallowed insertions:
|
3568
|
-
# wrap 'world' by '__', '__'
|
3569
|
-
# replace ':hello, :world' with ':hi'
|
3570
|
-
#
|
3571
|
-
# A containing replacement will swallow the contained rewriting actions
|
3572
|
-
# and `':hello, :world'` will be replaced by `':hi'`.
|
3573
|
-
#
|
3574
|
-
# This policy can be changed for swallowed insertions. `:swallowed_insertions`
|
3575
|
-
# defaults to `:accept` but can be set to `:warn` or `:raise`
|
3576
|
-
#
|
3577
|
-
# ## Implementation
|
3578
|
-
# The updates are organized in a tree, according to the ranges they act on
|
3579
|
-
# (where children are strictly contained by their parent), hence the name.
|
3580
|
-
#
|
3581
|
-
# @api public
|
3582
|
-
class Parser::Source::TreeRewriter
|
3583
|
-
extend ::Parser::Deprecation
|
3584
|
-
|
3585
|
-
# @api public
|
3586
|
-
# @param source_buffer [Source::Buffer]
|
3587
|
-
# @return [TreeRewriter] a new instance of TreeRewriter
|
3588
|
-
def initialize(source_buffer, crossing_deletions: T.unsafe(nil), different_replacements: T.unsafe(nil), swallowed_insertions: T.unsafe(nil)); end
|
3589
|
-
|
3590
|
-
# Returns a representation of the rewriter as nested insertions (:wrap) and replacements.
|
3591
|
-
#
|
3592
|
-
# rewriter.as_actions # =>[ [:wrap, 1...10, '(', ')'],
|
3593
|
-
# [:wrap, 2...6, '', '!'], # aka "insert_after"
|
3594
|
-
# [:replace, 2...4, 'foo'],
|
3595
|
-
# [:replace, 5...6, ''], # aka "removal"
|
3596
|
-
# ],
|
3597
|
-
#
|
3598
|
-
# Contrary to `as_replacements`, this representation is sufficient to recreate exactly
|
3599
|
-
# the rewriter.
|
3600
|
-
#
|
3601
|
-
# @api public
|
3602
|
-
# @return [Array<(Symbol, Range, String{, String})>]
|
3603
|
-
def as_nested_actions; end
|
3604
|
-
|
3605
|
-
# Returns a representation of the rewriter as an ordered list of replacements.
|
3606
|
-
#
|
3607
|
-
# rewriter.as_replacements # => [ [1...1, '('],
|
3608
|
-
# [2...4, 'foo'],
|
3609
|
-
# [5...6, ''],
|
3610
|
-
# [6...6, '!'],
|
3611
|
-
# [10...10, ')'],
|
3612
|
-
# ]
|
3613
|
-
#
|
3614
|
-
# This representation is sufficient to recreate the result of `process` but it is
|
3615
|
-
# not sufficient to recreate completely the rewriter for further merging/actions.
|
3616
|
-
# See `as_nested_actions`
|
3617
|
-
#
|
3618
|
-
# @api public
|
3619
|
-
# @return [Array<Range, String>] an ordered list of pairs of range & replacement
|
3620
|
-
def as_replacements; end
|
3621
|
-
|
3622
|
-
# @api public
|
3623
|
-
# @return [Diagnostic::Engine]
|
3624
|
-
def diagnostics; end
|
3625
|
-
|
3626
|
-
# Returns true iff no (non trivial) update has been recorded
|
3627
|
-
#
|
3628
|
-
# @api public
|
3629
|
-
# @return [Boolean]
|
3630
|
-
def empty?; end
|
3631
|
-
|
3632
|
-
# For special cases where one needs to merge a rewriter attached to a different source_buffer
|
3633
|
-
# or that needs to be offset. Policies of the receiver are used.
|
3634
|
-
#
|
3635
|
-
# @api public
|
3636
|
-
# @param rewriter [TreeRewriter] from different source_buffer
|
3637
|
-
# @param offset [Integer]
|
3638
|
-
# @raise [IndexError] if action ranges (once offset) don't fit the current buffer
|
3639
|
-
# @return [Rewriter] self
|
3640
|
-
def import!(foreign_rewriter, offset: T.unsafe(nil)); end
|
3641
|
-
|
3642
|
-
# @api public
|
3643
|
-
# @return [Boolean]
|
3644
|
-
def in_transaction?; end
|
3645
|
-
|
3646
|
-
# Shortcut for `wrap(range, nil, content)`
|
3647
|
-
#
|
3648
|
-
# @api public
|
3649
|
-
# @param range [Range]
|
3650
|
-
# @param content [String]
|
3651
|
-
# @raise [ClobberingError] when clobbering is detected
|
3652
|
-
# @return [Rewriter] self
|
3653
|
-
def insert_after(range, content); end
|
3654
|
-
|
3655
|
-
# @api private
|
3656
|
-
# @deprecated Use insert_after or wrap
|
3657
|
-
def insert_after_multi(range, text); end
|
3658
|
-
|
3659
|
-
# Shortcut for `wrap(range, content, nil)`
|
3660
|
-
#
|
3661
|
-
# @api public
|
3662
|
-
# @param range [Range]
|
3663
|
-
# @param content [String]
|
3664
|
-
# @raise [ClobberingError] when clobbering is detected
|
3665
|
-
# @return [Rewriter] self
|
3666
|
-
def insert_before(range, content); end
|
3667
|
-
|
3668
|
-
# @api private
|
3669
|
-
# @deprecated Use insert_after or wrap
|
3670
|
-
def insert_before_multi(range, text); end
|
3671
|
-
|
3672
|
-
# @api public
|
3673
|
-
def inspect; end
|
3674
|
-
|
3675
|
-
# Returns a new rewriter that consists of the updates of the received
|
3676
|
-
# and the given argument. Policies of the receiver are used.
|
3677
|
-
#
|
3678
|
-
# @api public
|
3679
|
-
# @param with [Rewriter]
|
3680
|
-
# @raise [ClobberingError] when clobbering is detected
|
3681
|
-
# @return [Rewriter] merge of receiver and argument
|
3682
|
-
def merge(with); end
|
3683
|
-
|
3684
|
-
# Merges the updates of argument with the receiver.
|
3685
|
-
# Policies of the receiver are used.
|
3686
|
-
# This action is atomic in that it won't change the receiver
|
3687
|
-
# unless it succeeds.
|
3688
|
-
#
|
3689
|
-
# @api public
|
3690
|
-
# @param with [Rewriter]
|
3691
|
-
# @raise [ClobberingError] when clobbering is detected
|
3692
|
-
# @return [Rewriter] self
|
3693
|
-
def merge!(with); end
|
3694
|
-
|
3695
|
-
# Applies all scheduled changes to the `source_buffer` and returns
|
3696
|
-
# modified source as a new string.
|
3697
|
-
#
|
3698
|
-
# @api public
|
3699
|
-
# @return [String]
|
3700
|
-
def process; end
|
3701
|
-
|
3702
|
-
# Shortcut for `replace(range, '')`
|
3703
|
-
#
|
3704
|
-
# @api public
|
3705
|
-
# @param range [Range]
|
3706
|
-
# @raise [ClobberingError] when clobbering is detected
|
3707
|
-
# @return [Rewriter] self
|
3708
|
-
def remove(range); end
|
3709
|
-
|
3710
|
-
# Replaces the code of the source range `range` with `content`.
|
3711
|
-
#
|
3712
|
-
# @api public
|
3713
|
-
# @param range [Range]
|
3714
|
-
# @param content [String]
|
3715
|
-
# @raise [ClobberingError] when clobbering is detected
|
3716
|
-
# @return [Rewriter] self
|
3717
|
-
def replace(range, content); end
|
3718
|
-
|
3719
|
-
# @api public
|
3720
|
-
# @return [Source::Buffer]
|
3721
|
-
def source_buffer; end
|
3722
|
-
|
3723
|
-
# Provides a protected block where a sequence of multiple rewrite actions
|
3724
|
-
# are handled atomically. If any of the actions failed by clobbering,
|
3725
|
-
# all the actions are rolled back. Transactions can be nested.
|
3726
|
-
#
|
3727
|
-
# @api public
|
3728
|
-
# @raise [RuntimeError] when no block is passed
|
3729
|
-
def transaction; end
|
3730
|
-
|
3731
|
-
# Inserts the given strings before and after the given range.
|
3732
|
-
#
|
3733
|
-
# @api public
|
3734
|
-
# @param range [Range]
|
3735
|
-
# @param insert_before [String, nil]
|
3736
|
-
# @param insert_after [String, nil]
|
3737
|
-
# @raise [ClobberingError] when clobbering is detected
|
3738
|
-
# @return [Rewriter] self
|
3739
|
-
def wrap(range, insert_before, insert_after); end
|
3740
|
-
|
3741
|
-
protected
|
3742
|
-
|
3743
|
-
# @api public
|
3744
|
-
def action_root; end
|
3745
|
-
|
3746
|
-
private
|
3747
|
-
|
3748
|
-
# @api public
|
3749
|
-
def action_summary; end
|
3750
|
-
|
3751
|
-
# @api public
|
3752
|
-
# @raise [ArgumentError]
|
3753
|
-
def check_policy_validity; end
|
3754
|
-
|
3755
|
-
# @api public
|
3756
|
-
def check_range_validity(range); end
|
3757
|
-
|
3758
|
-
# @api public
|
3759
|
-
def combine(range, attributes); end
|
3760
|
-
|
3761
|
-
# @api public
|
3762
|
-
def enforce_policy(event); end
|
3763
|
-
|
3764
|
-
# @api public
|
3765
|
-
# @raise [Parser::ClobberingError]
|
3766
|
-
def trigger_policy(event, range: T.unsafe(nil), conflict: T.unsafe(nil), **arguments); end
|
3767
|
-
end
|
3768
|
-
|
3769
|
-
# @api public
|
3770
|
-
Parser::Source::TreeRewriter::ACTIONS = T.let(T.unsafe(nil), Array)
|
3771
|
-
|
3772
|
-
class Parser::Source::TreeRewriter::Action
|
3773
|
-
def initialize(range, enforcer, insert_before: T.unsafe(nil), replacement: T.unsafe(nil), insert_after: T.unsafe(nil), children: T.unsafe(nil)); end
|
3774
|
-
|
3775
|
-
def combine(action); end
|
3776
|
-
def contract; end
|
3777
|
-
def empty?; end
|
3778
|
-
def insert_after; end
|
3779
|
-
def insert_before; end
|
3780
|
-
def insertion?; end
|
3781
|
-
def moved(source_buffer, offset); end
|
3782
|
-
def nested_actions; end
|
3783
|
-
def ordered_replacements; end
|
3784
|
-
def range; end
|
3785
|
-
def replacement; end
|
3786
|
-
|
3787
|
-
protected
|
3788
|
-
|
3789
|
-
def analyse_hierarchy(action); end
|
3790
|
-
def bsearch_child_index(from = T.unsafe(nil)); end
|
3791
|
-
def call_enforcer_for_merge(action); end
|
3792
|
-
def check_fusible(action, *fusible); end
|
3793
|
-
def children; end
|
3794
|
-
def combine_children(more_children); end
|
3795
|
-
def do_combine(action); end
|
3796
|
-
def fuse_deletions(action, fusible, other_sibblings); end
|
3797
|
-
def merge(action); end
|
3798
|
-
def place_in_hierarchy(action); end
|
3799
|
-
def swallow(children); end
|
3800
|
-
def with(range: T.unsafe(nil), enforcer: T.unsafe(nil), children: T.unsafe(nil), insert_before: T.unsafe(nil), replacement: T.unsafe(nil), insert_after: T.unsafe(nil)); end
|
3801
|
-
end
|
3802
|
-
|
3803
|
-
# @api public
|
3804
|
-
Parser::Source::TreeRewriter::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
|
3805
|
-
|
3806
|
-
# @api public
|
3807
|
-
Parser::Source::TreeRewriter::POLICY_TO_LEVEL = T.let(T.unsafe(nil), Hash)
|
3808
|
-
|
3809
|
-
class Parser::StaticEnvironment
|
3810
|
-
# @return [StaticEnvironment] a new instance of StaticEnvironment
|
3811
|
-
def initialize; end
|
3812
|
-
|
3813
|
-
def declare(name); end
|
3814
|
-
def declare_anonymous_blockarg; end
|
3815
|
-
def declare_forward_args; end
|
3816
|
-
|
3817
|
-
# @return [Boolean]
|
3818
|
-
def declared?(name); end
|
3819
|
-
|
3820
|
-
# @return [Boolean]
|
3821
|
-
def declared_anonymous_blockarg?; end
|
3822
|
-
|
3823
|
-
# @return [Boolean]
|
3824
|
-
def declared_forward_args?; end
|
3825
|
-
|
3826
|
-
# @return [Boolean]
|
3827
|
-
def empty?; end
|
3828
|
-
|
3829
|
-
def extend_dynamic; end
|
3830
|
-
def extend_static; end
|
3831
|
-
def reset; end
|
3832
|
-
def unextend; end
|
3833
|
-
end
|
3834
|
-
|
3835
|
-
Parser::StaticEnvironment::ANONYMOUS_BLOCKARG = T.let(T.unsafe(nil), Symbol)
|
3836
|
-
Parser::StaticEnvironment::FORWARD_ARGS = T.let(T.unsafe(nil), Symbol)
|
3837
|
-
|
3838
|
-
# {Parser::SyntaxError} is raised whenever parser detects a syntax error,
|
3839
|
-
# similar to the standard SyntaxError class.
|
3840
|
-
#
|
3841
|
-
# @api public
|
3842
|
-
class Parser::SyntaxError < ::StandardError
|
3843
|
-
# @api public
|
3844
|
-
# @return [SyntaxError] a new instance of SyntaxError
|
3845
|
-
def initialize(diagnostic); end
|
3846
|
-
|
3847
|
-
# @api public
|
3848
|
-
# @return [Parser::Diagnostic]
|
3849
|
-
def diagnostic; end
|
3850
|
-
end
|
3851
|
-
|
3852
|
-
# {Parser::TreeRewriter} offers a basic API that makes it easy to rewrite
|
3853
|
-
# existing ASTs. It's built on top of {Parser::AST::Processor} and
|
3854
|
-
# {Parser::Source::TreeRewriter}
|
3855
|
-
#
|
3856
|
-
# For example, assume you want to remove `do` tokens from a while statement.
|
3857
|
-
# You can do this as following:
|
3858
|
-
#
|
3859
|
-
# require 'parser/current'
|
3860
|
-
#
|
3861
|
-
# class RemoveDo < Parser::TreeRewriter
|
3862
|
-
# def on_while(node)
|
3863
|
-
# # Check if the statement starts with "do"
|
3864
|
-
# if node.location.begin.is?('do')
|
3865
|
-
# remove(node.location.begin)
|
3866
|
-
# end
|
3867
|
-
# end
|
3868
|
-
# end
|
3869
|
-
#
|
3870
|
-
# code = <<-EOF
|
3871
|
-
# while true do
|
3872
|
-
# puts 'hello'
|
3873
|
-
# end
|
3874
|
-
# EOF
|
3875
|
-
#
|
3876
|
-
# ast = Parser::CurrentRuby.parse code
|
3877
|
-
# buffer = Parser::Source::Buffer.new('(example)', source: code)
|
3878
|
-
# rewriter = RemoveDo.new
|
3879
|
-
#
|
3880
|
-
# # Rewrite the AST, returns a String with the new form.
|
3881
|
-
# puts rewriter.rewrite(buffer, ast)
|
3882
|
-
#
|
3883
|
-
# This would result in the following Ruby code:
|
3884
|
-
#
|
3885
|
-
# while true
|
3886
|
-
# puts 'hello'
|
3887
|
-
# end
|
3888
|
-
#
|
3889
|
-
# Keep in mind that {Parser::TreeRewriter} does not take care of indentation when
|
3890
|
-
# inserting/replacing code so you'll have to do this yourself.
|
3891
|
-
#
|
3892
|
-
# See also [a blog entry](http://whitequark.org/blog/2013/04/26/lets-play-with-ruby-code/)
|
3893
|
-
# describing rewriters in greater detail.
|
3894
|
-
#
|
3895
|
-
# @api public
|
3896
|
-
class Parser::TreeRewriter < ::Parser::AST::Processor
|
3897
|
-
# Returns `true` if the specified node is an assignment node, returns false
|
3898
|
-
# otherwise.
|
3899
|
-
#
|
3900
|
-
# @api public
|
3901
|
-
# @param node [Parser::AST::Node]
|
3902
|
-
# @return [Boolean]
|
3903
|
-
def assignment?(node); end
|
3904
|
-
|
3905
|
-
# Inserts new code after the given source range.
|
3906
|
-
#
|
3907
|
-
# @api public
|
3908
|
-
# @param range [Parser::Source::Range]
|
3909
|
-
# @param content [String]
|
3910
|
-
def insert_after(range, content); end
|
3911
|
-
|
3912
|
-
# Inserts new code before the given source range.
|
3913
|
-
#
|
3914
|
-
# @api public
|
3915
|
-
# @param range [Parser::Source::Range]
|
3916
|
-
# @param content [String]
|
3917
|
-
def insert_before(range, content); end
|
3918
|
-
|
3919
|
-
# Removes the source range.
|
3920
|
-
#
|
3921
|
-
# @api public
|
3922
|
-
# @param range [Parser::Source::Range]
|
3923
|
-
def remove(range); end
|
3924
|
-
|
3925
|
-
# Replaces the code of the source range `range` with `content`.
|
3926
|
-
#
|
3927
|
-
# @api public
|
3928
|
-
# @param range [Parser::Source::Range]
|
3929
|
-
# @param content [String]
|
3930
|
-
def replace(range, content); end
|
3931
|
-
|
3932
|
-
# Rewrites the AST/source buffer and returns a String containing the new
|
3933
|
-
# version.
|
3934
|
-
#
|
3935
|
-
# @api public
|
3936
|
-
# @param source_buffer [Parser::Source::Buffer]
|
3937
|
-
# @param ast [Parser::AST::Node]
|
3938
|
-
# @param crossing_deletions:, [Symbol] different_replacements:, swallowed_insertions:
|
3939
|
-
# policy arguments for TreeRewriter (optional)
|
3940
|
-
# @return [String]
|
3941
|
-
def rewrite(source_buffer, ast, **policy); end
|
3942
|
-
|
3943
|
-
# Wraps the given source range with the given values.
|
3944
|
-
#
|
3945
|
-
# @api public
|
3946
|
-
# @param range [Parser::Source::Range]
|
3947
|
-
# @param content [String]
|
3948
|
-
def wrap(range, before, after); end
|
3949
|
-
end
|
3950
|
-
|
3951
|
-
Parser::VERSION = T.let(T.unsafe(nil), String)
|
3952
|
-
|
3953
|
-
class Parser::VariablesStack
|
3954
|
-
# @return [VariablesStack] a new instance of VariablesStack
|
3955
|
-
def initialize; end
|
3956
|
-
|
3957
|
-
def declare(name); end
|
3958
|
-
|
3959
|
-
# @return [Boolean]
|
3960
|
-
def declared?(name); end
|
3961
|
-
|
3962
|
-
# @return [Boolean]
|
3963
|
-
def empty?; end
|
3964
|
-
|
3965
|
-
def pop; end
|
3966
|
-
def push; end
|
3967
|
-
def reset; end
|
3968
|
-
end
|