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
@@ -1,159 +1,464 @@
1
- # This file is generated by the templates/template.rb script and should not be
2
- # modified manually. See templates/sig/prism/mutation_compiler.rbs.erb
3
- # if you are looking to modify the template
1
+ # Generated from lib/prism/mutation_compiler.rb with RBS::Inline
4
2
 
5
3
  module Prism
4
+ # This visitor walks through the tree and copies each node as it is being
5
+ # visited. This is useful for consumers that want to mutate the tree, as you
6
+ # can change subtrees in place without effecting the rest of the tree.
6
7
  class MutationCompiler < Compiler
8
+ # : (AliasGlobalVariableNode) -> node?
7
9
  def visit_alias_global_variable_node: (AliasGlobalVariableNode) -> node?
10
+
11
+ # : (AliasMethodNode) -> node?
8
12
  def visit_alias_method_node: (AliasMethodNode) -> node?
13
+
14
+ # : (AlternationPatternNode) -> node?
9
15
  def visit_alternation_pattern_node: (AlternationPatternNode) -> node?
16
+
17
+ # : (AndNode) -> node?
10
18
  def visit_and_node: (AndNode) -> node?
19
+
20
+ # : (ArgumentsNode) -> node?
11
21
  def visit_arguments_node: (ArgumentsNode) -> node?
22
+
23
+ # : (ArrayNode) -> node?
12
24
  def visit_array_node: (ArrayNode) -> node?
25
+
26
+ # : (ArrayPatternNode) -> node?
13
27
  def visit_array_pattern_node: (ArrayPatternNode) -> node?
28
+
29
+ # : (AssocNode) -> node?
14
30
  def visit_assoc_node: (AssocNode) -> node?
31
+
32
+ # : (AssocSplatNode) -> node?
15
33
  def visit_assoc_splat_node: (AssocSplatNode) -> node?
34
+
35
+ # : (BackReferenceReadNode) -> node?
16
36
  def visit_back_reference_read_node: (BackReferenceReadNode) -> node?
37
+
38
+ # : (BeginNode) -> node?
17
39
  def visit_begin_node: (BeginNode) -> node?
40
+
41
+ # : (BlockArgumentNode) -> node?
18
42
  def visit_block_argument_node: (BlockArgumentNode) -> node?
43
+
44
+ # : (BlockLocalVariableNode) -> node?
19
45
  def visit_block_local_variable_node: (BlockLocalVariableNode) -> node?
46
+
47
+ # : (BlockNode) -> node?
20
48
  def visit_block_node: (BlockNode) -> node?
49
+
50
+ # : (BlockParameterNode) -> node?
21
51
  def visit_block_parameter_node: (BlockParameterNode) -> node?
52
+
53
+ # : (BlockParametersNode) -> node?
22
54
  def visit_block_parameters_node: (BlockParametersNode) -> node?
55
+
56
+ # : (BreakNode) -> node?
23
57
  def visit_break_node: (BreakNode) -> node?
58
+
59
+ # : (CallAndWriteNode) -> node?
24
60
  def visit_call_and_write_node: (CallAndWriteNode) -> node?
61
+
62
+ # : (CallNode) -> node?
25
63
  def visit_call_node: (CallNode) -> node?
64
+
65
+ # : (CallOperatorWriteNode) -> node?
26
66
  def visit_call_operator_write_node: (CallOperatorWriteNode) -> node?
67
+
68
+ # : (CallOrWriteNode) -> node?
27
69
  def visit_call_or_write_node: (CallOrWriteNode) -> node?
70
+
71
+ # : (CallTargetNode) -> node?
28
72
  def visit_call_target_node: (CallTargetNode) -> node?
73
+
74
+ # : (CapturePatternNode) -> node?
29
75
  def visit_capture_pattern_node: (CapturePatternNode) -> node?
76
+
77
+ # : (CaseMatchNode) -> node?
30
78
  def visit_case_match_node: (CaseMatchNode) -> node?
79
+
80
+ # : (CaseNode) -> node?
31
81
  def visit_case_node: (CaseNode) -> node?
82
+
83
+ # : (ClassNode) -> node?
32
84
  def visit_class_node: (ClassNode) -> node?
85
+
86
+ # : (ClassVariableAndWriteNode) -> node?
33
87
  def visit_class_variable_and_write_node: (ClassVariableAndWriteNode) -> node?
88
+
89
+ # : (ClassVariableOperatorWriteNode) -> node?
34
90
  def visit_class_variable_operator_write_node: (ClassVariableOperatorWriteNode) -> node?
