prism 1.9.0 → 2.0.0.rc2

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 (244) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/CODE_OF_CONDUCT.md +1 -1
  4. data/LICENSE.md +1 -1
  5. data/Makefile +41 -12
  6. data/README.md +35 -97
  7. data/config.yml +174 -161
  8. data/docs/build_system.md +2 -2
  9. data/docs/configuration.md +5 -4
  10. data/docs/encoding.md +2 -2
  11. data/docs/fuzzing.md +4 -11
  12. data/docs/javascript.md +19 -4
  13. data/docs/mapping.md +1 -1
  14. data/docs/releasing.md +77 -5
  15. data/docs/relocation.md +2 -4
  16. data/docs/serialization.md +22 -24
  17. data/docs/testing.md +46 -29
  18. data/ext/prism/api_node.c +1461 -1401
  19. data/ext/prism/extconf.rb +3 -4
  20. data/ext/prism/extension.c +796 -422
  21. data/ext/prism/extension.h +3 -3
  22. data/include/prism/arena.h +37 -0
  23. data/include/prism/ast.h +2727 -610
  24. data/include/prism/buffer.h +52 -0
  25. data/include/prism/comments.h +55 -0
  26. data/include/prism/compiler/accel.h +26 -0
  27. data/include/prism/compiler/align.h +36 -0
  28. data/include/prism/compiler/assume.h +25 -0
  29. data/include/prism/compiler/bswap.h +46 -0
  30. data/include/prism/compiler/endianness.h +34 -0
  31. data/include/prism/compiler/exported.h +24 -0
  32. data/include/prism/compiler/fallthrough.h +22 -0
  33. data/include/prism/compiler/filesystem.h +32 -0
  34. data/include/prism/compiler/flex_array.h +19 -0
  35. data/include/prism/compiler/force_inline.h +21 -0
  36. data/include/prism/compiler/format.h +25 -0
  37. data/include/prism/compiler/inline.h +17 -0
  38. data/include/prism/compiler/nodiscard.h +22 -0
  39. data/include/prism/compiler/nonnull.h +18 -0
  40. data/include/prism/compiler/unused.h +18 -0
  41. data/include/prism/constant_pool.h +81 -0
  42. data/include/prism/diagnostic.h +38 -403
  43. data/include/prism/errors_format.h +53 -0
  44. data/include/prism/excludes.h +29 -0
  45. data/include/prism/integer.h +41 -0
  46. data/include/prism/internal/allocator.h +68 -0
  47. data/include/prism/internal/allocator_debug.h +88 -0
  48. data/include/prism/internal/arena.h +108 -0
  49. data/include/prism/internal/bit.h +42 -0
  50. data/include/prism/internal/buffer.h +94 -0
  51. data/include/prism/internal/char.h +145 -0
  52. data/include/prism/internal/comments.h +53 -0
  53. data/include/prism/internal/constant_pool.h +152 -0
  54. data/include/prism/internal/diagnostic.h +389 -0
  55. data/include/prism/{encoding.h → internal/encoding.h} +27 -68
  56. data/include/prism/internal/integer.h +68 -0
  57. data/include/prism/internal/isinf.h +16 -0
  58. data/include/prism/internal/line_offset_list.h +34 -0
  59. data/include/prism/{util/pm_list.h → internal/list.h} +11 -52
  60. data/include/prism/internal/magic_comments.h +23 -0
  61. data/include/prism/internal/memchr.h +15 -0
  62. data/include/prism/internal/node.h +38 -0
  63. data/include/prism/internal/options.h +232 -0
  64. data/include/prism/internal/parser.h +1004 -0
  65. data/include/prism/internal/regexp.h +26 -0
  66. data/include/prism/internal/serialize.h +39 -0
  67. data/include/prism/internal/source.h +72 -0
  68. data/include/prism/{static_literals.h → internal/static_literals.h} +26 -47
  69. data/include/prism/internal/stringy.h +35 -0
  70. data/include/prism/{util/pm_strncasecmp.h → internal/strncasecmp.h} +3 -17
  71. data/include/prism/{util/pm_strpbrk.h → internal/strpbrk.h} +7 -20
  72. data/include/prism/internal/tokens.h +11 -0
  73. data/include/prism/internal/xxh3.h +16 -0
  74. data/include/prism/json.h +32 -0
  75. data/include/prism/line_offset_list.h +61 -0
  76. data/include/prism/magic_comments.h +35 -0
  77. data/include/prism/node.h +18 -53
  78. data/include/prism/options.h +146 -280
  79. data/include/prism/parser.h +356 -867
  80. data/include/prism/prettyprint.h +6 -9
  81. data/include/prism/serialize.h +115 -0
  82. data/include/prism/source.h +155 -0
  83. data/include/prism/stream.h +28 -0
  84. data/include/prism/string_query.h +74 -0
  85. data/include/prism/stringy.h +72 -0
  86. data/include/prism/version.h +12 -3
  87. data/include/prism.h +43 -320
  88. data/lib/prism/compiler.rb +319 -305
  89. data/lib/prism/desugar_compiler.rb +105 -34
  90. data/lib/prism/dispatcher.rb +646 -473
  91. data/lib/prism/dot_visitor.rb +592 -511
  92. data/lib/prism/dsl.rb +391 -25
  93. data/lib/prism/ffi.rb +258 -90
  94. data/lib/prism/inspect_visitor.rb +357 -325
  95. data/lib/prism/lex_compat.rb +254 -212
  96. data/lib/prism/mutation_compiler.rb +313 -305
  97. data/lib/prism/node.rb +20966 -6992
  98. data/lib/prism/node_ext.rb +180 -187
  99. data/lib/prism/node_find.rb +215 -0
  100. data/lib/prism/parse_result/errors.rb +7 -1
  101. data/lib/prism/parse_result/newlines.rb +276 -8
  102. data/lib/prism/parse_result.rb +468 -139
  103. data/lib/prism/pattern.rb +65 -20
  104. data/lib/prism/reflection.rb +23 -12
  105. data/lib/prism/relocation.rb +149 -87
  106. data/lib/prism/serialize.rb +3460 -539
  107. data/lib/prism/string_query.rb +24 -1
  108. data/lib/prism/translation/parser/builder.rb +10 -2
  109. data/lib/prism/translation/parser/compiler.rb +44 -52
  110. data/lib/prism/translation/parser/lexer.rb +41 -92
  111. data/lib/prism/translation/parser.rb +1 -1
  112. data/lib/prism/translation/parser_current.rb +1 -1
  113. data/lib/prism/translation/ripper/lexer.rb +8 -10
  114. data/lib/prism/translation/ripper/sexp.rb +2 -10
  115. data/lib/prism/translation/ripper/shim.rb +2 -0
  116. data/lib/prism/translation/ripper.rb +967 -209
  117. data/lib/prism/translation/ruby_parser.rb +73 -316
  118. data/lib/prism/translation.rb +2 -0
  119. data/lib/prism/visitor.rb +632 -5
  120. data/lib/prism.rb +79 -9
  121. data/prism.gemspec +128 -62
  122. data/rbi/generated/prism/compiler.rbi +489 -0
  123. data/rbi/generated/prism/desugar_compiler.rbi +306 -0
  124. data/rbi/generated/prism/dispatcher.rbi +1138 -0
  125. data/rbi/generated/prism/dot_visitor.rbi +618 -0
  126. data/rbi/generated/prism/dsl.rbi +751 -0
  127. data/rbi/generated/prism/inspect_visitor.rbi +503 -0
  128. data/rbi/generated/prism/lex_compat.rbi +162 -0
  129. data/rbi/generated/prism/mutation_compiler.rbi +464 -0
  130. data/rbi/generated/prism/node.rbi +14407 -0
  131. data/rbi/generated/prism/node_ext.rbi +259 -0
  132. data/rbi/generated/prism/node_find.rbi +79 -0
  133. data/rbi/generated/prism/parse_result/errors.rbi +21 -0
  134. data/rbi/generated/prism/parse_result/newlines.rbi +208 -0
  135. data/rbi/generated/prism/parse_result.rbi +776 -0
  136. data/rbi/generated/prism/pattern.rbi +134 -0
  137. data/rbi/generated/prism/reflection.rbi +89 -0
  138. data/rbi/generated/prism/relocation.rbi +329 -0
  139. data/rbi/generated/prism/serialize.rbi +184 -0
  140. data/rbi/generated/prism/string_query.rbi +43 -0
  141. data/rbi/generated/prism/translation.rbi +7 -0
  142. data/rbi/generated/prism/visitor.rbi +650 -0
  143. data/rbi/generated/prism.rbi +86 -0
  144. data/rbi/prism/translation/parser_versions.rbi +5 -0
  145. data/rbi/rubyvm/node_find.rbi +14 -0
  146. data/sig/generated/prism/compiler.rbs +492 -0
  147. data/sig/generated/prism/desugar_compiler.rbs +305 -0
  148. data/sig/generated/prism/dispatcher.rbs +1292 -0
  149. data/sig/generated/prism/dot_visitor.rbs +635 -0
  150. data/sig/generated/prism/dsl.rbs +928 -0
  151. data/sig/generated/prism/inspect_visitor.rbs +509 -0
  152. data/sig/generated/prism/lex_compat.rbs +166 -0
  153. data/sig/{prism → generated/prism}/mutation_compiler.rbs +309 -4
  154. data/sig/generated/prism/node.rbs +20896 -0
  155. data/sig/generated/prism/node_ext.rbs +290 -0
  156. data/sig/generated/prism/node_find.rbs +90 -0
  157. data/sig/generated/prism/parse_result/errors.rbs +22 -0
  158. data/sig/generated/prism/parse_result/newlines.rbs +223 -0
  159. data/sig/generated/prism/parse_result.rbs +871 -0
  160. data/sig/generated/prism/pattern.rbs +156 -0
  161. data/sig/generated/prism/reflection.rbs +101 -0
  162. data/sig/generated/prism/relocation.rbs +428 -0
  163. data/sig/generated/prism/serialize.rbs +198 -0
  164. data/sig/generated/prism/string_query.rbs +43 -0
  165. data/sig/generated/prism/translation.rbs +8 -0
  166. data/sig/generated/prism/visitor.rbs +1111 -0
  167. data/sig/generated/prism.rbs +84 -0
  168. data/sig/manifest.yaml +2 -0
  169. data/src/arena.c +117 -0
  170. data/src/{util/pm_buffer.c → buffer.c} +53 -21
  171. data/src/{util/pm_char.c → char.c} +28 -57
  172. data/src/comments.c +454 -0
  173. data/src/constant_pool.c +406 -0
  174. data/src/diagnostic.c +97 -65
  175. data/src/encoding.c +8 -3
  176. data/src/errors_format.c +519 -0
  177. data/src/{util/pm_integer.c → integer.c} +33 -22
  178. data/src/json.c +5733 -0
  179. data/src/line_offset_list.c +100 -0
  180. data/src/list.c +24 -0
  181. data/src/{util/pm_memchr.c → memchr.c} +8 -6
  182. data/src/node.c +3504 -7674
  183. data/src/options.c +162 -49
  184. data/src/parser.c +367 -0
  185. data/src/prettyprint.c +421 -354
  186. data/src/prism.c +8402 -7161
  187. data/src/regexp.c +961 -45
  188. data/src/serialize.c +460 -424
  189. data/src/source.c +518 -0
  190. data/src/static_literals.c +111 -43
  191. data/src/string_query.c +180 -0
  192. data/src/stringy.c +91 -0
  193. data/src/{util/pm_strncasecmp.c → strncasecmp.c} +5 -4
  194. data/src/strpbrk.c +447 -0
  195. data/src/{token_type.c → tokens.c} +39 -18
  196. data/src/xxh3.c +292 -0
  197. metadata +128 -63
  198. data/ext/prism/api_pack.c +0 -276
  199. data/include/prism/defines.h +0 -260
  200. data/include/prism/pack.h +0 -163
  201. data/include/prism/regexp.h +0 -43
  202. data/include/prism/util/pm_buffer.h +0 -236
  203. data/include/prism/util/pm_char.h +0 -204
  204. data/include/prism/util/pm_constant_pool.h +0 -218
  205. data/include/prism/util/pm_integer.h +0 -130
  206. data/include/prism/util/pm_memchr.h +0 -29
  207. data/include/prism/util/pm_newline_list.h +0 -113
  208. data/include/prism/util/pm_string.h +0 -200
  209. data/lib/prism/pack.rb +0 -230
  210. data/lib/prism/parse_result/comments.rb +0 -188
  211. data/rbi/prism/compiler.rbi +0 -12
  212. data/rbi/prism/dsl.rbi +0 -524
  213. data/rbi/prism/inspect_visitor.rbi +0 -12
  214. data/rbi/prism/node.rbi +0 -8750
  215. data/rbi/prism/node_ext.rbi +0 -107
  216. data/rbi/prism/parse_result.rbi +0 -404
  217. data/rbi/prism/reflection.rbi +0 -58
  218. data/rbi/prism/string_query.rbi +0 -12
  219. data/rbi/prism/visitor.rbi +0 -473
  220. data/rbi/prism.rbi +0 -63
  221. data/sig/prism/compiler.rbs +0 -9
  222. data/sig/prism/dispatcher.rbs +0 -19
  223. data/sig/prism/dot_visitor.rbs +0 -6
  224. data/sig/prism/dsl.rbs +0 -351
  225. data/sig/prism/inspect_visitor.rbs +0 -22
  226. data/sig/prism/lex_compat.rbs +0 -10
  227. data/sig/prism/node.rbs +0 -4042
  228. data/sig/prism/node_ext.rbs +0 -149
  229. data/sig/prism/pack.rbs +0 -43
  230. data/sig/prism/parse_result/comments.rbs +0 -38
  231. data/sig/prism/parse_result.rbs +0 -197
  232. data/sig/prism/pattern.rbs +0 -13
  233. data/sig/prism/reflection.rbs +0 -50
  234. data/sig/prism/relocation.rbs +0 -185
  235. data/sig/prism/serialize.rbs +0 -8
  236. data/sig/prism/string_query.rbs +0 -11
  237. data/sig/prism/visitor.rbs +0 -169
  238. data/sig/prism.rbs +0 -272
  239. data/src/pack.c +0 -509
  240. data/src/util/pm_constant_pool.c +0 -342
  241. data/src/util/pm_list.c +0 -49
  242. data/src/util/pm_newline_list.c +0 -125
  243. data/src/util/pm_string.c +0 -381
  244. data/src/util/pm_strpbrk.c +0 -206
