prism 2.0.0.rc1-x86_64-linux-gnu

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. checksums.yaml +7 -0
  2. data/BSDmakefile +58 -0
  3. data/CHANGELOG.md +870 -0
  4. data/CODE_OF_CONDUCT.md +76 -0
  5. data/CONTRIBUTING.md +58 -0
  6. data/LICENSE.md +7 -0
  7. data/Makefile +145 -0
  8. data/README.md +81 -0
  9. data/config.yml +4752 -0
  10. data/docs/build_system.md +119 -0
  11. data/docs/configuration.md +69 -0
  12. data/docs/cruby_compilation.md +27 -0
  13. data/docs/design.md +53 -0
  14. data/docs/encoding.md +121 -0
  15. data/docs/fuzzing.md +81 -0
  16. data/docs/heredocs.md +36 -0
  17. data/docs/javascript.md +133 -0
  18. data/docs/local_variable_depth.md +229 -0
  19. data/docs/mapping.md +117 -0
  20. data/docs/parser_translation.md +24 -0
  21. data/docs/parsing_rules.md +22 -0
  22. data/docs/releasing.md +147 -0
  23. data/docs/relocation.md +32 -0
  24. data/docs/ripper_translation.md +63 -0
  25. data/docs/ruby_api.md +45 -0
  26. data/docs/ruby_parser_translation.md +19 -0
  27. data/docs/serialization.md +230 -0
  28. data/docs/testing.md +72 -0
  29. data/ext/prism/api_node.c +7005 -0
  30. data/ext/prism/extconf.rb +126 -0
  31. data/ext/prism/extension.c +1783 -0
  32. data/ext/prism/extension.h +19 -0
  33. data/include/prism/arena.h +37 -0
  34. data/include/prism/ast.h +10371 -0
  35. data/include/prism/buffer.h +52 -0
  36. data/include/prism/comments.h +55 -0
  37. data/include/prism/compiler/accel.h +24 -0
  38. data/include/prism/compiler/align.h +36 -0
  39. data/include/prism/compiler/assume.h +25 -0
  40. data/include/prism/compiler/exported.h +24 -0
  41. data/include/prism/compiler/fallthrough.h +22 -0
  42. data/include/prism/compiler/filesystem.h +32 -0
  43. data/include/prism/compiler/flex_array.h +19 -0
  44. data/include/prism/compiler/force_inline.h +21 -0
  45. data/include/prism/compiler/format.h +25 -0
  46. data/include/prism/compiler/inline.h +17 -0
  47. data/include/prism/compiler/nodiscard.h +22 -0
  48. data/include/prism/compiler/nonnull.h +18 -0
  49. data/include/prism/compiler/unused.h +18 -0
  50. data/include/prism/constant_pool.h +81 -0
  51. data/include/prism/diagnostic.h +93 -0
  52. data/include/prism/errors_format.h +53 -0
  53. data/include/prism/excludes.h +29 -0
  54. data/include/prism/integer.h +41 -0
  55. data/include/prism/internal/allocator.h +68 -0
  56. data/include/prism/internal/allocator_debug.h +88 -0
  57. data/include/prism/internal/arena.h +108 -0
  58. data/include/prism/internal/bit.h +42 -0
  59. data/include/prism/internal/buffer.h +91 -0
  60. data/include/prism/internal/char.h +145 -0
  61. data/include/prism/internal/comments.h +53 -0
  62. data/include/prism/internal/constant_pool.h +152 -0
  63. data/include/prism/internal/diagnostic.h +389 -0
  64. data/include/prism/internal/encoding.h +242 -0
  65. data/include/prism/internal/integer.h +68 -0
  66. data/include/prism/internal/isinf.h +16 -0
  67. data/include/prism/internal/line_offset_list.h +34 -0
  68. data/include/prism/internal/list.h +62 -0
  69. data/include/prism/internal/magic_comments.h +23 -0
  70. data/include/prism/internal/memchr.h +15 -0
  71. data/include/prism/internal/node.h +38 -0
  72. data/include/prism/internal/options.h +232 -0
  73. data/include/prism/internal/parser.h +984 -0
  74. data/include/prism/internal/regexp.h +26 -0
  75. data/include/prism/internal/serialize.h +39 -0
  76. data/include/prism/internal/source.h +72 -0
  77. data/include/prism/internal/static_literals.h +100 -0
  78. data/include/prism/internal/stringy.h +35 -0
  79. data/include/prism/internal/strncasecmp.h +18 -0
  80. data/include/prism/internal/strpbrk.h +33 -0
  81. data/include/prism/internal/tokens.h +11 -0
  82. data/include/prism/json.h +32 -0
  83. data/include/prism/line_offset_list.h +61 -0
  84. data/include/prism/magic_comments.h +35 -0
  85. data/include/prism/node.h +94 -0
  86. data/include/prism/options.h +354 -0
  87. data/include/prism/parser.h +404 -0
  88. data/include/prism/prettyprint.h +31 -0
  89. data/include/prism/serialize.h +115 -0
  90. data/include/prism/source.h +155 -0
  91. data/include/prism/stream.h +28 -0
  92. data/include/prism/string_query.h +63 -0
  93. data/include/prism/stringy.h +72 -0
  94. data/include/prism/version.h +38 -0
  95. data/include/prism.h +131 -0
  96. data/lib/prism/3.3/prism.so +0 -0
  97. data/lib/prism/3.4/prism.so +0 -0
  98. data/lib/prism/4.0/prism.so +0 -0
  99. data/lib/prism/compiler.rb +815 -0
  100. data/lib/prism/desugar_compiler.rb +463 -0
  101. data/lib/prism/dispatcher.rb +2383 -0
  102. data/lib/prism/dot_visitor.rb +4848 -0
  103. data/lib/prism/dsl.rb +1369 -0
  104. data/lib/prism/ffi.rb +740 -0
  105. data/lib/prism/inspect_visitor.rb +2425 -0
  106. data/lib/prism/lex_compat.rb +953 -0
  107. data/lib/prism/mutation_compiler.rb +780 -0
  108. data/lib/prism/node.rb +33204 -0
  109. data/lib/prism/node_ext.rb +504 -0
  110. data/lib/prism/node_find.rb +215 -0
  111. data/lib/prism/parse_result/errors.rb +72 -0
  112. data/lib/prism/parse_result/newlines.rb +423 -0
  113. data/lib/prism/parse_result.rb +1221 -0
  114. data/lib/prism/pattern.rb +314 -0
  115. data/lib/prism/polyfill/append_as_bytes.rb +15 -0
  116. data/lib/prism/polyfill/byteindex.rb +13 -0
  117. data/lib/prism/polyfill/scan_byte.rb +14 -0
  118. data/lib/prism/polyfill/unpack1.rb +14 -0
  119. data/lib/prism/polyfill/warn.rb +36 -0
  120. data/lib/prism/reflection.rb +427 -0
  121. data/lib/prism/relocation.rb +567 -0
  122. data/lib/prism/serialize.rb +5308 -0
  123. data/lib/prism/string_query.rb +46 -0
  124. data/lib/prism/translation/parser/builder.rb +70 -0
  125. data/lib/prism/translation/parser/compiler.rb +2226 -0
  126. data/lib/prism/translation/parser/lexer.rb +769 -0
  127. data/lib/prism/translation/parser.rb +376 -0
  128. data/lib/prism/translation/parser_current.rb +26 -0
  129. data/lib/prism/translation/parser_versions.rb +36 -0
  130. data/lib/prism/translation/ripper/filter.rb +53 -0
  131. data/lib/prism/translation/ripper/lexer.rb +133 -0
  132. data/lib/prism/translation/ripper/sexp.rb +118 -0
  133. data/lib/prism/translation/ripper/shim.rb +7 -0
  134. data/lib/prism/translation/ripper.rb +4278 -0
  135. data/lib/prism/translation/ruby_parser.rb +1721 -0
  136. data/lib/prism/translation.rb +20 -0
  137. data/lib/prism/visitor.rb +1440 -0
  138. data/lib/prism.rb +168 -0
  139. data/prism.gemspec +234 -0
  140. data/rbi/generated/prism/compiler.rbi +489 -0
  141. data/rbi/generated/prism/desugar_compiler.rbi +306 -0
  142. data/rbi/generated/prism/dispatcher.rbi +1138 -0
  143. data/rbi/generated/prism/dot_visitor.rbi +618 -0
  144. data/rbi/generated/prism/dsl.rbi +751 -0
  145. data/rbi/generated/prism/inspect_visitor.rbi +503 -0
  146. data/rbi/generated/prism/lex_compat.rbi +162 -0
  147. data/rbi/generated/prism/mutation_compiler.rbi +464 -0
  148. data/rbi/generated/prism/node.rbi +13681 -0
  149. data/rbi/generated/prism/node_ext.rbi +259 -0
  150. data/rbi/generated/prism/node_find.rbi +79 -0
  151. data/rbi/generated/prism/parse_result/errors.rbi +21 -0
  152. data/rbi/generated/prism/parse_result/newlines.rbi +208 -0
  153. data/rbi/generated/prism/parse_result.rbi +764 -0
  154. data/rbi/generated/prism/pattern.rbi +134 -0
  155. data/rbi/generated/prism/reflection.rbi +89 -0
  156. data/rbi/generated/prism/relocation.rbi +329 -0
  157. data/rbi/generated/prism/serialize.rbi +181 -0
  158. data/rbi/generated/prism/string_query.rbi +36 -0
  159. data/rbi/generated/prism/translation.rbi +7 -0
  160. data/rbi/generated/prism/visitor.rbi +650 -0
  161. data/rbi/generated/prism.rbi +86 -0
  162. data/rbi/prism/translation/parser.rbi +11 -0
  163. data/rbi/prism/translation/parser_versions.rbi +28 -0
  164. data/rbi/prism/translation/ripper.rbi +15 -0
  165. data/rbi/rubyvm/node_find.rbi +14 -0
  166. data/sig/generated/prism/compiler.rbs +492 -0
  167. data/sig/generated/prism/desugar_compiler.rbs +305 -0
  168. data/sig/generated/prism/dispatcher.rbs +1292 -0
  169. data/sig/generated/prism/dot_visitor.rbs +635 -0
  170. data/sig/generated/prism/dsl.rbs +928 -0
  171. data/sig/generated/prism/inspect_visitor.rbs +509 -0
  172. data/sig/generated/prism/lex_compat.rbs +166 -0
  173. data/sig/generated/prism/mutation_compiler.rbs +464 -0
  174. data/sig/generated/prism/node.rbs +20160 -0
  175. data/sig/generated/prism/node_ext.rbs +290 -0
  176. data/sig/generated/prism/node_find.rbs +90 -0
  177. data/sig/generated/prism/parse_result/errors.rbs +22 -0
  178. data/sig/generated/prism/parse_result/newlines.rbs +223 -0
  179. data/sig/generated/prism/parse_result.rbs +859 -0
  180. data/sig/generated/prism/pattern.rbs +156 -0
  181. data/sig/generated/prism/reflection.rbs +101 -0
  182. data/sig/generated/prism/relocation.rbs +428 -0
  183. data/sig/generated/prism/serialize.rbs +195 -0
  184. data/sig/generated/prism/string_query.rbs +36 -0
  185. data/sig/generated/prism/translation.rbs +8 -0
  186. data/sig/generated/prism/visitor.rbs +1111 -0
  187. data/sig/generated/prism.rbs +84 -0
  188. data/sig/manifest.yaml +2 -0
  189. data/src/arena.c +117 -0
  190. data/src/buffer.c +380 -0
  191. data/src/char.c +289 -0
  192. data/src/comments.c +454 -0
  193. data/src/constant_pool.c +406 -0
  194. data/src/diagnostic.c +886 -0
  195. data/src/encoding.c +5345 -0
  196. data/src/errors_format.c +519 -0
  197. data/src/integer.c +681 -0
  198. data/src/json.c +5733 -0
  199. data/src/line_offset_list.c +100 -0
  200. data/src/list.c +24 -0
  201. data/src/memchr.c +37 -0
  202. data/src/node.c +4515 -0
  203. data/src/options.c +451 -0
  204. data/src/parser.c +349 -0
  205. data/src/prettyprint.c +9024 -0
  206. data/src/prism.c +23739 -0
  207. data/src/regexp.c +1706 -0
  208. data/src/serialize.c +2309 -0
  209. data/src/source.c +518 -0
  210. data/src/static_literals.c +685 -0
  211. data/src/string_query.c +166 -0
  212. data/src/stringy.c +91 -0
  213. data/src/strncasecmp.c +37 -0
  214. data/src/strpbrk.c +447 -0
  215. data/src/tokens.c +724 -0
  216. metadata +259 -0