91
+
92
+ # : (ClassVariableOrWriteNode) -> node?
35
93
  def visit_class_variable_or_write_node: (ClassVariableOrWriteNode) -> node?
94
+
95
+ # : (ClassVariableReadNode) -> node?
36
96
  def visit_class_variable_read_node: (ClassVariableReadNode) -> node?
97
+
98
+ # : (ClassVariableTargetNode) -> node?
37
99
  def visit_class_variable_target_node: (ClassVariableTargetNode) -> node?
100
+
101
+ # : (ClassVariableWriteNode) -> node?
38
102
  def visit_class_variable_write_node: (ClassVariableWriteNode) -> node?
103
+
104
+ # : (ConstantAndWriteNode) -> node?
39
105
  def visit_constant_and_write_node: (ConstantAndWriteNode) -> node?
106
+
107
+ # : (ConstantOperatorWriteNode) -> node?
40
108
  def visit_constant_operator_write_node: (ConstantOperatorWriteNode) -> node?
109
+
110
+ # : (ConstantOrWriteNode) -> node?
41
111
  def visit_constant_or_write_node: (ConstantOrWriteNode) -> node?
112
+
113
+ # : (ConstantPathAndWriteNode) -> node?
42
114
  def visit_constant_path_and_write_node: (ConstantPathAndWriteNode) -> node?
115
+
116
+ # : (ConstantPathNode) -> node?
43
117
  def visit_constant_path_node: (ConstantPathNode) -> node?
118
+
119
+ # : (ConstantPathOperatorWriteNode) -> node?
44
120
  def visit_constant_path_operator_write_node: (ConstantPathOperatorWriteNode) -> node?
121
+
122
+ # : (ConstantPathOrWriteNode) -> node?
45
123
  def visit_constant_path_or_write_node: (ConstantPathOrWriteNode) -> node?
124
+
125
+ # : (ConstantPathTargetNode) -> node?
46
126
  def visit_constant_path_target_node: (ConstantPathTargetNode) -> node?
127
+
128
+ # : (ConstantPathWriteNode) -> node?
47
129
  def visit_constant_path_write_node: (ConstantPathWriteNode) -> node?
130
+
131
+ # : (ConstantReadNode) -> node?
48
132
  def visit_constant_read_node: (ConstantReadNode) -> node?
133
+
134
+ # : (ConstantTargetNode) -> node?
49
135
  def visit_constant_target_node: (ConstantTargetNode) -> node?
136
+
137
+ # : (ConstantWriteNode) -> node?
50
138
  def visit_constant_write_node: (ConstantWriteNode) -> node?
139
+
140
+ # : (DefNode) -> node?
51
141
  def visit_def_node: (DefNode) -> node?
142
+
143
+ # : (DefinedNode) -> node?
52
144
  def visit_defined_node: (DefinedNode) -> node?
145
+
146
+ # : (ElseNode) -> node?
53
147
  def visit_else_node: (ElseNode) -> node?
148
+
149
+ # : (EmbeddedStatementsNode) -> node?
54
150
  def visit_embedded_statements_node: (EmbeddedStatementsNode) -> node?
151
+
152
+ # : (EmbeddedVariableNode) -> node?
55
153
  def visit_embedded_variable_node: (EmbeddedVariableNode) -> node?
154
+
155
+ # : (EnsureNode) -> node?
56
156
  def visit_ensure_node: (EnsureNode) -> node?
157
+
158
+ # : (ErrorRecoveryNode) -> node?
159
+ def visit_error_recovery_node: (ErrorRecoveryNode) -> node?
160
+
161
+ # : (FalseNode) -> node?
57
162
  def visit_false_node: (FalseNode) -> node?
163
+
164
+ # : (FindPatternNode) -> node?
58
165
  def visit_find_pattern_node: (FindPatternNode) -> node?
166
+
167
+ # : (FlipFlopNode) -> node?
59
168
  def visit_flip_flop_node: (FlipFlopNode) -> node?
169
+
170
+ # : (FloatNode) -> node?
60
171
  def visit_float_node: (FloatNode) -> node?
172
+
173
+ # : (ForNode) -> node?
61
174
  def visit_for_node: (ForNode) -> node?
175
+
176
+ # : (ForwardingArgumentsNode) -> node?
62
177
  def visit_forwarding_arguments_node: (ForwardingArgumentsNode) -> node?
178
+
179
+ # : (ForwardingParameterNode) -> node?
63
180
  def visit_forwarding_parameter_node: (ForwardingParameterNode) -> node?
181
+
182
+ # : (ForwardingSuperNode) -> node?
64
183
  def visit_forwarding_super_node: (ForwardingSuperNode) -> node?