data/lib/prism/visitor.rb CHANGED
@@ -9,7 +9,319 @@ if you are looking to modify the template
9
9
  ++
10
10
  =end
11
11
 
12
+ #--
13
+ # rbs_inline: enabled
14
+
12
15
  module Prism
16
+ # @rbs!
17
+ # interface _Visitor
18
+ #
19
+ # def visit_alias_global_variable_node: (AliasGlobalVariableNode) -> void
20
+ #
21
+ # def visit_alias_method_node: (AliasMethodNode) -> void
22
+ #
23
+ # def visit_alternation_pattern_node: (AlternationPatternNode) -> void
24
+ #
25
+ # def visit_and_node: (AndNode) -> void
26
+ #
27
+ # def visit_arguments_node: (ArgumentsNode) -> void
28
+ #
29
+ # def visit_array_node: (ArrayNode) -> void
30
+ #
31
+ # def visit_array_pattern_node: (ArrayPatternNode) -> void
32
+ #
33
+ # def visit_assoc_node: (AssocNode) -> void
34
+ #
35
+ # def visit_assoc_splat_node: (AssocSplatNode) -> void
36
+ #
37
+ # def visit_back_reference_read_node: (BackReferenceReadNode) -> void
38
+ #
39
+ # def visit_begin_node: (BeginNode) -> void
40
+ #
41
+ # def visit_block_argument_node: (BlockArgumentNode) -> void
42
+ #
43
+ # def visit_block_local_variable_node: (BlockLocalVariableNode) -> void
44
+ #
45
+ # def visit_block_node: (BlockNode) -> void
46
+ #
47
+ # def visit_block_parameter_node: (BlockParameterNode) -> void
48
+ #
49
+ # def visit_block_parameters_node: (BlockParametersNode) -> void
50
+ #
51
+ # def visit_break_node: (BreakNode) -> void
52
+ #
53
+ # def visit_call_and_write_node: (CallAndWriteNode) -> void
54
+ #
55
+ # def visit_call_node: (CallNode) -> void
56
+ #
57
+ # def visit_call_operator_write_node: (CallOperatorWriteNode) -> void
58
+ #
59
+ # def visit_call_or_write_node: (CallOrWriteNode) -> void
60
+ #
61
+ # def visit_call_target_node: (CallTargetNode) -> void
62
+ #
63
+ # def visit_capture_pattern_node: (CapturePatternNode) -> void
64
+ #
65
+ # def visit_case_match_node: (CaseMatchNode) -> void
66
+ #
67
+ # def visit_case_node: (CaseNode) -> void
68
+ #
69
+ # def visit_class_node: (ClassNode) -> void
70
+ #
71
+ # def visit_class_variable_and_write_node: (ClassVariableAndWriteNode) -> void
72
+ #
73
+ # def visit_class_variable_operator_write_node: (ClassVariableOperatorWriteNode) -> void
74
+ #
75
+ # def visit_class_variable_or_write_node: (ClassVariableOrWriteNode) -> void
76
+ #
77
+ # def visit_class_variable_read_node: (ClassVariableReadNode) -> void
78
+ #
79
+ # def visit_class_variable_target_node: (ClassVariableTargetNode) -> void
80
+ #
81
+ # def visit_class_variable_write_node: (ClassVariableWriteNode) -> void
82
+ #
83
+ # def visit_constant_and_write_node: (ConstantAndWriteNode) -> void
84
+ #
85
+ # def visit_constant_operator_write_node: (ConstantOperatorWriteNode) -> void
86
+ #
87
+ # def visit_constant_or_write_node: (ConstantOrWriteNode) -> void
88
+ #
89
+ # def visit_constant_path_and_write_node: (ConstantPathAndWriteNode) -> void
90
+ #
91
+ # def visit_constant_path_node: (ConstantPathNode) -> void
92
+ #
93
+ # def visit_constant_path_operator_write_node: (ConstantPathOperatorWriteNode) -> void
94
+ #
95
+ # def visit_constant_path_or_write_node: (ConstantPathOrWriteNode) -> void
96
+ #
97
+ # def visit_constant_path_target_node: (ConstantPathTargetNode) -> void
98
+ #
99
+ # def visit_constant_path_write_node: (ConstantPathWriteNode) -> void
100
+ #
101
+ # def visit_constant_read_node: (ConstantReadNode) -> void
102
+ #
103
+ # def visit_constant_target_node: (ConstantTargetNode) -> void
104
+ #
105
+ # def visit_constant_write_node: (ConstantWriteNode) -> void
106
+ #
107
+ # def visit_def_node: (DefNode) -> void
108
+ #
109
+ # def visit_defined_node: (DefinedNode) -> void
110
+ #
111
+ # def visit_else_node: (ElseNode) -> void
112
+ #
113
+ # def visit_embedded_statements_node: (EmbeddedStatementsNode) -> void
114
+ #
115
+ # def visit_embedded_variable_node: (EmbeddedVariableNode) -> void
116
+ #
117
+ # def visit_ensure_node: (EnsureNode) -> void
118
+ #
119
+ # def visit_error_recovery_node: (ErrorRecoveryNode) -> void
120
+ #
121
+ # def visit_false_node: (FalseNode) -> void
122
+ #
123
+ # def visit_find_pattern_node: (FindPatternNode) -> void
124
+ #
125
+ # def visit_flip_flop_node: (FlipFlopNode) -> void
126
+ #
127
+ # def visit_float_node: (FloatNode) -> void
128
+ #
129
+ # def visit_for_node: (ForNode) -> void
130
+ #
131
+ # def visit_forwarding_arguments_node: (ForwardingArgumentsNode) -> void
132
+ #
133
+ # def visit_forwarding_parameter_node: (ForwardingParameterNode) -> void
134
+ #
135
+ # def visit_forwarding_super_node: (ForwardingSuperNode) -> void
136
+ #
137
+ # def visit_global_variable_and_write_node: (GlobalVariableAndWriteNode) -> void
138
+ #
139
+ # def visit_global_variable_operator_write_node: (GlobalVariableOperatorWriteNode) -> void
140
+ #
141
+ # def visit_global_variable_or_write_node: (GlobalVariableOrWriteNode) -> void
142
+ #
143
+ # def visit_global_variable_read_node: (GlobalVariableReadNode) -> void
144
+ #
145
+ # def visit_global_variable_target_node: (GlobalVariableTargetNode) -> void
146
+ #
147
+ # def visit_global_variable_write_node: (GlobalVariableWriteNode) -> void
148
+ #
149
+ # def visit_hash_node: (HashNode) -> void
150
+ #
151
+ # def visit_hash_pattern_node: (HashPatternNode) -> void
152
+ #
153
+ # def visit_if_node: (IfNode) -> void
154
+ #
155
+ # def visit_imaginary_node: (ImaginaryNode) -> void
156
+ #
157
+ # def visit_implicit_node: (ImplicitNode) -> void
158
+ #
159
+ # def visit_implicit_rest_node: (ImplicitRestNode) -> void
160
+ #
161
+ # def visit_in_node: (InNode) -> void
162
+ #
163
+ # def visit_index_and_write_node: (IndexAndWriteNode) -> void
164
+ #
165
+ # def visit_index_operator_write_node: (IndexOperatorWriteNode) -> void
166
+ #
167
+ # def visit_index_or_write_node: (IndexOrWriteNode) -> void
168
+ #
169
+ # def visit_index_target_node: (IndexTargetNode) -> void
170
+ #
171
+ # def visit_instance_variable_and_write_node: (InstanceVariableAndWriteNode) -> void
172
+ #
173
+ # def visit_instance_variable_operator_write_node: (InstanceVariableOperatorWriteNode) -> void
174
+ #
175
+ # def visit_instance_variable_or_write_node: (InstanceVariableOrWriteNode) -> void
176
+ #
177
+ # def visit_instance_variable_read_node: (InstanceVariableReadNode) -> void
178
+ #
179
+ # def visit_instance_variable_target_node: (InstanceVariableTargetNode) -> void
180
+ #
181
+ # def visit_instance_variable_write_node: (InstanceVariableWriteNode) -> void
182
+ #
183
+ # def visit_integer_node: (IntegerNode) -> void
184
+ #
185
+ # def visit_interpolated_match_last_line_node: (InterpolatedMatchLastLineNode) -> void
186
+ #
187
+ # def visit_interpolated_regular_expression_node: (InterpolatedRegularExpressionNode) -> void
188
+ #
189
+ # def visit_interpolated_string_node: (InterpolatedStringNode) -> void
190
+ #
191
+ # def visit_interpolated_symbol_node: (InterpolatedSymbolNode) -> void
192
+ #
193
+ # def visit_interpolated_x_string_node: (InterpolatedXStringNode) -> void
194
+ #
195
+ # def visit_it_local_variable_read_node: (ItLocalVariableReadNode) -> void
196
+ #
197
+ # def visit_it_parameters_node: (ItParametersNode) -> void
198
+ #
199
+ # def visit_keyword_hash_node: (KeywordHashNode) -> void
200
+ #
201
+ # def visit_keyword_rest_parameter_node: (KeywordRestParameterNode) -> void
202
+ #
203
+ # def visit_lambda_node: (LambdaNode) -> void
204
+ #
205
+ # def visit_local_variable_and_write_node: (LocalVariableAndWriteNode) -> void
206
+ #
207
+ # def visit_local_variable_operator_write_node: (LocalVariableOperatorWriteNode) -> void
208
+ #
209
+ # def visit_local_variable_or_write_node: (LocalVariableOrWriteNode) -> void
210
+ #
211
+ # def visit_local_variable_read_node: (LocalVariableReadNode) -> void
212
+ #
213
+ # def visit_local_variable_target_node: (LocalVariableTargetNode) -> void
214
+ #
215
+ # def visit_local_variable_write_node: (LocalVariableWriteNode) -> void
216
+ #
217
+ # def visit_match_last_line_node: (MatchLastLineNode) -> void
218
+ #
219
+ # def visit_match_predicate_node: (MatchPredicateNode) -> void
220
+ #
221
+ # def visit_match_required_node: (MatchRequiredNode) -> void
222
+ #
223
+ # def visit_match_write_node: (MatchWriteNode) -> void
224
+ #
225
+ # def visit_module_node: (ModuleNode) -> void
226
+ #
227
+ # def visit_multi_target_node: (MultiTargetNode) -> void
228
+ #
229
+ # def visit_multi_write_node: (MultiWriteNode) -> void
230
+ #
231
+ # def visit_next_node: (NextNode) -> void
232
+ #
233
+ # def visit_nil_node: (NilNode) -> void
234
+ #
235
+ # def visit_no_block_parameter_node: (NoBlockParameterNode) -> void
236
+ #
237
+ # def visit_no_keywords_parameter_node: (NoKeywordsParameterNode) -> void
238
+ #
239
+ # def visit_numbered_parameters_node: (NumberedParametersNode) -> void
240
+ #
241
+ # def visit_numbered_reference_read_node: (NumberedReferenceReadNode) -> void
242
+ #
243
+ # def visit_optional_keyword_parameter_node: (OptionalKeywordParameterNode) -> void
244
+ #
245
+ # def visit_optional_parameter_node: (OptionalParameterNode) -> void
246
+ #
247
+ # def visit_or_node: (OrNode) -> void
248
+ #
249
+ # def visit_parameters_node: (ParametersNode) -> void
250
+ #
251
+ # def visit_parentheses_node: (ParenthesesNode) -> void
252
+ #
253
+ # def visit_pinned_expression_node: (PinnedExpressionNode) -> void
254
+ #
255
+ # def visit_pinned_variable_node: (PinnedVariableNode) -> void
256
+ #
257
+ # def visit_post_execution_node: (PostExecutionNode) -> void
258
+ #
259
+ # def visit_pre_execution_node: (PreExecutionNode) -> void
260
+ #
261
+ # def visit_program_node: (ProgramNode) -> void
262
+ #
263
+ # def visit_range_node: (RangeNode) -> void
264
+ #
265
+ # def visit_rational_node: (RationalNode) -> void
266
+ #
267
+ # def visit_redo_node: (RedoNode) -> void
268
+ #
269
+ # def visit_regular_expression_node: (RegularExpressionNode) -> void
270
+ #
271
+ # def visit_required_keyword_parameter_node: (RequiredKeywordParameterNode) -> void
272
+ #
273
+ # def visit_required_parameter_node: (RequiredParameterNode) -> void
274
+ #
275
+ # def visit_rescue_modifier_node: (RescueModifierNode) -> void
276
+ #
277
+ # def visit_rescue_node: (RescueNode) -> void
278
+ #
279
+ # def visit_rest_parameter_node: (RestParameterNode) -> void
280
+ #
281
+ # def visit_retry_node: (RetryNode) -> void
282
+ #
283
+ # def visit_return_node: (ReturnNode) -> void
284
+ #
285
+ # def visit_self_node: (SelfNode) -> void
286
+ #
287
+ # def visit_shareable_constant_node: (ShareableConstantNode) -> void
288
+ #
289
+ # def visit_singleton_class_node: (SingletonClassNode) -> void
290
+ #
291
+ # def visit_source_encoding_node: (SourceEncodingNode) -> void
292
+ #
293
+ # def visit_source_file_node: (SourceFileNode) -> void
294
+ #
295
+ # def visit_source_line_node: (SourceLineNode) -> void
296
+ #
297
+ # def visit_splat_node: (SplatNode) -> void
298
+ #
299
+ # def visit_statements_node: (StatementsNode) -> void
300
+ #
301
+ # def visit_string_node: (StringNode) -> void
302
+ #
303
+ # def visit_super_node: (SuperNode) -> void
304
+ #
305
+ # def visit_symbol_node: (SymbolNode) -> void
306
+ #
307
+ # def visit_true_node: (TrueNode) -> void
308
+ #
309
+ # def visit_undef_node: (UndefNode) -> void
310
+ #
311
+ # def visit_unless_node: (UnlessNode) -> void
312
+ #
313
+ # def visit_until_node: (UntilNode) -> void
314
+ #
315
+ # def visit_when_node: (WhenNode) -> void
316
+ #
317
+ # def visit_while_node: (WhileNode) -> void
318
+ #
319
+ # def visit_x_string_node: (XStringNode) -> void
320
+ #
321
+ # def visit_yield_node: (YieldNode) -> void
322
+ #
323
+ # end
324
+
13
325
  # A class that knows how to walk down the tree. None of the individual visit