@@ -0,0 +1,1138 @@
1
+ # typed: true
2
+
3
+ module Prism
4
+ # The dispatcher class fires events for nodes that are found while walking an
5
+ # AST to all registered listeners. It's useful for performing different types
6
+ # of analysis on the AST while only having to walk the tree once.
7
+ #
8
+ # To use the dispatcher, you would first instantiate it and register listeners
9
+ # for the events you're interested in:
10
+ #
11
+ # class OctalListener
12
+ # def on_integer_node_enter(node)
13
+ # if node.octal? && !node.slice.start_with?("0o")
14
+ # warn("Octal integers should be written with the 0o prefix")
15
+ # end
16
+ # end
17
+ # end
18
+ #
19
+ # listener = OctalListener.new
20
+ # dispatcher = Prism::Dispatcher.new
21
+ # dispatcher.register(listener, :on_integer_node_enter)
22
+ #
23
+ # Then, you can walk any number of trees and dispatch events to the listeners:
24
+ #
25
+ # result = Prism.parse("001 + 002 + 003")
26
+ # dispatcher.dispatch(result.value)
27
+ #
28
+ # Optionally, you can also use `#dispatch_once` to dispatch enter and leave
29
+ # events for a single node without recursing further down the tree. This can
30
+ # be useful in circumstances where you want to reuse the listeners you already
31
+ # have registers but want to stop walking the tree at a certain point.
32
+ #
33
+ # integer = result.value.statements.body.first.receiver.receiver
34
+ # dispatcher.dispatch_once(integer)
35
+ class Dispatcher < Visitor
36
+ # A hash mapping event names to arrays of listeners that should be notified
37
+ # when that event is fired.
38
+ sig { returns(T::Hash[Symbol, T::Array[::T.untyped]]) }
39
+ attr_reader :listeners
40
+
41
+ # Initialize a new dispatcher.
42
+ sig { void }
43
+ def initialize; end
44
+
45
+ # Register a listener for one or more events.
46
+ sig { params(arg0: ::T.untyped, args: Symbol).void }
47
+ def register(arg0, *args); end
48
+
49
+ # Register all public methods of a listener that match the pattern
50
+ # `on_<node_name>_(enter|leave)`.
51
+ sig { params(arg0: ::T.untyped).void }
52
+ def register_public_methods(arg0); end
53
+
54
+ # Register a listener for the given events.
55
+ sig { params(arg0: ::T.untyped, arg1: T::Array[Symbol]).void }
56
+ def register_events(arg0, arg1); end
57
+
58
+ # Walks `root` dispatching events to all registered listeners.
59
+ sig { params(node: ::T.nilable(Node)).returns(::T.untyped) }
60
+ def dispatch(node); end
61
+
62
+ # Dispatches a single event for `node` to all registered listeners.
63
+ sig { params(node: Node).void }
64
+ def dispatch_once(node); end
65
+
66
+ sig { params(node: AliasGlobalVariableNode).void }
67
+ def visit_alias_global_variable_node(node); end
68
+
69
+ sig { params(node: AliasMethodNode).void }
70
+ def visit_alias_method_node(node); end
71
+
72
+ sig { params(node: AlternationPatternNode).void }
73
+ def visit_alternation_pattern_node(node); end
74
+
75
+ sig { params(node: AndNode).void }
76
+ def visit_and_node(node); end
77
+
78
+ sig { params(node: ArgumentsNode).void }
79
+ def visit_arguments_node(node); end
80
+
81
+ sig { params(node: ArrayNode).void }
82
+ def visit_array_node(node); end
83
+
84
+ sig { params(node: ArrayPatternNode).void }
85
+ def visit_array_pattern_node(node); end
86
+
87
+ sig { params(node: AssocNode).void }
88
+ def visit_assoc_node(node); end
89
+
90
+ sig { params(node: AssocSplatNode).void }
91
+ def visit_assoc_splat_node(node); end
92
+
93
+ sig { params(node: BackReferenceReadNode).void }
94
+ def visit_back_reference_read_node(node); end
95
+
96
+ sig { params(node: BeginNode).void }
97
+ def visit_begin_node(node); end
98
+
99
+ sig { params(node: BlockArgumentNode).void }
100
+ def visit_block_argument_node(node); end
101
+
102
+ sig { params(node: BlockLocalVariableNode).void }
103
+ def visit_block_local_variable_node(node); end
104
+
105
+ sig { params(node: BlockNode).void }
106
+ def visit_block_node(node); end
107
+
108
+ sig { params(node: BlockParameterNode).void }
109
+ def visit_block_parameter_node(node); end
110
+
111
+ sig { params(node: BlockParametersNode).void }
112
+ def visit_block_parameters_node(node); end
113
+
114
+ sig { params(node: BreakNode).void }
115
+ def visit_break_node(node); end
116
+
117
+ sig { params(node: CallAndWriteNode).void }
118
+ def visit_call_and_write_node(node); end
119
+
120
+ sig { params(node: CallNode).void }
121
+ def visit_call_node(node); end
122
+
123
+ sig { params(node: CallOperatorWriteNode).void }
124
+ def visit_call_operator_write_node(node); end
125
+
126
+ sig { params(node: CallOrWriteNode).void }
127
+ def visit_call_or_write_node(node); end
128
+
129
+ sig { params(node: CallTargetNode).void }
130
+ def visit_call_target_node(node); end
131
+
132
+ sig { params(node: CapturePatternNode).void }
133
+ def visit_capture_pattern_node(node); end
134
+
135
+ sig { params(node: CaseMatchNode).void }
136
+ def visit_case_match_node(node); end
137
+
138
+ sig { params(node: CaseNode).void }
139
+ def visit_case_node(node); end
140
+
141
+ sig { params(node: ClassNode).void }
142
+ def visit_class_node(node); end
143
+
144
+ sig { params(node: ClassVariableAndWriteNode).void }
145
+ def visit_class_variable_and_write_node(node); end
146
+
147
+ sig { params(node: ClassVariableOperatorWriteNode).void }
148
+ def visit_class_variable_operator_write_node(node); end
149
+
150
+ sig { params(node: ClassVariableOrWriteNode).void }
151
+ def visit_class_variable_or_write_node(node); end
152
+
153
+ sig { params(node: ClassVariableReadNode).void }
154
+ def visit_class_variable_read_node(node); end
155
+
156
+ sig { params(node: ClassVariableTargetNode).void }
157
+ def visit_class_variable_target_node(node); end
158
+
159
+ sig { params(node: ClassVariableWriteNode).void }
160
+ def visit_class_variable_write_node(node); end
161
+
162
+ sig { params(node: ConstantAndWriteNode).void }
163
+ def visit_constant_and_write_node(node); end
164
+
165
+ sig { params(node: ConstantOperatorWriteNode).void }
166
+ def visit_constant_operator_write_node(node); end
167
+
168
+ sig { params(node: ConstantOrWriteNode).void }
169
+ def visit_constant_or_write_node(node); end
170
+
171
+ sig { params(node: ConstantPathAndWriteNode).void }
172
+ def visit_constant_path_and_write_node(node); end
173
+
174
+ sig { params(node: ConstantPathNode).void }
175
+ def visit_constant_path_node(node); end
176
+
177
+ sig { params(node: ConstantPathOperatorWriteNode).void }
178
+ def visit_constant_path_operator_write_node(node); end
179
+
180
+ sig { params(node: ConstantPathOrWriteNode).void }
181
+ def visit_constant_path_or_write_node(node); end
182
+
183
+ sig { params(node: ConstantPathTargetNode).void }
184
+ def visit_constant_path_target_node(node); end
185
+
186
+ sig { params(node: ConstantPathWriteNode).void }
187
+ def visit_constant_path_write_node(node); end
188
+
189
+ sig { params(node: ConstantReadNode).void }
190
+ def visit_constant_read_node(node); end
191
+
192
+ sig { params(node: ConstantTargetNode).void }
193
+ def visit_constant_target_node(node); end
194
+
195
+ sig { params(node: ConstantWriteNode).void }
196
+ def visit_constant_write_node(node); end
197
+
198
+ sig { params(node: DefNode).void }
199
+ def visit_def_node(node); end
200
+
201
+ sig { params(node: DefinedNode).void }
202
+ def visit_defined_node(node); end
203
+
204
+ sig { params(node: ElseNode).void }
205
+ def visit_else_node(node); end
206
+
207
+ sig { params(node: EmbeddedStatementsNode).void }
208
+ def visit_embedded_statements_node(node); end
209
+
210
+ sig { params(node: EmbeddedVariableNode).void }
211
+ def visit_embedded_variable_node(node); end
212
+
213
+ sig { params(node: EnsureNode).void }
214
+ def visit_ensure_node(node); end
215
+
216
+ sig { params(node: ErrorRecoveryNode).void }
217
+ def visit_error_recovery_node(node); end
218
+
219
+ sig { params(node: FalseNode).void }
220
+ def visit_false_node(node); end
221
+
222
+ sig { params(node: FindPatternNode).void }
223
+ def visit_find_pattern_node(node); end
224
+
225
+ sig { params(node: FlipFlopNode).void }
226
+ def visit_flip_flop_node(node); end
227
+
228
+ sig { params(node: FloatNode).void }
229
+ def visit_float_node(node); end
230
+
231
+ sig { params(node: ForNode).void }
232
+ def visit_for_node(node); end
233
+
234
+ sig { params(node: ForwardingArgumentsNode).void }
235
+ def visit_forwarding_arguments_node(node); end
236
+
237
+ sig { params(node: ForwardingParameterNode).void }
238
+ def visit_forwarding_parameter_node(node); end
239
+
240
+ sig { params(node: ForwardingSuperNode).void }
241
+ def visit_forwarding_super_node(node); end
242
+
243
+ sig { params(node: GlobalVariableAndWriteNode).void }
244
+ def visit_global_variable_and_write_node(node); end
245
+
246
+ sig { params(node: GlobalVariableOperatorWriteNode).void }
247
+ def visit_global_variable_operator_write_node(node); end
248
+
249
+ sig { params(node: GlobalVariableOrWriteNode).void }
250
+ def visit_global_variable_or_write_node(node); end
251
+
252
+ sig { params(node: GlobalVariableReadNode).void }
253
+ def visit_global_variable_read_node(node); end
254
+
255
+ sig { params(node: GlobalVariableTargetNode).void }
256
+ def visit_global_variable_target_node(node); end
257
+
258
+ sig { params(node: GlobalVariableWriteNode).void }
259
+ def visit_global_variable_write_node(node); end
260
+
261
+ sig { params(node: HashNode).void }
262
+ def visit_hash_node(node); end
263
+
264
+ sig { params(node: HashPatternNode).void }
265
+ def visit_hash_pattern_node(node); end
266
+
267
+ sig { params(node: IfNode).void }
268
+ def visit_if_node(node); end
269
+
270
+ sig { params(node: ImaginaryNode).void }
271
+ def visit_imaginary_node(node); end
272
+
273
+ sig { params(node: ImplicitNode).void }
274
+ def visit_implicit_node(node); end
275
+
276
+ sig { params(node: ImplicitRestNode).void }
277
+ def visit_implicit_rest_node(node); end
278
+
279
+ sig { params(node: InNode).void }
280
+ def visit_in_node(node); end
281
+
282
+ sig { params(node: IndexAndWriteNode).void }
283
+ def visit_index_and_write_node(node); end
284
+
285
+ sig { params(node: IndexOperatorWriteNode).void }
286
+ def visit_index_operator_write_node(node); end
287
+
288
+ sig { params(node: IndexOrWriteNode).void }
289
+ def visit_index_or_write_node(node); end
290
+
291
+ sig { params(node: IndexTargetNode).void }
292
+ def visit_index_target_node(node); end
293
+
294
+ sig { params(node: InstanceVariableAndWriteNode).void }
295
+ def visit_instance_variable_and_write_node(node); end
296
+
297
+ sig { params(node: InstanceVariableOperatorWriteNode).void }
298
+ def visit_instance_variable_operator_write_node(node); end
299
+
300
+ sig { params(node: InstanceVariableOrWriteNode).void }
301
+ def visit_instance_variable_or_write_node(node); end
302
+
303
+ sig { params(node: InstanceVariableReadNode).void }
304
+ def visit_instance_variable_read_node(node); end
305
+
306
+ sig { params(node: InstanceVariableTargetNode).void }
307
+ def visit_instance_variable_target_node(node); end
308
+
309
+ sig { params(node: InstanceVariableWriteNode).void }
310
+ def visit_instance_variable_write_node(node); end
311
+
312
+ sig { params(node: IntegerNode).void }
313
+ def visit_integer_node(node); end
314
+
315
+ sig { params(node: InterpolatedMatchLastLineNode).void }
316
+ def visit_interpolated_match_last_line_node(node); end
317
+
318
+ sig { params(node: InterpolatedRegularExpressionNode).void }
319
+ def visit_interpolated_regular_expression_node(node); end
320
+
321
+ sig { params(node: InterpolatedStringNode).void }
322
+ def visit_interpolated_string_node(node); end
323
+
324
+ sig { params(node: InterpolatedSymbolNode).void }
325
+ def visit_interpolated_symbol_node(node); end
326
+
327
+ sig { params(node: InterpolatedXStringNode).void }
328
+ def visit_interpolated_x_string_node(node); end
329
+
330
+ sig { params(node: ItLocalVariableReadNode).void }
331
+ def visit_it_local_variable_read_node(node); end
332
+
333
+ sig { params(node: ItParametersNode).void }
334
+ def visit_it_parameters_node(node); end
335
+
336
+ sig { params(node: KeywordHashNode).void }
337
+ def visit_keyword_hash_node(node); end
338
+
339
+ sig { params(node: KeywordRestParameterNode).void }
340
+ def visit_keyword_rest_parameter_node(node); end
341
+
342
+ sig { params(node: LambdaNode).void }
343
+ def visit_lambda_node(node); end
344
+
345
+ sig { params(node: LocalVariableAndWriteNode).void }
346
+ def visit_local_variable_and_write_node(node); end
347
+
348
+ sig { params(node: LocalVariableOperatorWriteNode).void }
349
+ def visit_local_variable_operator_write_node(node); end
350
+
351
+ sig { params(node: LocalVariableOrWriteNode).void }
352
+ def visit_local_variable_or_write_node(node); end
353
+
354
+ sig { params(node: LocalVariableReadNode).void }
355
+ def visit_local_variable_read_node(node); end
356
+
357
+ sig { params(node: LocalVariableTargetNode).void }
358
+ def visit_local_variable_target_node(node); end
359
+
360
+ sig { params(node: LocalVariableWriteNode).void }
361
+ def visit_local_variable_write_node(node); end
362
+
363
+ sig { params(node: MatchLastLineNode).void }
364
+ def visit_match_last_line_node(node); end
365
+
366
+ sig { params(node: MatchPredicateNode).void }
367
+ def visit_match_predicate_node(node); end
368
+
369
+ sig { params(node: MatchRequiredNode).void }
370
+ def visit_match_required_node(node); end
371
+
372
+ sig { params(node: MatchWriteNode).void }
373
+ def visit_match_write_node(node); end
374
+
375
+ sig { params(node: ModuleNode).void }
376
+ def visit_module_node(node); end
377
+
378
+ sig { params(node: MultiTargetNode).void }
379
+ def visit_multi_target_node(node); end
380
+
381
+ sig { params(node: MultiWriteNode).void }
382
+ def visit_multi_write_node(node); end
383
+
384
+ sig { params(node: NextNode).void }
385
+ def visit_next_node(node); end
386
+
387
+ sig { params(node: NilNode).void }
388
+ def visit_nil_node(node); end
389
+
390
+ sig { params(node: NoBlockParameterNode).void }
391
+ def visit_no_block_parameter_node(node); end
392
+
393
+ sig { params(node: NoKeywordsParameterNode).void }
394
+ def visit_no_keywords_parameter_node(node); end
395
+
396
+ sig { params(node: NumberedParametersNode).void }
397
+ def visit_numbered_parameters_node(node); end
398
+
399
+ sig { params(node: NumberedReferenceReadNode).void }
400
+ def visit_numbered_reference_read_node(node); end
401
+
402
+ sig { params(node: OptionalKeywordParameterNode).void }
403
+ def visit_optional_keyword_parameter_node(node); end
404
+
405
+ sig { params(node: OptionalParameterNode).void }
406
+ def visit_optional_parameter_node(node); end
407
+
408
+ sig { params(node: OrNode).void }
409
+ def visit_or_node(node); end
410
+
411
+ sig { params(node: ParametersNode).void }
412
+ def visit_parameters_node(node); end
413
+
414
+ sig { params(node: ParenthesesNode).void }
415
+ def visit_parentheses_node(node); end
416
+
417
+ sig { params(node: PinnedExpressionNode).void }
418
+ def visit_pinned_expression_node(node); end
419
+
420
+ sig { params(node: PinnedVariableNode).void }
421
+ def visit_pinned_variable_node(node); end
422
+
423
+ sig { params(node: PostExecutionNode).void }
424
+ def visit_post_execution_node(node); end
425
+
426
+ sig { params(node: PreExecutionNode).void }
427
+ def visit_pre_execution_node(node); end
428
+
429
+ sig { params(node: ProgramNode).void }
430
+ def visit_program_node(node); end
431
+
432
+ sig { params(node: RangeNode).void }
433
+ def visit_range_node(node); end
434
+
435
+ sig { params(node: RationalNode).void }
436
+ def visit_rational_node(node); end
437
+
438
+ sig { params(node: RedoNode).void }
439
+ def visit_redo_node(node); end
440
+
441
+ sig { params(node: RegularExpressionNode).void }
442
+ def visit_regular_expression_node(node); end
443
+
444
+ sig { params(node: RequiredKeywordParameterNode).void }
445
+ def visit_required_keyword_parameter_node(node); end
446
+
447
+ sig { params(node: RequiredParameterNode).void }
448
+ def visit_required_parameter_node(node); end
449
+
450
+ sig { params(node: RescueModifierNode).void }
451
+ def visit_rescue_modifier_node(node); end
452
+
453
+ sig { params(node: RescueNode).void }
454
+ def visit_rescue_node(node); end
455
+
456
+ sig { params(node: RestParameterNode).void }
457
+ def visit_rest_parameter_node(node); end
458
+
459
+ sig { params(node: RetryNode).void }
460
+ def visit_retry_node(node); end
461
+
462
+ sig { params(node: ReturnNode).void }
463
+ def visit_return_node(node); end
464
+
465
+ sig { params(node: SelfNode).void }
466
+ def visit_self_node(node); end
467
+
468
+ sig { params(node: ShareableConstantNode).void }
469
+ def visit_shareable_constant_node(node); end
470
+
471
+ sig { params(node: SingletonClassNode).void }
472
+ def visit_singleton_class_node(node); end
473
+
474
+ sig { params(node: SourceEncodingNode).void }
475
+ def visit_source_encoding_node(node); end
476
+
477
+ sig { params(node: SourceFileNode).void }
478
+ def visit_source_file_node(node); end
479
+
480
+ sig { params(node: SourceLineNode).void }
481
+ def visit_source_line_node(node); end
482
+
483
+ sig { params(node: SplatNode).void }
484
+ def visit_splat_node(node); end
485
+
486
+ sig { params(node: StatementsNode).void }
487
+ def visit_statements_node(node); end
488
+
489
+ sig { params(node: StringNode).void }
490
+ def visit_string_node(node); end
491
+
492
+ sig { params(node: SuperNode).void }
493
+ def visit_super_node(node); end
494
+
495
+ sig { params(node: SymbolNode).void }
496
+ def visit_symbol_node(node); end
497
+
498
+ sig { params(node: TrueNode).void }
499
+ def visit_true_node(node); end
500
+
501
+ sig { params(node: UndefNode).void }
502
+ def visit_undef_node(node); end
503
+
504
+ sig { params(node: UnlessNode).void }
505
+ def visit_unless_node(node); end
506
+
507
+ sig { params(node: UntilNode).void }
508
+ def visit_until_node(node); end
509
+
510
+ sig { params(node: WhenNode).void }
511
+ def visit_when_node(node); end
512
+
513
+ sig { params(node: WhileNode).void }
514
+ def visit_while_node(node); end
515
+
516
+ sig { params(node: XStringNode).void }
517
+ def visit_x_string_node(node); end
518
+
519
+ sig { params(node: YieldNode).void }
520
+ def visit_yield_node(node); end
521
+
522
+ class DispatchOnce < Visitor
523
+ sig { returns(T::Hash[Symbol, T::Array[::T.untyped]]) }
524
+ attr_reader :listeners
525
+
526
+ sig { params(listeners: T::Hash[Symbol, T::Array[::T.untyped]]).void }
527
+ def initialize(listeners); end
528
+
529
+ # Dispatch enter and leave events for AliasGlobalVariableNode nodes.
530
+ sig { params(node: AliasGlobalVariableNode).void }
531
+ def visit_alias_global_variable_node(node); end
532
+
533
+ # Dispatch enter and leave events for AliasMethodNode nodes.
534
+ sig { params(node: AliasMethodNode).void }
535
+ def visit_alias_method_node(node); end
536
+
537
+ # Dispatch enter and leave events for AlternationPatternNode nodes.
538
+ sig { params(node: AlternationPatternNode).void }
539
+ def visit_alternation_pattern_node(node); end
540
+
541
+ # Dispatch enter and leave events for AndNode nodes.
542
+ sig { params(node: AndNode).void }
543
+ def visit_and_node(node); end
544
+
545
+ # Dispatch enter and leave events for ArgumentsNode nodes.
546
+ sig { params(node: ArgumentsNode).void }
547
+ def visit_arguments_node(node); end
548
+
549
+ # Dispatch enter and leave events for ArrayNode nodes.
550
+ sig { params(node: ArrayNode).void }
551
+ def visit_array_node(node); end
552
+
553
+ # Dispatch enter and leave events for ArrayPatternNode nodes.
554
+ sig { params(node: ArrayPatternNode).void }
555
+ def visit_array_pattern_node(node); end
556
+
557
+ # Dispatch enter and leave events for AssocNode nodes.
558
+ sig { params(node: AssocNode).void }
559
+ def visit_assoc_node(node); end
560
+
561
+ # Dispatch enter and leave events for AssocSplatNode nodes.
562
+ sig { params(node: AssocSplatNode).void }
563
+ def visit_assoc_splat_node(node); end
564
+
565
+ # Dispatch enter and leave events for BackReferenceReadNode nodes.
566
+ sig { params(node: BackReferenceReadNode).void }
567
+ def visit_back_reference_read_node(node); end
568
+
569
+ # Dispatch enter and leave events for BeginNode nodes.
570
+ sig { params(node: BeginNode).void }
571
+ def visit_begin_node(node); end
572
+
573
+ # Dispatch enter and leave events for BlockArgumentNode nodes.
574
+ sig { params(node: BlockArgumentNode).void }
575
+ def visit_block_argument_node(node); end
576
+
577
+ # Dispatch enter and leave events for BlockLocalVariableNode nodes.
578
+ sig { params(node: BlockLocalVariableNode).void }
579
+ def visit_block_local_variable_node(node); end
580
+
581
+ # Dispatch enter and leave events for BlockNode nodes.
582
+ sig { params(node: BlockNode).void }
583
+ def visit_block_node(node); end
584
+
585
+ # Dispatch enter and leave events for BlockParameterNode nodes.
586
+ sig { params(node: BlockParameterNode).void }
587
+ def visit_block_parameter_node(node); end
588
+
589
+ # Dispatch enter and leave events for BlockParametersNode nodes.
590
+ sig { params(node: BlockParametersNode).void }
591
+ def visit_block_parameters_node(node); end
592
+
593
+ # Dispatch enter and leave events for BreakNode nodes.
594
+ sig { params(node: BreakNode).void }
595
+ def visit_break_node(node); end
596
+
597
+ # Dispatch enter and leave events for CallAndWriteNode nodes.
598
+ sig { params(node: CallAndWriteNode).void }
599
+ def visit_call_and_write_node(node); end
600
+
601
+ # Dispatch enter and leave events for CallNode nodes.
602
+ sig { params(node: CallNode).void }
603
+ def visit_call_node(node); end
604
+
605
+ # Dispatch enter and leave events for CallOperatorWriteNode nodes.
606
+ sig { params(node: CallOperatorWriteNode).void }
607
+ def visit_call_operator_write_node(node); end
608
+
609
+ # Dispatch enter and leave events for CallOrWriteNode nodes.
610
+ sig { params(node: CallOrWriteNode).void }
611
+ def visit_call_or_write_node(node); end
612
+
613
+ # Dispatch enter and leave events for CallTargetNode nodes.
614
+ sig { params(node: CallTargetNode).void }
615
+ def visit_call_target_node(node); end
616
+
617
+ # Dispatch enter and leave events for CapturePatternNode nodes.
618
+ sig { params(node: CapturePatternNode).void }
619
+ def visit_capture_pattern_node(node); end
620
+
621
+ # Dispatch enter and leave events for CaseMatchNode nodes.
622
+ sig { params(node: CaseMatchNode).void }
623
+ def visit_case_match_node(node); end
624
+
625
+ # Dispatch enter and leave events for CaseNode nodes.
626
+ sig { params(node: CaseNode).void }
627
+ def visit_case_node(node); end
628
+
629
+ # Dispatch enter and leave events for ClassNode nodes.
630
+ sig { params(node: ClassNode).void }
631
+ def visit_class_node(node); end
632
+
633
+ # Dispatch enter and leave events for ClassVariableAndWriteNode nodes.
634
+ sig { params(node: ClassVariableAndWriteNode).void }
635
+ def visit_class_variable_and_write_node(node); end
636
+
637
+ # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes.
638
+ sig { params(node: ClassVariableOperatorWriteNode).void }
639
+ def visit_class_variable_operator_write_node(node); end
640
+
641
+ # Dispatch enter and leave events for ClassVariableOrWriteNode nodes.
642
+ sig { params(node: ClassVariableOrWriteNode).void }
643
+ def visit_class_variable_or_write_node(node); end
644
+
645
+ # Dispatch enter and leave events for ClassVariableReadNode nodes.
646
+ sig { params(node: ClassVariableReadNode).void }
647
+ def visit_class_variable_read_node(node); end
648
+
649
+ # Dispatch enter and leave events for ClassVariableTargetNode nodes.
650
+ sig { params(node: ClassVariableTargetNode).void }
651
+ def visit_class_variable_target_node(node); end
652
+
653
+ # Dispatch enter and leave events for ClassVariableWriteNode nodes.
654
+ sig { params(node: ClassVariableWriteNode).void }
655
+ def visit_class_variable_write_node(node); end
656
+
657
+ # Dispatch enter and leave events for ConstantAndWriteNode nodes.
658
+ sig { params(node: ConstantAndWriteNode).void }
659
+ def visit_constant_and_write_node(node); end
660
+
661
+ # Dispatch enter and leave events for ConstantOperatorWriteNode nodes.
662
+ sig { params(node: ConstantOperatorWriteNode).void }
663
+ def visit_constant_operator_write_node(node); end
664
+
665
+ # Dispatch enter and leave events for ConstantOrWriteNode nodes.
666
+ sig { params(node: ConstantOrWriteNode).void }
667
+ def visit_constant_or_write_node(node); end
668
+
669
+ # Dispatch enter and leave events for ConstantPathAndWriteNode nodes.
670
+ sig { params(node: ConstantPathAndWriteNode).void }
671
+ def visit_constant_path_and_write_node(node); end
672
+
673
+ # Dispatch enter and leave events for ConstantPathNode nodes.
674
+ sig { params(node: ConstantPathNode).void }
675
+ def visit_constant_path_node(node); end
676
+
677
+ # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes.
678
+ sig { params(node: ConstantPathOperatorWriteNode).void }
679
+ def visit_constant_path_operator_write_node(node); end
680
+
681
+ # Dispatch enter and leave events for ConstantPathOrWriteNode nodes.
682
+ sig { params(node: ConstantPathOrWriteNode).void }
683
+ def visit_constant_path_or_write_node(node); end
684
+
685
+ # Dispatch enter and leave events for ConstantPathTargetNode nodes.
686
+ sig { params(node: ConstantPathTargetNode).void }
687
+ def visit_constant_path_target_node(node); end
688
+
689
+ # Dispatch enter and leave events for ConstantPathWriteNode nodes.
690
+ sig { params(node: ConstantPathWriteNode).void }
691
+ def visit_constant_path_write_node(node); end
692
+
693
+ # Dispatch enter and leave events for ConstantReadNode nodes.
694
+ sig { params(node: ConstantReadNode).void }
695
+ def visit_constant_read_node(node); end
696
+
697
+ # Dispatch enter and leave events for ConstantTargetNode nodes.
698
+ sig { params(node: ConstantTargetNode).void }
699
+ def visit_constant_target_node(node); end
700
+
701
+ # Dispatch enter and leave events for ConstantWriteNode nodes.
702
+ sig { params(node: ConstantWriteNode).void }
703
+ def visit_constant_write_node(node); end
704
+
705
+ # Dispatch enter and leave events for DefNode nodes.
706
+ sig { params(node: DefNode).void }
707
+ def visit_def_node(node); end
708
+
709
+ # Dispatch enter and leave events for DefinedNode nodes.
710
+ sig { params(node: DefinedNode).void }
711
+ def visit_defined_node(node); end
712
+
713
+ # Dispatch enter and leave events for ElseNode nodes.
714
+ sig { params(node: ElseNode).void }
715
+ def visit_else_node(node); end
716
+
717
+ # Dispatch enter and leave events for EmbeddedStatementsNode nodes.
718
+ sig { params(node: EmbeddedStatementsNode).void }
719
+ def visit_embedded_statements_node(node); end
720
+
721
+ # Dispatch enter and leave events for EmbeddedVariableNode nodes.
722
+ sig { params(node: EmbeddedVariableNode).void }
723
+ def visit_embedded_variable_node(node); end
724
+
725
+ # Dispatch enter and leave events for EnsureNode nodes.
726
+ sig { params(node: EnsureNode).void }
727
+ def visit_ensure_node(node); end
728
+
729
+ # Dispatch enter and leave events for ErrorRecoveryNode nodes.
730
+ sig { params(node: ErrorRecoveryNode).void }
731
+ def visit_error_recovery_node(node); end
732
+
733
+ # Dispatch enter and leave events for FalseNode nodes.
734
+ sig { params(node: FalseNode).void }
735
+ def visit_false_node(node); end
736
+
737
+ # Dispatch enter and leave events for FindPatternNode nodes.
738
+ sig { params(node: FindPatternNode).void }
739
+ def visit_find_pattern_node(node); end
740
+
741
+ # Dispatch enter and leave events for FlipFlopNode nodes.
742
+ sig { params(node: FlipFlopNode).void }
743
+ def visit_flip_flop_node(node); end
744
+
745
+ # Dispatch enter and leave events for FloatNode nodes.
746
+ sig { params(node: FloatNode).void }
747
+ def visit_float_node(node); end
748
+
749
+ # Dispatch enter and leave events for ForNode nodes.
750
+ sig { params(node: ForNode).void }
751
+ def visit_for_node(node); end
752
+
753
+ # Dispatch enter and leave events for ForwardingArgumentsNode nodes.
754
+ sig { params(node: ForwardingArgumentsNode).void }
755
+ def visit_forwarding_arguments_node(node); end
756
+
757
+ # Dispatch enter and leave events for ForwardingParameterNode nodes.
758
+ sig { params(node: ForwardingParameterNode).void }
759
+ def visit_forwarding_parameter_node(node); end
760
+
761
+ # Dispatch enter and leave events for ForwardingSuperNode nodes.
762
+ sig { params(node: ForwardingSuperNode).void }
763
+ def visit_forwarding_super_node(node); end
764
+
765
+ # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes.
766
+ sig { params(node: GlobalVariableAndWriteNode).void }
767
+ def visit_global_variable_and_write_node(node); end
768
+
769
+ # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes.
770
+ sig { params(node: GlobalVariableOperatorWriteNode).void }
771
+ def visit_global_variable_operator_write_node(node); end
772
+
773
+ # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes.
774
+ sig { params(node: GlobalVariableOrWriteNode).void }
775
+ def visit_global_variable_or_write_node(node); end
776
+
777
+ # Dispatch enter and leave events for GlobalVariableReadNode nodes.
778
+ sig { params(node: GlobalVariableReadNode).void }
779
+ def visit_global_variable_read_node(node); end
780
+
781
+ # Dispatch enter and leave events for GlobalVariableTargetNode nodes.
782
+ sig { params(node: GlobalVariableTargetNode).void }
783
+ def visit_global_variable_target_node(node); end
784
+
785
+ # Dispatch enter and leave events for GlobalVariableWriteNode nodes.
786
+ sig { params(node: GlobalVariableWriteNode).void }
787
+ def visit_global_variable_write_node(node); end
788
+
789
+ # Dispatch enter and leave events for HashNode nodes.
790
+ sig { params(node: HashNode).void }
791
+ def visit_hash_node(node); end
792
+
793
+ # Dispatch enter and leave events for HashPatternNode nodes.
794
+ sig { params(node: HashPatternNode).void }
795
+ def visit_hash_pattern_node(node); end
796
+
797
+ # Dispatch enter and leave events for IfNode nodes.
798
+ sig { params(node: IfNode).void }
799
+ def visit_if_node(node); end
800
+
801
+ # Dispatch enter and leave events for ImaginaryNode nodes.
802
+ sig { params(node: ImaginaryNode).void }
803
+ def visit_imaginary_node(node); end
804
+
805
+ # Dispatch enter and leave events for ImplicitNode nodes.
806
+ sig { params(node: ImplicitNode).void }
807
+ def visit_implicit_node(node); end
808
+
809
+ # Dispatch enter and leave events for ImplicitRestNode nodes.
810
+ sig { params(node: ImplicitRestNode).void }
811
+ def visit_implicit_rest_node(node); end
812
+
813
+ # Dispatch enter and leave events for InNode nodes.
814
+ sig { params(node: InNode).void }
815
+ def visit_in_node(node); end
816
+
817
+ # Dispatch enter and leave events for IndexAndWriteNode nodes.
818
+ sig { params(node: IndexAndWriteNode).void }
819
+ def visit_index_and_write_node(node); end
820
+
821
+ # Dispatch enter and leave events for IndexOperatorWriteNode nodes.
822
+ sig { params(node: IndexOperatorWriteNode).void }
823
+ def visit_index_operator_write_node(node); end
824
+
825
+ # Dispatch enter and leave events for IndexOrWriteNode nodes.
826
+ sig { params(node: IndexOrWriteNode).void }
827
+ def visit_index_or_write_node(node); end
828
+
829
+ # Dispatch enter and leave events for IndexTargetNode nodes.
830
+ sig { params(node: IndexTargetNode).void }
831
+ def visit_index_target_node(node); end
832
+
833
+ # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes.
834
+ sig { params(node: InstanceVariableAndWriteNode).void }
835
+ def visit_instance_variable_and_write_node(node); end
836
+
837
+ # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes.
838
+ sig { params(node: InstanceVariableOperatorWriteNode).void }
839
+ def visit_instance_variable_operator_write_node(node); end
840
+
841
+ # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes.
842
+ sig { params(node: InstanceVariableOrWriteNode).void }
843
+ def visit_instance_variable_or_write_node(node); end
844
+
845
+ # Dispatch enter and leave events for InstanceVariableReadNode nodes.
846
+ sig { params(node: InstanceVariableReadNode).void }
847
+ def visit_instance_variable_read_node(node); end
848
+
849
+ # Dispatch enter and leave events for InstanceVariableTargetNode nodes.
850
+ sig { params(node: InstanceVariableTargetNode).void }
851
+ def visit_instance_variable_target_node(node); end
852
+
853
+ # Dispatch enter and leave events for InstanceVariableWriteNode nodes.
854
+ sig { params(node: InstanceVariableWriteNode).void }
855
+ def visit_instance_variable_write_node(node); end
856
+
857
+ # Dispatch enter and leave events for IntegerNode nodes.
858
+ sig { params(node: IntegerNode).void }
859
+ def visit_integer_node(node); end
860
+
861
+ # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes.
862
+ sig { params(node: InterpolatedMatchLastLineNode).void }
863
+ def visit_interpolated_match_last_line_node(node); end
864
+
865
+ # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes.
866
+ sig { params(node: InterpolatedRegularExpressionNode).void }
867
+ def visit_interpolated_regular_expression_node(node); end
868
+
869
+ # Dispatch enter and leave events for InterpolatedStringNode nodes.
870
+ sig { params(node: InterpolatedStringNode).void }
871
+ def visit_interpolated_string_node(node); end
872
+
873
+ # Dispatch enter and leave events for InterpolatedSymbolNode nodes.
874
+ sig { params(node: InterpolatedSymbolNode).void }
875
+ def visit_interpolated_symbol_node(node); end
876
+
877
+ # Dispatch enter and leave events for InterpolatedXStringNode nodes.
878
+ sig { params(node: InterpolatedXStringNode).void }
879
+ def visit_interpolated_x_string_node(node); end
880
+
881
+ # Dispatch enter and leave events for ItLocalVariableReadNode nodes.
882
+ sig { params(node: ItLocalVariableReadNode).void }
883
+ def visit_it_local_variable_read_node(node); end
884
+
885
+ # Dispatch enter and leave events for ItParametersNode nodes.
886
+ sig { params(node: ItParametersNode).void }
887
+ def visit_it_parameters_node(node); end
888
+
889
+ # Dispatch enter and leave events for KeywordHashNode nodes.
890
+ sig { params(node: KeywordHashNode).void }
891
+ def visit_keyword_hash_node(node); end
892
+
893
+ # Dispatch enter and leave events for KeywordRestParameterNode nodes.
894
+ sig { params(node: KeywordRestParameterNode).void }
895
+ def visit_keyword_rest_parameter_node(node); end
896
+
897
+ # Dispatch enter and leave events for LambdaNode nodes.
898
+ sig { params(node: LambdaNode).void }
899
+ def visit_lambda_node(node); end
900
+
901
+ # Dispatch enter and leave events for LocalVariableAndWriteNode nodes.
902
+ sig { params(node: LocalVariableAndWriteNode).void }
903
+ def visit_local_variable_and_write_node(node); end
904
+
905
+ # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes.
906
+ sig { params(node: LocalVariableOperatorWriteNode).void }
907
+ def visit_local_variable_operator_write_node(node); end
908
+
909
+ # Dispatch enter and leave events for LocalVariableOrWriteNode nodes.
910
+ sig { params(node: LocalVariableOrWriteNode).void }
911
+ def visit_local_variable_or_write_node(node); end
912
+
913
+ # Dispatch enter and leave events for LocalVariableReadNode nodes.
914
+ sig { params(node: LocalVariableReadNode).void }
915
+ def visit_local_variable_read_node(node); end
916
+
917
+ # Dispatch enter and leave events for LocalVariableTargetNode nodes.
918
+ sig { params(node: LocalVariableTargetNode).void }
919
+ def visit_local_variable_target_node(node); end
920
+
921
+ # Dispatch enter and leave events for LocalVariableWriteNode nodes.
922
+ sig { params(node: LocalVariableWriteNode).void }
923
+ def visit_local_variable_write_node(node); end
924
+
925
+ # Dispatch enter and leave events for MatchLastLineNode nodes.
926
+ sig { params(node: MatchLastLineNode).void }
927
+ def visit_match_last_line_node(node); end
928
+
929
+ # Dispatch enter and leave events for MatchPredicateNode nodes.
930
+ sig { params(node: MatchPredicateNode).void }
931
+ def visit_match_predicate_node(node); end
932
+
933
+ # Dispatch enter and leave events for MatchRequiredNode nodes.
934
+ sig { params(node: MatchRequiredNode).void }
935
+ def visit_match_required_node(node); end
936
+
937
+ # Dispatch enter and leave events for MatchWriteNode nodes.
938
+ sig { params(node: MatchWriteNode).void }
939
+ def visit_match_write_node(node); end
940
+
941
+ # Dispatch enter and leave events for ModuleNode nodes.
942
+ sig { params(node: ModuleNode).void }
943
+ def visit_module_node(node); end
944
+
945
+ # Dispatch enter and leave events for MultiTargetNode nodes.
946
+ sig { params(node: MultiTargetNode).void }
947
+ def visit_multi_target_node(node); end
948
+
949
+ # Dispatch enter and leave events for MultiWriteNode nodes.
950
+ sig { params(node: MultiWriteNode).void }
951
+ def visit_multi_write_node(node); end
952
+
953
+ # Dispatch enter and leave events for NextNode nodes.
954
+ sig { params(node: NextNode).void }
955
+ def visit_next_node(node); end
956
+
957
+ # Dispatch enter and leave events for NilNode nodes.
958
+ sig { params(node: NilNode).void }
959
+ def visit_nil_node(node); end
960
+
961
+ # Dispatch enter and leave events for NoBlockParameterNode nodes.
962
+ sig { params(node: NoBlockParameterNode).void }
963
+ def visit_no_block_parameter_node(node); end
964
+
965
+ # Dispatch enter and leave events for NoKeywordsParameterNode nodes.
966
+ sig { params(node: NoKeywordsParameterNode).void }
967
+ def visit_no_keywords_parameter_node(node); end
968
+
969
+ # Dispatch enter and leave events for NumberedParametersNode nodes.
970
+ sig { params(node: NumberedParametersNode).void }
971
+ def visit_numbered_parameters_node(node); end
972
+
973
+ # Dispatch enter and leave events for NumberedReferenceReadNode nodes.
974
+ sig { params(node: NumberedReferenceReadNode).void }
975
+ def visit_numbered_reference_read_node(node); end
976
+
977
+ # Dispatch enter and leave events for OptionalKeywordParameterNode nodes.
978
+ sig { params(node: OptionalKeywordParameterNode).void }
979
+ def visit_optional_keyword_parameter_node(node); end
980
+
981
+ # Dispatch enter and leave events for OptionalParameterNode nodes.
982
+ sig { params(node: OptionalParameterNode).void }
983
+ def visit_optional_parameter_node(node); end
984
+
985
+ # Dispatch enter and leave events for OrNode nodes.
986
+ sig { params(node: OrNode).void }
987
+ def visit_or_node(node); end
988
+
989
+ # Dispatch enter and leave events for ParametersNode nodes.
990
+ sig { params(node: ParametersNode).void }
991
+ def visit_parameters_node(node); end
992
+
993
+ # Dispatch enter and leave events for ParenthesesNode nodes.
994
+ sig { params(node: ParenthesesNode).void }
995
+ def visit_parentheses_node(node); end
996
+
997
+ # Dispatch enter and leave events for PinnedExpressionNode nodes.
998
+ sig { params(node: PinnedExpressionNode).void }
999
+ def visit_pinned_expression_node(node); end
1000
+
1001
+ # Dispatch enter and leave events for PinnedVariableNode nodes.
1002
+ sig { params(node: PinnedVariableNode).void }
1003
+ def visit_pinned_variable_node(node); end
1004
+
1005
+ # Dispatch enter and leave events for PostExecutionNode nodes.
1006
+ sig { params(node: PostExecutionNode).void }
1007
+ def visit_post_execution_node(node); end
1008
+
1009
+ # Dispatch enter and leave events for PreExecutionNode nodes.
1010
+ sig { params(node: PreExecutionNode).void }
1011
+ def visit_pre_execution_node(node); end
1012
+
1013
+ # Dispatch enter and leave events for ProgramNode nodes.
1014
+ sig { params(node: ProgramNode).void }
1015
+ def visit_program_node(node); end
1016
+
1017
+ # Dispatch enter and leave events for RangeNode nodes.
1018
+ sig { params(node: RangeNode).void }
1019
+ def visit_range_node(node); end
1020
+
1021
+ # Dispatch enter and leave events for RationalNode nodes.
1022
+ sig { params(node: RationalNode).void }
1023
+ def visit_rational_node(node); end
1024
+
1025
+ # Dispatch enter and leave events for RedoNode nodes.
1026
+ sig { params(node: RedoNode).void }
1027
+ def visit_redo_node(node); end
1028
+
1029
+ # Dispatch enter and leave events for RegularExpressionNode nodes.
1030
+ sig { params(node: RegularExpressionNode).void }
1031
+ def visit_regular_expression_node(node); end
1032
+
1033
+ # Dispatch enter and leave events for RequiredKeywordParameterNode nodes.
1034
+ sig { params(node: RequiredKeywordParameterNode).void }
1035
+ def visit_required_keyword_parameter_node(node); end
1036
+
1037
+ # Dispatch enter and leave events for RequiredParameterNode nodes.
1038
+ sig { params(node: RequiredParameterNode).void }
1039
+ def visit_required_parameter_node(node); end
1040
+
1041
+ # Dispatch enter and leave events for RescueModifierNode nodes.
1042
+ sig { params(node: RescueModifierNode).void }
1043
+ def visit_rescue_modifier_node(node); end
1044
+
1045
+ # Dispatch enter and leave events for RescueNode nodes.
1046
+ sig { params(node: RescueNode).void }
1047
+ def visit_rescue_node(node); end
1048
+
1049
+ # Dispatch enter and leave events for RestParameterNode nodes.
1050
+ sig { params(node: RestParameterNode).void }
1051
+ def visit_rest_parameter_node(node); end
1052
+
1053
+ # Dispatch enter and leave events for RetryNode nodes.
1054
+ sig { params(node: RetryNode).void }
1055
+ def visit_retry_node(node); end
1056
+
1057
+ # Dispatch enter and leave events for ReturnNode nodes.
1058
+ sig { params(node: ReturnNode).void }
1059
+ def visit_return_node(node); end
1060
+
1061
+ # Dispatch enter and leave events for SelfNode nodes.
1062
+ sig { params(node: SelfNode).void }
1063
+ def visit_self_node(node); end
1064
+
1065
+ # Dispatch enter and leave events for ShareableConstantNode nodes.
1066
+ sig { params(node: ShareableConstantNode).void }
1067
+ def visit_shareable_constant_node(node); end
1068
+
1069
+ # Dispatch enter and leave events for SingletonClassNode nodes.
1070
+ sig { params(node: SingletonClassNode).void }
1071
+ def visit_singleton_class_node(node); end
1072
+
1073
+ # Dispatch enter and leave events for SourceEncodingNode nodes.
1074
+ sig { params(node: SourceEncodingNode).void }
1075
+ def visit_source_encoding_node(node); end
1076
+
1077
+ # Dispatch enter and leave events for SourceFileNode nodes.
1078
+ sig { params(node: SourceFileNode).void }
1079
+ def visit_source_file_node(node); end
1080
+
1081
+ # Dispatch enter and leave events for SourceLineNode nodes.
1082
+ sig { params(node: SourceLineNode).void }
1083
+ def visit_source_line_node(node); end
1084
+
1085
+ # Dispatch enter and leave events for SplatNode nodes.
1086
+ sig { params(node: SplatNode).void }
1087
+ def visit_splat_node(node); end
1088
+
1089
+ # Dispatch enter and leave events for StatementsNode nodes.
1090
+ sig { params(node: StatementsNode).void }
1091
+ def visit_statements_node(node); end
1092
+
1093
+ # Dispatch enter and leave events for StringNode nodes.
1094
+ sig { params(node: StringNode).void }
1095
+ def visit_string_node(node); end
1096
+
1097
+ # Dispatch enter and leave events for SuperNode nodes.
1098
+ sig { params(node: SuperNode).void }
1099
+ def visit_super_node(node); end
1100
+
1101
+ # Dispatch enter and leave events for SymbolNode nodes.
1102
+ sig { params(node: SymbolNode).void }
1103
+ def visit_symbol_node(node); end
1104
+
1105
+ # Dispatch enter and leave events for TrueNode nodes.
1106
+ sig { params(node: TrueNode).void }
1107
+ def visit_true_node(node); end
1108
+
1109
+ # Dispatch enter and leave events for UndefNode nodes.
1110
+ sig { params(node: UndefNode).void }
1111
+ def visit_undef_node(node); end
1112
+
1113
+ # Dispatch enter and leave events for UnlessNode nodes.
1114
+ sig { params(node: UnlessNode).void }
1115
+ def visit_unless_node(node); end
1116
+
1117
+ # Dispatch enter and leave events for UntilNode nodes.
1118
+ sig { params(node: UntilNode).void }
1119
+ def visit_until_node(node); end
1120
+
1121
+ # Dispatch enter and leave events for WhenNode nodes.
1122
+ sig { params(node: WhenNode).void }
1123
+ def visit_when_node(node); end
1124
+
1125
+ # Dispatch enter and leave events for WhileNode nodes.
1126
+ sig { params(node: WhileNode).void }
1127
+ def visit_while_node(node); end
1128
+
1129
+ # Dispatch enter and leave events for XStringNode nodes.
1130
+ sig { params(node: XStringNode).void }
1131
+ def visit_x_string_node(node); end
1132
+
1133
+ # Dispatch enter and leave events for YieldNode nodes.
1134
+ sig { params(node: YieldNode).void }
1135
+ def visit_yield_node(node); end
1136
+ end
1137
+ end
1138
+ end