184
+
185
+ # : (GlobalVariableAndWriteNode) -> node?
65
186
  def visit_global_variable_and_write_node: (GlobalVariableAndWriteNode) -> node?
187
+
188
+ # : (GlobalVariableOperatorWriteNode) -> node?
66
189
  def visit_global_variable_operator_write_node: (GlobalVariableOperatorWriteNode) -> node?
190
+
191
+ # : (GlobalVariableOrWriteNode) -> node?
67
192
  def visit_global_variable_or_write_node: (GlobalVariableOrWriteNode) -> node?
193
+
194
+ # : (GlobalVariableReadNode) -> node?
68
195
  def visit_global_variable_read_node: (GlobalVariableReadNode) -> node?
196
+
197
+ # : (GlobalVariableTargetNode) -> node?
69
198
  def visit_global_variable_target_node: (GlobalVariableTargetNode) -> node?
199
+
200
+ # : (GlobalVariableWriteNode) -> node?
70
201
  def visit_global_variable_write_node: (GlobalVariableWriteNode) -> node?
202
+
203
+ # : (HashNode) -> node?
71
204
  def visit_hash_node: (HashNode) -> node?
205
+
206
+ # : (HashPatternNode) -> node?
72
207
  def visit_hash_pattern_node: (HashPatternNode) -> node?
208
+
209
+ # : (IfNode) -> node?
73
210
  def visit_if_node: (IfNode) -> node?
211
+
212
+ # : (ImaginaryNode) -> node?
74
213
  def visit_imaginary_node: (ImaginaryNode) -> node?
214
+
215
+ # : (ImplicitNode) -> node?
75
216
  def visit_implicit_node: (ImplicitNode) -> node?
217
+
218
+ # : (ImplicitRestNode) -> node?
76
219
  def visit_implicit_rest_node: (ImplicitRestNode) -> node?
220
+
221
+ # : (InNode) -> node?
77
222
  def visit_in_node: (InNode) -> node?
223
+
224
+ # : (IndexAndWriteNode) -> node?
78
225
  def visit_index_and_write_node: (IndexAndWriteNode) -> node?
226
+
227
+ # : (IndexOperatorWriteNode) -> node?
79
228
  def visit_index_operator_write_node: (IndexOperatorWriteNode) -> node?
229
+
230
+ # : (IndexOrWriteNode) -> node?
80
231
  def visit_index_or_write_node: (IndexOrWriteNode) -> node?
232
+
233
+ # : (IndexTargetNode) -> node?
81
234
  def visit_index_target_node: (IndexTargetNode) -> node?
235
+
236
+ # : (InstanceVariableAndWriteNode) -> node?
82
237
  def visit_instance_variable_and_write_node: (InstanceVariableAndWriteNode) -> node?
238
+
239
+ # : (InstanceVariableOperatorWriteNode) -> node?
83
240
  def visit_instance_variable_operator_write_node: (InstanceVariableOperatorWriteNode) -> node?
241
+
242
+ # : (InstanceVariableOrWriteNode) -> node?
84
243
  def visit_instance_variable_or_write_node: (InstanceVariableOrWriteNode) -> node?
244
+
245
+ # : (InstanceVariableReadNode) -> node?
85
246
  def visit_instance_variable_read_node: (InstanceVariableReadNode) -> node?
247
+
248
+ # : (InstanceVariableTargetNode) -> node?
86
249
  def visit_instance_variable_target_node: (InstanceVariableTargetNode) -> node?
250
+
251
+ # : (InstanceVariableWriteNode) -> node?
87
252
  def visit_instance_variable_write_node: (InstanceVariableWriteNode) -> node?
253
+
254
+ # : (IntegerNode) -> node?
88
255
  def visit_integer_node: (IntegerNode) -> node?
256
+
257
+ # : (InterpolatedMatchLastLineNode) -> node?
89
258
  def visit_interpolated_match_last_line_node: (InterpolatedMatchLastLineNode) -> node?
259
+
260
+ # : (InterpolatedRegularExpressionNode) -> node?
90
261
  def visit_interpolated_regular_expression_node: (InterpolatedRegularExpressionNode) -> node?
262
+
263
+ # : (InterpolatedStringNode) -> node?
91
264
  def visit_interpolated_string_node: (InterpolatedStringNode) -> node?
265
+
266
+ # : (InterpolatedSymbolNode) -> node?
92
267
  def visit_interpolated_symbol_node: (InterpolatedSymbolNode) -> node?