14
326
  # methods are implemented on this visitor, so it forces the consumer to
15
327
  # implement each one that they need. For a default implementation that
@@ -17,18 +329,24 @@ module Prism
17
329
  class BasicVisitor
18
330
  # Calls `accept` on the given node if it is not `nil`, which in turn should
19
331
  # call back into this visitor by calling the appropriate `visit_*` method.
332
+ #
333
+ #: (node? node) -> void
20
334
  def visit(node)
21
335
  # @type self: _Visitor
22
336
  node&.accept(self)
23
337
  end
24
338
 
25
339
  # Visits each node in `nodes` by calling `accept` on each one.
340
+ #
341
+ #: (Array[node?] nodes) -> void
26
342
  def visit_all(nodes)
27
343
  # @type self: _Visitor
28
344
  nodes.each { |node| node&.accept(self) }
29
345
  end
30
346
 
31
347
  # Visits the child nodes of `node` by calling `accept` on each one.
348
+ #
349
+ #: (node node) -> void
32
350
  def visit_child_nodes(node)
33
351
  # @type self: _Visitor
34
352
  node.each_child_node { |node| node.accept(self) }
@@ -56,756 +374,1065 @@ module Prism
56
374
  #
57
375
  class Visitor < BasicVisitor
58
376
  # Visit a AliasGlobalVariableNode node
377
+ #
378
+ #: (AliasGlobalVariableNode node) -> void
59
379
  def visit_alias_global_variable_node(node)
60
380
  node.each_child_node { |node| node.accept(self) }
61
381
  end
62
382
 
63
383
  # Visit a AliasMethodNode node
384
+ #
385
+ #: (AliasMethodNode node) -> void
64
386
  def visit_alias_method_node(node)
65
387
  node.each_child_node { |node| node.accept(self) }
66
388
  end
67
389
 
68
390
  # Visit a AlternationPatternNode node
391
+ #
392
+ #: (AlternationPatternNode node) -> void
69
393
  def visit_alternation_pattern_node(node)
70
394
  node.each_child_node { |node| node.accept(self) }
71
395
  end
72
396
 
73
397
  # Visit a AndNode node
398
+ #
399
+ #: (AndNode node) -> void
74
400
  def visit_and_node(node)
75
401
  node.each_child_node { |node| node.accept(self) }
76
402
  end
77
403
 
78
404
  # Visit a ArgumentsNode node
405
+ #
406
+ #: (ArgumentsNode node) -> void
79
407
  def visit_arguments_node(node)
80
408
  node.each_child_node { |node| node.accept(self) }
81
409
  end
82
410
 
83
411
  # Visit a ArrayNode node
412
+ #
413
+ #: (ArrayNode node) -> void
84
414
  def visit_array_node(node)
85
415
  node.each_child_node { |node| node.accept(self) }
86
416
  end
87
417
 
88
418
  # Visit a ArrayPatternNode node
419
+ #
420
+ #: (ArrayPatternNode node) -> void
89
421
  def visit_array_pattern_node(node)
90
422
  node.each_child_node { |node| node.accept(self) }
91
423
  end
92
424
 
93
425
  # Visit a AssocNode node
426
+ #
427
+ #: (AssocNode node) -> void
94
428
  def visit_assoc_node(node)
95
429
  node.each_child_node { |node| node.accept(self) }
96
430
  end
97
431
 
98
432
  # Visit a AssocSplatNode node
433
+ #
434
+ #: (AssocSplatNode node) -> void
99
435
  def visit_assoc_splat_node(node)
100
436
  node.each_child_node { |node| node.accept(self) }
101
437
  end
102
438
 
103
439
  # Visit a BackReferenceReadNode node
440
+ #
441
+ #: (BackReferenceReadNode node) -> void
104
442
  def visit_back_reference_read_node(node)
105
443
  node.each_child_node { |node| node.accept(self) }
106
444
  end
107
445
 
108
446
  # Visit a BeginNode node
447
+ #
448
+ #: (BeginNode node) -> void
109
449
  def visit_begin_node(node)
110
450
  node.each_child_node { |node| node.accept(self) }
111
451
  end
112
452
 
113
453
  # Visit a BlockArgumentNode node
454
+ #
455
+ #: (BlockArgumentNode node) -> void
114
456
  def visit_block_argument_node(node)
115
457
  node.each_child_node { |node| node.accept(self) }
116
458
  end
117
459
 
118
460
  # Visit a BlockLocalVariableNode node
461
+ #
462
+ #: (BlockLocalVariableNode node) -> void
119
463
  def visit_block_local_variable_node(node)
120
464
  node.each_child_node { |node| node.accept(self) }
121
465
  end
122
466
 
123
467
  # Visit a BlockNode node
468
+ #
469
+ #: (BlockNode node) -> void
124
470
  def visit_block_node(node)
125
471
  node.each_child_node { |node| node.accept(self) }
126
472
  end
127
473
 
128
474
  # Visit a BlockParameterNode node
475
+ #
476
+ #: (BlockParameterNode node) -> void
129
477
  def visit_block_parameter_node(node)
130
478
  node.each_child_node { |node| node.accept(self) }
131
479
  end
132
480
 
133
481
  # Visit a BlockParametersNode node
482
+ #
483
+ #: (BlockParametersNode node) -> void
134
484
  def visit_block_parameters_node(node)
135
485
  node.each_child_node { |node| node.accept(self) }
136
486
  end
137
487
 
138
488
  # Visit a BreakNode node
489
+ #
490
+ #: (BreakNode node) -> void
139
491
  def visit_break_node(node)
140
492
  node.each_child_node { |node| node.accept(self) }
141
493
  end
142
494
 
143
495
  # Visit a CallAndWriteNode node
496
+ #
497
+ #: (CallAndWriteNode node) -> void
144
498
  def visit_call_and_write_node(node)
145
499
  node.each_child_node { |node| node.accept(self) }
146
500
  end
147
501
 
148
502
  # Visit a CallNode node
503
+ #
504
+ #: (CallNode node) -> void
149
505
  def visit_call_node(node)
150
506
  node.each_child_node { |node| node.accept(self) }
151
507
  end
152
508
 
153
509
  # Visit a CallOperatorWriteNode node
510
+ #
511
+ #: (CallOperatorWriteNode node) -> void
154
512
  def visit_call_operator_write_node(node)
155
513
  node.each_child_node { |node| node.accept(self) }
156
514
  end
157
515
 
158
516
  # Visit a CallOrWriteNode node
517
+ #
518
+ #: (CallOrWriteNode node) -> void
159
519
  def visit_call_or_write_node(node)
160
520
  node.each_child_node { |node| node.accept(self) }
161
521
  end