268
+
269
+ # : (InterpolatedXStringNode) -> node?
93
270
  def visit_interpolated_x_string_node: (InterpolatedXStringNode) -> node?
271
+
272
+ # : (ItLocalVariableReadNode) -> node?
94
273
  def visit_it_local_variable_read_node: (ItLocalVariableReadNode) -> node?
274
+
275
+ # : (ItParametersNode) -> node?
95
276
  def visit_it_parameters_node: (ItParametersNode) -> node?
277
+
278
+ # : (KeywordHashNode) -> node?
96
279
  def visit_keyword_hash_node: (KeywordHashNode) -> node?
280
+
281
+ # : (KeywordRestParameterNode) -> node?
97
282
  def visit_keyword_rest_parameter_node: (KeywordRestParameterNode) -> node?
283
+
284
+ # : (LambdaNode) -> node?
98
285
  def visit_lambda_node: (LambdaNode) -> node?
286
+
287
+ # : (LocalVariableAndWriteNode) -> node?
99
288
  def visit_local_variable_and_write_node: (LocalVariableAndWriteNode) -> node?
289
+
290
+ # : (LocalVariableOperatorWriteNode) -> node?
100
291
  def visit_local_variable_operator_write_node: (LocalVariableOperatorWriteNode) -> node?
292
+
293
+ # : (LocalVariableOrWriteNode) -> node?
101
294
  def visit_local_variable_or_write_node: (LocalVariableOrWriteNode) -> node?
295
+
296
+ # : (LocalVariableReadNode) -> node?
102
297
  def visit_local_variable_read_node: (LocalVariableReadNode) -> node?
298
+
299
+ # : (LocalVariableTargetNode) -> node?
103
300
  def visit_local_variable_target_node: (LocalVariableTargetNode) -> node?
301
+
302
+ # : (LocalVariableWriteNode) -> node?
104
303
  def visit_local_variable_write_node: (LocalVariableWriteNode) -> node?
304
+
305
+ # : (MatchLastLineNode) -> node?
105
306
  def visit_match_last_line_node: (MatchLastLineNode) -> node?
307
+
308
+ # : (MatchPredicateNode) -> node?
106
309
  def visit_match_predicate_node: (MatchPredicateNode) -> node?
310
+
311
+ # : (MatchRequiredNode) -> node?
107
312
  def visit_match_required_node: (MatchRequiredNode) -> node?
313
+
314
+ # : (MatchWriteNode) -> node?
108
315
  def visit_match_write_node: (MatchWriteNode) -> node?
109
- def visit_missing_node: (MissingNode) -> node?
316
+
317
+ # : (ModuleNode) -> node?
110
318
  def visit_module_node: (ModuleNode) -> node?
319
+
320
+ # : (MultiTargetNode) -> node?
111
321
  def visit_multi_target_node: (MultiTargetNode) -> node?
322
+
323
+ # : (MultiWriteNode) -> node?
112
324
  def visit_multi_write_node: (MultiWriteNode) -> node?
325
+
326
+ # : (NextNode) -> node?
113
327
  def visit_next_node: (NextNode) -> node?
328
+
329
+ # : (NilNode) -> node?
114
330
  def visit_nil_node: (NilNode) -> node?
331
+
332
+ # : (NoBlockParameterNode) -> node?
333
+ def visit_no_block_parameter_node: (NoBlockParameterNode) -> node?
334
+
335
+ # : (NoKeywordsParameterNode) -> node?
115
336
  def visit_no_keywords_parameter_node: (NoKeywordsParameterNode) -> node?
337
+
338
+ # : (NumberedParametersNode) -> node?
116
339
  def visit_numbered_parameters_node: (NumberedParametersNode) -> node?
340
+
341
+ # : (NumberedReferenceReadNode) -> node?
117
342
  def visit_numbered_reference_read_node: (NumberedReferenceReadNode) -> node?
343
+
344
+ # : (OptionalKeywordParameterNode) -> node?
118
345
  def visit_optional_keyword_parameter_node: (OptionalKeywordParameterNode) -> node?
346
+
347
+ # : (OptionalParameterNode) -> node?
119
348
  def visit_optional_parameter_node: (OptionalParameterNode) -> node?
349
+
350
+ # : (OrNode) -> node?
120
351
  def visit_or_node: (OrNode) -> node?
352
+
353
+ # : (ParametersNode) -> node?
121
354
  def visit_parameters_node: (ParametersNode) -> node?
355
+
356
+ # : (ParenthesesNode) -> node?
122
357
  def visit_parentheses_node: (ParenthesesNode) -> node?
358
+
359
+ # : (PinnedExpressionNode) -> node?
123
360
  def visit_pinned_expression_node: (PinnedExpressionNode) -> node?
361
+
362
+ # : (PinnedVariableNode) -> node?
124
363
  def visit_pinned_variable_node: (PinnedVariableNode) -> node?
364
+
365
+ # : (PostExecutionNode) -> node?
125
366
  def visit_post_execution_node: (PostExecutionNode) -> node?
367
+
368
+ # : (PreExecutionNode) -> node?
126
369
  def visit_pre_execution_node: (PreExecutionNode) -> node?
370
+
371
+ # : (ProgramNode) -> node?
127
372
  def visit_program_node: (ProgramNode) -> node?
373
+
374
+ # : (RangeNode) -> node?
128
375
  def visit_range_node: (RangeNode) -> node?
376
+
377
+ # : (RationalNode) -> node?
129
378
  def visit_rational_node: (RationalNode) -> node?
379
+
380
+ # : (RedoNode) -> node?
130
381
  def visit_redo_node: (RedoNode) -> node?
382
+
383
+ # : (RegularExpressionNode) -> node?
131
384
  def visit_regular_expression_node: (RegularExpressionNode) -> node?
385
+
386
+ # : (RequiredKeywordParameterNode) -> node?
132
387
  def visit_required_keyword_parameter_node: (RequiredKeywordParameterNode) -> node?
388
+
389
+ # : (RequiredParameterNode) -> node?
133
390
  def visit_required_parameter_node: (RequiredParameterNode) -> node?
391
+
392
+ # : (RescueModifierNode) -> node?
134
393
  def visit_rescue_modifier_node: (RescueModifierNode) -> node?
394
+
395
+ # : (RescueNode) -> node?
135
396
  def visit_rescue_node: (RescueNode) -> node?
397
+
398
+ # : (RestParameterNode) -> node?
136
399
  def visit_rest_parameter_node: (RestParameterNode) -> node?
400
+
401
+ # : (RetryNode) -> node?
137
402
  def visit_retry_node: (RetryNode) -> node?
403
+
404
+ # : (ReturnNode) -> node?
138
405
  def visit_return_node: (ReturnNode) -> node?
406
+
407
+ # : (SelfNode) -> node?
139
408
  def visit_self_node: (SelfNode) -> node?
409
+
410
+ # : (ShareableConstantNode) -> node?
140
411
  def visit_shareable_constant_node: (ShareableConstantNode) -> node?
412
+
413
+ # : (SingletonClassNode) -> node?
141
414
  def visit_singleton_class_node: (SingletonClassNode) -> node?
415
+
416
+ # : (SourceEncodingNode) -> node?
142
417
  def visit_source_encoding_node: (SourceEncodingNode) -> node?
418
+
419
+ # : (SourceFileNode) -> node?
143
420
  def visit_source_file_node: (SourceFileNode) -> node?
421
+
422
+ # : (SourceLineNode) -> node?
144
423
  def visit_source_line_node: (SourceLineNode) -> node?
424
+
425
+ # : (SplatNode) -> node?
145
426
  def visit_splat_node: (SplatNode) -> node?
427
+
428
+ # : (StatementsNode) -> node?
146
429
  def visit_statements_node: (StatementsNode) -> node?
430
+
431
+ # : (StringNode) -> node?
147
432
  def visit_string_node: (StringNode) -> node?
433
+
434
+ # : (SuperNode) -> node?
148
435
  def visit_super_node: (SuperNode) -> node?
436
+
437
+ # : (SymbolNode) -> node?
149
438
  def visit_symbol_node: (SymbolNode) -> node?
439
+
440
+ # : (TrueNode) -> node?
150
441
  def visit_true_node: (TrueNode) -> node?
442
+
443
+ # : (UndefNode) -> node?
151
444
  def visit_undef_node: (UndefNode) -> node?
445
+
446
+ # : (UnlessNode) -> node?
152
447
  def visit_unless_node: (UnlessNode) -> node?
448
+
449
+ # : (UntilNode) -> node?
153
450
  def visit_until_node: (UntilNode) -> node?
451
+
452
+ # : (WhenNode) -> node?
154
453
  def visit_when_node: (WhenNode) -> node?
454
+
455
+ # : (WhileNode) -> node?
155
456
  def visit_while_node: (WhileNode) -> node?
457
+
458
+ # : (XStringNode) -> node?
156
459
  def visit_x_string_node: (XStringNode) -> node?
460
+
461
+ # : (YieldNode) -> node?
157
462
  def visit_yield_node: (YieldNode) -> node?
158
463
  end
159
464
  end