162
522
 
163
523
  # Visit a CallTargetNode node
524
+ #
525
+ #: (CallTargetNode node) -> void
164
526
  def visit_call_target_node(node)
165
527
  node.each_child_node { |node| node.accept(self) }
166
528
  end
167
529
 
168
530
  # Visit a CapturePatternNode node
531
+ #
532
+ #: (CapturePatternNode node) -> void
169
533
  def visit_capture_pattern_node(node)
170
534
  node.each_child_node { |node| node.accept(self) }
171
535
  end
172
536
 
173
537
  # Visit a CaseMatchNode node
538
+ #
539
+ #: (CaseMatchNode node) -> void
174
540
  def visit_case_match_node(node)
175
541
  node.each_child_node { |node| node.accept(self) }
176
542
  end
177
543
 
178
544
  # Visit a CaseNode node
545
+ #
546
+ #: (CaseNode node) -> void
179
547
  def visit_case_node(node)
180
548
  node.each_child_node { |node| node.accept(self) }
181
549
  end
182
550
 
183
551
  # Visit a ClassNode node
552
+ #
553
+ #: (ClassNode node) -> void
184
554
  def visit_class_node(node)
185
555
  node.each_child_node { |node| node.accept(self) }
186
556
  end
187
557
 
188
558
  # Visit a ClassVariableAndWriteNode node
559
+ #
560
+ #: (ClassVariableAndWriteNode node) -> void
189
561
  def visit_class_variable_and_write_node(node)
190
562
  node.each_child_node { |node| node.accept(self) }
191
563
  end
192
564
 
193
565
  # Visit a ClassVariableOperatorWriteNode node
566
+ #
567
+ #: (ClassVariableOperatorWriteNode node) -> void
194
568
  def visit_class_variable_operator_write_node(node)
195
569
  node.each_child_node { |node| node.accept(self) }
196
570
  end
197
571
 
198
572
  # Visit a ClassVariableOrWriteNode node
573
+ #
574
+ #: (ClassVariableOrWriteNode node) -> void
199
575
  def visit_class_variable_or_write_node(node)
200
576
  node.each_child_node { |node| node.accept(self) }
201
577
  end
202
578
 
203
579
  # Visit a ClassVariableReadNode node
580
+ #
581
+ #: (ClassVariableReadNode node) -> void
204
582
  def visit_class_variable_read_node(node)
205
583
  node.each_child_node { |node| node.accept(self) }
206
584
  end
207
585
 
208
586
  # Visit a ClassVariableTargetNode node
587
+ #
588
+ #: (ClassVariableTargetNode node) -> void
209
589
  def visit_class_variable_target_node(node)
210
590
  node.each_child_node { |node| node.accept(self) }
211
591
  end
212
592
 
213
593
  # Visit a ClassVariableWriteNode node
594
+ #
595
+ #: (ClassVariableWriteNode node) -> void
214
596
  def visit_class_variable_write_node(node)
215
597
  node.each_child_node { |node| node.accept(self) }
216
598
  end
217
599
 
218
600
  # Visit a ConstantAndWriteNode node
601
+ #
602
+ #: (ConstantAndWriteNode node) -> void
219
603
  def visit_constant_and_write_node(node)
220
604
  node.each_child_node { |node| node.accept(self) }
221
605
  end
222
606
 
223
607
  # Visit a ConstantOperatorWriteNode node
608
+ #
609
+ #: (ConstantOperatorWriteNode node) -> void
224
610
  def visit_constant_operator_write_node(node)
225
611
  node.each_child_node { |node| node.accept(self) }
226
612
  end
227
613
 
228
614
  # Visit a ConstantOrWriteNode node
615
+ #
616
+ #: (ConstantOrWriteNode node) -> void
229
617
  def visit_constant_or_write_node(node)
230
618
  node.each_child_node { |node| node.accept(self) }
231
619
  end
232
620
 
233
621
  # Visit a ConstantPathAndWriteNode node
622
+ #
623
+ #: (ConstantPathAndWriteNode node) -> void
234
624
  def visit_constant_path_and_write_node(node)
235
625
  node.each_child_node { |node| node.accept(self) }
236
626
  end
237
627
 
238
628
  # Visit a ConstantPathNode node
629
+ #
630
+ #: (ConstantPathNode node) -> void
239
631
  def visit_constant_path_node(node)
240
632
  node.each_child_node { |node| node.accept(self) }
241
633
  end
242
634
 
243
635
  # Visit a ConstantPathOperatorWriteNode node
636
+ #
637
+ #: (ConstantPathOperatorWriteNode node) -> void
244
638
  def visit_constant_path_operator_write_node(node)
245
639
  node.each_child_node { |node| node.accept(self) }
246
640
  end
247
641
 
248
642
  # Visit a ConstantPathOrWriteNode node
643
+ #
644
+ #: (ConstantPathOrWriteNode node) -> void
249
645
  def visit_constant_path_or_write_node(node)
250
646
  node.each_child_node { |node| node.accept(self) }
251
647
  end
252
648
 
253
649
  # Visit a ConstantPathTargetNode node
650
+ #
651
+ #: (ConstantPathTargetNode node) -> void
254
652
  def visit_constant_path_target_node(node)
255
653
  node.each_child_node { |node| node.accept(self) }
256
654
  end
257
655
 
258
656
  # Visit a ConstantPathWriteNode node
657
+ #
658
+ #: (ConstantPathWriteNode node) -> void
259
659
  def visit_constant_path_write_node(node)
260
660
  node.each_child_node { |node| node.accept(self) }
261
661
  end
262
662
 
263
663
  # Visit a ConstantReadNode node
664
+ #
665
+ #: (ConstantReadNode node) -> void
264
666
  def visit_constant_read_node(node)
265
667
  node.each_child_node { |node| node.accept(self) }
266
668
  end
267
669
 
268
670
  # Visit a ConstantTargetNode node
671
+ #
672
+ #: (ConstantTargetNode node) -> void
269
673
  def visit_constant_target_node(node)
270
674
  node.each_child_node { |node| node.accept(self) }
271
675
  end
272
676
 
273
677
  # Visit a ConstantWriteNode node
678
+ #
679
+ #: (ConstantWriteNode node) -> void
274
680
  def visit_constant_write_node(node)
275
681
  node.each_child_node { |node| node.accept(self) }
276
682
  end
277
683
 
278
684
  # Visit a DefNode node
685
+ #
686
+ #: (DefNode node) -> void
279
687
  def visit_def_node(node)
280
688
  node.each_child_node { |node| node.accept(self) }
281
689
  end
282
690
 
283
691
  # Visit a DefinedNode node
692
+ #
693
+ #: (DefinedNode node) -> void
284
694
  def visit_defined_node(node)
285
695
  node.each_child_node { |node| node.accept(self) }
286
696
  end
287
697
 
288
698
  # Visit a ElseNode node
699
+ #
700
+ #: (ElseNode node) -> void
289
701
  def visit_else_node(node)
290
702
  node.each_child_node { |node| node.accept(self) }
291
703
  end
292
704
 
293
705
  # Visit a EmbeddedStatementsNode node
706
+ #
707
+ #: (EmbeddedStatementsNode node) -> void
294
708
  def visit_embedded_statements_node(node)
295
709
  node.each_child_node { |node| node.accept(self) }
296
710
  end
297
711
 
298
712
  # Visit a EmbeddedVariableNode node
713
+ #
714
+ #: (EmbeddedVariableNode node) -> void
299
715
  def visit_embedded_variable_node(node)
300
716
  node.each_child_node { |node| node.accept(self) }
301
717
  end
302
718
 
303
719
  # Visit a EnsureNode node
720
+ #
721
+ #: (EnsureNode node) -> void
304
722
  def visit_ensure_node(node)
305
723
  node.each_child_node { |node| node.accept(self) }
306
724
  end
307
725
 
726
+ # Visit a ErrorRecoveryNode node
727
+ #
728
+ #: (ErrorRecoveryNode node) -> void
729
+ def visit_error_recovery_node(node)
730
+ node.each_child_node { |node| node.accept(self) }
731
+ end
732
+
308
733
  # Visit a FalseNode node
734
+ #
735
+ #: (FalseNode node) -> void
309
736
  def visit_false_node(node)
310
737
  node.each_child_node { |node| node.accept(self) }
311
738
  end
312
739
 
313
740
  # Visit a FindPatternNode node
741
+ #
742
+ #: (FindPatternNode node) -> void
314
743
  def visit_find_pattern_node(node)
315
744
  node.each_child_node { |node| node.accept(self) }
316
745
  end
317
746
 
318
747
  # Visit a FlipFlopNode node
748
+ #
749
+ #: (FlipFlopNode node) -> void
319
750
  def visit_flip_flop_node(node)
320
751
  node.each_child_node { |node| node.accept(self) }
321
752
  end
322
753
 
323
754
  # Visit a FloatNode node
755
+ #
756
+ #: (FloatNode node) -> void
324
757
  def visit_float_node(node)
325
758
  node.each_child_node { |node| node.accept(self) }
326
759
  end
327
760
 
328
761
  # Visit a ForNode node
762
+ #
763
+ #: (ForNode node) -> void
329
764
  def visit_for_node(node)
330
765
  node.each_child_node { |node| node.accept(self) }
331
766
  end
332
767
 
333
768
  # Visit a ForwardingArgumentsNode node
769
+ #
770
+ #: (ForwardingArgumentsNode node) -> void
334
771
  def visit_forwarding_arguments_node(node)
335
772
  node.each_child_node { |node| node.accept(self) }
336
773
  end
337
774
 
338
775
  # Visit a ForwardingParameterNode node
776
+ #
777
+ #: (ForwardingParameterNode node) -> void
339
778
  def visit_forwarding_parameter_node(node)
340
779
  node.each_child_node { |node| node.accept(self) }
341
780
  end
342
781
 
343
782
  # Visit a ForwardingSuperNode node
783
+ #
784
+ #: (ForwardingSuperNode node) -> void
344
785
  def visit_forwarding_super_node(node)
345
786
  node.each_child_node { |node| node.accept(self) }
346
787
  end
347
788
 
348
789
  # Visit a GlobalVariableAndWriteNode node
790
+ #
791
+ #: (GlobalVariableAndWriteNode node) -> void
349
792
  def visit_global_variable_and_write_node(node)
350
793
  node.each_child_node { |node| node.accept(self) }
351
794
  end
352
795
 
353
796
  # Visit a GlobalVariableOperatorWriteNode node
797
+ #
798
+ #: (GlobalVariableOperatorWriteNode node) -> void
354
799
  def visit_global_variable_operator_write_node(node)
355
800
  node.each_child_node { |node| node.accept(self) }
356
801
  end
357
802
 
358
803
  # Visit a GlobalVariableOrWriteNode node
804
+ #
805
+ #: (GlobalVariableOrWriteNode node) -> void
359
806
  def visit_global_variable_or_write_node(node)
360
807
  node.each_child_node { |node| node.accept(self) }
361
808
  end
362
809
 
363
810
  # Visit a GlobalVariableReadNode node
811
+ #
812
+ #: (GlobalVariableReadNode node) -> void
364
813
  def visit_global_variable_read_node(node)
365
814
  node.each_child_node { |node| node.accept(self) }
366
815
  end
367
816
 
368
817
  # Visit a GlobalVariableTargetNode node
818
+ #
819
+ #: (GlobalVariableTargetNode node) -> void
369
820
  def visit_global_variable_target_node(node)
370
821
  node.each_child_node { |node| node.accept(self) }
371
822
  end
372
823
 
373
824
  # Visit a GlobalVariableWriteNode node
825
+ #
826
+ #: (GlobalVariableWriteNode node) -> void
374
827
  def visit_global_variable_write_node(node)
375
828
  node.each_child_node { |node| node.accept(self) }
376
829
  end
377
830
 
378
831
  # Visit a HashNode node
832
+ #
833
+ #: (HashNode node) -> void
379
834
  def visit_hash_node(node)
380
835
  node.each_child_node { |node| node.accept(self) }
381
836
  end
382
837
 
383
838
  # Visit a HashPatternNode node
839
+ #
840
+ #: (HashPatternNode node) -> void
384
841
  def visit_hash_pattern_node(node)
385
842
  node.each_child_node { |node| node.accept(self) }
386
843
  end
387
844
 
388
845
  # Visit a IfNode node
846
+ #
847
+ #: (IfNode node) -> void
389
848
  def visit_if_node(node)
390
849
  node.each_child_node { |node| node.accept(self) }
391
850
  end
392
851
 
393
852
  # Visit a ImaginaryNode node
853
+ #
854
+ #: (ImaginaryNode node) -> void
394
855
  def visit_imaginary_node(node)
395
856
  node.each_child_node { |node| node.accept(self) }
396
857
  end
397
858
 
398
859
  # Visit a ImplicitNode node
860
+ #
861
+ #: (ImplicitNode node) -> void
399
862
  def visit_implicit_node(node)
400
863
  node.each_child_node { |node| node.accept(self) }
401
864
  end
402
865
 
403
866
  # Visit a ImplicitRestNode node
867
+ #
868
+ #: (ImplicitRestNode node) -> void
404
869
  def visit_implicit_rest_node(node)
405
870
  node.each_child_node { |node| node.accept(self) }
406
871
  end
407
872
 
408
873
  # Visit a InNode node
874
+ #
875
+ #: (InNode node) -> void
409
876
  def visit_in_node(node)
410
877
  node.each_child_node { |node| node.accept(self) }
411
878
  end
412
879
 
413
880
  # Visit a IndexAndWriteNode node
881
+ #
882
+ #: (IndexAndWriteNode node) -> void
414
883
  def visit_index_and_write_node(node)
415
884
  node.each_child_node { |node| node.accept(self) }
416
885
  end
417
886
 
418
887
  # Visit a IndexOperatorWriteNode node
888
+ #
889
+ #: (IndexOperatorWriteNode node) -> void
419
890
  def visit_index_operator_write_node(node)
420
891
  node.each_child_node { |node| node.accept(self) }
421
892
  end
422
893
 
423
894
  # Visit a IndexOrWriteNode node
895
+ #
896
+ #: (IndexOrWriteNode node) -> void
424
897
  def visit_index_or_write_node(node)
425
898
  node.each_child_node { |node| node.accept(self) }
426
899
  end
427
900
 
428
901
  # Visit a IndexTargetNode node
902
+ #
903
+ #: (IndexTargetNode node) -> void
429
904
  def visit_index_target_node(node)
430
905
  node.each_child_node { |node| node.accept(self) }
431
906
  end
432
907
 
433
908
  # Visit a InstanceVariableAndWriteNode node
909
+ #
910
+ #: (InstanceVariableAndWriteNode node) -> void
434
911
  def visit_instance_variable_and_write_node(node)
435
912
  node.each_child_node { |node| node.accept(self) }
436
913
  end
437
914
 
438
915
  # Visit a InstanceVariableOperatorWriteNode node
916
+ #
917
+ #: (InstanceVariableOperatorWriteNode node) -> void
439
918
  def visit_instance_variable_operator_write_node(node)
440
919
  node.each_child_node { |node| node.accept(self) }
441
920
  end
442
921
 
443
922
  # Visit a InstanceVariableOrWriteNode node
923
+ #
924
+ #: (InstanceVariableOrWriteNode node) -> void
444
925
  def visit_instance_variable_or_write_node(node)
445
926
  node.each_child_node { |node| node.accept(self) }
446
927
  end
447
928
 
448
929
  # Visit a InstanceVariableReadNode node
930
+ #
931
+ #: (InstanceVariableReadNode node) -> void
449
932
  def visit_instance_variable_read_node(node)
450
933
  node.each_child_node { |node| node.accept(self) }
451
934
  end
452
935
 
453
936
  # Visit a InstanceVariableTargetNode node
937
+ #
938
+ #: (InstanceVariableTargetNode node) -> void
454
939
  def visit_instance_variable_target_node(node)
455
940
  node.each_child_node { |node| node.accept(self) }
456
941
  end
457
942
 
458
943
  # Visit a InstanceVariableWriteNode node
944
+ #
945
+ #: (InstanceVariableWriteNode node) -> void
459
946
  def visit_instance_variable_write_node(node)
460
947
  node.each_child_node { |node| node.accept(self) }
461
948
  end
462
949
 
463
950
  # Visit a IntegerNode node
951
+ #
952
+ #: (IntegerNode node) -> void
464
953
  def visit_integer_node(node)
465
954
  node.each_child_node { |node| node.accept(self) }
466
955
  end
467
956
 
468
957
  # Visit a InterpolatedMatchLastLineNode node
958
+ #
959
+ #: (InterpolatedMatchLastLineNode node) -> void
469
960
  def visit_interpolated_match_last_line_node(node)
470
961
  node.each_child_node { |node| node.accept(self) }
471
962
  end
472
963
 
473
964
  # Visit a InterpolatedRegularExpressionNode node
965
+ #
966
+ #: (InterpolatedRegularExpressionNode node) -> void
474
967
  def visit_interpolated_regular_expression_node(node)
475
968
  node.each_child_node { |node| node.accept(self) }
476
969
  end
477
970
 
478
971
  # Visit a InterpolatedStringNode node
972
+ #
973
+ #: (InterpolatedStringNode node) -> void
479
974
  def visit_interpolated_string_node(node)
480
975
  node.each_child_node { |node| node.accept(self) }
481
976
  end
482
977
 
483
978
  # Visit a InterpolatedSymbolNode node
979
+ #
980
+ #: (InterpolatedSymbolNode node) -> void
484
981
  def visit_interpolated_symbol_node(node)
485
982
  node.each_child_node { |node| node.accept(self) }
486
983
  end
487
984
 
488
985
  # Visit a InterpolatedXStringNode node
986
+ #
987
+ #: (InterpolatedXStringNode node) -> void
489
988
  def visit_interpolated_x_string_node(node)
490
989
  node.each_child_node { |node| node.accept(self) }
491
990
  end
492
991
 
493
992
  # Visit a ItLocalVariableReadNode node
993
+ #
994
+ #: (ItLocalVariableReadNode node) -> void
494
995
  def visit_it_local_variable_read_node(node)
495
996
  node.each_child_node { |node| node.accept(self) }
496
997
  end
497
998
 
498
999
  # Visit a ItParametersNode node
1000
+ #
1001
+ #: (ItParametersNode node) -> void
499
1002
  def visit_it_parameters_node(node)
500
1003
  node.each_child_node { |node| node.accept(self) }
501
1004
  end
502
1005
 
503
1006
  # Visit a KeywordHashNode node
1007
+ #
1008
+ #: (KeywordHashNode node) -> void
504
1009
  def visit_keyword_hash_node(node)
505
1010
  node.each_child_node { |node| node.accept(self) }
506
1011
  end
507
1012
 
508
1013
  # Visit a KeywordRestParameterNode node
1014
+ #
1015
+ #: (KeywordRestParameterNode node) -> void
509
1016
  def visit_keyword_rest_parameter_node(node)
510
1017
  node.each_child_node { |node| node.accept(self) }
511
1018
  end
512
1019
 
513
1020
  # Visit a LambdaNode node
1021
+ #
1022
+ #: (LambdaNode node) -> void
514
1023
  def visit_lambda_node(node)
515
1024
  node.each_child_node { |node| node.accept(self) }
516
1025
  end
517
1026
 
518
1027
  # Visit a LocalVariableAndWriteNode node
1028
+ #
1029
+ #: (LocalVariableAndWriteNode node) -> void
519
1030
  def visit_local_variable_and_write_node(node)
520
1031
  node.each_child_node { |node| node.accept(self) }
521
1032
  end
522
1033
 
523
1034
  # Visit a LocalVariableOperatorWriteNode node
1035
+ #
1036
+ #: (LocalVariableOperatorWriteNode node) -> void
524
1037
  def visit_local_variable_operator_write_node(node)
525
1038
  node.each_child_node { |node| node.accept(self) }
526
1039
  end
527
1040
 
528
1041
  # Visit a LocalVariableOrWriteNode node
1042
+ #
1043
+ #: (LocalVariableOrWriteNode node) -> void
529
1044
  def visit_local_variable_or_write_node(node)
530
1045
  node.each_child_node { |node| node.accept(self) }
531
1046
  end
532
1047
 
533
1048
  # Visit a LocalVariableReadNode node
1049
+ #
1050
+ #: (LocalVariableReadNode node) -> void
534
1051
  def visit_local_variable_read_node(node)
535
1052
  node.each_child_node { |node| node.accept(self) }
536
1053
  end
537
1054
 
538
1055
  # Visit a LocalVariableTargetNode node
1056
+ #
1057
+ #: (LocalVariableTargetNode node) -> void
539
1058
  def visit_local_variable_target_node(node)
540
1059
  node.each_child_node { |node| node.accept(self) }
541
1060
  end
542
1061
 
543
1062
  # Visit a LocalVariableWriteNode node
1063
+ #
1064
+ #: (LocalVariableWriteNode node) -> void
544
1065
  def visit_local_variable_write_node(node)
545
1066
  node.each_child_node { |node| node.accept(self) }
546
1067
  end
547
1068
 
548
1069
  # Visit a MatchLastLineNode node
1070
+ #
1071
+ #: (MatchLastLineNode node) -> void
549
1072
  def visit_match_last_line_node(node)
550
1073
  node.each_child_node { |node| node.accept(self) }
551
1074
  end
552
1075
 
553
1076
  # Visit a MatchPredicateNode node
1077
+ #
1078
+ #: (MatchPredicateNode node) -> void
554
1079
  def visit_match_predicate_node(node)
555
1080
  node.each_child_node { |node| node.accept(self) }
556
1081
  end
557
1082
 
558
1083
  # Visit a MatchRequiredNode node
1084
+ #
1085
+ #: (MatchRequiredNode node) -> void
559
1086
  def visit_match_required_node(node)
560
1087
  node.each_child_node { |node| node.accept(self) }
561
1088
  end
562
1089
 
563
1090
  # Visit a MatchWriteNode node
1091
+ #
1092
+ #: (MatchWriteNode node) -> void
564
1093
  def visit_match_write_node(node)
565
1094
  node.each_child_node { |node| node.accept(self) }
566
1095
  end
567
1096
 
568
- # Visit a MissingNode node
569
- def visit_missing_node(node)
570
- node.each_child_node { |node| node.accept(self) }
571
- end
572
-
573
1097
  # Visit a ModuleNode node
1098
+ #
1099
+ #: (ModuleNode node) -> void
574
1100
  def visit_module_node(node)
575
1101
  node.each_child_node { |node| node.accept(self) }
576
1102
  end
577
1103
 
578
1104
  # Visit a MultiTargetNode node
1105
+ #
1106
+ #: (MultiTargetNode node) -> void
579
1107
  def visit_multi_target_node(node)
580
1108
  node.each_child_node { |node| node.accept(self) }
581
1109
  end
582
1110
 
583
1111
  # Visit a MultiWriteNode node
1112
+ #
1113
+ #: (MultiWriteNode node) -> void
584
1114
  def visit_multi_write_node(node)
585
1115
  node.each_child_node { |node| node.accept(self) }
586
1116
  end
587
1117
 
588
1118
  # Visit a NextNode node
1119
+ #
1120
+ #: (NextNode node) -> void
589
1121
  def visit_next_node(node)
590
1122
  node.each_child_node { |node| node.accept(self) }
591
1123
  end
592
1124
 
593
1125
  # Visit a NilNode node
1126
+ #
1127
+ #: (NilNode node) -> void
594
1128
  def visit_nil_node(node)
595
1129
  node.each_child_node { |node| node.accept(self) }
596
1130
  end
597
1131
 
1132
+ # Visit a NoBlockParameterNode node
1133
+ #
1134
+ #: (NoBlockParameterNode node) -> void
1135
+ def visit_no_block_parameter_node(node)
1136
+ node.each_child_node { |node| node.accept(self) }
1137
+ end
1138
+
598
1139
  # Visit a NoKeywordsParameterNode node
1140
+ #
1141
+ #: (NoKeywordsParameterNode node) -> void
599
1142
  def visit_no_keywords_parameter_node(node)
600
1143
  node.each_child_node { |node| node.accept(self) }
601
1144
  end
602
1145
 
603
1146
  # Visit a NumberedParametersNode node
1147
+ #
1148
+ #: (NumberedParametersNode node) -> void
604
1149
  def visit_numbered_parameters_node(node)
605
1150
  node.each_child_node { |node| node.accept(self) }
606
1151
  end
607
1152
 
608
1153
  # Visit a NumberedReferenceReadNode node
1154
+ #
1155
+ #: (NumberedReferenceReadNode node) -> void
609
1156
  def visit_numbered_reference_read_node(node)
610
1157
  node.each_child_node { |node| node.accept(self) }
611
1158
  end
612
1159
 
613
1160
  # Visit a OptionalKeywordParameterNode node
1161
+ #
1162
+ #: (OptionalKeywordParameterNode node) -> void
614
1163
  def visit_optional_keyword_parameter_node(node)
615
1164
  node.each_child_node { |node| node.accept(self) }
616
1165
  end
617
1166
 
618
1167
  # Visit a OptionalParameterNode node
1168
+ #
1169
+ #: (OptionalParameterNode node) -> void
619
1170
  def visit_optional_parameter_node(node)
620
1171
  node.each_child_node { |node| node.accept(self) }
621
1172
  end
622
1173
 
623
1174
  # Visit a OrNode node
1175
+ #
1176
+ #: (OrNode node) -> void
624
1177
  def visit_or_node(node)
625
1178
  node.each_child_node { |node| node.accept(self) }
626
1179
  end
627
1180
 
628
1181
  # Visit a ParametersNode node
1182
+ #
1183
+ #: (ParametersNode node) -> void
629
1184
  def visit_parameters_node(node)
630
1185
  node.each_child_node { |node| node.accept(self) }
631
1186
  end
632
1187
 
633
1188
  # Visit a ParenthesesNode node
1189
+ #
1190
+ #: (ParenthesesNode node) -> void
634
1191
  def visit_parentheses_node(node)
635
1192
  node.each_child_node { |node| node.accept(self) }
636
1193
  end
637
1194
 
638
1195
  # Visit a PinnedExpressionNode node
1196
+ #
1197
+ #: (PinnedExpressionNode node) -> void
639
1198
  def visit_pinned_expression_node(node)
640
1199
  node.each_child_node { |node| node.accept(self) }
641
1200
  end
642
1201
 
643
1202
  # Visit a PinnedVariableNode node
1203
+ #
1204
+ #: (PinnedVariableNode node) -> void
644
1205
  def visit_pinned_variable_node(node)
645
1206
  node.each_child_node { |node| node.accept(self) }
646
1207
  end
647
1208
 
648
1209
  # Visit a PostExecutionNode node
1210
+ #
1211
+ #: (PostExecutionNode node) -> void
649
1212
  def visit_post_execution_node(node)
650
1213
  node.each_child_node { |node| node.accept(self) }
651
1214
  end
652
1215
 
653
1216
  # Visit a PreExecutionNode node
1217
+ #
1218
+ #: (PreExecutionNode node) -> void
654
1219
  def visit_pre_execution_node(node)
655
1220
  node.each_child_node { |node| node.accept(self) }
656
1221
  end
657
1222
 
658
1223
  # Visit a ProgramNode node
1224
+ #
1225
+ #: (ProgramNode node) -> void
659
1226
  def visit_program_node(node)
660
1227
  node.each_child_node { |node| node.accept(self) }
661
1228
  end
662
1229
 
663
1230
  # Visit a RangeNode node
1231
+ #
1232
+ #: (RangeNode node) -> void
664
1233
  def visit_range_node(node)
665
1234
  node.each_child_node { |node| node.accept(self) }
666
1235
  end
667
1236
 
668
1237
  # Visit a RationalNode node
1238
+ #
1239
+ #: (RationalNode node) -> void
669
1240
  def visit_rational_node(node)
670
1241
  node.each_child_node { |node| node.accept(self) }
671
1242
  end
672
1243
 
673
1244
  # Visit a RedoNode node
1245
+ #
1246
+ #: (RedoNode node) -> void
674
1247
  def visit_redo_node(node)
675
1248
  node.each_child_node { |node| node.accept(self) }
676
1249
  end
677
1250
 
678
1251
  # Visit a RegularExpressionNode node
1252
+ #
1253
+ #: (RegularExpressionNode node) -> void
679
1254
  def visit_regular_expression_node(node)
680
1255
  node.each_child_node { |node| node.accept(self) }
681
1256
  end
682
1257
 
683
1258
  # Visit a RequiredKeywordParameterNode node
1259
+ #
1260
+ #: (RequiredKeywordParameterNode node) -> void
684
1261
  def visit_required_keyword_parameter_node(node)
685
1262
  node.each_child_node { |node| node.accept(self) }
686
1263
  end
687
1264
 
688
1265
  # Visit a RequiredParameterNode node
1266
+ #
1267
+ #: (RequiredParameterNode node) -> void
689
1268
  def visit_required_parameter_node(node)
690
1269
  node.each_child_node { |node| node.accept(self) }
691
1270
  end
692
1271
 
693
1272
  # Visit a RescueModifierNode node
1273
+ #
1274
+ #: (RescueModifierNode node) -> void
694
1275
  def visit_rescue_modifier_node(node)
695
1276
  node.each_child_node { |node| node.accept(self) }
696
1277
  end
697
1278
 
698
1279
  # Visit a RescueNode node
1280
+ #
1281
+ #: (RescueNode node) -> void
699
1282
  def visit_rescue_node(node)
700
1283
  node.each_child_node { |node| node.accept(self) }
701
1284
  end
702
1285
 
703
1286
  # Visit a RestParameterNode node
1287
+ #
1288
+ #: (RestParameterNode node) -> void
704
1289
  def visit_rest_parameter_node(node)
705
1290
  node.each_child_node { |node| node.accept(self) }
706
1291
  end
707
1292
 
708
1293
  # Visit a RetryNode node
1294
+ #
1295
+ #: (RetryNode node) -> void
709
1296
  def visit_retry_node(node)
710
1297
  node.each_child_node { |node| node.accept(self) }
711
1298
  end
712
1299
 
713
1300
  # Visit a ReturnNode node
1301
+ #
1302
+ #: (ReturnNode node) -> void
714
1303
  def visit_return_node(node)
715
1304
  node.each_child_node { |node| node.accept(self) }
716
1305
  end
717
1306
 
718
1307
  # Visit a SelfNode node
1308
+ #
1309
+ #: (SelfNode node) -> void
719
1310
  def visit_self_node(node)
720
1311
  node.each_child_node { |node| node.accept(self) }
721
1312
  end
722
1313
 
723
1314
  # Visit a ShareableConstantNode node
1315
+ #
1316
+ #: (ShareableConstantNode node) -> void
724
1317
  def visit_shareable_constant_node(node)
725
1318
  node.each_child_node { |node| node.accept(self) }
726
1319
  end
727
1320
 
728
1321
  # Visit a SingletonClassNode node
1322
+ #
1323
+ #: (SingletonClassNode node) -> void
729
1324
  def visit_singleton_class_node(node)
730
1325
  node.each_child_node { |node| node.accept(self) }
731
1326
  end
732
1327
 
733
1328
  # Visit a SourceEncodingNode node
1329
+ #
1330
+ #: (SourceEncodingNode node) -> void
734
1331
  def visit_source_encoding_node(node)
735
1332
  node.each_child_node { |node| node.accept(self) }
736
1333
  end
737
1334
 
738
1335
  # Visit a SourceFileNode node
1336
+ #
1337
+ #: (SourceFileNode node) -> void
739
1338
  def visit_source_file_node(node)
740
1339
  node.each_child_node { |node| node.accept(self) }
741
1340
  end
742
1341
 
743
1342
  # Visit a SourceLineNode node
1343
+ #
1344
+ #: (SourceLineNode node) -> void
744
1345
  def visit_source_line_node(node)
745
1346
  node.each_child_node { |node| node.accept(self) }
746
1347
  end
747
1348
 
748
1349
  # Visit a SplatNode node
1350
+ #
1351
+ #: (SplatNode node) -> void
749
1352
  def visit_splat_node(node)
750
1353
  node.each_child_node { |node| node.accept(self) }
751
1354
  end
752
1355
 
753
1356
  # Visit a StatementsNode node
1357
+ #
1358
+ #: (StatementsNode node) -> void
754
1359
  def visit_statements_node(node)
755
1360
  node.each_child_node { |node| node.accept(self) }
756
1361
  end
757
1362
 
758
1363
  # Visit a StringNode node
1364
+ #
1365
+ #: (StringNode node) -> void
759
1366
  def visit_string_node(node)
760
1367
  node.each_child_node { |node| node.accept(self) }
761
1368
  end
762
1369
 
763
1370
  # Visit a SuperNode node
1371
+ #
1372
+ #: (SuperNode node) -> void
764
1373
  def visit_super_node(node)
765
1374
  node.each_child_node { |node| node.accept(self) }
766
1375
  end
767
1376
 
768
1377
  # Visit a SymbolNode node
1378
+ #
1379
+ #: (SymbolNode node) -> void
769
1380
  def visit_symbol_node(node)
770
1381
  node.each_child_node { |node| node.accept(self) }
771
1382
  end
772
1383
 
773
1384
  # Visit a TrueNode node
1385
+ #
1386
+ #: (TrueNode node) -> void
774
1387
  def visit_true_node(node)
775
1388
  node.each_child_node { |node| node.accept(self) }
776
1389
  end
777
1390
 
778
1391
  # Visit a UndefNode node
1392
+ #
1393
+ #: (UndefNode node) -> void
779
1394
  def visit_undef_node(node)
780
1395
  node.each_child_node { |node| node.accept(self) }
781
1396
  end
782
1397
 
783
1398
  # Visit a UnlessNode node
1399
+ #
1400
+ #: (UnlessNode node) -> void
784
1401
  def visit_unless_node(node)
785
1402
  node.each_child_node { |node| node.accept(self) }
786
1403
  end
787
1404
 
788
1405
  # Visit a UntilNode node
1406
+ #
1407
+ #: (UntilNode node) -> void
789
1408
  def visit_until_node(node)
790
1409
  node.each_child_node { |node| node.accept(self) }
791
1410
  end
792
1411
 
793
1412
  # Visit a WhenNode node
1413
+ #
1414
+ #: (WhenNode node) -> void
794
1415
  def visit_when_node(node)
795
1416
  node.each_child_node { |node| node.accept(self) }
796
1417
  end
797
1418
 
798
1419
  # Visit a WhileNode node
1420
+ #
1421
+ #: (WhileNode node) -> void
799
1422
  def visit_while_node(node)
800
1423
  node.each_child_node { |node| node.accept(self) }
801
1424
  end
802
1425
 
803
1426
  # Visit a XStringNode node
1427
+ #
1428
+ #: (XStringNode node) -> void
804
1429
  def visit_x_string_node(node)
805
1430
  node.each_child_node { |node| node.accept(self) }
806
1431
  end
807
1432
 
808
1433
  # Visit a YieldNode node
1434
+ #
1435
+ #: (YieldNode node) -> void
809
1436
  def visit_yield_node(node)
810
1437
  node.each_child_node { |node| node.accept(self) }
811
1438
  end